|
用51單片機(jī)實(shí)現(xiàn)的ADC0809數(shù)字電壓表的PROTEUS仿真圖:
0.png (30.74 KB, 下載次數(shù): 145)
下載附件
2016-4-18 18:23 上傳
本實(shí)例為AD轉(zhuǎn)換,運(yùn)用AD芯片將電壓模擬量轉(zhuǎn)換成數(shù)字量,然后顯示在數(shù)碼管上。
ADC0809數(shù)字電壓表51單片機(jī)程序:
- #include<reg52.h>
- #include"common.h"
- #include"delay.h"
- uint8 smg_du[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- sbit oe = P1^0; //輸出使能
- sbit eoc = P1^1; //結(jié)束轉(zhuǎn)換
- sbit st = P1^2; //開(kāi)始信號(hào)
- sbit clk = P1^3; //時(shí)鐘信號(hào)
- void smg_display(uint8 dat)
- {
- uint8 i;
- dat = (uint16)dat * 50 / 255;
- for(i=0;i<3;i++)
- {
- P0 = 0x00;
- switch(i)
- {
- case 0:
- P0 = smg_du[dat%10];
- P2 = 0xf7;
- break;
- case 1:
- P0 = smg_du[dat/10%10] + 0x80;
- P2 = 0xfb;
- break;
- case 2:
- P0 = smg_du[dat/100];
- P2 = 0xfd;
- break;
- }
- delay1ms(5);
- }
- }
- void main()
- {
- TMOD = 0x02; //定時(shí)器中斷方式2 自動(dòng)重裝8位定時(shí)器
- TH0 = 0; //定時(shí)256us
- TL0 = 0;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- P1 = 0x3f; //通道3
- while(1)
- {
- st = 0;
- st = 1;
- st = 0; //開(kāi)始轉(zhuǎn)換標(biāo)志
- while(!eoc ); //等待轉(zhuǎn)換完成
- oe = 1;
- smg_display(P3);
- oe = 0;
- }
- }
- void timer0() interrupt 1
- {
- clk = ~clk;
- }
復(fù)制代碼
1.png (29.83 KB, 下載次數(shù): 102)
下載附件
2016-4-18 18:24 上傳
ADC0809數(shù)字電壓表全部資料下載:
19 ADC0809模數(shù)轉(zhuǎn)換與顯示電壓.rar
(48.42 KB, 下載次數(shù): 168)
2016-4-18 18:03 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|