51单片机烟雾传感器C语言程序,51单片机烟雾报警器制作+程序
烟雾报警器制作过程及相关程序
//程序头函数
#include
//宏定义
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1
//管脚声明
sbit Feng = P3^0;
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^4;
sbit OE=P3^2;
//按键
sbit Key1=P3^5;
sbit Key2=P3^6;
sbit Key3=P3^7;
//显示数组 0-9+F
uchar Data_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f};
sbit Wei1 = P2^7;
sbit Wei2 = P2^6;
sbit Wei3 = P2^5;
sbit Wei4 = P2^4;
//函数声明
extern uchar ADC0809();
void Display(uchar X,uchar Data);
void delay(uint t);
//酒精含量变量
uchar temp=0;
//蜂鸣器变量
uchar FF=10;
//显示模式
uchar Mode=0;
uchar p;
void main()
{
while(1)
{
//正常模式
if(Mode==0)
{
//读取AD值
temp=ADC0809();
for(p=0;p<30;p++)
Display(0,temp);
//判断是否报警
if(temp>FF)
{
Feng=0;
}
else
{
Feng=1;
}
}
//调整模式
else
{
Display(1,FF);
}
//功能键
if(Key3==0)
{
Feng=0;
delay(100);
while(Key3==0)
{
if(Mode==0)
Display(0,temp);
else
Display(1,FF);
}
if(Mode==0)
Mode=1;
else
Mode=0;
Feng=1;
}
//增加
if(Key2==0&&Mode==1)
{
Feng=0;
delay(100);
while(Key2==0)
{
Display(1,FF);
}
FF++;
if(FF==251)
FF=250;
Feng=1;
}
//减少
if(Key1==0&&Mode==1)
{
Feng=0;
delay(100);
while(Key1==0)
{
Display(1,FF);
}
FF--;
if(FF==0xff)
FF=0;
Feng=1;
}
}
}
//ADC0809读取信息
uchar ADC0809()
{
uchar temp_=0x00;
//初始化高阻太
OE=0;
//转化初始化
ST=0;
//开始转换
ST=1;
ST=0;
//外部中断等待AD转换结束
while(EOC==0)
//读取转换的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
return temp_;
}
//延时
void delay(uint t)
{
uint i,j;
for(i=0;i
for(j=0;j<10;j++);
}
//显示 X表示状态 Data表示数据
void Display(uchar X,uchar Data)
{
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=0xff;
//正常模式
if(X==0)
{
P0=~Data_[11];
}
//非正常
else
{
P0=~Data_[10];
}
Wei1=0;
Wei2=1;
Wei3=1;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=~Data_[Data/100];
Wei1=1;
Wei2=0;
Wei3=1;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=~Data_[Data/10%10];
Wei1=1;
Wei2=1;
Wei3=0;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=~Data_[Data%10];
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=0;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
}
51单片机烟雾传感器C语言程序,51单片机烟雾报警器制作+程序相关推荐
- 单片机温度控制器c语言代码,51单片机两路温度控制器设计方案
原标题:51单片机两路温度控制器设计方案 本文提出了基于 两路 的设计方案,该设计方案采用两个DS18B20温度 ,采集两个不同地方的温度,通过AT89C51处理进行,由四位 数码管显示所测量温度,前 ...
- mcs51单片机嵌入式c语言习题,MCS-51单片机复习题参考题库.doc
MCS-51单片机复习题参考题库 MCS-51单片机复习题参考题库 测控2011-1.2班 2014-4-19 一.填空题 167D= B= C7 H. 8051内部有 个并行口,P0口直接作输出口时 ...
- 51单片机正弦波c语言,用51单片机产生正弦波
<用51单片机产生正弦波>由会员分享,可在线阅读,更多相关<用51单片机产生正弦波(3页珍藏版)>请在人人文库网上搜索. 1.单片机产生50Hz正弦波1.实验要求用单片机产生5 ...
- 单片机51测温度c语言,基于51单片机的温度检测及显示设计
2.2 软件设计 用C语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用"自顶而下"(TOP-DOWN)的方法,在程序设计中采用模块化编程.把整体任务分成一个个子任务 ...
- 单片机音乐盒c语言源程序,51单片机八音盒源程序(汇编语言)
;//***************************************************** ;文件名: 八音盒.asm ;描 述: 八音盒,P1选择音乐,低电平有效,P3. ...
- c51语言 12864菜单设计 不带自库,12864显示花屏 - c51编程(单片机的c语言) - 51单片机学习论坛 www.51c51.com - Powered by Discuz!...
/**************************************************************************** *描述:12864+ds1302+ds18b ...
- 单片机测距雷达c语言代码,51单片机超声波测距倒车雷达Proteus仿真+源代码
#include #include #include "LCD.H" #include "delay.h" #define uint unsigned int ...
- 恒温控制系统单片机仿真c语言,基于51单片机的恒温控制系统
#include void main()//主函数 { init();//初始化函数 while(1) { temp_control();//控制按键函数 unnormal_proccessing(g ...
- c51单片机时钟c语言程序设计,51单片机C编程(六、定时器时钟显示时分秒)
//编程:jumpmysoul #include #define ulong unsigned long char tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8 ...
最新文章
- lua入门1 helloworld
- linux c 报错 multiple definition of ‘xxx’ 解决方法
- Windows 技术篇 - 如何查看cpu支持的指令集、型号、属性等详细信息,使用cpu-z工具查看处理器、内存、显卡、主板、缓存、SPD信息方法
- android button自定义样式详解,Android自定义格式显示Button的布局思路
- 笑死了,打错一个字,竟然...
- 论文学习10-Joint entity recognition and relation extraction as a multi-head selection problem(实体关系联合抽取模型
- 计算机院校人气排名,2019高校人气排行榜_最具人气大学排行榜7月榜单发布 清华大学排第一...
- tracker服务器php,FastDFS-5.05 tracker服务器安装nginx+php
- Asp.net MVC Pager分页实现
- android banner 高度,Android Banner 的简单使用步骤
- 设计模式---访问者模式(C++实现)
- textarea中输入多个空格或者换行时只显示一个空格的解决办法
- MTK平台上电话黑名单功能总结
- wap网站制作教程,Github标星5.3K
- php js轮播图片代码,html中用JS实现图片轮播的实例代码
- java毕业设计社区食堂供餐源码+lw文档+mybatis+系统+mysql数据库+调试
- matlab-m文件常用积分函数-ode45含有时变参数用法/菜鸟理解4
- 研究领域、研究课题、研究方向三者的区别
- 不想被“监控”了?教你一招摆脱广告追踪
- paraview(三)运行和查看Paraview官方案例