版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业广州大学松田学院毕业论文(设计)题 目 基于单片机的红外闹钟装置设计与实现 二一三 年 六 月基于单片机的红外闹钟装置设计与实现摘要: 随着生活节奏的提高,事务必的繁多,人们越来越离不开电子产品的定时提醒功能,而最典型的就是早晨的闹钟唤醒,很多人有赖床和睡回笼觉的坏习惯,影响上班上学,本文中将针对此部分人群设计一款具有强制唤醒功能的智能感应闹钟。 单片机适用于机电一体化的智能产品,控制功能强,而热释电晶体作为红外激光的一种较理想的探测器,被广泛应用到各种自动化控制装置中
2、,本设计基于以智能化强制唤醒方式,防止懒人赖床的设计理念,以STC89C52单片机控制为核心,结合DS1302时钟芯片,1602 LCD液晶屏,按键电路,热释电红外传感器模块,周期性遮光装置。除了基本的闹钟功能,可以设置并且显示年、月、日、时、分、秒、星期,主要实现智能红外感应功能,到达设置时间,能自能检测床上一定范围内有无存在人体,有则驱动闹铃并延时检测,无则延时感应检测。设计特色在于闹钟理念的创新,及热释电红外传感器对静止人体的感应敏感度低的问题解决。关键词:STC89C52,1602 液晶显示屏,热释电红外传感器,DS1302时钟芯片 Based on single chip micro
3、computer infrared alarm device design and implementationAbstract: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
4、 and many people depend on the bed and sleep up bad habits, 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, cont
5、rol function is strong, the pyroelectric crystal as an 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
6、 clock chip, 1602 LCD screen, button circuit, pyroelectric 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 c
7、an detect the bed whether exist within a certain range 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.Ke
8、ywords: STC89C52, 1602 LCD, Pyroelectric infrared sensor, DS1302 clock chip目 录 TOC o 1-3 h z u 1 绪 论1.1单片机与热释电红外传感器的应用1.1.1单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现的几个方面:单片机在智能仪表中的应用,单片机在机电一体化中的应用,单片机在实时控制中的应用,单片机在分布式多机系统中的应用,单片机在人类生活中的应用。1.1.2 热释电红外传感器的应用热释电传感器开发成功至今已经有30年左右的历史,它是目
9、前人体探测方面性价比最好的传感器,在感应范围内无人体时,视场热源恒定,一旦运动的人体进入其范围,红外场发生波动,传感器接收到的辐射通量产生变化,从而触发控制装置。从诞生起就被应用于入侵警告、自动水阀、火灾报警、照明设备的自动控制开关等领域。随着器件生产工艺的成熟和性能不断改善,热释电红外传感器在这些领域的应用也更加深入和广泛。如今国外一些热释电传感器在军用民用方面又有许多新的进展,例如:微动检测、空调设备的智能控制、耳孔式体温计、非制冷焦平面列阵等。1.2 单片机与热释电红外传感器的结合单片机的智能化系统控制,配合热释电红外传感器的灵活多变,可以开发出许多更加方便更具新意的产品或者设备,为我们
10、的生活及工作带来便利。现今已有许多例子,典型的有两者结合构成的安防系统红外报警装置,自动空气净化系统,智能感应台灯等。两者的结合可广泛运用于生产设备,家用电器,办公配置,公共设施等领域,以新的理念打造新的应用,实现更多意想不到的功能,在智能仪表中的应用,机电一体化中的应用,在不定时控制中的应用,在人类生活中的应用,在许多的领域应用前景看好。比如:在房间无人时会自动停机的空调机、饮水机。电视机能判断无人观看或观众已经睡觉后自动关机的机构。开启监视器或自动门铃上的应用。结合摄影机或数码照相机自动记录动物或人的活动等等。我们可以根据自己的奇思妙想,结合其它电路开发出更加优秀的新产品。或自动化控制装置
11、。本设计是一个新型的例子,巧妙地结合两者,应用于生活用品,也可以说小家电。闹钟通常用于早晨唤床,以免因为贪睡赖床误了上班上课的时间,目前大众使用的闹钟,铃声响起时,只要伸手随意按下开关,闹铃就会停下来,这种随意性助长了“再睡一会”的赖床心理,人们往往迟到误点之后才会后悔不已,但是又很难靠自己改变赖床的不良习惯,为工作学习带来许多不良影响。本课题设计一种新型的红外感应式闹钟,具有传统的闹铃功能,也可以自动感应在预设的时刻使用者是否还在赖床,并通过自动控制电路来控制闹钟来进行强制性提醒。2 设计要求与方案论证2.1设计要求具有年、月、日、星期、时、分、秒显示功能;具备年、月、日、星期、时、分、秒校
12、准功能;具有闹钟显示、调节设定、鸣叫功能;具有检测人体是否在床上一定范围功能。2.2系统基本方案选择及论证2.2.1单片机芯片方案的选择及论证方案一: 使用STC89C52芯片作为硬件核心。STC89C52具备8KB ROM 存储空间,512字节数据存储空间,还带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。方案二:采用AT89S52。AT89S52具备8K字节程序存储空间,256字节的数据存储空间,但没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,而且具有在线编程可擦除技术。两种单片机都完全能够满足设计需要,比较两者,ST
13、C89C52比ATS89C52便宜,且抗干扰能力强。考虑到成本因素,决定选用STC89C52。2.2.2显示模块选择方案和论证方案一:采用点阵式数码管显示。由八行八列的发光二极管组成的点阵式数码管,对于显示文字比较适合,用来显示数字既浪费成本又高,所以不用此种作为显示。方案二:采用LED数码管动态扫描。LED数码管有价格便宜和适合显示数字的优点,但是缺点也很明显,那就是功耗较大,容量不足,所以排除此方案。方案三:采用LCD液晶显示屏。液晶显示屏的显示功能很强,可显示大量文字字符,显示效果清晰,性价比十分突出,1602液晶屏足够使用,所以采用了LCD液晶屏作为显示方案。2.2.3时钟芯片的选择方
14、案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此方案可以减少芯片的使用,节省成本,但是,考虑到这样实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。综合考虑设计的实用性,故采用此方案。2.3电路设计最终方案决定综上各方案所述,STC89C52有价格和抗干扰能力的优势,液晶屏性价比高,DS1302精度高,故对此次作品的方案选定: 采用STC
15、89C52单片机作为主控制系统;采用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位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.1.2 STC89C5
16、2引脚介绍 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/
17、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 DS1302时钟芯片介绍3.2.1 DS1302概述DS1302是一款实时时钟芯片,由美国DALLAS公司推出,具有低功耗却高性能并且带31字节RAM的特点,提供秒、分、时、星期
18、、月和年,一个月小与月大31天时可以自动调整,具备闰年补偿功能,工作电压宽,2.55.5V,双电源供电模式(主电源和备用电源),同时提供对后备电源进行涓细电流充电的能力,采用SPI三线接口与CPU进行同步通信。DS1302如图2所示。图2 DS1302封装图3.2.2 DS1302引脚介绍各引脚功能为:Vcc1: 主电源;Vcc2:备用电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电;当Vcc2Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟输入端,控制数据的输入与输出I/O: 三线接口时的双向数据线 CE: 输入信号,在读、写数据期间必须为高3.2.3 DS13
19、02时钟芯片工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RA
20、M相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。3.2.4 DS1302内部结构图图3 DS1302内部结构图3.3 1602字符液晶介绍3.3.1 1602液晶概述工业字符型液晶,1602代表的意思是显示的内容为16*2,可以同时显示两行各为16个字。市面上常见的1602字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。本课题所用1602液晶模块,显示屏是蓝色背光白色字体,如图6所示。 图4 1602字符液晶3.3.2 1602引脚介绍表2 1602字符液晶引脚说
21、明编号符号引脚说明编号符号引脚说明1GND电源地2VCC电源正极3VO液晶显示对比度调节端4RS数据/命令选择端5R/W读写选择6E使能信号7D0数据口8D1数据口9D2数据口10D3数据口11D4数据口12D5数据口13D6数据口14D7数据口15BLA背光电源正16BLK背光电源负各个引脚具体功能说明:第1脚:GND为地电源。第2脚:VCC接5V正电源。第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个1K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:R/W为读写信号线,
22、高电平时进行读操作,低电平时进行写操作。第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,RWL,D0D7数据,E高脉冲无3.4 热释电红外传感器介绍热释电红外传感器是一种被动式调制型温度敏感器,也称热探测型传感器。可用来直接接收目标物体发射的红外线并将其转换为电压
23、信号输出,且不需要红外发射传感器。热释电红外传感器反应速度快、灵敏度高、准确度高、使用方便,尤其是可以进行非接触式测量。主要应用在各类入侵报警、自动开关、非接触式测温、火焰报警、设备故障的诊断等自动化设施中这种热释电红外传感器能以非接触形式检测出人体辐射的红外线,并将其转变为电压信号,同时,它还能鉴别出运动的生物与其它非生物。热释电红外传感器既可用于防盗报警装置,也可以用于自动控制、接近开关、遥测等领域。用它制作的防盗报警器与目前市场上销售的许多防盗报警器材相比,具有如下特点:(1)不需要用红外线或电磁波等发射源(2)灵敏度高、控制范围大。(3)隐蔽性好,可流动安装。3.4.1热释电红外传感器
24、结构热释电红外传感器由滤光片、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可重复触发和不可重复触发选择端。当A为“1”时,允许重复触发;反之,不可重复触发2VOO控制信号输出端。由VS的上跳前沿触发,使Vo输出从低电平跳变到高电平时视为有效触发。在输出延迟
25、时间Tx之外和无VS的上跳变时,Vo保持低电平状态。3RR1-输出延迟时间Tx的调节端4RC1-输出延迟时间Tx的调节端5RC2-触发封锁时间Ti的调节端6RR2-触发封锁时间Ti的调节端7VSS-工作负端8VRFI参考及复位输入端。通常接VDD,当接“0”时可使定时器复位9VCI触发禁止端。当VcVR时允许触发(VR0.2VDD)10IB-运算放大器偏置电流设置端11VDD-工作电源正端122OUTO第二级运算放大器的输出端132IN-I第二级运算放大器的反相输入端141IN+I第一级运算放大器的同相输入端151IN-I第一级运算放大器的反相输入端161OUTO第一级运算放大器的输出端BIS
26、S0001是由运算放大器、电压比较器、状态、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。内部结构如图7所示。图7 BIS0001内部结构4 系统软硬件设计4.1总体电路设计总体电路包括6个电路模块,按键电路模块、DS1302时钟电路模块、红外感应人体探测模块、LCD显示电路、闹铃电路。整体硬件框架如图8。STCSTC89C52按键模块DS1302时钟模块人体感应探测感模块LCD显示模块闹铃模块图8 硬件框图4.2 STC89C52单片机最小系统最小系统是指能进行正常工作的最简单电路。STC89C52最小应用系统电路如图9所示。保证单片机系统正常运行的最基本三部分电路为:1.电
27、源电路:VCC引脚一般接直流稳压电源+5V,引脚GND接地,或者电源负极,电压范围在4V到5.5V之间。2.时钟电路:芯片引脚18、19外接晶振及电容,晶振的频率决定单片机的工作频率,STC89C52的工作频率在233MHz之间,一般选取12MHz晶振,两个电容一般取值3pF。3.复位电路:一般RST引脚上保持24个工作主频周期的高电平,单片机可完成复位,但是复位电路要使RST保持10ms以上的高电平才能保证系统可靠复位。如图电路中,复位电路具有上电自动复位功能,在正常运行时,按复位按钮也可对单片机复位。除了以上缺一不可的三部分,还包含片内外程序存储器选择电路、输入/输出接口电路。图9 STC
28、89C52最小系统4.3时钟电路设计时钟电路主要由时钟芯片DS1302、备用电池、晶振等几部分组成,备份电源能够使时钟芯片在无主电源供电的情况下继续工作,32.768Hz的外接晶振提供标准的秒脉冲,用户可以根据需要通过单片机的控制来自行设置,接口如图10所示。图10 DS1302时钟电路4.4显示电路设计显示电路由单片机驱动1602液晶屏构成,单片机与1602液晶屏的连接如图11所示,这里需要提到的是,单片机P0.0P0.7口和1602液晶屏的714口接上了10K欧的上拉电阻,提高P0口的驱动能力,稳定信号,如图12所示。图11 1602液晶屏显示电路图12 上拉电阻4.5闹铃电路设计闹铃电路
29、较为简单,主体为蜂鸣器,电路图如图13。图13 蜂鸣器闹铃电路4.6按键电路设计按键电路由四个独立按键组成,如图14。S1连接单片机P1.0口,为时间功能键;S2连接P1.1口,为上调按键;S3连接P1.2口,为下调按键;S4连接P1.3口,为闹铃设置键,详细功能将在软件设计中提到。图14 按键电路4.7人体探测模块设计4.7.1设计思路主要由第三章主要元器件中介绍的热释电红外传感器探头(具体型号LHI778)和红外传感器信号处理芯片组成,当人在检测范围内,菲涅尔透镜可将人体辐射的红外线聚焦到热释电红外探测元上,热释电红外传感器是模块的核心器件,它可以把人体的红外信号转化成电信号,然后进行信号
30、处理。人体探测模块设计思路如图15所示。待测目标热释电红外传感器待测目标热释电红外传感器菲涅尔透镜信号处理及输出图15 人体探测模块设计框图4.7.2电路设计模块总体电路如图16所示,包含带带通滤波电路,及以BISS0001为核心的一级放大电路、二级放大电路、检测电路。当人体辐射的红外线通过菲涅尔透镜被聚焦在热释电红外传感器的探测元上时,电路中的传感器将输出电压信号,然后使该信号先通过一个由C2、R4、R5组成的带通滤波器,进行隔交,限幅,整流。由于热释电红外传感器输出的探测信号电压十分微弱(通常仅有1mV 左右),而且是一个变化的信号,同时菲涅尔透镜的作用又使输出信号电压呈脉冲形式(脉冲电压
31、的频率由被测物体的移动速度决定,通常为0.1Hz-10Hz右),所以应对热释红外传感器输出的电压信号进行放大。经过滤波器的信号输入到BISS0001的14管脚,经过14、15管脚里的运算放大器OP1,一级放大后由16口输出,输出信号由C104、C4、R7进行耦合,其后由13管脚输入,给运算放大器OP2进行二级放大,由12管脚输出。检测电路作用是,当传感器探测到人体辐射的红外线信号并经放大后送给比较器时,若信号幅度超过比较器的上下限,系统将输出高电平信号;无异常情况时则输出低电平信号。由12管脚输出的信号再经由电压比较器COP1和COP2构成的双向鉴幅器、状态控制器处理后,从2端口输出。 图16
32、 人体探测模块电路4.7.3探测模块与单片机接口由于单片机外部中断触发方式只能是低电平或者下降沿,而本文采用的HC-SR501是高电平输出,所以的信号输出端要外接反相器,本设计采用74LS04,接法如图17所示。图17 探测模块引脚连接图4.7.4 HC-SR501热释电人体感应模块介绍为了简化电路,提高集成度,本设计采用的购买的现成HC-SR501热释电人体感应探测模块,基本符合设计电路。引脚如图18所示,实物图如图19所示。其大部分元件采用贴片式,有小巧,集成度高,使用灵活的优点,可基本实现所需功能,并附带其他功能,现介绍如下。(1) 全自动感应:当有人进入其感应范围则输入高电平,人离开感
33、应范围则自动延时关闭高电平。输出低电平。(2) 光敏控制(可选):模块预留有位置,可设置光敏控制,白天或光线强时不感应。光敏控制为可选功能,出厂时未安装光敏电阻。如果需要,可另行购买光敏电阻自己安装。(3) 两种触发方式:L不可重复,H可重复。可跳线选择,默认为H。 A、不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。B、可重复触发方式: 即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的
34、起始点)。(4)具有感应封锁时间(默认设置:0.2秒):感应模块在每一次感应输出后(高电平变为低电平),可以紧跟着设置一个封锁时间,在此时间段内感应器不接收任何感应信号。此功能可以实现(感应输出时间和封锁时间)两者的间隔工作,可应用于间隔探测产品;同时此功能可有效抑制负载切换过程中产生的各种干扰。(5)工作电压范围宽:默认工作电压DC5V至20V(6)微功耗:静态电流65微安,特别适合干电池供电的电器产品。(7)输出高电平信号:可方便与各类电路实现对接。图18 HC-SR501的管脚分布图图19 HC-SR501热释电人体探测模块实物图4.3总体硬件电路原理图综合以上6部分电路模块构成本次设计
35、基于单片机的红外闹钟装置,总体电路如图,为了简化电路,人体感应模块总体硬件图中只体现出HC-SR501模块整体外形和引脚连接,模块具体电路参考图20。图20 总体电路原理图5系统的软件设计5.解释1主程序设计老师,由于板式问题,解释文字在此图后面,放在前面的话图太大只能放于后面一页,会造成此页留白太多。解释老师,由于板式问题,解释文字在此图后面,放在前面的话图太大只能放于后面一页,会造成此页留白太多。显示时间显示时间进入调时模式进入闹钟设置模式将时间写入DS1302读取DS1302中的时间开始初始化LCD、DS1302、定时器判断调时按键是否按下判断闹钟设定键是否按下NYYN闹铃程序图21 主
36、程序设计框图软件设计部分分为两大步组成,首先设计一个较为常见的包含闹钟的万年历程序作为主程序,主要包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序,再以外部中断程序的模式引入红外感应模块的作用。软件设计部分分为两大步组成,首先设计一个较为常见的包含闹钟的万年历程序作为主程序,主要包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序,再以外部中断程序的模式引入红外感应模块的作用。主程序如图21所示,包含初始化程序、按键扫描程序、闹钟设定扫描程序、显示程序、DS1302读写程序、闹铃程序。5.2子程序设计(1)初始化程序
37、为了使各部分各模块正常工作,必须进行相应的初始化,包括液晶屏的初始化、DS1302的初始化、定时器的初始化。(2)显示程序 本设计中的显示程序主要是整个界面时间日期闹钟的实时显示,分两行显示,第一行显示年月日周和闹铃标示,第二行显示实时时间时分秒和闹铃设置时间时分,再有设置调整时的写入显示。(3)DS1302读写程序 DS1302的读写,需要有读写操作的开启和禁止,时间日期星期的读写,BCD和十进制的互相转换。(4)按键扫描程序 当系统检测到按键S1被按下时,转到相应程序处理,第一次按下S1,定时器关闭,秒闪烁,S2为上调按键,S3为下调按键,第二次按下S1,分闪烁,S2、S3作用如前,如上所
38、述S1依次按下实现秒分时周日月年的调节,S2、S3作为调节按键,第八次按下S1,定时器开启,回到主程序。(5)闹钟设定扫描程序S4为闹钟功能键,S4第一次按下,定时器中断关闭,闹钟标志作位为0;S4第二次按下,闹钟时闪烁,S2、S3实现上下调功能;S4第三次按下,闹钟分闪烁,可用S2、S3进行调节;S4第四次按下,闹钟标志位为1,定时器中断开启,回到主程序。(6)闹铃程序先判断闹钟标志位是否为1,否则闹铃不响,是则判断是否到闹点及在闹点后十分钟之内,否则不响,是则判断外部中断是否触发,否则不响,是则闹铃响。(7)外部中断程序本设计的主要部分闹钟与人体红外感应模块的结合处就在于外部中断的引入。能
39、处理中断的功能部件被称为中断系统,能产生中断请求的源被称为中断源,80C51单片机有5个中断源,两个外部中断,两个定时中断,和一个串行中断,要使用此类中断,要先开总中断(总中断允许位EA=1)。外部中断由P3.2(INT0)或者P3.3(INT1)端口线引入,可设置为低电平有效或者下降沿有效。下降沿触发方式,当高电平向低电平转变时,触发产生,不论低电平持续多久都只会产生一次,所以,下降沿触发适合以负脉冲形式输入的外部中断请求;低电平触发方式,在低电平时间段内中断一直有效,这就是说在电平没有恢复之前中断程序就已经执行完成而退出,那会在退出之后又再次进入中断,本设计中要实现持续触发响铃,所以选择低
40、电平触发这种适合于外部中断以低电平输入的方式,接P3.2口,INT0外部中断引入,IT0=1,外部中断程序主要设置标志位,为闹铃程序所调用。6系统调试本次设计调试过程主要是在普中HC6800开发实验板上进行,实验板上硬件资源较为丰富,包含了STC89C52单片机、按键模块,蜂鸣器,DS1302时钟芯片,只需另外购置1602液晶显示屏,红外传感模块,反相器,摇摆器。6.1硬件调试该设计硬件部分并不十分复杂,首先按照复位电路,液晶显示,按键输入,蜂鸣器,DS1302电路,热释电红外传感模块的顺序进行分立调试,除了液晶显示和红外传感模块的调试,其他基本顺利,当然最终这两个模块也调试完成。6.1.1
41、1602液晶屏的调试编写了一段简单的程序在液晶屏上显示一段文字来调试液晶屏,插上开发板,液晶屏背光亮,但是屏幕无任何显示,转动开饭板上的滑动变阻器旋钮调节无效,怀疑是液晶屏损坏,或者排针太短接触不良,欲重新购买,后经耐心继续尝试,发现是由于旋动速度过快,需要慢慢调节才能调好对比度。6.1.2 红外传感模块调试本次设计为简化各模块,使用的红外传感模块应该为低电平输出,但是由于知识的欠缺和粗心,购置了高电平输出的模块HC-SR501。为了节省成本,决定再加入反相器,所以调试也是用所购置的高电平输出模块加上反相器。开发板上有电源和接地的接口,也有8路LED灯模块,所以只要将传感模块加上反相器接上一路
42、LED灯低电平输入端,电源和地接好,就可调试,理想状态下是感应范围内有人,传感模块输出高电平经过反相器转换成低电平,此时LED灯亮,感应范围内无人,则现象相反。可是在实际调试过程中发现,热释电红外传感器对静止人体敏感度不高,当人体在感应范围内处于准静止状态时,LED灯也是会熄灭的。一番调试,查找提高敏感度的办法,始终没办法达到理想状态,一度想更换成主动式的红外传感模块,后来咨询老师,老师发了一份包含了主动式红外传感器和被动式红外传感器的资料给我,里面提到了改善热释电红外传感器的方法,就是利用周期性的遮光来改善,于是我尝试用条状物体在传感器前晃动,发现可行,在有周期遮光的情况下,即使人体静止,L
43、ED灯也能亮着,于是决定加入独立的周期遮光装置,为了简化过程,就使用摇摆器来进行周期性遮光,实验结果基本达到目的要求。6.2软件调试在编程前画了流程框图以便顺利编程各程序结合,思路较为清晰,能够按部就班进行调试。在未加入感应探测模块外部中断前,先对万年历闹钟进行调试,发现两个问题:(1)读取时间时出现部分显示乱码。 开始以为是液晶屏位置显示指令有问题,或者是读写操作有错误,检查并且参考其他相关论文程序附录,修改调试,没有解决问题,再仔细查看,发现程序设置中,部分使用char和uchar ,部分使用int定义,全部改作uchar定义后解决问题。(2)按键过于敏感不准确。调试按键设置,按一次却出现
44、按几次的效果,查阅资料参考相关程序,发现需要按键防抖。当我们按下按键时,不论速度有多快,都是接触断开接触断开的过程,可靠接触的前面10至20毫秒就是抖动状态,是不稳定状态,抬起手指时也是如此。有此可见要正确获取一次按键的信息,就要虑除前后的两段抖动时间,以免计数错误。按键防抖有硬件方法和软件方法,硬件方法里电容滤波法、触发器法、中断法都不易实现,所以选择软件方法,加入延时程序,并在按键扫描程序里调用,20ms延时去抖,基本解决问题。6.3系统联调首先上电,直接显示界面如图22,未调节按动闹钟设置键,无显示闹铃标志。图22如图23,按K1进入时间设置状态,按的次数不同光标显示的位置不同,从而进行
45、年、月、日、时、分、秒、的调整,按第8次时退出,按K2时间上调,K3时间下调。图图23如图24,按K4进入闹钟调整状态,按一次关定时器,时间停止显示走动,闹钟标志位显示0,按第二次光标显示在闹铃时位置,此时可按K2、K3进行闹钟时调节,当按三次光标显示在闹铃分位置,从而可使用K2、K3进行分的调整,按第四次闹钟标志位显示1,退出调整状态,开定时器,时间显示走动。图24整体功能调试,为了直观显示闹铃,使用LED灯代替,LED灯亮表示闹铃响,LED灯灭表示闹铃不响。首先设置闹钟时间,程序默认设置为闹铃时间后10分钟内处于闹铃可触发状态。如图25,先不加入周期遮光装置摇摆器,人体静止,闹铃不响(LE
46、D灯灭);如图26,加入周期遮光装置摇摆器,人体存在范围内,即使静止,闹铃也响(LED灯亮);如图27,人体不存在范围内则不响(LED灯不亮),调试成功。图25图26图27参考文献:1 张孝霖.红外技术应用:光电光子器件及传感器M.化学工业出版社,2004.2 付少波,付兰芳.传感器及其应用电路M.化学工业出版社,2011.3 郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略M.电子工业出版社,2011.4 杨天怡,黄勒.单片机原理及应用M.清华大学出版社,2010.5 张洪润,吕泉传.感器应用设计300例M.北京航空航天大学出版社,2008.6 高戈.热释电红外线防盗报警器的
47、研制J.信息科技,2010(12).381-382.7 卿太全.热释电人体红外传感器原理与应用J.电子世界,1995(10).23-26.致谢大学四年的学习生活时光已经接近尾声了,在此,我向母校,向父母亲人、老师同学们表达我由衷的谢意。感谢母校广州大学松田学院给了我大学四年深造的机会,让我得以学习和提高;感谢家人对我四年以来的支持和关心,我的成长离不开你们的支持;感谢学校里各位老师领导的教导指引与帮助,希望我以后能不辜负你们的期望,成为一个成功的人;感谢那些陪我度过四年生活的同学,我们互相关心,互相学习的日子太过难忘,我们之间的情谊是生命中缤纷的色彩。这次毕业设计得到了许多老师和同学的帮助,特
48、别是廖老师耐心的指导,对我提出的疑问悉心一一解答,还有就是几位给予我建议和提供元器件的同学。我再次真诚地向帮助过我的老师和同学表示感谢! 附录源程序#include#include #define uint unsigned int#define uchar unsigned charsbit CLK_1302 = P36;/时钟sbit DAT_1302 = P34;/数据sbit RST_1302 = P35;/ DS1302复位sbit LCD_RS = P26; /液晶控制端 sbit LCD_RW = P25;sbit LCD_EP = P27;sbit LED = P15;/与蜂鸣
49、器同一功能,替代蜂鸣器sbit settime = P10;/时间功能键,选择时分秒年月日和星期的 sbit key_add = P11;/加1键 sbit key_dec = P12;/减1键sbit setalarm = P13;/闹钟功能键,选择开关闹钟和时分的写入sbit ACC0 = ACC0; sbit ACC7 = ACC7;uchar second,minute,hour,week,day,month,year,alarmhour=0,alarmminute=0;/时间和闹钟等的变量uchar settimemode=0,setalarmmode=3;/时间和闹钟的功能选择标志
50、uchar alarmflag=0; /闹钟开关的标志位uchar code tab1 = 20 - - ;/液晶第一行默认显示数据uchar code tab2 = : : 00:00;/液晶第二行默认显示数据uchar code tab4 = MonTueWedThuFriSatSun;/星期的列表/*/* 函数声明 */*/uchar bcd_dec(uchar bcd); /BCD码转十进制uchar dec_bcd(uchar dec); /十进制转BCD码void delay(uchar ms); /延时函数void lcd_init();/液晶初始化void write_1602
51、_wcmd(uchar com); /液晶写入指令函数void write_1602_wdat(uchar dat);/液晶写入数据函数void write_hms(uchar address,uchar dat);/1602写时分秒void write_ymd(uchar address,uchar dat);/1602写年月日void write_week(uchar num);/1602写星期函数void init_1302();/1302初始化void write_1302_byte(uchar dat);/1302字节写uchar read_1302_byte();/1302字节读v
52、oid write_1302(uchar address,uchar dat);/1302地址写uchar read_1302(uchar address);/1302地址读void timer0_init();/定时器0初始化void keyscan();/按键扫描子程序void set_alarm();/闹钟设定扫描函数void alarm();/报时和闹钟函数uchar Eflag=0;uchar flag=0;/*/* 主函数 */*/void main()lcd_init(); /液晶初始化init_1302(); /1302初始化timer0_init(); /定时器0初始化whi
53、le(1)keyscan(); /扫描按键set_alarm(); /扫描设定键alarm(); /闹时/* INT0中断函数 */void counter0(void) interrupt 0 Eflag=1;/*/* BCD转十进制 */*/uchar bcd_dec(uchar bcd)uchar decimal;decimal = bcd/16*10 + bcd%16;/高4位移到低4位return(decimal);/原高4位数据*10+低4位/*/* 十进制转BCD */*/uchar dec_bcd(uchar decimal)uchar bcd;bcd = (decimal)/
54、10*16 + (decimal)%10;return(bcd);/*/* 延时函数 */*/void delay(uchar ms)uint i,j;for(i=ms;i0;i-)for(j=150;j0;j-);/*/* LCD初始化设定 */*/void lcd_init() uchar i;write_1602_wcmd(0 x38); /16*2显示,5*7点阵,8位数据write_1602_wcmd(0 x0c); /显示开,关光标write_1602_wcmd(0 x06); /移动光标write_1602_wcmd(0 x01); /清除LCD的显示内容write_1602_w
55、cmd(0 x80);/第一行字符写入的位置for(i=0;i11;i+)write_1602_wdat(tab1i);write_1602_wcmd(0 xc1);/第二行字符写入的位置for(i=0;i14;i+)write_1602_wdat(tab2i);/*/* 写指令到LCD */*/void write_1602_wcmd(uchar com)LCD_RS = 0;/置为写入命令,低为写指令LCD_RW = 0;P0 = com;/送入数据delay(1);LCD_EP = 1;/拉高使能端delay(1);LCD_EP = 0;/完成高脉冲,传入数据到LCD/*/* 写数据到L
56、CD */*/void write_1602_wdat(uchar dat)LCD_RS = 1; /置为写入数据,高为写数据LCD_RW = 0;P0 = dat; /送入数据delay(1);LCD_EP = 1; /拉高使能端delay(1);LCD_EP = 0; /完成高脉冲,传入数据到LCD/*/* 写时分秒到LCD */*/void write_hms(uchar address,uchar dat)uchar gw,sw;gw = dat%10;/分出个位数据sw = dat/10;/分出十位数据write_1602_wcmd(0 xc0+address);/在第二行对应位置显
57、示write_1602_wdat(0 x30+sw);write_1602_wdat(0 x30+gw);/*/* 写年月日到LCD */*/void write_ymd(uchar address,uchar dat)uchar gw,sw;gw = dat%10;/分出个位数据sw = dat/10;/分出十位数据write_1602_wcmd(0 x80+address);/在第一行对应位置显示write_1602_wdat(0 x30+sw);write_1602_wdat(0 x30+gw);/*/* 写星期到LCD */*/void write_week(uchar num)uch
58、ar i;write_1602_wcmd(0 x80+0 x0b);/在第一行0 x0B位置显示num = 3*(num-1);/由于读出的星期从17,所以需减一for(i=0;i0;i-) /循环8次 写入数据DAT_1302 = ACC0; /先传送数据低位CLK_1302 = 0; /上升沿输入数据CLK_1302 = 1;ACC = ACC1; /右移一位/*/* 读1302的一个字节 */*/uchar read_1302_byte()uchar i;RST_1302 = 1; /启动读写操作for(i=8;i0;i-)ACC7 = DAT_1302; /先读入数据低位CLK_130
59、2 = 1;CLK_1302 = 0; /下降沿输出数据ACC = ACC1; /右移一位return ACC;/*/* 写入1302时间 */*/void write_1302(uchar address,uchar dat)RST_1302 = 0;CLK_1302 = 0;RST_1302 = 1; /启动读写操作write_1302_byte(address); /写地址write_1302_byte(dat); /写数据CLK_1302 = 1;RST_1302 = 0; /禁止读写操作/*/* 读出1302时间 */*/uchar read_1302(uchar address)u
60、char temp;RST_1302 = 0;CLK_1302 = 0;RST_1302 = 1; /启动读写操作write_1302_byte(address); /写地址temp=read_1302_byte(); /读数据CLK_1302 = 1;RST_1302 = 0; /禁止读写操作return temp;/*/* 1302初始化设定 */*/void init_1302()RST_1302 = 0;/禁止读写操作CLK_1302 = 0;/时钟为低write_1302(0 x80,0 x00);/允许写write_1302(0 x8a,7);/?/*/* 定时器0初始化 */*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【2025考研】全国统考数学三期中试卷(提分冲刺卷)
- 2022年全国统考数学三押题卷(含答案详解)
- 河南省焦作市山阳区2027届数学三年级第一学期期末教学质量检测试题含解析
- 乡镇村官考试题及答案
- 数学二考点精练(2024考研全国统考·历年真题分类汇编)
- 乡村工匠考试题及答案
- 肺栓塞的考试题目及答案
- 东营驾考试题及答案
- 关于水表考试题及答案
- 小学民法考试题及答案
- 2025年音响调音师岗位招聘面试参考题库及参考答案
- 2025年海南导游证试题及答案
- 嵌入式软件开发流程标准化操作规程
- (新教材)2025-2026学年湘美版(2024)美术一年级上册全册教案(教学设计)
- 南沙事业编面试题及答案
- 汽车理论(第6版)全套课件
- 2025年图像处理工程师备考题库及答案解析
- 聚脲注浆液简易施工方案
- 《机械基础(第七版)》课件(上)
- 厨房食品安全知识培训课件
- 2025年高中语文必修上第一单元“青春的价值”议论文素材积累
评论
0/150
提交评论