硬件设计

(末尾附文件)

代码设计

/*烟雾检测系统程序,单片机通过ADC0808检测3路烟雾传感器信号,并通过液晶显示,超过设定门限就声光报警*/
#include<reg52.h>
#include "LCD1602.h"
#include "da1302.h"unsigned int i;
unsigned int j;
unsigned char V_getdata1;    //传感器电压采集变量
unsigned long V_temp1,alarm_temp;//传感器电压采集变量和设定报警值
unsigned int alarm,speak;
unsigned char V_temp1Buffer[10],alarm_tempBuffer[10];SYSTEMTIME CurrentTime ;   //建立时间结构体unsigned char count;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit AD_CLK=P3^3;  //ADC0809时钟
sbit ADDA=P3^4;        //ADC0809选择通道口
sbit ADDB=P3^5;
sbit ADDC=P3^6;
sbit ALARM=P3^7;
sbit key1=P2^3;  //加1按钮
sbit key2=P2^4;      //减1按钮void TimeInitial();
void Delay(unsigned int i);void TimeInitial()        //系统时钟初始化
{ TMOD=0x10;TH1=(65536-200)/256;TL1=(65536-200)%256;EA=1;ET1=1;TR1=1;}
void Delay(unsigned int i)
{unsigned int j;for(;i>0;i--){for(j=0;j<125;j++){;}}
}/******************************************/
/*              LCD 显示转换字符程序              */
/******************************************/
void IntToStr(unsigned int t, unsigned char *str, unsigned char n)  //将整型数据转换成字符指针,在液晶上显示
{unsigned char a[3]; char i, j;                                                                             a[0]=(t/100)%10;                                       a[1]=(t/10)%10;                                        a[2]=(t/1)%10;                                         for(i=0; i<3; i++)         //转成ASCII码                 a[i]=a[i]+'0';                                      for(i=0; a[i]=='0' && i<=3; i++);                        for(j=3-n; j<i; j++)       //填充空格                     { *str=' ';  str++; }                              for(; i<3; i++)                                        { *str=a[i]; str++; }  //加入有效的数字             *str='\0';
} /******************************************/
/*              延时子程序                */
/******************************************/
void Delay1ms(unsigned int count)
{unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);
}/******************************************/
/*              AD转换程序                    */
/******************************************/ void Voltaget_AD1() //第一路电压AD采样 IN0
{ST=0;OE=0;ST=1;ST=0;ADDA=0;          //000设置A采样端口IN0ADDB=0;ADDC=0;while(EOC==0);  //等待转换结束OE=1;          //允许转换输出V_getdata1=P0; //读取转换结果8位二进制数OE=0;V_temp1=V_getdata1*1.0/255*500;      //对采样结果进行常规变换V_getdata1=0;Delay(10);
}void main()
{V_getdata1=0;V_temp1=0; //传感器采集变量ALARM=0;   //报警信号alarm_temp=250; //初始化报警门限值250,对应电压为2.5VTimeInitial();LCD_Initial();          //液晶屏初始化GotoXY(0,0);            //定位液晶显示位置第一行第一列Print("The 1602 COUNTER");  //系统开机显示logoGotoXY(0,1);Print(" BY BF-SHNU  ");Delay1ms(1000);GotoXY(0,0);Print("                 ");    //清空液晶屏GotoXY(0,1);Print("                 ");while(1){Voltaget_AD1();      //电压采样一通道Delay(10);IntToStr(V_temp1,&V_temp1Buffer[0],3);  //将采集到的电压数转换为液晶显示字符  IntToStr(alarm_temp,&alarm_tempBuffer[0],3);  //将采集到的电压数转换为液晶显示字符alarm_tempBuffer[10]GotoXY(0,0);              //设定液晶显示的位置,第1列第1行Print("WSND:");              //第一路采集瓦斯浓度:Print(&V_temp1Buffer[0]);  //显示采集码值Print("/10000");GotoXY(0,1);           //设定液晶显示的位置,第1列第2行Print("ALARM:");         //第一路采集瓦斯浓度:Print(&alarm_tempBuffer[0]);    //显示采集码值   Print("/10000");    Delay1ms(7);if(key1==0)            //报警值加1按钮{Delay1ms(10);        //按钮消抖动while(key1==0);    //等待按键松开alarm_temp=alarm_temp+10;   //报警值加1}if(key2==0)                   //报警值减1按钮{Delay1ms(10);             //按钮消抖动while(key2==0);            //等待按键松开alarm_temp=alarm_temp-10;  //报警值加1}

链接:https://pan.baidu.com/s/1ic90ETnjQcvKt2xm1ihWQA
提取码:txvn

基于51单片机便携式瓦斯监测仪protues仿真相关推荐

  1. 基于51单片机的智能计算器Protues仿真设计

    目录 一.设计背景 二.实现功能 三.硬件设计 3.1 总体硬件设计 ​3.2 键盘电路的设计 3.3 显示电路的设计 四.仿真演示 五.源程序 一.设计背景 随着社会的发展,科学的进步,人们的生活水 ...

  2. 基于51单片机的压力监测仪(MPX4115)(Proteus仿真+程序)

    编号:28 基于51单片机的压力监测仪(MPX4115) 功能描述: 本设计由51单片机最小系统+MPX4115压力传感器+ADC0832模块+液晶1602模块 1.主控制器是AT89C82单片机 2 ...

  3. 基于51单片机的噪声测量仪仿真

    具体实现功能 具体实现功能: ①LCD1602实时显示噪声分贝值,精度为0.1db: ②可以按键设置报警值,实现声光报警:三个按键:设置键.加键.减键: ③当噪声分贝值未超过阀值时,绿灯闪烁:当超过阈 ...

  4. 基于单片机超声波视力保护系统设计-基于51单片机8音键电子琴仿真设计-基于8086八路模拟信号采集均值显示系统设计-基于8086八路数据电压温度采集系统-基于8086波形发生器仿真设计【毕设课设分享】

    539基于单片机超声波视力保护系统设计-设计资料 硬件构成:单片机+最小系统+LCD1602液晶显示模块+超声波模块+DS18B20温度采集模块+光线检测模块+ADC0832模块+蜂鸣器模块+LED指 ...

  5. 基于51单片机的废气检测I2Cproteus仿真

    目录 文章目录 前言 二.设计步骤 1.proteus设计 2.keil5代码编程设计 总结 前言 前段时间高中同学让我帮忙给她做一个数电课设,反正也没事做就随便做了做,现在总结一下,话不多说直接上效 ...

  6. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  7. 【034】基于51单片机的HX711电子秤Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...

  8. 基于51单片机的烟雾火灾报警器proteus仿真设计

    基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...

  9. 【002】基于51单片机的电子万年历proteus仿真设计

    一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...

最新文章

  1. Spring使用外部属性文件
  2. idea 自定义工具栏
  3. C语言中 void* 详解及应用
  4. c语言float二进制输出代码_C语言学习笔记——学前知识概述
  5. 作者:袁晓如,北京大学“百人计划”研究员,北京大学信息科学技术学院博士生导师。...
  6. CQRS之旅——旅程6(我们系统的版本管理)
  7. windows守护进程_在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)
  8. vlookup两个条件匹配_用VLOOKUP进行同时满足两个条件的查找,几种方法都在这啦!||Excel技巧...
  9. Linux分区之parted命令
  10. spring boot 1.5.4 整合redis、拦截器、过滤器、监听器、静态资源配置(十六)
  11. Android 教你打造炫酷的ViewPagerIndicator
  12. html——链接跳转
  13. mysql中哪一个储存逻辑型_《VisualFoxPro》2018秋华东年季学期在线作业(一)二三...
  14. win7计算机里找不到硬盘,win7系统重装时提示"找不到硬盘驱动器"的解决方法...
  15. Android隐藏桌面图标,不显示应用图标
  16. lpx寒假作业案例7
  17. Adjoin the Networks
  18. 使用代理服务器网速会变慢吗?
  19. [资源]C++ 程序员必收藏
  20. 关于MBR和GUID分区的问题

热门文章

  1. 出现“未将对象引用设置到对象的实例” 错误2010-09-16 19:07解决办法
  2. python爬虫反爬策略_抖音字体反爬,爬虫字体反爬策略——每周一个爬虫小教程系列...
  3. SAP S4 资产主数据中的科目定位码
  4. Unable to mount 63 GB Volume
  5. 亲测:大蒜的用处止咳用法
  6. AD导入CAD图纸笔记
  7. 【计算机科学】和【软件工程】有什么区别?就业前景如何?
  8. MPO 光纤系统升级到 40G/100G 以太网方案
  9. fastAPI异步非阻塞
  10. java程序集成微信公众号模板消息功能