找回密码
 立即注册

QQ登录

只需一步,快速开始

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

有害气体监测 51单片机 DCS

[复制链接]
跳转到指定楼层
楼主
ID:222477 发表于 2019-4-15 23:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以51单片机为内核,有害气体检测模块检测有害气体,电机驱动模块驱动通风风扇,OLED显示,还有两个独立按键控制电机转速

单片机源程序如下:
  1. #include "intrins.h"
  2. #include "codetab.h"
  3. #include "LQ12864.h"

  4. unsigned char K=60;
  5. bit a=0;
  6. sbit GN=P1^1;
  7. sbit D0=P1^4;
  8. sbit D1=P1^5;
  9. sbit D2=P1^6;
  10. sbit D3=P1^7;
  11. sbit DJ2=P3^3;
  12. unsigned char pwm=0;

  13. void main(void)
  14. {
  15.         unsigned char i;
  16.         unsigned int num=0;
  17.         DJ2=1;
  18.         OLED_Init(); //OLED初始化
  19.         OLED_CLS();

  20.         TMOD=0x01;                 //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。
  21.         TR0=1;                         //打开定时器
  22.         TH0=0Xff;                 //定时器设置,每隔100微秒发起一次中断。
  23.         TL0=0Xa4;
  24.         ET0=1;                         //开定时器0中断
  25.         EA=1;                         //开总中断
  26.         GN=0;
  27.         for(i=0; i<6; i++)//通过点整显示汉字 -- i表示字表数组的位置
  28.         {
  29.                 OLED_P16x16Ch(i*16+16,0,i);
  30.         }
  31.         while(1)
  32.         {
  33.                 delay(10);
  34.                
  35.                 if(D0==0)
  36.                 {
  37.                         delay(10);
  38.                         if(D0==0)
  39.                         {
  40.                                 if(K<=90)
  41.                            K+=10;
  42.                         }
  43.                         while(!D0);
  44.                         delay(10);
  45.                         while(!D0);
  46.                 }
  47.                 if(D1==0)
  48.                 {
  49.                         delay(10);
  50.                         if(D1==0)
  51.                         {
  52.                                 if(K>=10)
  53.                            K-=10;
  54.                         }
  55.                         while(!D1);
  56.                         delay(10);
  57.                         while(!D1);
  58.                 }
  59.                 if(num>=300)
  60.                 {
  61.                         if(KQ)
  62.                         {
  63.                                 a=0;
  64.                                 for(i=0; i<2; i++)//通过点整显示汉字 -- i表示字表数组的位置
  65.                                 {
  66.                                         OLED_P16x16Ch(i*16+16*2,2,i+7);
  67.                                 }
  68.                                 DJ2=1;
  69.                         }else
  70.                         {
  71.                                 a=1;
  72.                                 OLED_CLS();
  73.                                 for(i=0; i<6; i++)//通过点整显示汉字 -- i表示字表数组的位置
  74.                                 {
  75.                                         OLED_P16x16Ch(i*16+16,0,i);
  76.                                 }
  77.                                 for(i=0; i<3; i++)//通过点整显示汉字 -- i表示字表数组的位置
  78.                                 {
  79.                                         OLED_P16x16Ch(i*16+16*3,2,i+6);
  80.                                 }
  81.                         }
  82.                         num=0;
  83.                 }
  84.                 num++;
  85.         }
  86. }
  87. void time0() interrupt 1
  88. {        TH0=0Xff;
  89.         TL0=0Xa4;
  90.         if(a)
  91.         {
  92.                 if(pwm>=K)
  93.                 {
  94.                         DJ2=0;       
  95.                 }
  96.                 if(pwm>=100)
  97.                 {
  98.                         DJ2=1;
  99.                         pwm=0;
  100.                 }
  101.                 pwm++;
  102.         }
  103. }
复制代码

所有资料51hei提供下载:
源代码.rar (56.8 KB, 下载次数: 9)


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

使用道具 举报

沙发
ID:1 发表于 2019-4-17 01:19 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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