资源描述:
《单片机自动控制打铃系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机自动控制打铃系统,是以一片8位单片机为核心的实时时钟及控制系统.我们知道单片机的外接石英晶体震荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得到秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息.如果石英晶体震荡器的频率信号为6MHZ,设定定时器定时器工作在方式1下,定时器为3CB0H,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进
2、位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连续技术,便可获得时、分、秒的信号,建立一个实时时钟.接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求.2.2ISP下载电缆的电路及程序设计简介能实现ISP功能的硬件电路,通常被称为“下载电缆”。ATMEL公司推出的AT89S51/5
3、2单片机就具有ISP功能。用计算机并行口实现ISP功能,在电路设计上非常灵活。(1)下载电缆的电路设计:计算机并行接口共有25个口线,主要包括数据端口D0~D7(端口地址为378H,用于数据输出);状态端口Busy、nAck、PE、Select、nError(端口地址为379H,用于数据输入);控制端口nSelin、nlnit、nStrobe(端口地址为37AH,用于输出控制)。从中选出4个口线来模拟ISP所需的引脚,就非常灵活,只需考虑数据的输入、输出方向及操作方便即可。但要注意同一端口的数据方向必须一致,例如数据
4、端口是8位同时操作的,只能全部作为输入或输出,而不能将一部分做输入,另一部分做输出。下载电缆的电路如图附件一所示。该电路主要包括并行接口电路、驱动隔离电路和JTAG接口电路3大部分,这里只所以说JTAG接口电路,是因为ISP传输虽然在协议上符合SPI协议,但引脚是按照JTAG标准而定义的,它们的对应关系如下:TCK对应SCK,D0对应MOSI,TMS对应RST,TDO对应MISO。(2)并行接口电路该电路是按计算机并行口标准定义的,在电路中采用nStrobe模拟TCK,用D0模拟TDI,用nSelin模拟TMS。用n
5、ACK模拟TDO。这样的定义方法就决定了TCK时钟和TMS的产生要由并行口的控制端口产生;TDI由并行口的数据端口产生,TDO要由状态端口获取,不同的端口操作地址不同,涉及程序的编写。这些对应关系见表:并行口引脚并行口端口地址nACK379HD0378HnSelin37AHnStrobe37AH(3)驱动隔离电路该电路采用74HC244作为驱动隔离芯片。74HC244具有2组驱动器,分别由1G和2G控制使用。当控制引脚为低电平时,A到Y通路,可以进行数据传输,当控制引脚为高电平时A到Y相当断路,起到隔离作用。图中R1
6、~R14为限流电阻,防止电流过大烧毁驱动器芯片,R15~R18为上拉电阻,确保空闲时各个点的电平状态。第三章设计内容及要求3.1设计要求设计一作息时间自动打铃控制系统,要求:1、走时准确,日误时时钟的时、分、秒,用24小时制进行计时.3、具有调节和校对时间的功能.4、作息时间预制功能,最差≤±1S.2、用6个数码显示实多可以预制36个打铃报时点.5、具备定时打铃输出的功能.6、掉电时有备用电池继续走时,不能停机.3.2硬件设计⑴、单片机选用AT89S51,它与8051系列单片机全兼容,但其内部带有4KB的FLASHR
7、OM,并支持在线编程技术,设计时无需外接程序存储器,样品可以直接与PC机连机下载程序,为设计和调试带来极大方便.⑵、LED显示系统:6位LED数码管从左至右依次显示时2位、分2为、秒2位,采用24小时制计时.设计时可利用单片机的P0口和P1口作为时钟信号输出,经驱动芯片后驱动数码管显示时间,LED采用动态方式显示.⑶、键盘系统:设置4个程序按键,包括:选择键、调节键、打铃时间设定键、铃声选择键,键盘系统可由P2口构成.另需配置一个非程序按键:系统复位键.选择键:按动选择键,可以选择小时、分钟或回复正常走时,选定的内容
8、快速闪烁.调节键:按一次"调节键",所选定的内容加1,长按"调节键"(按下的时间超过1秒钟以上),则所选定的内容按每秒钟增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回到0,再丛开始增加.打铃时间设定键:将数码管的显示从走时状态转换到打铃时间设定状态,并根据所按该键的次数,显示相应的打铃时间"编组号".然后可以用"选择键"和"