烟雾报警器制作过程及相关程序

//程序头函数

#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单片机烟雾报警器制作+程序相关推荐

  1. 单片机温度控制器c语言代码,51单片机两路温度控制器设计方案

    原标题:51单片机两路温度控制器设计方案 本文提出了基于 两路 的设计方案,该设计方案采用两个DS18B20温度 ,采集两个不同地方的温度,通过AT89C51处理进行,由四位 数码管显示所测量温度,前 ...

  2. mcs51单片机嵌入式c语言习题,MCS-51单片机复习题参考题库.doc

    MCS-51单片机复习题参考题库 MCS-51单片机复习题参考题库 测控2011-1.2班 2014-4-19 一.填空题 167D= B= C7 H. 8051内部有 个并行口,P0口直接作输出口时 ...

  3. 51单片机正弦波c语言,用51单片机产生正弦波

    <用51单片机产生正弦波>由会员分享,可在线阅读,更多相关<用51单片机产生正弦波(3页珍藏版)>请在人人文库网上搜索. 1.单片机产生50Hz正弦波1.实验要求用单片机产生5 ...

  4. 单片机51测温度c语言,基于51单片机的温度检测及显示设计

    2.2 软件设计 用C语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用"自顶而下"(TOP-DOWN)的方法,在程序设计中采用模块化编程.把整体任务分成一个个子任务 ...

  5. 单片机音乐盒c语言源程序,51单片机八音盒源程序(汇编语言)

    ;//***************************************************** ;文件名:  八音盒.asm ;描  述:  八音盒,P1选择音乐,低电平有效,P3. ...

  6. c51语言 12864菜单设计 不带自库,12864显示花屏 - c51编程(单片机的c语言) - 51单片机学习论坛 www.51c51.com - Powered by Discuz!...

    /**************************************************************************** *描述:12864+ds1302+ds18b ...

  7. 单片机测距雷达c语言代码,51单片机超声波测距倒车雷达Proteus仿真+源代码

    #include #include #include "LCD.H" #include "delay.h" #define  uint unsigned int ...

  8. 恒温控制系统单片机仿真c语言,基于51单片机的恒温控制系统

    #include void main()//主函数 { init();//初始化函数 while(1) { temp_control();//控制按键函数 unnormal_proccessing(g ...

  9. c51单片机时钟c语言程序设计,51单片机C编程(六、定时器时钟显示时分秒)

    //编程:jumpmysoul #include #define ulong unsigned long char tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8 ...

最新文章

  1. lua入门1 helloworld
  2. linux c 报错 multiple definition of ‘xxx’ 解决方法
  3. Windows 技术篇 - 如何查看cpu支持的指令集、型号、属性等详细信息,使用cpu-z工具查看处理器、内存、显卡、主板、缓存、SPD信息方法
  4. android button自定义样式详解,Android自定义格式显示Button的布局思路
  5. 笑死了,打错一个字,竟然...
  6. 论文学习10-Joint entity recognition and relation extraction as a multi-head selection problem(实体关系联合抽取模型
  7. 计算机院校人气排名,2019高校人气排行榜_最具人气大学排行榜7月榜单发布 清华大学排第一...
  8. tracker服务器php,FastDFS-5.05 tracker服务器安装nginx+php
  9. Asp.net MVC Pager分页实现
  10. android banner 高度,Android Banner 的简单使用步骤
  11. 设计模式---访问者模式(C++实现)
  12. textarea中输入多个空格或者换行时只显示一个空格的解决办法
  13. MTK平台上电话黑名单功能总结
  14. wap网站制作教程,Github标星5.3K
  15. php js轮播图片代码,html中用JS实现图片轮播的实例代码
  16. java毕业设计社区食堂供餐源码+lw文档+mybatis+系统+mysql数据库+调试
  17. matlab-m文件常用积分函数-ode45含有时变参数用法/菜鸟理解4
  18. 研究领域、研究课题、研究方向三者的区别
  19. 不想被“监控”了?教你一招摆脱广告追踪
  20. paraview(三)运行和查看Paraview官方案例

热门文章

  1. 问卷网金数据可行性分析
  2. 全球与中国N-苯基马来酰亚胺粉市场深度研究分析报告
  3. matlab示波器导出图片,MATLAB SIMULINK 示波器 SCOPE 图片保存
  4. 世界淡水资源占水资源的多少_世界上可用淡水资源到底是多少
  5. 【媒体】百格活动钱东辉:一站式活动管理平台,不一样的SaaS之路
  6. 格林纳达常驻WTO大使孙宇晨受邀出席世贸组织首脑系列讲座
  7. Salesforce(0):使用VsCode使用Aura组件并展示组件扩展
  8. 甲骨文java计算机考证
  9. Android 培训课程V1.0
  10. 使用 office 365 SMTP 发送企业邮件