标题: MG-811 二氧化碳传感器 测量控制程序 [打印本页]

作者: hacker5211    时间: 2017-2-25 11:43
标题: MG-811 二氧化碳传感器 测量控制程序
MG-811 二氧化碳传感器 测量控制程序
完整程序代码下载:

55593426STC_MG811.rar (19.32 KB, 下载次数: 37)


下面是主程序:
  1. #include "lcd1602.h"
  2. sbit ST=P3^0;   //A/D启动转换信号
  3. sbit OE=P3^1;   //数据输出允许信号
  4. sbit EOC=P3^2;  //A/D转换结束信号
  5. sbit CLK=P3^3;  //时钟脉冲  
  6. uint z,x,c,v,AD0809, date;        //定义数据类型

  7. /**********************************************************************
  8.                 数码管动态扫描
  9. *********************************************************************/
  10. void xianshi() //显示函数
  11. {
  12. uint z,x,c,v;
  13.   z=date/1000+'0';                         //求千位
  14.   x=date%1000/100+'0';                 //求百位
  15.   c=date%100/10+'0';                 //求十位
  16.   v=date%10+'0';                         //求个位
  17.   DisplayOneChar(0,0,z);
  18.   DisplayOneChar(1,0,x);
  19.   DisplayOneChar(2,0,c);
  20.   DisplayOneChar(3,0,v);
  21.   }
  22. /*************************************************************************
  23.                                 CLK振荡信号       
  24. **************************************************************************/
  25. void timer0( ) interrupt 1 //定时器0工作方式1
  26. {

  27. TH0=(65536-2)/256;          //重装计数初值
  28. TL0=(65536-2)%256;          //重装计数初值
  29. CLK=!CLK;                          //取反
  30. }

  31. /*************************************************************************
  32.                                 主函数       
  33. **************************************************************************/
  34. void main()
  35. {
  36. InitLcd();
  37. TMOD=0X01;                          //定时器中断0

  38. CLK=0;                                  //脉冲信号初始值为0
  39. TH0=(65536-2)/256;          //定时时间高八位初值
  40. TL0=(65536-2)%256;          //定时时间低八位初值
  41. EA=1;                                  //开CPU中断
  42. ET0=1;                                  //开T/C0中断
  43. TR0=1;
  44. while(1)                           //无限循环
  45.         {
  46.         ST=0;                                //使采集信号为低
  47.         ST=1;                                //开始数据转换
  48.         ST=0;                                //停止数据转换
  49.         while(!EOC);                //等待数据转换完毕
  50.         OE=1;                                //允许数据输出信号
  51.         AD0809=P1;                    //读取数据
  52.         OE=0;                                //关闭数据输出允许信号
  53.         if(AD0809>=251)                //电压显示不能超过5V
  54.         AD0809=250;
  55.         date=AD0809*20;                //数码管显示的数据值,其中20为采集数据的毫安值
  56.         xianshi();                        //数码管显示函数
  57.         delay(100);
  58.     }
  59. }       
复制代码



作者: 好人挺好    时间: 2017-4-6 16:09
这个程序只是A/D转换而已





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1