《毕业设计基于STC89C52单片机的红外闹钟装置设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计基于STC89C52单片机的红外闹钟装置设计与实现.doc(57页珍藏版)》请在三一办公上搜索。
1、广州大学松田学院毕业论文(设计)题 目 基于单片机的红外闹钟装置设计与实现 二一三 年 六 月基于STC89C52单片机的红外闹钟装置设计与实现摘要: 随着生活节奏的提高,事务必的繁多,人们越来越离不开电子产品的定时提醒功能,而最典型的就是早晨的闹钟唤醒,很多人有赖床和睡回笼觉的坏习惯,影响上班上学,本文中将针对此部分人群设计一款具有强制唤醒功能的智能感应闹钟。 单片机适用于机电一体化的智能产品,控制功能强,而热释电晶体作为红外激光的一种较理想的探测器,被广泛应用到各种自动化控制装置中,本设计基于以智能化强制唤醒方式,防止懒人赖床的设计理念,以STC89C52单片机控制为核心,结合DS1302
2、时钟芯片,1602 LCD液晶屏,按键电路,热释电红外传感器模块,周期性遮光装置。除了基本的闹钟功能,可以设置并且显示年、月、日、时、分、秒、星期,主要实现智能红外感应功能,到达设置时间,能自能检测床上一定范围内有无存在人体,有则驱动闹铃并延时检测,无则延时感应检测。设计特色在于闹钟理念的创新,及热释电红外传感器对静止人体的感应敏感度低的问题解决。关键词:STC89C52,1602 液晶显示屏,热释电红外传感器,DS1302时钟芯片 Based on single chip microcomputer infrared alarm device design and implementatio
3、nAbstract:With the improvement of life rhythm, the transaction will be a variety of perspectives, people more and more inseparable from electronic products regularly remind function, and the most typical is the alarm clock wake up in the morning and many people depend on the bed and sleep up bad hab
4、its, and affected to work or school, this article in view of this part design a crowd has forced intelligent sensing alarm clock wake up function.Microcontroller is applicable to mechanical and electrical integration of intelligent product, control function is strong, the pyroelectric crystal as an
5、ideal detector, infrared laser is widely applied to various kinds of automation control device, this design is based on intelligent forced wake up way, prevent the lazy bed design concept, STC89C52 singlechip control as the core, based on DS1302 clock chip, 1602 LCD screen, button circuit, pyroelect
6、ric infrared sensor module, periodic shading device. In addition to the basic alarm clock function, can set up and display year, month, day, hours, minutes, seconds, weeks, and main function of intelligent infrared induction to set a time, and can detect the bed whether exist within a certain range
7、of the human body, has the drive alarms and delay detection, no delay induced detection. Design feature is that alarm clock concept innovation, pyroelectric infrared sensor and low sensitivity to static human body induction of problem solving.Keywords: STC89C52, 1602 LCD, Pyroelectric infrared senso
8、r, DS1302 clock chip目 录1 绪 论11.1单片机与热释电红外传感器的应用11.1.1单片机的应用11.1.2 热释电红外传感器的应用11.2 单片机与热释电红外传感器的结合12 设计要求与方案论证32.1设计要求32.2系统基本方案选择及论证32.2.1单片机芯片方案的选择及论证32.2.2显示模块选择方案和论证32.2.3时钟芯片的选择方案和论证42.3电路设计最终方案决定43 主要元件介绍53.1 STC89C5253.1.1 STC89C52主要功能及PDIP封装53.1.2 STC89C52引脚介绍53.2 DS1302时钟芯片介绍63.2.1 DS1302概述6
9、3.2.2 DS1302引脚介绍73.2.3 DS1302时钟芯片工作原理73.2.4 DS1302内部结构图83.3 1602字符液晶介绍83.3.1 1602液晶概述83.3.2 1602引脚介绍93.3.3 1602字符液晶使用基本操作时序103.4 热释电红外传感器介绍103.4.1热释电红外传感器结构103.4.2 BISS0001红外传感器信号处理芯片114 系统软硬件设计134.1总体电路设计134.2 STC89C52单片机最小系统134.3时钟电路设计144.4显示电路设计154.5闹铃电路设计154.6按键电路设计164.7人体探测模块设计164.7.1设计思路164.7.
10、2电路设计174.7.3探测模块与单片机接口184.7.4 HC-SR501热释电人体感应模块介绍194.3总体硬件电路原理图205系统的软件设计225.1主程序设计225.2子程序设计236系统调试256.1硬件调试256.1.1 1602液晶屏的调试256.1.2 红外传感模块调试256.2软件调试266.3系统联调26参考文献:31致谢32附录33源程序331 绪 论1.1单片机与热释电红外传感器的应用1.1.1单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现的几个方面:单片机在智能仪表中的应用,单片机在机电一体化中的应
11、用,单片机在实时控制中的应用,单片机在分布式多机系统中的应用,单片机在人类生活中的应用。1.1.2 热释电红外传感器的应用热释电传感器开发成功至今已经有30年左右的历史,它是目前人体探测方面性价比最好的传感器,在感应范围内无人体时,视场热源恒定,一旦运动的人体进入其范围,红外场发生波动,传感器接收到的辐射通量产生变化,从而触发控制装置。从诞生起就被应用于入侵警告、自动水阀、火灾报警、照明设备的自动控制开关等领域。随着器件生产工艺的成熟和性能不断改善,热释电红外传感器在这些领域的应用也更加深入和广泛。如今国外一些热释电传感器在军用民用方面又有许多新的进展,例如:微动检测、空调设备的智能控制、耳孔
12、式体温计、非制冷焦平面列阵等。1.2 单片机与热释电红外传感器的结合单片机的智能化系统控制,配合热释电红外传感器的灵活多变,可以开发出许多更加方便更具新意的产品或者设备,为我们的生活及工作带来便利。现今已有许多例子,典型的有两者结合构成的安防系统红外报警装置,自动空气净化系统,智能感应台灯等。两者的结合可广泛运用于生产设备,家用电器,办公配置,公共设施等领域,以新的理念打造新的应用,实现更多意想不到的功能,在智能仪表中的应用,机电一体化中的应用,在不定时控制中的应用,在人类生活中的应用,在许多的领域应用前景看好。比如:在房间无人时会自动停机的空调机、饮水机。电视机能判断无人观看或观众已经睡觉后
13、自动关机的机构。开启监视器或自动门铃上的应用。结合摄影机或数码照相机自动记录动物或人的活动等等。我们可以根据自己的奇思妙想,结合其它电路开发出更加优秀的新产品。或自动化控制装置。本设计是一个新型的例子,巧妙地结合两者,应用于生活用品,也可以说小家电。闹钟通常用于早晨唤床,以免因为贪睡赖床误了上班上课的时间,目前大众使用的闹钟,铃声响起时,只要伸手随意按下开关,闹铃就会停下来,这种随意性助长了“再睡一会”的赖床心理,人们往往迟到误点之后才会后悔不已,但是又很难靠自己改变赖床的不良习惯,为工作学习带来许多不良影响。本课题设计一种新型的红外感应式闹钟,具有传统的闹铃功能,也可以自动感应在预设的时刻使
14、用者是否还在赖床,并通过自动控制电路来控制闹钟来进行强制性提醒。2 设计要求与方案论证2.1设计要求具有年、月、日、星期、时、分、秒显示功能;具备年、月、日、星期、时、分、秒校准功能;具有闹钟显示、调节设定、鸣叫功能;具有检测人体是否在床上一定范围功能。2.2系统基本方案选择及论证2.2.1单片机芯片方案的选择及论证方案一: 使用STC89C52芯片作为硬件核心。STC89C52具备8KB ROM 存储空间,512字节数据存储空间,还带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。方案二:采用AT89S52。AT89S52具备8K字节程序
15、存储空间,256字节的数据存储空间,但没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,而且具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,比较两者,STC89C52比ATS89C52便宜,且抗干扰能力强。考虑到成本因素,决定选用STC89C52。2.2.2显示模块选择方案和论证方案一:采用点阵式数码管显示。由八行八列的发光二极管组成的点阵式数码管,对于显示文字比较适合,用来显示数字既浪费成本又高,所以不用此种作为显示。方案二:采用LED数码管动态扫描。LED数码管有价格便宜和适合显示数字的优点,但是缺点也很明显,那就是功耗较大,容量不足,所以排除此方案。方案三:采用LC
16、D液晶显示屏。液晶显示屏的显示功能很强,可显示大量文字字符,显示效果清晰,性价比十分突出,1602液晶屏足够使用,所以采用了LCD液晶屏作为显示方案。2.2.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此方案可以减少芯片的使用,节省成本,但是,考虑到这样实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。综合考虑设计的实
17、用性,故采用此方案。2.3电路设计最终方案决定综上各方案所述,STC89C52有价格和抗干扰能力的优势,液晶屏性价比高,DS1302精度高,故对此次作品的方案选定: 采用STC89C52单片机作为主控制系统;采用DS1302作为时钟电路;采用1602 LCD液晶作为显示器件。3 主要元件介绍3.1 STC89C523.1.1 STC89C52主要功能及PDIP封装STC89C52主要功能如表1所示,其PDIP封装如图1所示。表1 STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断
18、时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.1.2 STC89C52引脚介绍 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin
19、31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7图1 STC89C52 PDIP封装图3.2 D
20、S1302时钟芯片介绍3.2.1 DS1302概述DS1302是一款实时时钟芯片,由美国DALLAS公司推出,具有低功耗却高性能并且带31字节RAM的特点,提供秒、分、时、星期、月和年,一个月小与月大31天时可以自动调整,具备闰年补偿功能,工作电压宽,2.55.5V,双电源供电模式(主电源和备用电源),同时提供对后备电源进行涓细电流充电的能力,采用SPI三线接口与CPU进行同步通信。DS1302如图2所示。图2 DS1302封装图3.2.2 DS1302引脚介绍各引脚功能为:Vcc1: 主电源;Vcc2:备用电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电;当Vcc2Vcc1
21、时,由Vcc1向DS1302供电。SCLK:串行时钟输入端,控制数据的输入与输出I/O: 三线接口时的双向数据线 CE: 输入信号,在读、写数据期间必须为高3.2.3 DS1302时钟芯片工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。对DS1302的操作就是对其内部寄存器的操作,
22、DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。3.2.4 DS1302内部结构图图3 DS1302内部结构图3.3 1602字符液晶介绍3.3.1 1602液晶概述工业字符型液晶,1602代表的意思是显示的内容为16*2,可以同时显示两行各为16个字。市面上常见的1602字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶
23、芯片的,控制原理是完全相同的。本课题所用1602液晶模块,显示屏是蓝色背光白色字体,如图6所示。 图4 1602字符液晶3.3.2 1602引脚介绍表2 1602字符液晶引脚说明编号符号引脚说明编号符号引脚说明1GND电源地2VCC电源正极3VO液晶显示对比度调节端4RS数据/命令选择端5R/W读写选择6E使能信号7D0数据口8D1数据口9D2数据口10D3数据口11D4数据口12D5数据口13D6数据口14D7数据口15BLA背光电源正16BLK背光电源负各个引脚具体功能说明:第1脚:GND为地电源。第2脚:VCC接5V正电源。第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地
24、电源时对比度最高,对比度过高时会产生重影,使用一个1K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:DB0DB7为8位双向数据线。第1516脚:背光灯电源。3.3.3 1602字符液晶使用基本操作时序基本操作时序,如表3:表3 1602液晶屏操作时序操作输入输出读状态RSL,RWH,EHD0D7状态字写指令RSL,RWL,D0D7指令码,E高脉冲无读数据RSH,RWH,EHD0D7数据写数据RSH,
25、RWL,D0D7数据,E高脉冲无3.4 热释电红外传感器介绍热释电红外传感器是一种被动式调制型温度敏感器,也称热探测型传感器。可用来直接接收目标物体发射的红外线并将其转换为电压信号输出,且不需要红外发射传感器。热释电红外传感器反应速度快、灵敏度高、准确度高、使用方便,尤其是可以进行非接触式测量。主要应用在各类入侵报警、自动开关、非接触式测温、火焰报警、设备故障的诊断等自动化设施中这种热释电红外传感器能以非接触形式检测出人体辐射的红外线,并将其转变为电压信号,同时,它还能鉴别出运动的生物与其它非生物。热释电红外传感器既可用于防盗报警装置,也可以用于自动控制、接近开关、遥测等领域。用它制作的防盗报
26、警器与目前市场上销售的许多防盗报警器材相比,具有如下特点:(1)不需要用红外线或电磁波等发射源(2)灵敏度高、控制范围大。(3)隐蔽性好,可流动安装。3.4.1热释电红外传感器结构热释电红外传感器由滤光片、PZT热电元件、支承环、高阻电阻、场效应管等构成,结构如图5(a)所示。内部电路如如图5(a),使用时D端接电源正极,G端接电源负极,S端为信号输出。 图5 热释电红外传感器内部结构和电路3.4.2 BISS0001红外传感器信号处理芯片BISS001 16脚DIP封装如图6。图6 BIS0001封装BISS0001管脚说明如表4。表4 BISS0001管脚说明引脚名称I/O功能说明1AI可
27、重复触发和不可重复触发选择端。当A为“1”时,允许重复触发;反之,不可重复触发2VOO控制信号输出端。由VS的上跳前沿触发,使Vo输出从低电平跳变到高电平时视为有效触发。在输出延迟时间Tx之外和无VS的上跳变时,Vo保持低电平状态。3RR1-输出延迟时间Tx的调节端4RC1-输出延迟时间Tx的调节端5RC2-触发封锁时间Ti的调节端6RR2-触发封锁时间Ti的调节端7VSS-工作电源负端8VRFI参考电压及复位输入端。通常接VDD,当接“0”时可使定时器复位9VCI触发禁止端。当VcVR时允许触发(VR0.2VDD)10IB-运算放大器偏置电流设置端11VDD-工作电源正端122OUTO第二级
28、运算放大器的输出端132IN-I第二级运算放大器的反相输入端141IN+I第一级运算放大器的同相输入端151IN-I第一级运算放大器的反相输入端161OUTO第一级运算放大器的输出端BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。内部结构如图7所示。图7 BIS0001内部结构4 系统软硬件设计4.1总体电路设计总体电路包括6个电路模块,按键电路模块、DS1302时钟电路模块、红外感应人体探测模块、LCD显示电路、闹铃电路。整体硬件框架如图8。STC89C52按键模块DS1302时钟模块人体感应探测感模块LCD显示模块闹铃模
29、块图8 硬件框图4.2 STC89C52单片机最小系统最小系统是指能进行正常工作的最简单电路。STC89C52最小应用系统电路如图9所示。保证单片机系统正常运行的最基本三部分电路为:1.电源电路:VCC引脚一般接直流稳压电源+5V,引脚GND接地,或者电源负极,电压范围在4V到5.5V之间。2.时钟电路:芯片引脚18、19外接晶振及电容,晶振的频率决定单片机的工作频率,STC89C52的工作频率在233MHz之间,一般选取12MHz晶振,两个电容一般取值3pF。3.复位电路:一般RST引脚上保持24个工作主频周期的高电平,单片机可完成复位,但是复位电路要使RST保持10ms以上的高电平才能保证
30、系统可靠复位。如图电路中,复位电路具有上电自动复位功能,在正常运行时,按复位按钮也可对单片机复位。除了以上缺一不可的三部分,还包含片内外程序存储器选择电路、输入/输出接口电路。图9 STC89C52最小系统4.3时钟电路设计时钟电路主要由时钟芯片DS1302、备用电池、晶振等几部分组成,备份电源能够使时钟芯片在无主电源供电的情况下继续工作,32.768Hz的外接晶振提供标准的秒脉冲,用户可以根据需要通过单片机的控制来自行设置,接口如图10所示。图10 DS1302时钟电路4.4显示电路设计显示电路由单片机驱动1602液晶屏构成,单片机与1602液晶屏的连接如图11所示,这里需要提到的是,单片机
31、P0.0P0.7口和1602液晶屏的714口接上了10K欧的上拉电阻,提高P0口的驱动能力,稳定信号,如图12所示。图11 1602液晶屏显示电路图12 上拉电阻4.5闹铃电路设计闹铃电路较为简单,主体为蜂鸣器,电路图如图13。图13 蜂鸣器闹铃电路4.6按键电路设计按键电路由四个独立按键组成,如图14。S1连接单片机P1.0口,为时间功能键;S2连接P1.1口,为上调按键;S3连接P1.2口,为下调按键;S4连接P1.3口,为闹铃设置键,详细功能将在软件设计中提到。图14 按键电路4.7人体探测模块设计4.7.1设计思路主要由第三章主要元器件中介绍的热释电红外传感器探头(具体型号LHI778
32、)和红外传感器信号处理芯片组成,当人在检测范围内,菲涅尔透镜可将人体辐射的红外线聚焦到热释电红外探测元上,热释电红外传感器是模块的核心器件,它可以把人体的红外信号转化成电信号,然后进行信号处理。人体探测模块设计思路如图15所示。待测目标热释电红外传感器菲涅尔透镜信号处理及输出 图15 人体探测模块设计框图4.7.2电路设计模块总体电路如图16所示,包含带带通滤波电路,及以BISS0001为核心的一级放大电路、二级放大电路、检测电路。当人体辐射的红外线通过菲涅尔透镜被聚焦在热释电红外传感器的探测元上时,电路中的传感器将输出电压信号,然后使该信号先通过一个由C2、R4、R5组成的带通滤波器,进行隔
33、交,限幅,整流。由于热释电红外传感器输出的探测信号电压十分微弱(通常仅有1mV 左右),而且是一个变化的信号,同时菲涅尔透镜的作用又使输出信号电压呈脉冲形式(脉冲电压的频率由被测物体的移动速度决定,通常为0.1Hz-10Hz右),所以应对热释红外传感器输出的电压信号进行放大。经过滤波器的信号输入到BISS0001的14管脚,经过14、15管脚里的运算放大器OP1,一级放大后由16口输出,输出信号由C104、C4、R7进行耦合,其后由13管脚输入,给运算放大器OP2进行二级放大,由12管脚输出。检测电路作用是,当传感器探测到人体辐射的红外线信号并经放大后送给比较器时,若信号幅度超过比较器的上下限
34、,系统将输出高电平信号;无异常情况时则输出低电平信号。由12管脚输出的信号再经由电压比较器COP1和COP2构成的双向鉴幅器、状态控制器处理后,从2端口输出。 图16 人体探测模块电路4.7.3探测模块与单片机接口由于单片机外部中断触发方式只能是低电平或者下降沿,而本文采用的HC-SR501是高电平输出,所以的信号输出端要外接反相器,本设计采用74LS04,接法如图17所示。图17 探测模块引脚连接图4.7.4 HC-SR501热释电人体感应模块介绍为了简化电路,提高集成度,本设计采用的购买的现成HC-SR501热释电人体感应探测模块,基本符合设计电路。引脚如图18所示,实物图如图19所示。其
35、大部分元件采用贴片式,有小巧,集成度高,使用灵活的优点,可基本实现所需功能,并附带其他功能,现介绍如下。(1) 全自动感应:当有人进入其感应范围则输入高电平,人离开感应范围则自动延时关闭高电平。输出低电平。(2) 光敏控制(可选):模块预留有位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能,出厂时未安装光敏电阻。如果需要,可另行购买光敏电阻自己安装。(3) 两种触发方式:L不可重复,H可重复。可跳线选择,默认为H。 A、不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。B、可重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范
36、围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。(4)具有感应封锁时间(默认设置:0.2秒):感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(5)工作电压范围宽:默认工作电压DC5V至20V(6)微功耗:静态电流65微安,特别适合干电池供电的电器产品。(7)输出高电平信号:可
37、方便与各类电路实现对接。图18 HC-SR501的管脚分布图图19 HC-SR501热释电人体探测模块实物图4.3总体硬件电路原理图综合以上6部分电路模块构成本次设计基于单片机的红外闹钟装置,总体电路如图,为了简化电路,人体感应模块总体硬件图中只体现出HC-SR501模块整体外形和引脚连接,模块具体电路参考图20。图20 总体电路原理图5系统的软件设计5.1主程序设计显示时间进入调时模式进入闹钟设置模式将时间写入DS1302读取DS1302中的时间开始初始化LCD、DS1302、定时器判断调时按键是否按下判断闹钟设定键是否按下NYYN闹铃程序图21 主程序设计框图软件设计部分分为两大步组成,首
38、先设计一个较为常见的包含闹钟的万年历程序作为主程序,主要包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序,再以外部中断程序的模式引入红外感应模块的作用。软件设计部分分为两大步组成,首先设计一个较为常见的包含闹钟的万年历程序作为主程序,主要包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序,再以外部中断程序的模式引入红外感应模块的作用。主程序如图21所示,包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序。5.2子程序设计(1)初始化程序 为了使各部分各模块正常工作,必须进行相应的
39、初始化,包括液晶屏的初始化、DS1302的初始化、定时器的初始化。(2)显示程序 本设计中的显示程序主要是整个界面时间日期闹钟的实时显示,分两行显示,第一行显示年月日周和闹铃标示,第二行显示实时时间时分秒和闹铃设置时间时分,再有设置调整时的写入显示。(3)DS1302读写程序 DS1302的读写,需要有读写操作的开启和禁止,时间日期星期的读写,BCD和十进制的互相转换。(4)按键扫描程序 当系统检测到按键S1被按下时,转到相应程序处理,第一次按下S1,定时器关闭,秒闪烁,S2为上调按键,S3为下调按键,第二次按下S1,分闪烁,S2、S3作用如前,如上所述S1依次按下实现秒分时周日月年的调节,S
40、2、S3作为调节按键,第八次按下S1,定时器开启,回到主程序。(5)闹钟设定扫描程序S4为闹钟功能键,S4第一次按下,定时器中断关闭,闹钟标志作位为0;S4第二次按下,闹钟时闪烁,S2、S3实现上下调功能;S4第三次按下,闹钟分闪烁,可用S2、S3进行调节;S4第四次按下,闹钟标志位为1,定时器中断开启,回到主程序。(6)闹铃程序先判断闹钟标志位是否为1,否则闹铃不响,是则判断是否到闹点及在闹点后十分钟之内,否则不响,是则判断外部中断是否触发,否则不响,是则闹铃响。(7)外部中断程序本设计的主要部分闹钟与人体红外感应模块的结合处就在于外部中断的引入。能处理中断的功能部件被称为中断系统,能产生中
41、断请求的源被称为中断源,80C51单片机有5个中断源,两个外部中断,两个定时中断,和一个串行中断,要使用此类中断,要先开总中断(总中断允许位EA=1)。外部中断由P3.2(INT0)或者P3.3(INT1)端口线引入,可设置为低电平有效或者下降沿有效。下降沿触发方式,当高电平向低电平转变时,触发产生,不论低电平持续多久都只会产生一次,所以,下降沿触发适合以负脉冲形式输入的外部中断请求;低电平触发方式,在低电平时间段内中断一直有效,这就是说在电平没有恢复之前中断程序就已经执行完成而退出,那会在退出之后又再次进入中断,本设计中要实现持续触发响铃,所以选择低电平触发这种适合于外部中断以低电平输入的方
42、式,接P3.2口,INT0外部中断引入,IT0=1,外部中断程序主要设置标志位,为闹铃程序所调用。6系统调试本次设计调试过程主要是在普中HC6800开发实验板上进行,实验板上硬件资源较为丰富,包含了STC89C52单片机、按键模块,蜂鸣器,DS1302时钟芯片,只需另外购置1602液晶显示屏,红外传感模块,反相器,摇摆器。6.1硬件调试该设计硬件部分并不十分复杂,首先按照复位电路,液晶显示,按键输入,蜂鸣器,DS1302电路,热释电红外传感模块的顺序进行分立调试,除了液晶显示和红外传感模块的调试,其他基本顺利,当然最终这两个模块也调试完成。6.1.1 1602液晶屏的调试编写了一段简单的程序在
43、液晶屏上显示一段文字来调试液晶屏,插上开发板,液晶屏背光亮,但是屏幕无任何显示,转动开饭板上的滑动变阻器旋钮调节无效,怀疑是液晶屏损坏,或者排针太短接触不良,欲重新购买,后经耐心继续尝试,发现是由于旋动速度过快,需要慢慢调节才能调好对比度。6.1.2 红外传感模块调试本次设计为简化各模块,使用的红外传感模块应该为低电平输出,但是由于知识的欠缺和粗心,购置了高电平输出的模块HC-SR501。为了节省成本,决定再加入反相器,所以调试也是用所购置的高电平输出模块加上反相器。开发板上有电源和接地的接口,也有8路LED灯模块,所以只要将传感模块加上反相器接上一路LED灯低电平输入端,电源和地接好,就可调
44、试,理想状态下是感应范围内有人,传感模块输出高电平经过反相器转换成低电平,此时LED灯亮,感应范围内无人,则现象相反。可是在实际调试过程中发现,热释电红外传感器对静止人体敏感度不高,当人体在感应范围内处于准静止状态时,LED灯也是会熄灭的。一番调试,查找提高敏感度的办法,始终没办法达到理想状态,一度想更换成主动式的红外传感模块,后来咨询老师,老师发了一份包含了主动式红外传感器和被动式红外传感器的资料给我,里面提到了改善热释电红外传感器的方法,就是利用周期性的遮光来改善,于是我尝试用条状物体在传感器前晃动,发现可行,在有周期遮光的情况下,即使人体静止,LED灯也能亮着,于是决定加入独立的周期遮光装置,为了简化过程,就使用摇摆器来进行周期性遮光,实验结果基本达到目的要求。6.2软件调试在编程前画了流程框图以便顺利编程各程序结合,思路较为清晰,能够按部就班进行调试。在未加入感应探测模块外部中断前,先对万年历闹钟进行调试,发现两个问题:(1)读取时间时出现部分显示乱码。 开始以为是液晶屏位