- #include "AT89X52.H"
- #include "1602.H"
- #define uchar unsigned char
- #define uint unsigned int
- uchar dispbuf[8]={10,10,10,10,10,0,0,0};
- uchar getdata;
- long int i;
- ***it ST=P3^0;
- ***it OE=P3^1;
- ***it EOC=P3^2;
- ***it CLK=P3^3;
-
- void init_AD_timer() //初始化AD与定时器函数
- {
- ST=0;
- OE=0;
- ET0=1;
- ET1=1;
- EA=1;
- TMOD=0x12;
- TH0=216;
- TL0=216;
- TH1=(65536-5000)/256;
- TL1=(65536-5000)%256;
- TR1=1;
- TR0=1;
- ST=1;
- ST=0;
- }
- void ADC_Tather() //AD采集与数据存储函数
- {
- if(EOC==1)
- {
- OE=1;
- getdata=P0; //采集数据口
- OE=0;
- i=getdata*196.5; //电压转换
- dispbuf[5]=i/10000; //数据分离 百位
- i=i%10000;
- dispbuf[6]=i/1000; //数据分离 十位
- i=i%1000;
- dispbuf[7]=i/100; //数据分离 个位
- ST=1;
- ST=0;
- }
- }
-
- void main(void)
- {
- init_AD_Timer(); //初始化AD与定时器函数
- Init_LCD(); //液晶初始化函数
- while(1)
- {
- ADC_Tather(); //AD采集与数据存储函数
- write_com(0x88+2); //显示数据从第8位开始显示
- write_data(dispbuf[5]+'0'); //把分离好的数据转换成数字型显示出来
- write_data(0x2e); //显示小数点
- write_data(dispbuf[6]+'0');
- write_data(dispbuf[7]+'0');
- delay(1000);
- }
- }
-
- void t0(void) interrupt 1 using 0 //定时器0 中断服务
- {
- CLK=~CLK;
- }
-
- void t1(void) interrupt 3 using 0 //定时器1 中断服务
- {
- TH1=(65536-6000)/256;
- TL1=(65536-6000)%256;
- }
复制代码
5
|
|
|
|
头像被屏蔽
· 2016-4-19 17:20:04
|
|
|
|
|
谢谢分享
谢谢分享
谢谢分享谢谢分享谢谢分享谢谢分享
|
|
|
|
|
楼主发帖辛苦了,谢谢分享!!!!!!!!!
楼主发帖辛苦了,谢谢分享!!!!!!!!!
|
|
|
|
|