标题:
有害气体监测 51单片机 DCS
[打印本页]
作者:
837877663
时间:
2019-4-15 23:42
标题:
有害气体监测 51单片机 DCS
以51单片机为内核,有害气体检测模块检测有害气体,电机驱动模块驱动通风风扇,OLED显示,还有两个独立按键控制电机转速
单片机源程序如下:
#include "intrins.h"
#include "codetab.h"
#include "LQ12864.h"
unsigned char K=60;
bit a=0;
sbit GN=P1^1;
sbit D0=P1^4;
sbit D1=P1^5;
sbit D2=P1^6;
sbit D3=P1^7;
sbit DJ2=P3^3;
unsigned char pwm=0;
void main(void)
{
unsigned char i;
unsigned int num=0;
DJ2=1;
OLED_Init(); //OLED初始化
OLED_CLS();
TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1)。
TR0=1; //打开定时器
TH0=0Xff; //定时器设置,每隔100微秒发起一次中断。
TL0=0Xa4;
ET0=1; //开定时器0中断
EA=1; //开总中断
GN=0;
for(i=0; i<6; i++)//通过点整显示汉字 -- i表示字表数组的位置
{
OLED_P16x16Ch(i*16+16,0,i);
}
while(1)
{
delay(10);
if(D0==0)
{
delay(10);
if(D0==0)
{
if(K<=90)
K+=10;
}
while(!D0);
delay(10);
while(!D0);
}
if(D1==0)
{
delay(10);
if(D1==0)
{
if(K>=10)
K-=10;
}
while(!D1);
delay(10);
while(!D1);
}
if(num>=300)
{
if(KQ)
{
a=0;
for(i=0; i<2; i++)//通过点整显示汉字 -- i表示字表数组的位置
{
OLED_P16x16Ch(i*16+16*2,2,i+7);
}
DJ2=1;
}else
{
a=1;
OLED_CLS();
for(i=0; i<6; i++)//通过点整显示汉字 -- i表示字表数组的位置
{
OLED_P16x16Ch(i*16+16,0,i);
}
for(i=0; i<3; i++)//通过点整显示汉字 -- i表示字表数组的位置
{
OLED_P16x16Ch(i*16+16*3,2,i+6);
}
}
num=0;
}
num++;
}
}
void time0() interrupt 1
{ TH0=0Xff;
TL0=0Xa4;
if(a)
{
if(pwm>=K)
{
DJ2=0;
}
if(pwm>=100)
{
DJ2=1;
pwm=0;
}
pwm++;
}
}
复制代码
所有资料51hei提供下载:
源代码.rar
(56.8 KB, 下载次数: 9)
2019-4-15 23:42 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2019-4-17 01:19
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1