ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:138.07KB ,
资源ID:8113293      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8113293.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的天然气报警系统资料Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的天然气报警系统资料Word文件下载.docx

1、STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。图2 STC89C523.2单片机引脚功能介绍STC89C52单片机有40个引脚。Vcc:电源电压+5VGND:接地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。

2、在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash 编程和程序校验期间,P1接收低8位地址。P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)

3、时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表1所示:P3口还接收一些用于Flash闪速存储器编程和程序

4、校验的控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计时器0外部输入)P3.5T1(定时/计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)表1 P3口的第二功能图RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器

5、时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH

6、),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的变成电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后

7、,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。可编程串口(UART)在STC89C52中,UART 的操作与STC89C52 和AT89C52 一样。STC89C52系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读

8、走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,但在SBUF的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。振荡电路:STC89C52系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构

9、成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。定时/计数器:STC89C52单片机内含有2个16位的定时器/计数器。RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。SFR:

10、SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80HFFH中。中断系统:STC89C52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。3.3其他单元电路设计 A/D转换电路设计 在此用的A/D转换电路中的AD是ADC0832,ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压

11、输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。天然气传感器天然气传感器用的是MQ-2烟雾传感器模块。可以用于家庭和工厂的气体泄漏监测装置,适宜于液化气、丁烷、丙烷、甲烷、酒精、烟雾等的探测;它灵敏度可调,工作电压5V 使用前,供电至少预热2分钟以上,传感器稍微发烫属于正常现象,输出形式有模拟量电压输出和数字开关量输出(0和1)。显示模块设计设计采用1602液晶显示进行显示,1602LCD是指显示的内容为16X2,即可以显

12、示两行,每行16个字符液晶模块(显示字符和数字)。1602LCD 液晶具有如下的特性:3.3V或5V工作电压,对比度可调。提供各种控制命令,如:清屏、光标闪烁、显示移位等多种功能。有80字节显示数据存储器DDRAM。内建有192个5X7点阵的字型的字符发生器CGROM。8个可由用户自定义的5X7的字符发生器CGRAM。按键调整系统模块设计按键采用3个独立的按键,一个设置键、一个加按键、一个减按键通过这三个按键可以来合理的设置天然气浓度上限的调整。4 程序流程框图4.1主程序流程框图单片机开始执行程序后,首先进行数据初始化,并判断是否高于天然气上限值。如果是,则进行蜂鸣器报警程序;如果否,则进行

13、判断是否需要修改天然气上限值,如果是则就行修改,如果否则进行读取ADC中转化的天然气浓度并且进行数据分离,然后显示直到程序结束。图3主程序流程框图4.2 A/D转换流程图A/D转换时首先进行端口初始化,然后进行通道的选择,然后单片机读取A/D端口的数据,读取完成后,延迟,等待下一个A/D数据的读取。图4 A/D主程序流程框图仿真电路图:程序源代码:#include#include #define uchar unsigned char#define uint unsigned int/*lcd1602显示*/uchar tabel10=0123456789;uchar tabel112=Gas

14、 percent:uchar tabel213=Set toplimit:uchar temp,i,set_temp,flag;uchar CH=0x02;sbit lcden=P12;sbit lcdrs=P10;sbit lcdrw=P11;sbit k1=P30;sbit k2=P31;sbit k3=P32;sbit CS=P17; /使能。sbit CLK=P15;/时钟sbit Do=P16; / 数据输出sbit Di=P16;/数据输入sbit beep=P13;/蜂鸣器uchar A_D(void) uchar i; uchar data_f=0,data_c=0; Di=1

15、; CS=1; _nop_(); CS=0; /芯片使能之前的初始化。第一个下降沿 CLK=1; /*/ CLK=0; / 确定通道模式、第2个下降沿 Di=(bit)(0x02&CH); /设定通道初始化 Di=(bit)(0x01& /设定通道初始化 .第3个下降沿 /AD转化的初始化完成。 for(i=8;i0;i-)/得到一个正常排序的8位数据 data_f|=Do; data_f=1; i-)/得到一个反序排列的8位数据 data_cx-) for(y=110;yy-);void write_com(uchar com) lcdrs=0; P0=com; delay(5); lcde

16、n=1; lcden=0;void write_data(uchar date) lcdrs=1; P0=date;void init() lcdrw=0; set_temp=20; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80);void dispay() if(flag%2=0) write_com(0x80+0x0c); if(temp/1000) write_data(tabel(temp/100); delay(20); write_data(tabel(temp%100/10); write_data(tabel(temp%100%10); write_data(%); write_com(0x80+0x0d+0x40); write_data(tabel(set_temp%100/10); write_data(tabel(set_temp%100%10);void dispay1() uchar i; for(i=0;i=99) set_temp=99; if(k3=0) if(k3=0)k3); set_temp-; if(set_tempset_temp) set_alarm();

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2