基于51单片机的数字电压表
基于51單片機(jī)的數(shù)字電壓表
文章目錄
- 基于51單片機(jī)的數(shù)字電壓表
- 前言
- 一、基本設(shè)計(jì)要求
- 二、Proteus仿真
- 三、使用步驟
- 1.使用中斷
- 2.使用四位數(shù)碼管顯示
- 3.主函數(shù)及關(guān)于ADC0808的代碼
- 總結(jié)
前言
繼續(xù)整理總結(jié)之前的小項(xiàng)目,這一次的沒有去將實(shí)物連接出來,運(yùn)用的是Proteus仿真制作的,借著回憶還沒有完全散去,寫下此小項(xiàng)目。本設(shè)計(jì)中利用51單片機(jī)制作了一個(gè)簡單的數(shù)字電壓表,主要通過A/D轉(zhuǎn)換器ADC0808把輸入的模擬信號即電位器的電壓值轉(zhuǎn)換成數(shù)字信號,送到LED數(shù)碼管進(jìn)行數(shù)據(jù)顯示,并預(yù)設(shè)了一個(gè)警報(bào)值,當(dāng)超過警報(bào)值時(shí),報(bào)警電路發(fā)出警報(bào),燈泡閃爍。
一、基本設(shè)計(jì)要求
二、Proteus仿真
三、使用步驟
1.使用中斷
代碼如下(示例):
void init() {TMOD=0x01;TH0=0xFC;TL0=0x18;ET0=1;EA=1;TR0=1; } void init0() interrupt 1 {static u16 i;TMOD=0x01;TH0=0xFC;TL0=0x18;i++;if(i==5000)//在中斷里面進(jìn)行設(shè)置ADC0808哪一個(gè)端口輸出{ADDA=0;}if(i==10000){ADDA=1;i=0;} }2.使用四位數(shù)碼管顯示
void display() {P3=0xff;P1=0xf7;P3=(~smgduan[dat/1000])&0x7f;delay5ms();P3=0xff;P1=0xfb;P3=~smgduan[(dat/100)%10];delay5ms();P3=0xff;P1=0xfd;P3=~smgduan[(dat/10)%10];delay5ms();P3=0xff;P1=0xfe;P3=~smgduan[(dat%10)];delay5ms(); }3.主函數(shù)及關(guān)于ADC0808的代碼
void main() {while(1){LED=0;sound=0;ADDC=0;ADDB=0;init();START=0;OE=0;START=1;START=0;while(EOC==0);OE=1;dat=P0;dat=dat*19.53125;display();OE=0;if(ADDA==1){abc=dat*0.001;if(abc>1.25){sound=1; LED=1;delay(3500);LED=0;} }if(ADDA==0){abc=dat*0.001;if(abc>2.5){sound=1; LED=1;delay(3500);LED=0;}} } }關(guān)于數(shù)字電壓表完整代碼及Proteus電路圖百度網(wǎng)盤自取:
鏈接:https://pan.baidu.com/s/16nELmxn1rGXHXuxsLP0tuQ
提取碼:gzx5
總結(jié)
本次用51單片機(jī)設(shè)計(jì)一個(gè)數(shù)字電壓表,設(shè)計(jì)中用到了ADC0808芯片,以前也沒有接觸過這個(gè)芯片,讓自己有了新的了解,懂得了簡易數(shù)字電壓表設(shè)計(jì)方法以及數(shù)模轉(zhuǎn)換運(yùn)算的一般原理,也進(jìn)一步了解了at89c51單片機(jī)編程,熟練了編程過程中的思路,提高了分析能力。但不足的地方是當(dāng)時(shí)沒主動(dòng)去買零件進(jìn)行連接成實(shí)物
總結(jié)
以上是生活随笔為你收集整理的基于51单片机的数字电压表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c51为啥要宏定义时钟_c51时钟
- 下一篇: 痞子衡嵌入式:恩智浦i.MX RT1xx