单片机自动控制打铃系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机自动控制打铃系统,是以一片8位单片机为核心的实时时钟及控制系统.我们知道单片机的外接石英晶体震荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得到秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息.如果石英晶体震荡器的频率信号为6MHZ,设定定时器定时器工作在方式1下,定时器为3CB0H,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连续技术,便可获得时、分、秒的信号,建立一个实时时钟.接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求.
2.2 ISP下载电缆的电路及程序设计简介
能实现ISP功能的硬件电路,通常被称为“下载电缆”。ATMEL公司推出的AT89S51/52单片机就具有ISP功能。用计算机并行口实现ISP功能,在电路设计上非常灵活。(1)下载电缆的电路设计:
计算机并行接口共有25个口线,主要包括数据端口D0~D7(端口地址为378H,用于数据输出);状态端口Busy、nAck、PE、Select、nError(端口地址为379H,用于数据输入);控制端口nSelin、nlnit、nStrobe(端口地址为37AH,用于输出控制)。从中选出4个口线来模拟ISP所需的引脚,就非常灵活,只需考虑数据的输入、输出方向及操作方便即可。但要注意同一端口的数据方向必须一致,例如数据端口是8位同时操作的,只能全部作为输入或输出,而不能将一部分做输入,另一部分做输出。
下载电缆的电路如图附件一所示。该电路主要包括并行接口电路、驱动隔离电路和JTAG接口电路3大部分,这里只所以说JTAG接口电路,是因为ISP传输虽然在协议上符合SPI协议,但引脚是按照JTAG标准而定义的,它们的对应关系如下:TCK对应SCK,D0对应MOSI,TMS对应RST,TDO对应MISO。
(2)并行接口电路
该电路是按计算机并行口标准定义的,在电路中采用nStrobe模拟TCK,用D0模拟TDI,用nSelin模拟TMS。用nACK模拟TDO。这样的定义方法就决定了TCK时钟和TMS的产生要由并行口的控制端口产生;TDI由并行口的数据端口产生,TDO要由状态端口获取,不同的端口操作地址不同,涉及程序的编写。这些对应关系见表:
(3)驱动隔离电路
该电路采用74HC244作为驱动隔离芯片。74HC244具有2组驱动器,分别由1G 和2G控制使用。当控制引脚为低电平时,A到Y通路,可以进行数据传输,当控制引
脚为高电平时A到Y相当断路,起到隔离作用。图中R
1~R
14
为限流电阻,防止电流过
大烧毁驱动器芯片,R
15~R
18
为上拉电阻,确保空闲时各个点的电平状态。
第三章设计内容及要求
3.1 设计要求
设计一作息时间自动打铃控制系统,要求:
1、走时准确,日误时时钟的时、分、秒,用24小时制进行计时.
3、具有调节和校对时间的功能.
4、作息时间预制功能,最差≤±1S.
2、用6个数码显示实多可以预制36个打铃报时点.
5、具备定时打铃输出的功能.
6、掉电时有备用电池继续走时,不能停机.
3.2 硬件设计
⑴、单片机选用AT89S51,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,并支持在线编程技术,设计时无需外接程序存储器,样品可以直接与PC机连机下载程序,为设计和调试带来极大方便.
⑵、LED显示系统:6位LED数码管从左至右依次显示时2位、分2为、秒2位,采用24小时制计时.设计时可利用单片机的P0口和P1口作为时钟信号输出,经驱动芯片后驱动数码管显示时间,LED采用动态方式显示.
⑶、键盘系统:设置4个程序按键,包括:选择键、调节键、打铃时间设定键、铃声选择键,键盘系统可由P2口构成.另需配置一个非程序按键:系统复位键.
选择键:按动选择键,可以选择小时、分钟或回复正常走时,选定的内容快速闪烁.
调节键:按一次"调节键",所选定的内容加1,长按"调节键"(按下的时间超过1秒钟以上),则所选定的内容按每秒钟增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回到0,再丛开始增加.
打铃时间设定键:将数码管的显示从走时状态转换到打铃时间设定状态,并根据所按该键的次数,显示相应的打铃时间"编组号".然后可以用"选择键"和"调节键"设定或修改该组的打铃时间.
铃声选择键:从两种不同的打铃输出方式中选择一种铃声输出.
⑷、电源供电系统:本系统采用220V的电源供电,应设计响应的稳压电源电路.当220V停电时,由备用电池向单片机供电,为了延长电池的工作时间,只需维持实时时钟的运行和计时,而耗电量较大的数码管显示系统和输出驱动等电路应停止工作.
⑸、打铃输出控制:当实时时钟运行到报时点对应的时间时,应输出控制信号,一路信号使本系统的一个发光而极管发光,起提示作用;另一路信号通过继电器去控制电铃,
使电铃自动打铃.打铃的铃声分两种:1种是连续响铃,持续时间为10秒;另一种断续响铃,停1秒钟,持续时间也是10秒.
本系统的工作流程
⑴、时间显示:通电或系统复位后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.
⑵、时间校对:用"选择键"和"调节键"来调节时间.第一次按"选择键"时,小时的两位数快速闪烁,这时可以用"调节键"来修改小时数.第二次按"选择键"时,分钟的两位数快速闪烁,这时可以用"调节键"来修改分钟数.第三次按"选择键"时,退出时间校对状态,按新的设定时间修复走时.
用"调节键"来修改所选定的内容时,则每按一次"调节键",所选定的内容加1,长按"调节键"(按下的时间超过1秒以上),则所选的内容按每秒增加10的速度快速增加.当分
钟增加到59、小时增加到23时,自动回复到0,再从开始增加.
时钟设置正确后,再次按"选择键"(即第三次按"选择键"),时间校对从00开始计时.如在时间校对过程中,超过30秒时钟时间没按任何按键,则自动恢复原来的时间走时和
显示.
⑶、打铃时间设置:用户最多可以设定32组自动打铃时间点,当按动"打铃时间设定键"后,数码管显示01 ** **,其中01(前2位)表示报时点的组别,其值从02到32,第三、四位为打铃时间的小时数,第五、六为打铃时间的分钟数.第一次按"打铃时间设定键"时,则显示"01 ──",01则表示第一组报时点,"──"表示该组的报时时间还未设置,为
无效状态,此时可以用"选择键"、"调节键"来设置该组的打铃时间:如显示的为"01 ** **"(*表示具体是时间数据),表明该组的打铃时间已经设置,此时也可以用"选择键"、"调节键"来更改该组的打铃时间.当该组的打铃时间设置或更改完毕,按动"打铃时间设
定键",可将该组的打铃时间数据存入RAM中,同时组别数据加1,如显示"02 ** **"或"02 ──",然后可以对第二组的打铃时间数据进行修改或设置,再次按动"打铃时间设定键",则将第二组打铃时间存储起来,显示变为"03 ** **"或"03 ──",再对第三组的打铃时间进行修改和设置,依次类推,直到设置完毕.当某一组别的打铃时间显示为"** ──"(则未设置,为无效组别),而继续按"打铃时间设定键",则该组的数据不存储,退出打铃时间设置状态,恢复实时始终走时和显示状态.
⑷、打铃时间的查询和消除:按动"打铃时间设定键",可以对各组已设置的打铃时间进行查看,如有错误,则可用上述方法进行修改.如果清楚某组的打铃时间,先用"打铃时间设定键"找到并显示该组的打铃时间,再用"选择键"、"调节键"将该组的打铃时间设定为"** 00 00".再次按动"打铃时间设定键",则可清除该组的时间数据,而后面的各组时间数据的组别依次往前移一位,保证各打铃时间之间不出现空组别或无效组别.如:清除第7组数据后,第8组数据就移至第7组,第9组的数据移至第8组……
在时间校对、打铃时间设置、查询与修改过程中,超过30秒钟没按任何一个有效按