毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置

上传人:1777****777 文档编号:38004504 上传时间:2021-11-05 格式:DOC 页数:34 大小:1.02MB
收藏 版权申诉 举报 下载
毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置_第1页
第1页 / 共34页
毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置_第2页
第2页 / 共34页
毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置_第3页
第3页 / 共34页
资源描述:

《毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置》由会员分享,可在线阅读,更多相关《毕业设计(论文)89C52单片机系统实现煤气泄漏检测报警装置(34页珍藏版)》请在装配图网上搜索。

1、西安电子科技大学毕业论文 摘 要本文论述了基于测控技术的煤气泄漏检测报警装置的硬件和监控软件方案设计与实现。本系统采用了89C52单片机和四位半AD7135系统设计技术,能对传感器产生的模拟信号进行数据采集和处理。传感器方面选用了TP-2常温型CO气敏传感器,并采用了恒流源接法。此方案还为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,使智能化程度更高、结构更紧凑、功能更丰富。 关键词:89C52 AD7135 恒流源 AbstractThis essay describes that the hardware and the monitor software proje

2、ctof “the detector and alarm for the leakage of CO” which is based on measure and control technology. This system designed with sing microcomputer 89C52 and 4.5-bit AD7135, can collect and deal with the simulation signals which are created by gas sensor. Besides, we have chosen TP-normal temperature

3、 CO sensor for this system, and adopted steady current source. This system can supply user with LED display module, keyboard control, MSF, buzzer for alarm and so on. This unit has good intelligent, tightly packed structure, plentiful function, good technical hereditability and so on.KEY WORD:89C52

4、AD7135 constant-current source目 录绪论-(4)第一章 功能与设计方案-(5)第二章 硬件电路设计-(7)第一节89C52说明-(7)1. 总线说明-(7)2. 89C52振荡电路-(7)3. 89C52复位电路-(8)4. 89C52译码及外部扩展电路-(8)5. 存储单元电路设计-(9)第二节CO浓度检测报警电路优化设计-(10)1 传感器部分-(10)2 传感器驱动电路-(13) 3 CO检测报警电路-(13)第三节 LED显示器及接口设计-(14)1. LED显示器结构与原理-(14)2. LED显示器的接口设计-(15)第四节 A/D转换器件7135-(

5、16)1. 原理简介-(16)2. ICL7135与单片机的接口-(18)第五节 8255键盘设计-(19)1. 8255结构及引-(19)2. 8255的工作方式-(20)3. 8255键盘设计电路-(21)第三章 软件设计-(22)第一节 软件设计方案-(22)第二节 软件调试-(23) 1. 内存自检程序:-(23)2. 8255键盘中断程序-(24)3. AD7135数据处理程序-(26)4. LED显示控制程序-(27) 毕设总结-(28)附录1 相关英文资料-(29)附录2 参考文献-(33)绪 论随着科学技术的发展,工业生产规模的扩大,在生产中使用的气体原料和生产过程中产生的气体

6、种类和数量也在增加。这些气体物质中有些是易燃易爆的,有些是引起人们窒息,中毒的。煤气作为一种气体能源,在人们生产和生活中已得到越来越广泛的应用。煤气(主要成分CO)的泄漏将严重地污染环境并可能诱发爆炸及使人中毒等事故的发生。为了保证生产和生活的安全,防患于未然,就需要对其进行有效的监控。用于煤气检测的气敏传感器能将煤气的浓度情况转换成电气信号(电流或电压),根据这些电信号的强弱就可以获得空气中煤气存在状况的信息,从而通过接口电路与单片机组成自动检测、控制和报警系统。气体浓度的测量是工业测量中很重要的部分,根据采用的传感器和系统的不同,其精度相差很大,而这个装置并不要求很高的精度,这样,就使得该

7、装置的设计简化,成本降低。我们在气体浓度测量的研究和设计过程中查阅了大量的资料和成果,结合测控专业的特点,提出了能实现煤气浓度检测和报警的系统设计方案。此方案采用89C52单片机和四位半AD574系统设计技术对气体浓度模拟量信号进行采集和处理。传感器方面选用了TP-2常温型CO气敏传感器,并采用了恒流源接法。此方案还为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,使智能化程度更高、结构更紧凑、功能更丰富。本系统的主要技术指标如下:(1) CPU: 89C52(2) 时钟频率:6MHz(3) 存储器: 32K用户RAN数据存储器 32K用户EPROM程序存储器(4) 输入

8、信号接口电路: 四位半A/D转换接口电路; 面板按键+键盘键的接口电路。(5) 输出信号接口电路: LED数码管显示电路; 蜂鸣器报警装置。(6) 气体浓度检测优化设计电路: 恒流源驱动电路; AD620信号放大电路。(7) 其它单元电路: 系统复位单元电路; 端口扩展地址译码电路。 第一章 功能与设计方案 气体浓度测量是工业测量中很重要的部分,根据采用的测量元件和测量方法的不同,其精度也不同,因而对数据采集(A/D转换)的精度也不同,对测量结果的定标要到专业的计量部门才能进行,这样就给现场测量带来了很大的不便,我们在气体浓度测量的研究和设计过程中查阅了大量的资料和成果,结合测控专业的特点,提

9、出了能实现煤气浓度检测和报警的系统设计方案。本单元采用89C52单片机和四位半AD7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,使智能化程度更高、结构更紧凑、功能更丰富。该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为05V,再由A/D转换器变为数字信号后,送给单片机。EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。结构框图如下:图1.1 实用煤气检测报警装置的硬件结构 我们采用89C52单片机作为中央处理器,以27256作为外部程序存储器,从外部ROM取址时,P0口用作地

10、址、数据分时复用总线,存储器的低8位地址(A0A7)经其端口输出,ALE的下降沿将其打入74LS373锁存器锁存,与高7位地址(经由P2.0P2.6输出)形成对32K外部存储空间的寻址。软件设计方案对于软件,本系统设计的要求是设计并实现有关的监控程序和演示程序。监控程序模块组成:(1) 系统初始化程序模块(2) 键盘控制程序(3) A/D转换控制模块(4) LED显示控制模块(5) 内存检测程序演示程序流程:开始系统初始化显示数据处理AD数据采集是否按键? 否退出存储大小值设定中断扫描是图1.2 煤气检 图1.2 测报警装置软件流程图 第二章 硬件电路设计本单元采用89C52单片机和四位半AD

11、7135系统设计技术对输出的模拟量进行数据采集和处理,并为使用者提供了LED显示模块、键盘控制、大容量存储器件及蜂鸣器报警装置,使智能化程度更高、结构更紧凑、功能更丰富。该系统的粗略框图如图1.1所示,模拟量通过传感器经过信号调理电路变为05V,再由A/D转换器变为数字信号后,送给单片机。EPROM用于存放程序和表格,RAM用于暂存数据,8255连接键盘。下面较详细地叙述系统各部分。第一节 89C52说明一、总线说明 1. 地址和数据总线89C52的P0口(P0.0P0.7)和P2口(P2.0P2.7)合用,分别作为底8位和高8位的地址总线;其中P0口兼作数据总线DB0DB7。2.控制总线(主

12、要信号) RD和WR信号分别与外部存储器和各端口器件的RD和WR相连,进行相应的读/写操作控制;PSEN信号用于访问外部程序存储器(27256);EA接高,外部存储器供用户使用的地址从0000H开始;RESET信号接复位电路,用于对系统的复位。 二、89C52振荡电路89C52的XTAL1和XTAL2接石英晶体振荡器,构成时钟电路,为单片机提供6MHz的时钟频率。电路如图所示: 三、89C52复位电路 本系统采用的复位电路是上电和按键复位的组合电路。在系统加电瞬间R、C电路充电过程中产生正脉冲使单片机复位;当用户需要手动复位时,按下复位键,产生正脉冲使单片机复位,电路如图。 四、89C52译码

13、及外部扩展电路89C52外部译码采用38译码器74LS138,为存储器和各端口提供8根片选信号(译码输入线采用地址高三位(AB11AB13)和RD、WR及AB14、AB15做片选);为系统提供从8000HBFFFH共32KB的数据/程序及I/O接口器件的访问地址。具体地址分配如下:片选器件地址范围供用户使用资源CS082558000H-87FFH键盘接口电路CS1 8800H-8FFFHCS2 AD71359000H-97FFHAD转换电路CS39800H-9FFFH供用户使用CS4A000H-A7FFH供用户使用CS5A800H-AFFFH供用户使用CS6B000H-B7FFH供用户使用CS

14、7B800H-BFFFH供用户使用电路原理图如下:五、存储单元电路设计 本系统为用户提供了32K的外部数据存储器62256和程序存储器27256,现分别对它们的引脚作简要的介绍。1. 27256主要引脚介绍:A0A14:地址输入线;D0D7:三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。维持或编程禁止时呈高阻抗;: 片选信号输入线,“0”(即TTL低电平)有效;PGM: 编程脉冲输入线; : 读选通信号输入线,“0”有效;VPP: 编程电源输入线;VCC: 主电源输入线,一般为+5V;GND: 线路地。2. 62256主要引脚介绍:A0A14: 地址输入线;D0D7: 双向数据

15、线(输出有三态);,1和CE2: 片选信号输入线,1低电平有效,CE2高电平有效;: 读选通信号输入线,低电平有效;: 写选通信号输入线,低电平有效;VCC: 工作电压,+5V;GND: 线路地;/RFSH: 读选通/刷新允许控制端,输入。当此引脚为低电平时,62256数据允许输出,不允许刷新;当此引脚为高电平时,62256内部刷新电路自动刷新。62256和27256的寻址范围均为0000H7FFFH,分别由WR、RD和PSEN来控制。电路图如下所示:第二节 CO浓度检测报警电路优化设计一、传感器部分1.半导体气敏传感器的基本原理。当气体吸附到半导体气敏元件表面时,元件的电阻(或电导率)会发生

16、变化。在气敏元件被加热到稳定状态后,被检测的气体接触元件的表面而被吸附,吸附分子首先在元件表面上自由扩散(物理吸附),失去其运动能量。一部分气体分子被蒸发,另一部分残留分子产生热分解而固定在吸附处(化学吸附)。这时,如果n型半导体的功函数大于气体吸附分子的离解能,气体有吸附分子将向半导体释放出电子,而成为正离子吸附(带正电荷),供给半导体的电子将束缚着半导体本身的自由电荷中的少数电荷空穴。因此,在导带上参与导电的自由电子复合几乎减少,从而表现自由电子数增加,半导体元件的阻值减小,具有这种正离子吸附的气体称为还原性气体,如H2,CO,碳氢化合物和酒精等,如果半导体的功函数小于气体吸附分子的亲和力

17、,则吸附分子将从半导体夺取电子而变成负离子吸附,具有负离子吸附的气体称为氧化性气体,如O2和N2等。负离子吸附的气体因为夺取了半导体的电子,而将空穴交给半导体,使导带的自由电子数目减少,因此元件的电阻值增大。对于P型半导体气敏元件,情况则相反,氧化性气体使其电阻减少,还原性气体使其电阻增大。2.TP-2常温型CO气敏传感器。TP-2常温型一氧化碳传感器由SnO2多晶体及适当添加混合剂烧结而成。具有微珠式结构,电导振荡响应,极好的选择性和良好的环境适应能力,应用电路简单,本质安全等特点。用它做成的报警器完全可以达到UL2034标准,不需温湿度补偿。(1)它的工作条件如下:工作电压:3.5V6.5

18、V工作电路:如图一 静态功耗:15mW环境条件:温度-10+50,相对湿度95%初期稳定时间:15分钟检测一氧化碳浓度范围:02000ppm (2)响应特性电导振荡图二为100ppm一氧化碳气体环境 中的反应特性曲线。(3)对一氧化碳反应的敏感度:图三表示在一系列一氧化碳浓度的条件下RL电压的振荡曲线。RL 上的曲线的形状与传感器本身及供电电压有一定的关系。电源电压偏低,振荡周期加长;电源电压偏高,振荡周期缩短。在0800ppm的范围内,此元件的线性度可以从振幅和振荡的频率来判断。更高的浓度用功率谱来判断更为合理。(4) 高湿高温对传感器的影响 1999年9月23日下午5点1999年9月24日

19、上午8点对15个样品共进行了15小时的高湿高温实验(通电实验)。测试记录见表一。根据测试结果表明,此传感器可承受96%RH相对湿度、70的环境条件,但基电平升高。由于条件限制,没有测量此时的100ppm一氧化碳环境中的反应。将此15只传感器再放到正常环境中进行100ppm一氧化碳浓度的测试,测试结果同高湿高温测试前的结果相同。(5)使用中的几点建议智能化设计,其目的是为了克服传感器本身存在的以下缺点:1) 着使用时间的延长,空气中的一些灰尘吸附在传感器的表面,造成空气中电平升高,反应灵敏度降低。解决办法:升高12V的电源电压,持续5秒钟,使基础电平(空气中的电平)处于0.25V以下。2) 建立

20、良好的控制软件,使传感器:a. 始终工作在0.25V以下的电平,保持较高的灵敏度; b. 每4小时清洗一次(即提高电源电压12V,58秒钟后再回到原工作电压);c. 若多次清洗仍不能使电平降下来,作出更换传感器的报警提示。二、 传感器驱动电路 本系统采用了恒流源驱动电路,它其实是将传感器接到了一个V/I变换电路上,在输出电流恒定的情况下,通过传感器电阻值的改变,可以得到不同的输出电压,其电路如下图所示,其中传感器接于负载处。设R1R3=R2R4,则变换关系可简化为: 三、 CO检测报警电路 本系统采用了简单的蜂鸣器报警装置,电路如图所示: 第三节 LED显示器及接口设计在这一节里将详细介绍本系

21、统的LED显示器一、 LED显示器结构与原理1. LED显示器结构LED显示器是由发光二极管显示字段组成的显示器,有7段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极被连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接地时,发光二极管被点亮,相应的段被显示。每一种LED又有不同的发光颜色。例如,BS202型中,BSG202发绿光;BS212型中,BSR212发红光,BSG212发绿光。一般的,发红光的LED每

22、段流过的5mA的平均电流,就可以有较满意的亮度,7mA电流会更亮些。10mA以上也不会再亮多少,但长期运行于10mA以上会缩短其寿命。最大电流平均值不得超过30mA。LED显示器允许的反向电压最大值为5V,此时的反向电流一般小于10A。小尺寸的LED显示器每段只有一个发光二极管,其正向压降为1.5V,一般不大于2V。大尺寸的LED显示器每段可能由数个发光二极管串联,每段压降也要增大。2. 静态显示与动态显示显示器有静态和动态两种显示方式。所谓静态显示就是需要显示的字符的各字段连续通过电流,因而所显示的字段连续发光。所谓动态显示就是所需显示的字段断续通以电流,因而其发光也是不连续的。例如,在需要

23、多个字符同时显示时,可以轮流给每一个字符通以电流,逐次把所需要显示的字符显示出来。在每点亮一个显示器后,必须持续通电一段时间,使之发光稳定,然后再点亮另一个显示器,如此巡回扫描显示器。由于巡回速度较快,每秒可重复多次(为了不闪烁,可以每秒扫描20次左右)。虽然在同一时刻只有一个显示器通电,但是由于人眼的视觉暂留现象和发光二极管的余辉效应,因此在人们看来认为每个显示器都在稳定的显示。这种巡回扫描显示器的操作要靠程序控制。动态显示的亮度随电流平均值的增大而增强,其亮度大体上等同于通过同样大的直流电流的静态显示器的亮度。3. LED显示器的接口设计本系统采用静态显示方式,静态显示时每一个接口驱动器件

24、驱动一个显示器。用于静态显示时,CPU把数据写到借口驱动电路后,CPU不需要再干预,显示器便会持续显示,因此,接口驱动电路应该有锁存数据的功能。所有TTL和COMS电路中的CD14547均无锁存功能,因此在电路设计时应附加锁存功能,而TTL器件比COMS 器件动作快。所以,我选用了TTL器件的74LS164。接口连接图如下:当串行口工作于方式0时,在“串行输入并行输出”芯片74LS164的配合下,即可通过串行口扩展89C52的输出口,其中89C52的RXD引脚接74LS164芯片的串行数据输入端,TXD引脚接74LS164芯片的移位脉冲CLK。串行数据输出过程概括如下:在发送中断标志TI为0(

25、即无效)情况下,执行写串行数据输出缓冲器SBUF指令(如MOVE SBUF,A)即可将SBUF寄存器中内容由低位到高位依次输出到RXD引脚,同时TXD引脚输出移位脉冲,使外接的串行输入并行输出芯片逐一接收来自RXD引脚上的串行数据。当8位数据发送结束后,发送中断标志TI自动置1,输出数据(即SBUF内容)也就出现在74LS164芯片的并行输出端。这样在执行写SBUF寄存器操作后,可通过查询TI标志来确定发送过程是否完成。当然,在中断处于开放状态下(串行中断允许ES为,中断允许EA为1),当TI有效时,将产生串行中断请求。不过值得注意的是CPU响应串行中断后,不会自动清除TI,需要用“CLR T

26、I”指令清除TI,以便输出新的串行数据。第四节 A/D转换器件7135ICL7135的国产型号叫CH7135.它是四位半高精度积分式ADC器件,输入为差分信号输出为BCD码,其分辨率为两万分之一,及分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围变小.ICL7135内部没有时钟电路,必须全部外接,必须外接基准电压,单端输入,其基准电压为满量程的一半,其输出不是三状态的,不可直接与总线相连.ICL7135每次转换结束立即输出新的转换结果,不需特别控制,有专门的极性显示,过量程显示和欠量程显示引脚,使用起来比较方便.下

27、面对ICL7135作详细的介绍.(1) 管脚功能及有关参数选择28脚封装如下图所示: 图中:l V+ : 电源正,+5V(以数字地DGND为基准)l V_ : 电源负,-5V(以DGND为参考点)l INLO:差分信号输入负端.单端输入时,INLO可与模拟地(AGND)相连l INHI:差分信号输入正端.应保证 V+0.5(INHI和INLO)V+1V. 模拟输入信号:V1=INHIINLO的范围为0VFSl AGND:模拟地,是VREF和模拟输入基准点.l DGND:数字地,是V+和V的基准点.l VREF:基准电压接线端,以AGND为基准, VREF=VFS/2, VFS为满量程.若VFS

28、=2V,则VREF=1V,若VFS=200mV,则VREF=100mVl R/ H:运行/保持端.当R/H=1或悬空时,ICL7135连续进行A/D转换,即没40002个时钟周期开始一次A/D转换.当R/H=0时,转换一次完成后,数据被保持,直至R/H重新变为1时再开始A/D转换.l CLK:时钟脉冲输入端.l AZ:自较零端,接自动稳零电容CZ,CZ应足够大,以便减小干扰的影响,一般取1uF且选优质电容.l CR+和CR:基准电容CREF接线端,CREF应足够大,可以忽略寄生电容,一般可取CREF=1uF且选优质电容.l INT:积分器输出脚,外接积分电容CINT,一般取CINT=0.10.

29、47uFl BUF:缓冲器输出端,接积分电阻RINT,RINT=VFS/20uA,例如VFS=2V,则RINT=100K欧l BUSY:忙输出脚,若BUSY为高表示正在进行A/D转换,若为低表示A/D转换已经结束.l B8,B4,B2,B1:BCD码输出脚,B8是最高位,B1是最低位,高电平为1,低电平为0.l D5,D4,D3,D2,D1:位驱动输出脚,在一次A/D转换结束后,多次顺序在D5D1发出宽度为200个时钟周期的正脉冲,l STB:脉冲选通,在每完成一次A/D转换后,在STB端发出5个宽度为1/2时钟脉冲周期的负脉冲,每个STB脉冲分别位于第一次出现的位驱动信号D5D1的中间,因此

30、第一个STBl 负脉冲可作为结束信号.l UR:欠量程输出端,若输入模拟信号V1=INHIINLO0.179VFS(读数小于1800),则在A/D转换结束后,UR=1.l OR:过量程信号输出端,若V1VFS.则在A/D转换结束后OR=1.UR和OR供数字仪表作量程转换用.l POL:极性输出脚,当V1O时,POL=1,反之POL=0.(2) ICL7135与单片机的接口上图是本系统中所用的ICL7135与89C52单片机的接口电路,下面详细的分析该电路.ICL7135内部没有时钟发生器,必须外加时钟信号到CLK,本系统中利用计数器74LS161进行分频,VR是一个精密电源,用精密电位器将它调

31、到1V, R1,C1端所接积分电阻和电容也是精密电阻和精密电容,R/H端接高电平,芯片处于自动连续转换的工作状态,时钟电路的输出频率为1MHz,BCD码的输出端和符号位接在单片机的P1口.(3) 体会与总结 7135是一种高精度AD器件,其转换的精度与变送器有很大关系,即理论上分辨率为0.005,完全满足本系统要求,如果要进一步提高分辨率,可以对变送器进行零点迁移,使其在最关心的浓度范围内对应的输出范围小.不过这样对软件的要求比较高.7135内部没有时钟电路,必须全部外接,需外接基准电压,其基准电压是满量程的一半,本系统是通过可调电阻实现的. 其输出不是三状态的,不可直接与总线相连,本系统是通

32、过外插接口来解决的,7135除了上述接口方法外,还有一种三线制接法,即只用POL,CLK,BUSY三根线,这样在走线上是很方便的,在此,就不多介绍了。.第五节 8255键盘设计前几节已介绍了本系统用到的主要芯片,接下来在这一节里将详细介绍本系统8255键盘设计。Intel公司的8255芯片是一块通用的可编程并行接口(PPI)芯片,除地址线A1,A0外,可直接与Intel公司的8位微处理器,如MCS-51(包括兼容单片机)相应的总线直接连接,是MCS-51单片机应用系统中较常见的并行I/O扩展芯片之一.1. 8255结构及引脚功能8255A采用DPI40封装,引脚功能如下图:其中: D7D0数据

33、总线,双向,三态,可与CPU数据总线直接相连.A1,A0 地址线,输入.8255含有ABC三个8位输入/输出口和一个控制/状态寄存器,即四个可寻址的I/O端口,A1,A0地址线状态编码与这四个I/O端口的对应关系如下:地址线AI、A0编码对应的端口A1A000A口01B口10C口11控制/状态寄存器由于8255内部没有数据/地址锁存器,因此A1、A0不能直接与MCS-51的P0口相连,8255的地址线A1、A0必须接在地址锁存器,如74LS373后.CS片选信号,输入,低电平有效.当CS无效时,8255处于非选中状态,数据总线D7D0为高阻态,相当于挂接在CPU数据总线上的8255处于断开状态

34、.WR写选通信号,输入,低电平有效.当CS、WR同时有效时,可对8255的控制寄存器或输出口锁存器之一进行写操作(由地址线A1、A0编码决定)RD读选通信号,输入,低电平有效.当CS、RD同时有效时,可对8255的状态寄存器或输入口锁存器之一进行读操作(由地址线A1、A0编码决定)PA7PA0A口数据输入/输出线PB7PB0B口据输入/输出线PC7PC0C口据输入/输出线.当A、B口工作在选通方式时,C口部分引脚作为A、B口的通讯联络信号.8255内部由A、B、C三个并行口和一个控制/状态寄存器组成.其中控制寄存器主要用于设置ABC三个并行口的工作状态包括工作方式,输入还是输出.A口:作为输出

35、口时,是一个8位的数据输出锁存和缓冲器;作为输入口时,是一个8位数据输入锁存器.B口: 作为输出口时,是一个8位的数据输出锁存和缓冲器;作为输入口时,是一个8位数据输入缓存器.(即B口对输入数据不具备锁存功能).C口: 作为输出口时,是一个8位的数据输出锁存和缓冲器;作为输入口时,是一个8位数据输入缓存器.(即C口对输入数据不具备锁存功能).2. 8255的工作方式8255属于可编程的I/O扩展芯片,其工作方式由写入工作方式控制寄存器的工作方式控制字决定,如下表所示: 1b6b5b4b3b2b1b0工作方式控制字特征A口工作方式控制00(方式0)01(方式1)1x(方式2)A口输入/输出控制0

36、(输出)1(输入)C口高四位输入/输出控制0(输出)1(输入)B口工作方式控制00(方式0)01(方式1)B口输入/输出控制0(输出)1(输入)C口低四位输入/输出控制0(输出)1(输入)与A口工作方式有关的控制位A组(PC7PC4)输入/输出控制与B口工作方式有关的控制位B组(PC3PC0)输入/输出控制可见8255三个I/O口的地位不完全相同,其中A口有三种工作方式,B口有两种工作方式;而C口较特殊,被分成A(PC7PC4)、B(PC3PC0)两组,只有A、B口工作在方式0时,C口可作为输入/输出引脚使用,(PC7PC4,PC3PC0处于输入还是输出状态,分别由工作方式控制字b3、b0位决

37、定),而当A、B口工作在方式1或2时,C口部分引脚是A、B口的通讯联络信号(未用的C口引脚仍可作为输入/输出引脚使用),具体情况入下表所示.需要注意的是:当8255的I/O口引脚处于输入状态时,相当于悬空,因此一般需要外接电阻,否则读输入引脚获得的信息将不确定. C口引脚方式1(A或B口)方式2(A口)输入输出输入输出PC0INTRBINTRBPC1IBFBOBFBPC2STBBACKBPC3INTRAINTRAINTRAINTRAPC4IBFAIBFAPC5IBFAIBFAPC6ACKAACKAPC7OBFAOBFA其中:1) 当A或B口工作在方式1,且作为输入口时,PC5PC3引脚是A口的

