|
MG-811 二氧化碳传感器 测量控制程序
完整程序代码下载:
55593426STC_MG811.rar
(19.32 KB, 下载次数: 37)
下面是主程序:
- #include "lcd1602.h"
- sbit ST=P3^0; //A/D启动转换信号
- sbit OE=P3^1; //数据输出允许信号
- sbit EOC=P3^2; //A/D转换结束信号
- sbit CLK=P3^3; //时钟脉冲
- uint z,x,c,v,AD0809, date; //定义数据类型
- /**********************************************************************
- 数码管动态扫描
- *********************************************************************/
- void xianshi() //显示函数
- {
- uint z,x,c,v;
- z=date/1000+'0'; //求千位
- x=date%1000/100+'0'; //求百位
- c=date%100/10+'0'; //求十位
- v=date%10+'0'; //求个位
- DisplayOneChar(0,0,z);
- DisplayOneChar(1,0,x);
- DisplayOneChar(2,0,c);
- DisplayOneChar(3,0,v);
- }
- /*************************************************************************
- CLK振荡信号
- **************************************************************************/
- void timer0( ) interrupt 1 //定时器0工作方式1
- {
- TH0=(65536-2)/256; //重装计数初值
- TL0=(65536-2)%256; //重装计数初值
- CLK=!CLK; //取反
- }
- /*************************************************************************
- 主函数
- **************************************************************************/
- void main()
- {
- InitLcd();
- TMOD=0X01; //定时器中断0
- CLK=0; //脉冲信号初始值为0
- TH0=(65536-2)/256; //定时时间高八位初值
- TL0=(65536-2)%256; //定时时间低八位初值
- EA=1; //开CPU中断
- ET0=1; //开T/C0中断
- TR0=1;
- while(1) //无限循环
- {
- ST=0; //使采集信号为低
- ST=1; //开始数据转换
- ST=0; //停止数据转换
- while(!EOC); //等待数据转换完毕
- OE=1; //允许数据输出信号
- AD0809=P1; //读取数据
- OE=0; //关闭数据输出允许信号
- if(AD0809>=251) //电压显示不能超过5V
- AD0809=250;
- date=AD0809*20; //数码管显示的数据值,其中20为采集数据的毫安值
- xianshi(); //数码管显示函数
- delay(100);
- }
- }
复制代码
|
|