酒精气体智能报警系统设计(LCD)(4)

2019-01-12 17:54

第16页

附录2 程序清单

//程序头函数 #include //显示函数

#include //宏定义

#define uint unsigned int #define uchar unsigned char #define Data_ADC0809 P1 //管脚声明

sbit LED_R= P2^2; //红指示灯 sbit LED_G= P2^0; //绿色指示灯 sbit FENG = P2^5; //蜂鸣器 //ADC0809 sbit ST=P3^3; sbit EOC=P3^6; sbit OE=P3^2; //按键

sbit Key1=P2^6; //设置按键 sbit Key2=P2^7; //加 sbit Key3=P3^7; //减

bit bdata flag;//指示灯和蜂鸣器闪烁报警标志位 uchar set; //设置标志位 //函数声明

第17页

extern uchar ADC0809(); extern void Key(); //酒精含量变量 uchar temp=0;

uchar WARNING=25; // 初始报警值 //初始化函数 void init() {

TMOD=0x01; //定时器0方式1

TL0=0xb0;

TH0=0x3c; //赋初值 EA=1; //开总中断

ET0=1; //允许定时器0中断

TR0=1; //定时器0开 } //主函数 void main() {

Init1602(); init();

//1602初始化

//初始化函数

while(1)//主循环

{temp=ADC0809(); //读取酒精值

if(set==0) //如果没有按下设置(默认set是0,就是正常显示状态) Display_1602(temp,WARNING); //显示酒精值

if(temp

else if(temp>WARNING&&set==0) //若实际的酒精值大于报警值且在正常显示

第18页

flag=0; //执行下面flag=0的(主要就是绿灯闪,关蜂鸣器和继电器)

状态下 }

//ADC0809读取信息 uchar ADC0809() {

uchar temp_=0x00; //初始化高阻太 }

{flag=1; //执行下面flag=1的(主要就是红灯闪,开蜂鸣器和继电器) }

Key();//按键扫描

OE=0; }

//按键函数 void Key() {

if(Key1==0)

//如果设置按键按下

第19页

//转化初始化 ST=0; //开始转换 ST=1; ST=0;

//外部中断等待AD转换结束 while(EOC==0) //读取转换的AD值 OE=1;

temp_=Data_ADC0809; OE=0; return temp_;

{ }

if(set==1)//此时设置报警值 { write_com(0x38);//屏幕初始化

write_com(0x80+0x40+13);//位置

write_com(0x0f);//打开显示 无光标 光标闪烁 write_com(0x06);//当读或写一个字符是指针后一一位 FENG=1;

//蜂鸣器关

while(Key1==0);//等待按键释放 FENG=0;

//蜂鸣器响

set++; //设置的变量加1 flag=0;

//绿灯闪

TR0=0; //关定时器0

}

else if(set>=2) //又按了下设置 { }

if(Key2==0&&set!=0) //在设置的状态下按下加 {

while(Key2==0); //等待按键释放 FENG=0;

//蜂鸣器响

set=0; //正常显示状态 write_com(0x38);//屏幕初始化

write_com(0x0c);//打开显示 无光标 无光标闪烁 FENG=1; flag=1;

//蜂鸣器关 //红灯闪

TR0=1; //定时器0开

WARNING++; //报警值加1

if(WARNING>=255) //如果报警值大于等于255

第20页


酒精气体智能报警系统设计(LCD)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏省文化体育业数据统计分析 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: