毕业设计(论文)-无线报警器接收机的设计.doc_第1页
毕业设计(论文)-无线报警器接收机的设计.doc_第2页
毕业设计(论文)-无线报警器接收机的设计.doc_第3页
毕业设计(论文)-无线报警器接收机的设计.doc_第4页
毕业设计(论文)-无线报警器接收机的设计.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东北石油大学本科生毕业设计(论文) 摘 要本文阐述如何设计一个无线报警器接收机系统。本设计应用at89c51芯片作为核心,应用315m无线接收模块作为信号接收设备。当315m接收机接收模块接收到报警信号时,单片机驱动扬声器发出声音报警信号,驱动发光二极管发出光报警信号;当供电电源断电时发光二极管闪烁报警,并自动切换到备用电源对无线报警器接收机系统进行供电。本文首先介绍了无线报警的优点,然后,详细介绍了系统硬件的设计、系统软件的设计;最后对硬件进行了简单的调试,最后,文章对整个设计做了概括性总结。本系统具有智能化和高可靠性等特点,但是还是有一些环节有待进一步完善。 该无线报警器接收机系统可应用于一般的生活和工作中的报警系统,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的安全和方便。关键字: 单片机;无线接收模块;报警系统32abstractthe purpose of this design is to design a use value, high performance wireless alarm receiver system. the receiving system reported error rate is low, installation and configuration easy, low cost, easy to use features. the at89c51 chip design applications as a core, when the receiver receives the alarm signal audible alarm and power fail alarm, and a backup power supply for power. this paper describes the benefits of wireless alarm; then, detailed design of system hardware, system software design; and hardware for a simple debugging,and finally, the article made a general summing up the whole design.his system has the intelligence and high reliability, but there are some aspects to be further improved. 315m receiver module because of its small, inexpensive. and easy to use, functional and more easily integrated and loved by the general consumer, so widely used.keywords: microcontroller; wireless receiver module; alarm system目 录第一章 绪论11.1无线报警器接收机的时代背景11.2无线报警器接收机的意义11.3无线接收机的应用1第二章 整体设计方案22.1 ne555时基电路设计方案22.2 单片机设计方案3第三章 无线报警器接收的硬件设计43.1微处理器的选择43.2 接收模块的选择53.3 最小系统设计73.4 电源电路103.5 信号接收电路113.6 led显示电路14第四章 系统软件设计184.1 主程序设计184.2 子程序设计194.2.1断电报警程序19第五章 调试与功能说明255.1硬件调试255.2 软件的调试26总结28参考文献29致谢30第一章 绪论 1.1无线报警器接收机的时代背景 安全提醒以及提醒的及时性对人们的生活很必要,可以让人们在第一时间知道哪里有危险,突发事件以及人们不想发生的状况,以便在酿成人们不期望的后果之前及时的去解决处理。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。顺应人们的需求以及电子发展的情况,电子报警器应运而生,并且快速的进入了人们的生活中。11.2无线报警器接收机的意义无线报警器,广泛用于个人家庭,商店,仓库, 码头办公室等公共场所为人们日常生活提供了方便,由于无线接收模块在报警系统中应用,使报警器开始无线化。给人们生产生活带来了极大的方便。而且此系统还可以扩展报警器断电报警、断电后自动由备用电池供电,接收模块扩展等功能,而这些,都是以无线接收接收机为基础的。因此,研究无线接收机及扩大其应用,有着非常现实的意义。1.3无线接收机的应用 报警器已成为人们日常生活中提高人们生活安全和方便指数的一种必需品,用广泛用于个人家庭以及车站、仓库、酒店、办公室等公共场所,例如可用于家庭火灾报警、家庭防盗报警、酒店服务报警、医院病人呼唤报警、给人们的生活、学习、工作、带来极大的方便。由于无线接收机是无线接收,使报警器的功能有很大的扩展。 第二章 整体设计方案无线报警器接收机既可以通过纯硬件实现,也可以通过软硬件结合实现,根据无线报警器接收机工作原理,通常有以下两种形式:2.1 ne555时基电路设计方案555定时器是美国signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5k的电阻而得名。目前,流行的产品主要有4种:bjt两个:555,556(含有两个555);cmos两个:7555,7556(含有两个7555)。555定时器是一种数字与模拟混合型的集成电路,应用广泛。成本较低,外加电阻、电容等元件就可以构成多谐振荡器、单稳电路、施密特触发器等,常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等领域。2采用ne555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子钟。由555构成的秒脉冲发生器电路见图2.1。输出的脉冲信号v0的频率f为: (1-1)可通过调节式(1-1)中的3个参数,使输出v0的频率为精确的1hz。图2.1 基于的秒脉冲发生器采用555定时器设计无线报警器接收机系统,成本低,容易实现。但是受芯片引脚数量和功能限制,不容易实现电子时钟的多功能性。2.2 单片机设计方案单片机是微型机的一个主要分支,它在结构上的最大特点使把cpu、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功能而言,一块单片机芯片就是一台计算机。单片机具有如下特点:有优异的性能价格比;1集成度高、体积小、有很高的可靠性;2控制功能强;3低功耗、低电压,便于生产便携式产品;4外部总线增加了i2c、spi等串行总线方式,进一步缩小了体积,简化了结构;5单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。所以单片机的应用非常广泛,在智能仪表、机电一体化、实时控制、分布式多机系统以及人们的生活中均有用武之地。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思路和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种用软件代替硬件的控制技术,是对生产控制技术的一次革命。3利用单片机的智能性,可方便地实现具有多功能无线报警器接收机,使无线报警报警器接收机系统具有选择性报警,对报警方式的选择,报警地点的显示等多功能报警器。并且也是我们的设计在很大程度上简单化。第三章 无线报警器接收的硬件设计在比较了第二章的三种实现方案之后,考虑单片机货源充足、价格低廉,可软硬件结合使用,能够较方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。3.1微处理器的选择目前在单片机系统中,应用比较广泛的微处理器芯片主要为8xc5x系列单片机。该系列单片机均采用标准mcs-51内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。例如比较常用的at89c2051单片机,带有2kb flash可编程、可擦除只读存储器(e2prom)的低压、高性能8位cmos微型计算机。拥有15条可编程i/o引脚,2个16位定时器/计数器,6个中断源,可编程串行uart通道,并能直接驱动led输出。4仅仅是为了完成时钟设计或者是环境温度采集设计,应用at89c2051单片机完全可以实现。但是将两种功能结合在一片单片机上,就需要更多的i/o引脚,故本设计采用具有32根i/o引脚的at89c51单片机。at89c51单片机是一款低功耗,低电压,高性能cmos 8位单片机,片内含4kb(可经受1000次擦写周期)的flash可编程可反复擦写的只读程序存储器(eprom),器件采用cmos工艺和atmei公司的高密度、非易失性存储器(nuram)技术制造,其输出引脚和指令系统都与mcs-51兼容。片内的flash存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。因此,at89c51是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域6。at89c51具有以下主要性能:4kb可改编程序flash存储器;全静态工作:024hz;1288字节内部ram;32个外部双向输入/输出(i/o)口;6个中断优先级; 2个16位可编程定时计数器;可编程串行通道;片内时钟振荡器。5此外,at89c51是用静态逻辑来设计的,其工作频率可下降到0hz,并提供两种可用软件来选择的省电方式空闲方式(idle mode)和掉电方式(power down mode)。在空闲方式中,cpu停止工作,而ram、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内ram中的内容,直到下一次硬件复位为止 。图3-1 at89c51芯片pdip封装引脚图3.2 接收模块的选择在此次设计的接受中需要用到无线接收模块来接受报警信号,检测接收模块输出端口的信号来选择报警方式。事实上无线数据传输广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触rf智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。模块的实物图如3-2:63-2 无线接收模块是实物图接收模块的七根引脚分别为d3、d2、d1、d0、gnd、vt、vcc,其中vcc为无线接收模块5v的供电端,gnd为接地端,vt端为解码有效输出端,只要发射器的数据码有输出,vt都能同步输出高电平;d3、d2、d1、d0是2262解码芯片的四位数据输出端,有信号时能输出5v左右的高电平,驱动电流约2ma,与发射器的四位数据码输出一一对应。接收模块不焊天线也能接收信号,为提高接收灵敏度,可以用一根长度约为23厘米的软导线直接焊接到天线孔处,图中rc所指的是振荡电阻,接收模块和发射器的震荡电阻需要匹配才能工作,接收模块用的是270k或者820k电阻,可以分别和1.5m或者4.7m振荡电阻的发射器配套使用。发射器可以用固定码四键遥控器或者带编码四路发射模块,如与其他发射器配套,则必须提供发射器相关参数。d0-d3-四位数据锁存输出端,有信号时能输出5v左右的高电平,驱动电流约2ma,与发射器上的四个按键一一对应,这里用的是l4锁存芯片所以输出的数据能锁存,其意思即为,当按下发射器其中一个键时,d0端为高电平,其它三端为低电平,放开发射器的按键,这种状态可以保持,直到另一个按键被按下,对应的一个端,比如d1端变为高电平,其它三端为低电平。利用这个特性,我们完全可以控制四路不同的应用。接收信号报警的电路图如3-3。只要发射器的数据码有输出,vt都能同步输出高电平,所以只要单片机检测vt端发出的信号就可以检测出发送端是否发出报警信号,从而来控制报警电路,发出声光报警信号。 3-3报警信号输出电路3.3 最小系统设计 图3-4 单片机最小系统的结构图 单片机的最小系统是由电源、复位、晶振、/ea=1组成,下面介绍一下每一个组成部分。1.电源引脚 vcc 40 电源端gnd 20 接地端工作电压为5v,另有at89lv51工作电压则是2.7-6v, 引脚功能一样。 2.外接晶体引脚图3-5 晶振连接的内部、外部方式图xtal1 19xtal2 18xtal1是片内振荡器的反相放大器输入端,xtal2则是输出端,使用外部振荡器时,外部振荡信号应直接加到xtal1,而xtal2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12mhz,时钟频率就为6mhz。晶振的频率可以在1mhz-24mhz内选择。电容取30pf左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。at89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1和xtal2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容c1和c2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12mhz,电容应尽可能的选择陶瓷电容,电容值约为22f。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3. 复位 rst 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后p0p3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器sfr全部清零。当复位脚由高电平变为低电平时,芯片为rom的00h处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚rst通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的s5p2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6mhz时,c取22f,rs约为200,rk约为1k。复位操作不会对内部ram有所影响。常用的复位电路如下图所示: 图3-6 常用复位电路图4.输入输出引脚(1) p0端口p0.0-p0.7 p0是一个8位漏极开路型双向i/o端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个ttl。对内部flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,p0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) p1端口p1.0p1.7 p1是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收低8位地址信息。(3) p2端口p2.0p2.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,p2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) p3端口p3.0p3.7 p2是一个带有内部上拉电阻的8位双向i/0端口。输出时可驱动4个ttl。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接控制信息。除此之外p3端口还用于一些专门功能,具体请看下表。7表3-1 p3端口引脚兼用功能表p3引脚兼用功能p3.0串行通讯输入(rxd)p3.1串行通讯输出(txd)p3.2外部中断0( int0)p3.3外部中断1(int1)p3.4定时器0输入(t0)p3.5定时器1输入(t1)p3.6外部数据存储器写选通wrp3.7外部数据存储器写选通rd3.4 电源电路电源电路的功能是为系统提供电源并且有可以实现断电后发出报警信号并有备用电源供电。电路如图3-5。接口的第二管脚给比第一管脚给低电高,有一极管的单项导通原理,在供电正常的情况下由第一管脚供电,当断电时第二管脚电平变为零,这时由第一管脚供电,并由单片机检测od处的电压,若为低电平则有单片机控制报警。8 3-7 供电电路及报警电路3.5 信号接收电路接收模块采用315m无线接收模块,在单片机控制系统中,由于单片机的i/o资源有限,在连接控制315m接收模块的时候,为了能控制更多的接收模块,我选择将单片机的i/o进行扩展,选择用74hc165芯片将i/o口径性扩展。串行口常用来扩展io接口,使用移位寄存器作为锁存或输入信号的接口,可以方便地扩展并行输入、输出口。这种方法不占用片外ram地址,简单易行,便于操作,适用于速度较慢、实时性要求不高的场合。3.5.1 74hc165芯片74hc165是一款高速cmos器件,74hc165遵循jedec标准no.7a。74hc165引脚兼容低功耗肖特基ttl(lsttl)系列。74hc165是8位并行读取或串行输入移位寄存器,可在末级得到互斥的串行输出(q7和q7),当并行读取(pl)输入为低时,从d0到d7口输入的并行数据将被异步地读取进寄存器内。当移位/置入控制端(sh/l d)为低电平时,并行数据(ah)被置入寄存器,而时钟(clk,clk inh)及串行数据(ser)均无关。当 sh/l d为高电平时,并行置数功能被禁止。clk和clk ink在功能上是等价的,可以交换使用。74hc165的时钟输入是一个“门控或”结构,允许其中一个输入端作为低有效时钟使能(ce)输入。cp和ce的引脚分配是独立的并且在必要时,为了布线的方便可以互换。只有在cp为高时,才允许ce由低转高。在pl上升沿来临之前,不论是cp还是ce,都应当置高,以防止数据在pl的活动状态发生位移。当clk和clk ink有一个为低电平并且sh/l d为高电平时,另一个时钟可以输入。当clk和clk ink有一个为高电平时,另一个时钟被禁止。只有在clk为高电平时clk ink才可变为高电平。引出端符号: clk,clk inh 时钟输入端(上升沿有效) ah 并行数据输入端 ser 串行数据输入端 qh 输出端 qh 互补输出端 sh/l d 移位控制/置入控制(低电平有效) 逻辑及封装图 图3-8 双列直插封装 plcc封装 图3-9 逻辑图3.5.2 串行口扩展并行输入口74hc165芯片是8位并行输入和串行移位输出寄存器。原则上利用n片74ls165与8051的3根端口线相连,可扩展8n根并行输入口线。3-8所示利用多片74hcl65与串行口配合,扩展16根并行输入线的电路。由图可见,8051仅用了3根线,分别为串行口输入线rxd(p3.0)、串行口输出线txd(p3.1)和1根控制线p1.0引出。74hcl65是一个8位寄存器,其sl端是串行移位控制端接于p1.0端;ck是移位时钟输入端,接于p3.1 (txd)端;qh是串行移位输出端接于p3.0(rxd)端。串行口置为方式0。两个165芯片是串联方式,首尾相接,低位qh接于高位ser端,高位qh端接8051的rxd端。若16位并行输入数据已送到两个74lsl65的输入端,当pl.0=0时。16位数据被同时接收,置入对应的74hcl65的寄存器中。当p1.0=1时,移位寄存器开始串行移位,经串行输入口p3.0(rxd)端,一位一位移入8051串行口的缓冲器中。8051接收完一个字节(一帧),发出中断申请,置ri为“l”,当cpu发现ri=1则可以从串行口缓冲器中读走数据。 图3-10 多片74hcl65与串行口配合表3-2 推荐工作条件表74/165最小74/165额定74/165最大单位电源电压4.7555.5v输入高电平2v输入低电平0.8v输入高电流-400ua 输入低电流8ma时钟频率025mhzclk脉冲宽度25nsld脉冲宽度15nsclk ink建立时间30nsa-h建立时间10nsser建立时间20nssh建立时间45ns保持时间0ns3.6 led显示电路3.6.1 显示器选择显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管led显示器、液晶lcd显示器、crt显示器等。就显示电路而言,通常可采用lcd显示或led显示。led显示器是现在最常用的显示器之一,对于一般的段式lcd,需要专门的驱动电路,而且lcd显示的可视性较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般采用并行接口,对微处理器的接口要求较高,占用资源多。另外,at89c51本身没有专门的液晶驱动接口。led结构简单,体积小,功耗低,响应速度快,易于匹配,寿命长,可靠性高,而且显示亮度高,价格便宜,市场上也有专门的时钟显示组合led。故本设计中应用7位8段共阴led实现显示部分,如图3-9。 图3-11 led显示器的符号图发光二极管(led)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式led显示器件(半导体显示器)。分段式显示器(led数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。led数码管有共阳、共阴之分。图是共阳式、共阴式led数码管的原理图和符号.图3-12 共阳式、共阴式led数码管的原理图和数码管的符号图显示电路显示模块需要实时显示当时的报警模块的序列号。led显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。动态显示方式的硬件电路简单。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。静态显示,是由微型计算机一次输出显示模型后,就能保持该显示结果,直到下次发送新的显示模型为止。静态显示驱动程序简单,且cpu占用率低,但每个led数码管需要一个锁存器来锁存每一个显示位的笔段代码,硬件开销大,仅适合显示位数较少的场合。为了在显示部分节省单片机i/o口,故采用静态显示方式。15数码管使用条件:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定c、使用电流:静态:总电流 80ma(每段 10ma);动态:平均电流 4-5ma 峰值电流 100ma数码管使用注意事项说明:()数码管表面不要用手触摸,不要用手去弄引角;()焊接温度:260度;焊接时间:5s()表面有保护膜的产品,可以在使用前撕下来。3.6.2 74hc595用法由于在此次设计中需要用到四个数码管,共需要用到32个管脚,单片机没有那么多的空余管脚来控制,所以这里用到74hc595移位寄存器来驱动数码管。74hc595是8位移位寄存器,应用该芯片驱动led做显示部分,其优点在于连线简单,节省单片机i/o口,软件编程容易。1. 74hc595的管脚特性hs74hc595 的逻辑功能、引出端排列与 74ls 系列相一致;其工作速度与 74ls 系列相似,而功耗仍与 cmos4000系列一致。它的所有输入和输出均有内部保护线路,以减小由于静电感应而损坏器件的可能性。它具有高抗噪声度和驱动负载的能力。hs74hc595内含 8 位串入、串/并出移位寄存器和 8 位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入(cpsr和 cpla)。当 cpsr从低到高电平跳变时,串行输入数据(ds)移入寄存器。当 cpla 从低到高电平跳变时,寄存器的数据置入锁存器。清除端(cr)的低电平仅对寄存器复位(q7s为低电平),而对锁存器无影响。当输出允许控制端(en)为高电平时,并行输出(en)为高阻态。74hc595与数码管连接如下图所示。9 vcc q0 ds en st-cp sh-ct mr q7 74hc595 q1 q2 q q4 q5 q6 q7 gnd 3-13 74hc5959封装3-14 led显示电路第四章 系统软件设计c51单片机可以应用汇编语言和c语言进行编程。,汇编语言与机器指令一一对应所以用汇编语言编写的程序在单片机里运行起来效率较高。系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(3)绘制程序流程图;(4)为程序加入注释,提高可读性,实施软件工程;104.1 主程序设计本设计的软件程序包括主程序、中断子程序、断电报警子程序、接收信号子程序、led显示子程序、经过延时,返回程序开头循环运行。它们的流程图如图4-1所示。 初始化显示子程序信号接收子程序led显示子程序断电报警子程序开始延时子程序 图4-1 无线报警接收机主程序流程图4.2 子程序设计4.2.1断电报警程序断电报警通过判断i/o口p1.3的电平高低来判断是否有正常供电的电源断开,如果断开由led灯闪烁来发出报警信号。void poweralarm() while(p1.3=0) 循环条件 a=50000; led=0; 灯亮 while(a-); a=50000; 灯灭 led=1; while(a-)4.2.2 信号接收子程序sbit a7=acc7;sbit simuseri_clk=p36; /用p36模拟串口时钟sbit simuseri_data=p35; /用p35模拟串口数据sbit drive74165_ld=p17; /用p17控制sh/ld管脚/-/ 函数名称: in_simuseri/ 输入参数:无/ 输出参数:data_buf/ 功能说明:8位同步移位寄存器,将simuseri_data串行输入的数据按从低位到高位/ 保存到data_buf /-unsigned char in_simuseri(void) unsigned char i; unsigned char data_buf; i=8; do acc=acc1; for(;simuseri_clk=0;) ; a7=simuseri_data; for(;simuseri_clk=1;) ; while(-i!=0); simuseri_clk=0; data_buf=acc; return(data_buf); /-/ 函数名称:pas/ 输入参数:无/ 输出参数:pas_buf,返回并行输入74ls165的数据/ 功能说明:直接调用,即可读取并行输入74ls165的数据,不需要考虑74ls165的/ 工作原理 /-char pas(void) char pas_buf;drive74165_ld =0; 并行置入数据drive74165_ld =1; 开始串行移位pas_buf= in_simuseri();return(pas_buf);4.2.3 led显示子程序数码管的工作原理:数码管是由8个发光二极管构成的显示器件。在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。本文用到的4个数码管均是共阴极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的i/o口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由i/o口输出不同的代码,就可以控制数码管显示不同的字符。本文的4个数码管均采用静态显示方式,显示当前的信号接收位置。整个显示电路应用了4个595芯片,4个数码管。只要将需要显示的数字编辑成对应的bcd码,逐位送入74ls164的a、b串行输入端,数码管将正常显示。关键之处是要实现根据键值显示不同的数字。第一个595芯片把从单片机传出的串行数据转换成并行数据。595只能存储8位数据,因此,当单片机输出第9-14位数据的时候,第一个595芯片中的8位数据就被传到第二个595芯片中,这8位数据就是段选信号,控制数码管将要显示的字符。第9-14位数据输出后,控制595芯片的单片机的p1.7口置为高电平,595芯片选通。这四位数据经过595芯片以后是片选信号,即控制动态显示的是哪一位数码管。在片选信号和段选信号的控制下,数码管就正确的动态显示当前的时间。11程序如下:共阴极数码管显示代码:7 6 5 4 3 2 1 0 / a b c d e f uchar code led_7seg16=0xfc,0x60,0xda,0xf2,/0,1,2,3, 0x66,0xb6,0xbe,0xe0, /4,5,6,7, 0xfe,0xe6,0xee,0x3e, /8,9,a,b, 0x9c,0x7a,0x9e,0x8e;/c,d,e,f/-void wr595(uchar wrdat) 向595发送一个字节的数据(先发低位)uchar i;sh-cp=0;sh-ct=0;for(i=8;i0;i-) /循环八次,写一个字节 ds=wrdat&0x01; /发送bit0 位 wrdat=1; /要发送的数据右移,准备发送下一位 sh-cp=0; /移位时钟上升沿 _nop_(); _nop_(); sh-cp=1; _nop_(); _nop_(); sh-cp=0; sh-ct=0; /上升沿将数据送到输出锁存器 _nop_(); _nop_(); sh-ct=1; _nop_(); _nop_(); sh-ct=0; void delay(uint del) 延时函数 while(del-) ; void wr7leds(void) 8个led显示数字函数,向595发送一个字节的数据,然后发送位选信号 uchar i,wx; wx=0x01; /位选信号初始化 for(i=0;i4;i+) /循环4次写4个数据 wr595(led_7segi); /传送显示数据port_led=wx; /送位选信号wx=1; /位选信号左移,准备显示下一个数字delay(50); /延时,(决定亮度,和闪烁) void 595main(void) /595主函数while(1)wr7leds(); /向74hc595发送数据并显示第五章 调试与功能说明单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。5.1硬件调试首先拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。单片机基础电路包括电源、单片机、外部时钟震荡电路、复位电路和外部接口电路。调试过程需要注意以下几点:1. 检查电源是否完好。2. 单片机电源要连接正确,并且保证at89c51的31号引脚接高电平。at89c51的31号引脚是外部程序存储器选择信号端,当该引脚为高电平时,单片机会一直从片内程序存储器内取指令。3. 如果使用p0口做i/o口,要接上拉电阻。4. 使用万用表排查电路中是否存在断路或者短路情况。笔者在制作外部接口电路时使用的是排针,焊接时容易出现管脚之间短路,所以在上电以前必须先排查电路。5. 编辑一个使一组发光二极管循环点亮的程序并烧录到单片机内,上电运行,检查单片机是否正常工作,复位电路是否正确。12笔者编辑了使一组p1口点亮8个发光二极管循环点亮的程序,程序代码如下:#include void delay(void) /延时子程序unsigned char i, j,k; /延时时间根据变量i,j,k不同而改变 for(i=50;i0;i-)for(j=50;j0;j-)for(k=250;k0;i-);void main() unsigned int n; unsigned char code ledp8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; while(1) p1=0xffh; /初始化p1口 for(n=0;n8;n+) p1=ledpn; delay(); 5.2 软件的调试然后软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。14keil软件提供了一个集成开发环境uvision,它包括c编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。通过编译、运行,可以检查程序错误。但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。在软件调试过程中要仔细耐心,即便是多写或少些一两个字符,都无法编译成功。而有时往往在keil中编译、运行无错,但烧录到单片机中运行起来就会出错,很可能是编程时管脚或时序编辑得不对。13总之,调试过程是一个软硬件相结合调试的过程,硬件电路是基础,软件是检测硬件电路和实现其功能的关键。在调试过程中,首先必须明确调试顺序。例如:本设计是在单片机系统基础上建立起来的,所以必须先确定单片机基础电路能否正常工作。为了正确显示接收信号的位置,接下来还要确定显示电路能否正常工作。硬件调试的过程,也是软件调试的过程。结论最近几年我们的报警器功能不断增加而且不短的智能化。本文阐述了无线报警接收机系统的意义,以及如何对无线报警器报警接收机进行设计。在此次设计中

温馨提示

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

评论

0/150

提交评论