1、 摘 要现如今单片机系统已经普遍于我们的生活,电磁炉、微波炉、冰箱、空调等,凡是有控制面板和遥控器的基本上都内嵌有单片机模块。而时间控制器是应用于民用、军用一种非常常见的控制模块,小到家电,大道大型机械,甚至军用设备都有它的身影。时间控制器常用于作息控制,比如上课下课的闹铃,控制生产机械的定时开与关,这就是可编程时间控制器应用广泛的地方。可编程控制器是一种全天候可以不用人在旁边驻守的一种自动控制的模块,它可以大大节省人力、物力以及时间,可以大大的提升工作效率可以减少不必要的工作。时间控制器可以用于每天分时段的设备开与关,以及当前日历与时间的显示。时间控制器大多都是稳定性强,精度较高,具有不错的
2、抗干扰性,可以在严酷条件下工作,可以嵌入到定时采集信息的仪器中去。本文所设计的时间控制器可以精确定时20个时间的控制以及显示日历时间温度等信息,还可以显示下个控制时刻,以及通过按键改变时间控制的时间和拥有倒计时功能。时间控制器可以应用于自动化生产线,提高生产效率,减少控制的大量重复性劳动,本文是对时间控制器整个设计工作的较全面的介绍及总结。关键词:时间控制器;控制;定时;输入输出ABSTRACTNowadays SCM system has been common in our life, such as induction cooker, microwave oven, refrigerat
3、or, air conditioner, those who have a control panel and remote control of basically with embedded MCU module. And time controller is a kind of very common used in civilian and military control module, small to home appliance, avenue large machines, and even military equipment has its shadow.Class ti
4、me controller used to schedule control, such as a class of alarm, control in the production of mechanical timing on and off, this is the place where time programmable controller is used widely. Programmable controller is a kind of all-weather can not beside of choose and employ persons stationed a k
5、ind of automatic control module, it can greatly save manpower, material resources and time, can greatly improve the work efficiency can reduce unnecessary work.Time controller can be used in every period of time of the equipment on and off, and the current calendar and time display. Most of time con
6、troller are strong stability, high precision, has a good anti-jamming, can work under harsh conditions, can be embedded into timing instrument of gathering information.In this paper, the designed controller can precise timing 20 time information such as the temperature control and display the calend
7、ar time, can also display the next moment control, and by the time of key change control and has a countdown function.Time controller can be used in the automatic production line, improve the production efficiency, reduce the control of a large number of repetitive work, this article is to time cont
8、roller is relatively comprehensive introduction and summary of the whole design work.Key words: time controller;control; timing; input and output目 录第一章 绪论11.1时间控制器在国内外发展概况11.2时间控制器应用情况及意义21.3时间控制器的主要功能2第二章 整体方案设计及主要芯片选择32.1时间控制器设计要求32.2总体设计思路32.3时间控制器工作原理52.4硬件方案的选择和论证62.4.1单片机的选择62.4.2时钟芯片的选择72.4.3
9、 显示模块选择82.5选择芯片介绍92.5.1 STC12C5A60S2芯片介绍92.5.2 DS12887芯片介绍122.5.4键盘扫描模块15第三章 系统硬件电路设计163.1时钟扩展电路设计163.2 显示模块电路设计173.3蜂鸣器报警模块183.4按键扫描电路19第四章 系统软件设计204.1主程序设计204.2中断程序设计224.3键盘子程序设计224.4时钟程序的设计22第五章 调试与结论27总 结28致 谢30参考文献32附 录33第一章 绪论 第一章 绪论1.1时间控制器在国内外发展概况时间控制器是一种能够根据预先设定好的时间或者时序来控制电路的接通或者断开,也就是控制电源电
10、器的开关装置。甚至还有不少的时间控制器具有可编程和循环功能,常用来控制路灯,广告牌等外设电器或家用电器。时间控制器通过对于特定时间的设定根据实时时钟时间提供各种应用,如:报警、上电、掉电等操作。开发时间控制器可以应用于各大行业,如医疗、电子、建筑控制等,可以在不用人监控的条件下,由预先设置好的数据,进行采集、分析、反应。可以记录参数,还可以作为特定时间运行特定程序,可以达到预想效果。时间控制器广泛使用于各种诸如设备老化的试验、实验室设备控制、时间控制豆芽发芽机和学校以及政府机关定时打铃、喷泉、外部照明、空调变频节能控制、环保设备控制(诸如废水水处理设备)、静电喷粉以及各大医疗设备。国内外现在已
11、经有了很多同类型的产品,可以基本上覆盖了,生产、工作、学习等等各个方面。国内做的时间控制器大多都是小型的精度稍差的时间控制器,诸如控制路灯照明的时间控制器以及小家电的时钟控制模块,但即便是最简单的路灯照明时间控制器有的还具有天文钟功能,能够根据不同地区的经纬度调整日历和时间计数,让控制更加人性化合理化减少误差的出现,但国内也有很有竞争力的企业开发出了比较强大功能的时间控制器能够控制实验室设备和大型医疗设备和数控机床。虽然国内经济的飞速发展和微电子行业的欣欣向荣与国外经济危机形成鲜明对比,但国外发展的自动化智能化远远比国内要好的多,首先中国电子半导体落后国外很长时间,而且国外的专利壁垒有如铁桶般
12、,虽然诸如德州仪器仙童公司等老牌半导体工艺的大型企业辉煌不再,但是新兴其他公司诸如三星,索尼等还有老牌传统电子业公司西门子等依然掌握这先进的技术。国外可以通过机器自动化节省大量劳动力和解放生产力,把某些繁重的监控工作交给电脑,通过编程把机器运行步骤控制好,可以快速自动化生产。虽然我国大型企业已经应用这种模式,但是很多中小型企业还是传统手工制作,这个是我们要好好学习的。1.2时间控制器应用情况及意义时间控制器现在已经是一种发展比较成熟的控制模块,由于其廉价,精度高,抗干扰能力强,可以在比较严酷条件下工作,而且提前设定好了就可以定时工作,可以节省不少时间、精力以及不必要的劳动力。时间控制器可以嵌入
13、到整个系统里,也可以单独使用,单独使用可以用在比较简单的系统中,比如学校的上下课铃,整体楼层的断电、上电以及对智能家居里手动设置开关可以相对廉价。嵌入到整体中就可以用作各种大型生产机械,可以设定时序时间控制,以及各种家电的定时设置。时间控制器已经充斥在我们的生产生活中,我们已经习惯了拥有这种快捷便利的“小玩意”,它可以让我们的生活更加简单,在这个快节奏的社会,简单快捷是产品的主要思路,而我们通过机器节省人力,让我们的生活更加便捷,让我们的生活更加美好,这就是人们开发各种机器的意义。1.3时间控制器的主要功能时间控制器大多采用液晶显示年、月、日、时、分,一般都带有背光,可以方便在夜间观察和操作。
14、且具有断电数据保存功能,在此期间时钟可以不间断工作,而且无需更换电池,能够维持时钟运行十年以上。具有路数选择功能,可方便的设置为多路控制也可独立单独控制每一输出回路。采用的微处理芯片可靠性高、误差小、稳定性强。很多时间控制器自带继电器,能够接通220V以及380V电压的工作环境,能够形成时间定时控制、顺序控制、自定义控制、参数设定控制、倒计时控制以及对于整体监控反馈的控制。虽然开发的大大小小时间控制器端口,核心,功能种种不同,但是不同种的时间控制器给我们带来不同的选择,毕竟在生产上和在开发中是两个概念,生产上是从成本上和功能应用上够用了就行,开发当然是功能越强大越好、功能越多越好,所以各种不同
15、的时间控制器对应了不同的适用群体,达到市场本身的选择。所以在大家选择时间控制器这一部分,当然是选择合适自己的是最好的。15第二章 时间控制器系统整体方案设计及主要芯片选择第二章 整体方案设计及主要芯片选择2.1时间控制器设计要求本时间控制器是由单片机、时钟芯片、按键扫描电路、温度传感器、报警装置以及液晶显示器构成的一个小型单片机系统。本时间控制器是一个微机时间控制器,采用液晶显示。能够显示日期、时间;同时具有定时功能,能够设定20个定时时间,在定时时间到时产生控制信号输出(可用于学校、单位等的铃音控制);同时具有倒计时功能,计时时间范围为:几秒几小时,计时时间到时产生控制输出;具有温度显示功能
16、;显示器件同时显示当前的时间信息、下一个定时时刻或倒计时剩余时间等信息。通过按键可设定定时时间和计时时间,并保证相关信息在掉电时不丢失。2.2总体设计思路(1)系统核心是8051单片机,主要功能需要时钟芯片来实现,通过液晶显示来观察系统的成果。(2)以单片机P0口为I/O口与时钟芯片和显示芯片互连,作为数据总线。(3)时钟芯片有非易失性内存空间来存储需要储存的信息。(4)时钟内部有闹钟,通过闹钟来达到想要的功能。所以有了以下设计的思路:显示模块写入读出单片机报警模块中断报警按键电路读出写入时钟模块图2-1 总体设计思路图显示模块:以液晶屏为主的模块,有能够调节背景灯的亮度的电位器。能够接收从单
17、片机写入的数据,以及反馈给单片机显示模块内存储的信息。8051单片机:作为整个系统的核心,能够统筹整个系统,把信息接收,信息处理,并且把信息反馈到相应的模块中去。时钟模块:整个系统的第二大核心,整个时间控制器就是围绕时钟模块开发的,充分利用了时钟模块的,计时,闹钟,非易失性内存等功能。按键扫描电路:通过键值反馈达到软件控制系统的功能。报警模块:这里用蜂鸣器代替了其他工具,把时间控制器表现为一个闹铃的形式,简化了电路,并且增强了表现的形式。2.3时间控制器工作原理本设计的主要功能依靠时钟芯片DS12887来实现,包括时钟、输出报警中断、存储信息以及倒计时都需要时钟芯片的功能。DS12887具有秒
18、刷新功能,即一秒刷新一次,通俗的来说就是秒刷新后时钟秒位往前进一,而且液晶屏幕刷新一次,由此可以实现DS12887通过LCD1602来显示时钟的功能。而且DS12887片内地址单元如下:地址单元 用途 取值范围(BCD码)地址00H 秒 00-59地址01H 秒闹 00-59地址02H 分 00-59地址03H 分闹 00-59地址04H 时 12小时制01-12 AM 81-92 PM24小时制 0-23地址05H 时闹 12小时制01-12 AM 81-92 PM24小时制 0-23由此表可以看出,DS12887除了片内地址能够存储时钟信息,还能够存储一个闹钟信息,此闹钟分别是秒闹地址01
19、H、分闹地址02H以及时闹地址05H,由于本设计采用的是24小时制,所以不考虑AM以及PM的问题,秒闹是秒刷新一次的中断,也就是说通过对比秒闹时钟存储的信息与实时时钟秒单元的信息通过对比,如果一致则发生中断;分闹则是每分钟刷新一次,原理和秒闹一致,同样会发生中断;时闹则是每个小时刷新一次,原理与秒闹一致,也同样会发生中断。如果秒闹、分闹以及时闹分别与实时时钟的秒、分、时一致时,将会发出中断信号,产生报警输出,这就是DS12887自带时钟闹铃的原理。倒计时功能通过秒刷新,通过程序让已存储的信息自减一,如果时、分、秒到达00时产生报警信号。按键功能,通过不同键值,定义功能键,标志位键,自加一键,自
20、减一键,通过这些来修改和输入数据。2.4硬件方案的选择和论证2.4.1单片机的选择单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、程序存储器RAM、只读存储器ROM、通讯用的I/O口和中断系统、定时器/计数器等功能有的还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成到一块硅片上构成的一个小而完善的微型计算机系统16。可以选择的单片机有:(1)STC单片机STC公司的单片机主要是基于传统8051单片机内核开发的新一代增强型单片机,其指令代码完全兼容传统805112,其运算比传统8051单片机速度快近812倍,它自带ADC,4路PW
21、M,双串口,而且拥有全球唯一ID号,烧录程序后可以自加密,可以很好地保护开发人的知识产权,抗干扰能力强,可以在严酷条件下工作。(2)PIC单片机:MICROCHIP公司生产的产品是其突出的特点是体积小,功耗低,精简指令集,抗干扰,可靠性高,强大的模拟接口,代码保密,并最有自己的兼容芯片片内FLASH程序存储器12。(3)EMC单片机:台湾义隆公司的产品,有很大一部分是与PIC 8位微控制器和兼容的产品比PIC兼容的资源相对要多,也有很多系列可选,但抗干扰能力比起其他单片机略差12。(4)ATMEL单片机:ATMEL公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash单片机
22、,与传统的8051系列单片机相兼容,采用静态时钟模式;AT90系列单片机是增强RISC结构、采用全静态工作并且其内载在线可编程Flash的单片机,通畅我们叫它AVR单片机12。(5)PHLIPIS 51LPC系列单片机:Philips公司的80C51单片机为核心的单片机,嵌入式掉电检测,模拟和片内RC振荡器等功能,这使得51LPC成为具有一个高度集成,低成本,低功耗的应用范围广泛性能要求的单片机12。(6)盛群单片机:台湾盛群半导体微控制器,价格便宜,种类较多,抗干扰能力弱,适用于消费类产品12。(7)TI的微控制器:德州仪器提供两个系列的通用单片机分别是TMS370与MSP430。TMS37
23、0系列的都是8位CMOS单片机,其具有多种存储模式,多种外围接口模式可以在复杂的实时控制中应用; 。MSP430系列单片机是一种超低功耗且具有较高功能集成的低功耗16位单片机,其特别适用于各种要求低功耗的特殊场合12。方案一:采用AT89C51单片机,AT89C51单片机是Flash ROM,能够在3V电压下工作,拥有4KB的ROM,与传统8051系列单片机相兼容,但由于其不具备ISP在线编辑功能,所以此方案作废。方案二:采用AT89C52单片机,相对于以往很多设计都是针对89C52单片机的,89C52有89C51的全部功能,并且增加了4KROM达到8K Flash ROM,而且具备ISP在线
24、编辑功能,但相对于STC的芯片性价比不如STC。方案三:采用STC12C5A60S2单片机,片上集成1280字节ROM,具备ISP在线编辑功能,而且运行速度更加快速,功能更加强大,可以一管脚多用,而且相对廉价和普及所以最后考虑采用的STC芯片。2.4.2时钟芯片的选择方案一:采用单片机内部时钟和外部晶振,虽然也能够计时,能够实现,而且能够节省配件,但是对于单片机增加它的负担,而且通过外部晶振和单片机构成的计时,有很大的误差,所以本设计要求精准一点的时钟,所以不考虑此方案。方案二:采用DS1302时钟芯片,DS1302可以对时、分、秒、日、月、年、星期计时,有31*8的RAM,但是掉电丢失,得外
25、接锂电,而且DS1302时钟还得加上外部晶振。对于时钟芯片很多人都采用DS1302这款芯片,但DS1302的时钟精度不是很高,比较容易受到环境影响,有可能出现时钟发生错误数据等缺点。而且DS1302相对于DS12887不是很精准,所以不考虑用DS1302。方案三:采用DS12887时钟芯片,DS12887同样可以对时、分、秒、日、月、年、星期计时,并且内部有有一个对应的时分秒闹铃的地址,如果实时时钟和闹铃时间一致,就会准点输出中断信号,形成报警信号。而且DS12887由于内部内置锂电,所以掉电后内存中的信息不会丢失,并且有114字节的存储空间,可以把需要记录的信息存储在DS12887里,所以本
26、设计中采用DS12887时钟芯片。2.4.3 显示模块选择方案一:采用数码管显示,由于任务要求是液晶屏,所以不做考虑。方案二:采用LCD1602,由于是16X2的显示空间,可以显示足够的时间信息(时、分、秒、日、月、年、星期)以及温度信息。由于液晶屏幕随时刷新,可以做出翻页,改变光标信息等效果。而且相对于别的屏幕,1602相对于廉价,而且做本设计足够用了,所以本设计选得是1602。方案三:采用LCD12864,12864是128X64点阵汉字模块,内置中文字库,64X256显示RAM,与1602同样是8位并或串链接,具有光标移位,画面位移,睡眠模式,甚至可以弄出各种图像来,但是1602足够用了
27、,而且12864价格相对昂贵,所以本方案放弃。2.3最终硬件选择的结果8051单片机本设计采用的是STC12C5A60S2,这款芯片比起传统8051芯片,多了很多功能,运行速度也快了很多,而且这款芯片价格便宜可以说是物美价廉。时钟芯片采用的DS12887芯片。报警模块就是一个蜂鸣器,给予低电平时候发声,高电平静止,可以明显起到报警并观察输出的效果。按键扫描模块,由于采用的是开发板,所以使用的4X4的扫描键盘,而不是几个独立按键。2.5选择芯片介绍2.5.1 STC12C5A60S2芯片介绍STC12C5A60S2/AD/PWM STC系列单片机是由宏晶科技生产的单时钟/机器周期(1T)生产的,
28、8051是新一代高速/低功耗/超强抗干扰能力强,并与传统的指令代码8051完全兼容,但速度快8-12倍。 MAX810集成了一个专用的内部复位电路,两路PWM,8路10高速A/ D转换器(250K/ S),用于电机控制,强干扰的场合10。图2-4 STC12C5A60S2芯片引脚图STC12C5A60S2有以下特点:1.STC12C5A60S2是增强型8051 CPU,1T,具有单时钟/机器周期,其指令代码完全兼容传统805110。2.STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)。3.STC12C5A60S2的工作频率范围:0 - 35MHz,相当于普通8051的 0
29、420MHz。4.STC12C5A60S2的用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节。5.STC12C5A60S2片上集成有1280字节RAM。6.STC12C5A60S2通用I / O口(36/40/44个),复位后为:准双向口/弱上拉(8051传统的通用I / O端口),可以设置为四种模式:准双向口/弱上拉,推/拉力强,只有输入/高阻,开漏每个I/ O口的驱动能力可以达到20mA,但整个不超过最大芯片55mA10。7. ISP(在系统可编程)/IAP(在应用可编程),可通过串口(P3.0/P3.1)直接下载用户程
30、序,数秒便可以下载完毕10。8.STC12C5A62S2有EEPROM功能。9. STC12C5A62S2有看门狗功能。10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)10。11.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz15.5MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准10。12.共4个16位定时器 两个与通用8051兼容的定时器/计数器,16
31、位定时器T0和T1,没有定时器2,有独立波特率发生器可以用做串行通讯的波特率发生器,如果再加上2路PCA模块可以又实现2个16位定时器10。13. STC12C5A62S2具有2个时钟输出口,如果T0的溢出则在P3.4/T0口输出时钟,如果T1的溢出则在P3.5/T1口输出时钟。14.STC12C5A62S2外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP
32、1/P1.4 (也可通过寄存器设置到P4.3)。15. PWM(2路)/PCA(可编程计数器阵列,2路):PWM(2路)/PCA可用来当2路D/A使用,可以用来实现2个定时器,以及可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)10。16.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)10。17.通用全双工异步串行口(UART),可再用定时器或PCA软件实现多串口10。18. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)
33、。表2-1 STC12C5A60S2管脚说明管脚管脚说明P0.0-P0.7P0口既可以作输入输出口,也可作地址/数据复用总线使用。P0作为输入输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线A0A7,数据线的D0D71。P1.0-P1.7P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收10。P2.0-P2.7P2口是一
34、个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址P3.0-P3.7P3口是一个带内部上拉电阻的8位双向I/O口P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR (外部数据存储器写选通)P3.7 RD (外部数据存储器读选通)VCC供电电压GND接地RST复位输入ALE / PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期
35、间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效10。PSEN外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现管脚管脚说明EA/VPP当EA保持低电平时,访问
36、外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)10。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入XTAL2来自反向振荡器的输出2.5.2 DS12887芯片介绍DS12887是美国达拉斯半导体公司推出的时钟芯片,使用COMS工艺制造,把外部晶振和外部锂电内嵌在时钟芯片内部,DS12887时钟芯片具有耗损低,时钟稳定,精度高,抗干扰能力强等优点,广泛应用于需要高精度时钟的各个仪器仪表中。主要功能如下:(1) 内部有时、分、秒、日、月、年寄存器并且能够保存星期和具有闰年补偿功能
37、(2) 由于内置锂电,所以寄存器里的信息都是非易失性的,包括时间、闹钟、A寄存器、B寄存器、C寄存器、D寄存器以及0EH7EH不掉电RAM区共114字节(3) 可以选择12小时制和24小时制,12小时分AM和PM,以及具有夏时令功能。(4) DS12887具有3个中断源在管脚输出,分别是周期中断、报警中断、更新结束中断。寄存器B控制是否容许中断,寄存器C读取是否已发生中断。(5) 可编程方波信号输出图2-5 DS12887芯片引脚图表2-2 DS12887的地址单元地址单元 用途 取值范围(BCD码)地址00H 秒 00-59地址01H 秒闹 00-59地址02H 分 00-59地址03H 分
38、闹 00-59地址04H 时 12小时制01-12 AM 81-92 PM24小时制 0-23地址05H 时闹 12小时制01-12 AM 81-92 PM24小时制 0-23地址06H 星期 01-07地址07H 日 01-31地址08H 月01-12地址09H 年 00-99地址0AH 寄存器A 地址0BH 寄存器B 地址0CH 寄存器C 地址0CH 寄存器D 地址0EH7EH 不掉电RAM区,共114字节 2.5.3 显示模块1602介绍工业字符液晶显示屏,能同时显示16x2即32个字符(16列2行的英文大小写字母和阿拉伯数字)1602也称为字符液晶显示屏,它是专门为字母,数字,符号和其
39、他点阵液晶模块的显示。它由几个5X7或5X11的点阵字库,每个比特位可以是汉字点阵显示的字符有每个间隔之间的点距,每行之间的间隔也起到了字符间距和行间距的效果。目前市场上的绝大多数是基于字符的LCD HD44780, LCD控制芯片的原理是完全一样的,因此基于HD44780写的控制程序可以很容易地应用到大部分市场字符液晶的。表2-3 1602引脚说明引脚编号符号引脚说明引脚编号符号引脚说明1VSS电源接地端9D2I/O2VDD电源正极10D3I/O3VL液晶显示信号11D4I/O4RS数据/命令选择端12D5I/O5R/W读/写选择端13D6I/O6E使能信号14D7I/O7D0I/O15BL
40、A背景光源正极8D1I/O16BLK背景光源负极基本操作时序6(1) 读状态:输入:RS=L,RW=H,E=H输出:D0D7=状态字(2) 写指令:输入:RS=L,RW=L,D0D7=,指令码E=高脉冲信号输出:无(3) 读数据:输入:RS=H,RW=H,E=H输出:D0D7=状态字(4) 写数据:输入:RS=H,RW=L.D0D7=指令码,E=高脉冲信号输出:无图2-6 1602显示地址映射图读写指令将信息写入1602的地址空间显示出来如0x00则是第一行第一列,0x40则是第二行第一列,但是一行最多只能显示16个字符,所以一般到0x0F位,但是如果想显示后面信息就需要移位了。每次开始使用1
41、602都需要初始化,(初始化程序就不在此写出,后面会有相关介绍)然后程序写入需要要显示的东西,然后通过刷新擦除不需要显示的信息,以及读取改变的信息到地址里显示出来,就是1602的显示原理。2.5.4键盘扫描模块键盘扫描原理采用的是高低电平扫描法P1口高4位为1低4位为0,如果有按键按下肯定会有一位高4位由1变为0,低4位不变,则确定按键的行。P1口高4位为0低4位为1,如果有按键按下肯定会有一位低4位由1变为0,低4位不变,则确定按键的列,综合行列确定所按下的键值。图2-7按键扫描电路图第三章 系统硬件电路设计第三章 系统硬件电路设计3.1时钟扩展电路设计把DS12887的I/O通讯口AD0A
42、D7与总线连接到P0口上正好对应8位地址输入输出,把管脚1接地VCC端和复位接电。图3-1 时钟电路设计3.2 显示模块电路设计在LCD1602的I/O通讯口D0D7连接总线到单片机P0口做输入输出用,在VCC供电到VDD和BL+口,VSS和BL-接地,然后在BL+和接地端加个电位器,用作控制背景屏幕的亮度调节。图3-2 显示模块电路设计3.3蜂鸣器报警模块由时钟芯片发生中断,单片机P1.6口来控制低电平报警输出具体连接如下图所示:图3-3 蜂鸣器报警模块设计3.4按键扫描电路把按键接到P1口上控制键值的输入和扫描。通过高低电平扫描找到按键的键值,反馈到单片机进行程序控制,以及程序里应该加个延
43、时子程序到键盘扫描中,能够极大的消除键盘抖动的影响。图3-4 按键扫描电路设计26第四章 系统软件设计第四章 系统软件设计4.1主程序设计由于本设计设计的是时间控制器,所以主题围绕时钟芯片了解了资料,程序主题也都是通过DS12887来实现的,所以编程的主题就是时钟芯片,其次就是显示和按键。最先开始上电启动,然后进入到初始化界面,也就是显示实时时钟信息,实时温度信息以及下个即将闹铃的时刻。然后一直键盘扫描扫描按键,如果没有进入功能键3和功能键4,按标志键1和调整键2是没有作用的。按下功能键3则进入闹钟设置模式,然后按标志键1可以改变不同的标志位,按下调整键2可以自加一,如果超过额定的数值则复位0
44、0。调整完后,再按功能键3退出时钟设置界面,并把时钟信息存入到DS12887内存中。然后通过与实时时钟时间对比后,判断下个闹铃的时间,把下个闹铃写入液晶显示页面。按下功能键4则进入倒计时模式,然后按标志键1可以改变不同的标志位,按下调整键2可以自加一,如果超过额定的数值则复位00。调整完后,再按功能键4开始倒计时,如果倒计时时间为时为零,分为零,秒为零,则输出报警输出,如果再按功能键4退出倒计时界面,进入初始化界面。时钟判断距离实时时钟最近的时间为下个闹铃。整体设计框图如下:输出报警中断开始是判断是否到达闹铃时间初始化否显示时间温度以及下个闹钟时刻否按键扫描是否有按键按下最小值对比时间信息,选
45、出下个闹铃时刻是键值判断键值3键值4键值2键值1所标志的位+1,如果超过上限则复位00进入显示标志选择进入倒计时设置模式进入闹钟设置模式退出并保存时间信息图4-1 总体程序框图4.2中断程序设计中断就是停止一件事情去执行另外一件事情,这个是在计算机领域很普遍应用,而本设计的中断就是闹铃时候中断,倒计时的时候中断。4.3键盘子程序设计我把扫描按键当独立按键使用所以有4个按键sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit s4=P13;4.4时钟程序的设计时钟整体由时钟芯片实现功能,而显示时钟的算法(1)闹钟的算法闹钟本身就是时间一致的时候,就输出报警输出,所以就是设定闹钟的时间和实时时间一致。小时等于时闹,分钟等于分闹,秒等于秒闹,由于简化程序和设计思路所以秒不做考虑(2)倒计时算法倒计时就是每秒秒自减一,通过秒刷新实现,每秒秒位自减一如果秒为负一,则分位自减一,秒位回复到五十九,同样如果分位自减到负一,小时自减一,分位复位到五十九,如果秒等于零,分等于零,时等于零,则完成倒计时,这个时候输出报警输出。(3)显示下个闹钟时刻的算法设置整分的时候闹铃,即秒位为零的时候,通过计算T1=小时*60+分钟,T0=实时时钟小时*60+实时时钟分钟,T1-T0=T,T最小的为下