38、选通信号;PC2PC0是B口的选通信号.各选通信号含义如下:STB输入选通信号,输入,低电平有效.该信号由外设提供,外设通过STB信号将数据锁存到A或B口输入缓存器中.IBF(Input Buffer Full) 输入缓冲满信号,输出,高电平有效,当该信号有效时,表示输入到A或B输入缓冲器内的数据未被CPU读走,外设不能再把数据输入缓冲器内,IBF接外设的输出允许控制(由于IBF是C口引脚,CPU可以通读C口信息,查询该信号的状态,确认是否需要读A、B口输入缓冲器内容).INTR(Interrupt Request) 中断请求信号,输出,高电平有效,当STB、IBF有效时,该信号有效,向CPU

39、发出中断请求,一般接CPU的中断输入端.2) 当A或B口工作在方式1,且作为输出口时,PC7、PC6、PC3引脚是A口的选通信号PC2PC0是B口的选通信号. 3. 8255键盘设计电路 键盘是利用可编程控制器8255的PC口进行扩展,键盘为44共16个键,PC0PC3作为行扫描线,PC4PC7作为列检测线,每根列检测线节+5V的电源,并且节4.7K的上拉电阻,对8255进行初始化时,设定PC0PC3为输出,PC4PC7为输入,当每个键按下去,便对应一个唯一的键值。电路如图所示: 第三章 软件设计第一节 软件设计方案监控程序模块:A 系统初始化程序模块B 键盘控制程序C A/D转换控制程序D

40、LED显示控制程序第二节 软件调试在进行软件调试的时候,由于是在仿真机上进行,所以下面列出部分软件程序。一、 内存自检程序: ORG 0000H MOV A , #0AAH ; 0AAH 送A.B,清零FO,F1 MOV B , #OAAH CLR F0 CLR F1 MOV DPTR,#1000H ;DPTR指向1000H,准备SRAM写#0AAH MOV DPTR,A ;写SRAM的一个单元 MOV R2 ,#0FH ;延时15mS MOV R3 ,7DH NOP NOP DJNZ R3 ,DL1 DJNZ R2 ,DL2 MOVX A ,DPTR ;读出 CJNE A ,B ,ERROR

41、 ;比较A是否等于B INC DPTR ;地址加1 MOV R4 ,DPL ;是否检测完 CJNE R4 ,#00H ,WR-1 MOV R5 ,DPH CJNE R5 ,#28H ,WR-1 JB FO ,ENDP ;F0是写55H的标志 MOV A ,#55H ;55H送A,B,置位F1 MOV B ,#55H SETB F1 MOV DPTR,#1000H ;准备向SRAM写#55H AJMP WR-1 ;转移到写SRAM的一个单元 SETB F0 ;置位出错标志F0 END二 8255键盘中断程序: ORG 0000H MOV R0 ,#30H ;设键号保存地址 DONE: MOVE

42、DPTR ,#3030H ;指向8255 MOV A ,#10001000B ;设置控制字,A口输出C高入,B口输出C低出 MOVX DPTR,A ;8255初始化 MOV DPTR ,#3002H ;指向C口 MOV A ,#0F0H ;全扫描字为0F0H MOVX DPTR,A ;全扫描字送入C口 MOV R4 ,#00H ;设首行初值 MOVX A ,DPTR ;读入行状态 ANL A ,#0F0H ;屏蔽低4位 CJNE A ,#0F0H,PRSD1 ;判断是否有键按下或抖动 SJMP DONE ;无键按下,返回等待 PRSD1: ACALL DL10ms ;延时10毫秒子程序 MOV

43、X A ,DPTR ;重新读入行状态 ANL A ,#0F0H,PRSD2 ;判断是否有键按下 SJMP DONE ;无键按下,返回等待 PRSD2: MOV R2 ,#04H ;设定列数 MOV R3 ,#01 ;设定首列 SCAN : MOV A ,R3 ;送首列到A CPL A ;置首列扫描字 MOVX DPTR,A ;全扫描字送入 MOVX A ,DPTR ;读入状态 ANL A ,#0F0 ;屏蔽低4位 CJNE A ,#0F0H,FIDN ;判断是否有键按下 MOV A ,R3 ;无键按下,重新扫描 RL A ;设定第二列 MOV R3 ,A ;保存列值 DJNZ R2 ,SCAN

