久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1727|回復: 1
打印 上一主題 下一主題
收起左側

使用單片機的A/D轉換口,采集外部輸入電壓在四位數碼管上顯示出來,單位為V

[復制鏈接]
跳轉到指定樓層
樓主
ID:442670 發表于 2018-12-21 12:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗五 A/D轉換實驗
一、實驗目的
1. 了解單片機的A/D的工作原理。
2. 掌握單片機的A/D的應用。
二、實驗內容

//1. 編寫程序,使用單片機的A/D轉換口,采集外部輸入電壓,并把采集到的電壓在四位數碼管上顯示出來,單位為V,并保留兩位小數。
typedef unsigned char uchar;
typedef unsigned char u8;
typedef unsigned int  u16;
typedef unsigned int  uint;


#include <stc15.h>
#include <intrins.h>


void AdInit();
void Timer1Init(void);        //2毫秒@11.0592MHz
void tuiwan();
//   0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
u8 code BLOCK[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

uint advcc[8]={0};
uint advin[8]={0};
u16 vin,vcc,vee;
uchar n=0;
uchar ch=3;
u8 wei=1;


void main()
{
    tuiwan();
    Timer1Init();        //2毫秒@11.0592MHz
    AdInit();
    EA=1;
    while(1)
    {

        
    }
}

void AdInit()
{
  P1M0=0x00;  
  P1M1=0xFF;
  P1ASF=0x28;  
  ADC_CONTR=0x80;
  EADC=1;
  ADC_CONTR=0x88|ch;   
}

void Adsevr() interrupt 5
{

  ADC_CONTR=0x80;
    if(ch==3)
    {
        advcc[n]=(ADC_RES<<2)+(ADC_RESL&0x03);
        ch=5;
        ADC_CONTR=0x88|ch;
    }
    else if(ch==5)
    {
        advin[n]=(ADC_RES<<2)+(ADC_RESL&0x03);
        n++;
        if(n>=8)
        {
            n=0;
        }
        ch=3;
        ADC_CONTR=0x88|ch;
    }
   
}
void tuiwan()
{
    P2M0 |=  0xF0;
    P2M1 &= ~0xF0;

    P0M0 = 0xFF;
    P0M1 = 0x00;

}

void Timer1Init(void)        //2毫秒@11.0592MHz
{
    AUXR |= 0x40;        //定時器時鐘1T模式
    TMOD &= 0x0F;        //設置定時器模式
    TL1 = 0x9A;        //設置定時初值
    TH1 = 0xA9;        //設置定時初值
    TF1 = 0;        //清除TF1標志
    ET1 = 1;                        //使能定時器0中斷
    TR1 = 1;        //定時器1開始計時
   
}

void tm1_isr() interrupt 3
{
  
        u8 i;
        vin=0;
        vcc=0;
   

        for(i=0;i<8;i++)
        {
            vin=vin+advin[i];
            vcc=vcc+advcc[i];
        }
        vcc=vcc>>3;
        vin=vin>>3;
             vin=vcc/1024.0*vin;

            
        
        switch ( wei )
    {
       case 1:
       P27=1;
       P0=BLOCK[vin/1000%10]|0x80;
       P24=0;
       wei=2;
       break;

       case 2:
       P24=1;
       P0=BLOCK[vin/100%10] ;
       P25=0;
       wei=3;
       break;

       case 3:
       P25=1;
       P0=BLOCK[vin/10%10];
       P26=0;
       wei=4;
       break;

       case 4:
       P26=1;
       P0=BLOCK[vin%10];
       P27=0;
       wei=1;
       break;        
    }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:449881 發表于 2020-2-26 10:44 | 只看該作者
顯示的電壓值范圍是多少啊?精確幾個小數點
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲vs天堂 | 日日夜夜操天天干 | 国产伦精品一区二区三区高清 | 国产精品久久久久aaaa九色 | 免费h在线| 红桃视频一区二区三区免费 | 一区二区三区高清 | 91av视频在线免费观看 | 国产精品久久久久久久久久 | 99婷婷 | 在线一级片 | 精品一级 | 国产xxx在线观看 | 激情91 | 一区二区三区四区在线视频 | 国产十日韩十欧美 | 荷兰欧美一级毛片 | 国产成人精品免费视频大全最热 | 日韩在线观看视频一区 | 中文字幕免费 | 国产激情视频在线免费观看 | 国产高清精品网站 | 五月天婷婷激情 | 国产 欧美 日韩 一区 | 精品中文字幕一区二区三区 | 久久国内精品 | 欧美日韩亚洲国产 | 国产精品久久二区 | 亚洲一区二区三区四区av | 亚洲综合在线视频 | 日本不卡一区 | 国产精品亚洲综合 | av网站免费观看 | 丁香婷婷综合激情五月色 | 全免费a级毛片免费看视频免 | 91成人午夜性a一级毛片 | 日韩在线三级 | 欧美一区久久 | 亚洲国产一区二区三区, | 91精品国产91久久久久久 | 日本久久精品 |