多路數字電壓表
0.png (24.37 KB, 下載次數: 92)
下載附件
2017-7-19 16:32 上傳
0.png (48.31 KB, 下載次數: 96)
下載附件
2017-7-19 16:32 上傳
單片機源程序如下:
- #include<reg52.h>
- #include"1602.h"
- #define uint unsigned int
- #define uchar unsigned char
- sbit ale=P2^6;
- sbit start=P2^7;
- sbit eoc=P3^0;
- sbit oe=P3^1;
- sbit adda=P2^0;
- sbit addb=P2^1;
- sbit addc=P2^2;
- uchar add;
- uint voltdata,realvolt;
- void addselect()
- {
- switch(add)
- {
- case 0:adda=0;addb=0;addc=0;break;
- case 1:adda=1;addb=0;addc=1;break;
- case 2:adda=0;addb=1;addc=0;break;
- default:break;
- }
- }
- uint adtrans()
- {
- addselect();
- ale=1;
- ale=0;
- start=1; //啟動AD轉換。
- start=0;
- while(eoc==0); //等待轉換結束。
- oe=1;
- voltdata=P1; //出入轉換結果。
- delay(1);
- oe=0;
- voltdata=(100*voltdata)/51; //處理運算結果。
- return voltdata;
- }
- void disvolt()
- {
- uchar qian,bai,shi,ge;
- switch(add)
- {
- case 0:realvolt=voltdata;writelcd_cmd(0x80+15);writelcd_dat('0');writelcd_cmd(0xc0+4);writelcd_dat('0');writelcd_dat('5');break;
- case 1:realvolt=voltdata*2;writelcd_cmd(0x80+15);writelcd_dat('1');writelcd_cmd(0xc0+4);writelcd_dat('1');writelcd_dat('0');break;
- case 2:realvolt=voltdata*10;writelcd_cmd(0x80+15);writelcd_dat('2');writelcd_cmd(0xc0+4);writelcd_dat('5');writelcd_dat('0');break;
- default:break;
- }
- qian=realvolt/1000;
- bai=realvolt%1000/100;
- shi=realvolt%100/10;
- ge=realvolt%10;
- writelcd_cmd(0xc0+9);
- writelcd_dat(qian+0x30);
- writelcd_dat(bai+0x30);
- writelcd_cmd(0xc0+12);
- writelcd_dat(shi+0x30);
- writelcd_dat(ge+0x30);
- }
- void init()
- {
- EA=1;
- EX0=1;
- IT0=1;
- add=0;
- lcd_init();
- }
- void main()
- {
- init();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
數字電壓表.rar
(102.52 KB, 下載次數: 52)
2017-7-19 13:39 上傳
點擊文件名下載附件
好用 下載積分: 黑幣 -5
|