44、 ;判断四列是否扫描完毕 SJMP DONE ;扫描完,返回等待 FIDN: ADD A ,#0F ;有键按下,计算键值 CPL A ;求行号 ADD A ,R3 ;键号=行号+列号 MOV R4 ,A ;保存键值 MOV R0 ,#30H ;设定键号寄存器 MOV R0 ,A ;保存键值 MOV R4 ,#00H ;设首行初值 MOV DPTR ,#KEYTBL ;查表地址首址为#KEYTBL PRSD3: CLR A ;累加器清0 MOVC A ,A+DPTR ;查表 MOV 50H ,R0 ;取键值 CJNE A ,50H ,NEQ ;是否与按键值相等 AJMP EQQ ;等 NEQ :

45、 INC R4 ;行+1 INC DPTR ;表地址+1 AJMP PRSD3 ;重新判断 EQQ : MOV R6 ,#0EH ;保存地址+1 INC R0 ;等待存下一键值 LJMP DONE ;返回,等待按键 DLY : ACALL DL10mS ;调延时10mS子程序 DJNZ R6 ,DLY DL10mS: MOV R7 ,#10 ;设延时10mS,置R7初值 DL : MOV R5 ,#9AH ;置寄存器R5初值 DL5 : DJNZ R5 ,DL5 ;延时1mS循环 DJNZ R7 ,DL ;延时10mS循环 RET ;返回KEYTAB: DB 81H 41H 21H 11H D

46、B 82H 42H 22H 14H DB 84H 44H 24H 14H DB 88H 48H 28H 18H三 AD7135数据处理:MOV 36H ,A INC R5 MOV A ,R5 MOVC A ,A+DPTR INC R5 MOV 37H ,A MOV A ,36H CJNE A ,30H ,$+8 MOV A ,37H CJNE A ,31H ,$+3 JNC POSISTOP LCALL DTOF MOV R1 ,#33H ;(X-A)*10/B+C LCALL FSUB ;A-33H MOV 39H ,#2 ;B-36H_ ANL A ,#0FH MOV 3CH ,A NOP

47、RETI四 LED显示控制程序: MOV RO ,#08H ;清屏 TP : MOV A ,#0FFH MOV SUBF,A DJNZ R2 ,TP MOV R2 ,#04H ;设置显示个数 MOV A ,#0FFH START : INC A MOV R0 ,A MOV SCON,#00H ;初始化串行口方式 DISKEY: MOV DPTR,#TAB ;查表地址首址为#TAB MOVC A ,A+DPTR ;差表 LOOP : MOV SBUF,A ;送数-SBUF LP : JNB TI ,LP ;(TI)=1 转LP,否则继续执行 CLR TI ;清零 MOV A ,R0 DJNZ R

48、2 ,START ;未显示完,继续执行 RET TAB : DB 0C0H,0F9H,0A4H,0B0H,O99H ;共阳极数码管显示查表 DB 092H,082H,0F8H,080H,090H结 束 语经过几个月的紧张努力,我的毕业设计终于顺利完成了。在这中间,我感觉真的学到了很多东西,并且,把以前学的不好的知识又重新巩固了一遍,而且还加深了理解与认识。在毕设过程中,由于要查阅很多资料,还使我开阔了眼界,拓展了思路。实践出真知!在毕业设计的实践中,我收获颇丰。我能熟练地运用protel99,office2000等应用软件.以前学习时总认为学的都用不上,而且学习的时候抓不到要点,通过完成毕业设

49、计我初步明白了怎样把所学的知识运用到实践中来,终于能够做到学以致用。同时由于自己独立的开发一套系统,所以我从系统设计思想、设计方案、制作电路板等都是自己动手的,使我的动手能力和实践能力以及社会经验都有所加强。感谢给予我亲切指导的各位老师,尤其是我的毕业设计老师李智奇老师,是她的悉心教导才使我的这篇论文得以完成!谢谢您!李老师!此外,还要特别感谢陈大兵同学,他在软硬件及调试方面都给了我很大的帮助,在此表示最诚挚的谢意!附录1: Semiconductor Gas SensorsResearch and development of gas sensors have shown great advances during the past decade. Semiconductor gas sensors mainly using SnO2 elements have been prevailing as detectors or alarms for leak

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!