找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4227|回复: 1
打印 上一主题 下一主题
收起左侧

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. }       
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:171939 发表于 2017-4-6 16:09 | 只看该作者
这个程序只是A/D转换而已
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表