在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用51Hei單片機開發(fā)板制作基于AD的數(shù)字電壓表

            用51Hei單片機開發(fā)板制作基于AD的數(shù)字電壓表

            作者: 時間:2012-08-24 來源:網(wǎng)絡(luò) 收藏

            點擊瀏覽下一頁
            /***************************************************************************
            晶振:11.0592M
            跳線設(shè)置:跳線設(shè)置:J2的34端插上跳線帽
            這個程序的上位機就用附帶串口調(diào)試程序,在51hei單片機開發(fā)板上實驗成功,發(fā)送01后
            旋動電壓調(diào)整電位器RP2,當(dāng)前電壓即可顯示在串口調(diào)試程序的接受區(qū)如上圖

            單片機上電后等待從上位機發(fā)送來的命令,同時在數(shù)碼管的前三位以十進制方式顯
            示A/D采集的數(shù)值,在未收到上位機發(fā)送來的啟動A/D轉(zhuǎn)換命令之前數(shù)碼管始終顯示000。

            當(dāng)收到上位機以十六進制發(fā)送來的01后,向上位機發(fā)送字符串“Turn on ad!”,同時
            間隔一秒讀取一次A/D的值,然后把A/D采集回來的8位二進制數(shù)轉(zhuǎn)換為十進制數(shù)表示的

            實際電壓浮點數(shù)。并且從串口發(fā)送給上位機,形如“The voltage is 3.398438V”,發(fā)送周
            期也是一秒一次,同時在數(shù)碼管上也要每秒刷新現(xiàn)在的數(shù)值。

            當(dāng)收到上位機以十六進制發(fā)送來的02后,向上位機發(fā)送字符串“Turn off ad!”,然后
            停止發(fā)送電壓值,數(shù)碼管上顯示上次結(jié)束時保持的值。

            當(dāng)收到上位機發(fā)來的其他任何數(shù)時,向上位機發(fā)送字符串“Error!”。

            *****************************************************************************/

            由于代碼太長篇幅有限本文只列出了部分代碼,完整版本下載請到:http://www.51hei.com/ziliao/51hei-5/采樣值數(shù)碼管顯示+串口發(fā)送.rar#includereg52.h>#include intrins.h>#includestdio.h>#define uint unsigned int#define uchar unsigned charunsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};sbit diola=P2^5;sbit dula=P2^6;sbit wela=P2^7;sbit adwr=P3^6;sbit adrd=P3^7;sbit adcs=P2^0;uchar flag,a,flag_uart,flag_time,flag_on,num0,ad_val;float ad_vo;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=111;y>0;y--);P0=0xfF;wela=1;wela=0;}void display(uchar value){uchar shu1,shu2,shu3;shu1=value/100;shu2=value%100/10;shu3=value%10;P0=table[shu1];dula=1;dula=0;P0=0xff;P0=0xfe;wela=1;wela=0;delay(1);P0=table[shu2];dula=1;dula=0;P0=0xff;P0=0xfd;wela=1;wela=0;delay(1);P0=table[shu3];dula=1;dula=0;P0=0xff;P0=0xfb;wela=1;wela=0;delay(1);}void init(){   adcs=0;diola=1;P1=0xff;diola=0;wela=1;P0=0x7f;wela=0;TMOD=0x21;//       SCON=0x50;TH0=(65536-46080)/256;TL0=(65536-46080)%256;TH1=0xfd;TL1=0xfd;TR1=1;ET0=1;SM0=0;SM1=1;REN=1;EA=1;ES=1;}uchar get_ad(){uchar adval;adwr=1;_nop_();adwr=0;_nop_();adwr=1;P1=0xff;adrd=1;_nop_();adrd=0;_nop_();adval=P1;adrd=1;return adval;}void main(){init();while(1){if(flag_uart==1){flag_uart=0;ES=0;TI=1;switch(flag_on){case 0:puts("Turn on ad!n");TR0=1;break;case 1:puts("Turn off ad!n");TR0=0;break;case 2:puts("Error!n");break;}while(!TI);TI=0;ES=1;        }if(flag_time==1){flag_time=0;ad_val=get_ad();ad_vo=(float)ad_val*5.0/256.0;ES=0;TI=1;printf("The voltage is %fVn",ad_vo);while(!TI);TI=0;ES=1;        }display(ad_val);        }        }void T0_time() interrupt 1{TH0=(65536-46080)/256;TL0=(65536-46080)%256;num0++;if(num0==20){num0=0;flag_time=1;}                 }void ser() interrupt 4{RI=0;a=SBUF;flag_uart=1;if(a==1)flag_on=0;else if(a==2)flag_on=1;elseflag_on=2;}

            51單片機相關(guān)文章:51單片機教程


            晶振相關(guān)文章:晶振原理


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