单片机自动控制打铃系统设计

上传人:飞*** 文档编号:41429181 上传时间:2018-05-29 格式:DOC 页数:25 大小:200KB
返回 下载 相关 举报
单片机自动控制打铃系统设计_第1页
第1页 / 共25页
单片机自动控制打铃系统设计_第2页
第2页 / 共25页
单片机自动控制打铃系统设计_第3页
第3页 / 共25页
单片机自动控制打铃系统设计_第4页
第4页 / 共25页
单片机自动控制打铃系统设计_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《单片机自动控制打铃系统设计》由会员分享,可在线阅读,更多相关《单片机自动控制打铃系统设计(25页珍藏版)》请在金锄头文库上搜索。

1、单片机自动控制打铃系统,是以一片8位单片机为核心的实时时钟及控制系统.我们知道单片机的外接石英晶体震荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得到秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息.如果石英晶体震荡器的频率信号为6MHZ,设定定时器定时器工作在方式1下,定时器为3CB0H,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连

2、续技术,便可获得时、分、秒的信号,建立一个实时时钟.接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求.2.2 ISP 下载电缆的电路及程序设计简介能实现 ISP 功能的硬件电路,通常被称为“下载电缆”。ATMEL 公司推出的AT89S51/52 单片机就具有 ISP 功能。用计算机并行口实现 ISP 功能,在电路设计上非常灵活。(1)下载电缆的电路设计:计算机并行接口共有 25 个口线

3、,主要包括数据端口 D0D7(端口地址为 378H,用于数据输出) ;状态端口 Busy、nAck、PE、Select、nError(端口地址为 379H,用于数据输入) ;控制端口 nSelin、nlnit、nStrobe(端口地址为 37AH,用于输出控制) 。从中选出 4 个口线来模拟 ISP 所需的引脚,就非常灵活,只需考虑数据的输入、输出方向及操作方便即可。但要注意同一端口的数据方向必须一致,例如数据端口是 8 位同时操作的,只能全部作为输入或输出,而不能将一部分做输入,另一部分做输出。下载电缆的电路如图附件一所示。该电路主要包括并行接口电路、驱动隔离电路和 JTAG 接口电路 3

4、大部分,这里只所以说 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 要由状态端口获取,不同的端口操作地址不同,涉及程序的编写。

5、这些对应关系见表:并行口引脚并行口端口地址nACK379HD0378HnSelin37AHnStrobe37AH(3)驱动隔离电路该电路采用 74HC244 作为驱动隔离芯片。74HC244 具有 2 组驱动器,分别由 1G和 2G 控制使用。当控制引脚为低电平时,A 到 Y 通路,可以进行数据传输,当控制引脚为高电平时 A 到 Y 相当断路,起到隔离作用。图中 R1R14为限流电阻,防止电流过大烧毁驱动器芯片,R15R18为上拉电阻,确保空闲时各个点的电平状态。第三章 设计内容及要求3.1 设计要求设计一作息时间自动打铃控制系统,要求:1、走时准确,日误时时钟的时、分、秒,用24小时制进行计

6、时.3、具有调节和校对时间的功能.4、作息时间预制功能,最差1S.2、用6个数码显示实多可以预制36个打铃报时点.5、具备定时打铃输出的功能.6、掉电时有备用电池继续走时,不能停机. 3.23.2 硬件设计、单片机选用AT89S51,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,并支持在线编程技术,设计时无需外接程序存储器,样品可以直接与PC机连机下载程序,为设计和调试带来极大方便.、LED显示系统:6位LED数码管从左至右依次显示时2位、分2为、秒2位,采用24小时制计时.设计时可利用单片机的P0口和P1口作为时钟信号输出,经驱动芯片后驱动数码管显示时间,LED采用动

7、态方式显示.、键盘系统:设置4个程序按键,包括:选择键、调节键、打铃时间设定键、铃声选择键,键盘系统可由P2口构成.另需配置一个非程序按键:系统复位键.选择键:按动选择键,可以选择小时、分钟或回复正常走时,选定的内容快速闪烁.调节键:按一次“调节键“,所选定的内容加1,长按“调节键“(按下的时间超过1秒钟以上),则所选定的内容按每秒钟增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回到0,再丛开始增加.打铃时间设定键:将数码管的显示从走时状态转换到打铃时间设定状态,并根据所按该键的次数,显示相应的打铃时间“编组号“.然后可以用“选择键“和“调节键“设定或修改该组的打铃时间.铃声

8、选择键:从两种不同的打铃输出方式中选择一种铃声输出.、电源供电系统:本系统采用220V的电源供电,应设计响应的稳压电源电路.当220V停电时,由备用电池向单片机供电,为了延长电池的工作时间,只需维持实时时钟的运行和计时,而耗电量较大的数码管显示系统和输出驱动等电路应停止工作.、打铃输出控制:当实时时钟运行到报时点对应的时间时,应输出控制信号,一路信号使本系统的一个发光而极管发光,起提示作用;另一路信号通过继电器去控制电铃,使电铃自动打铃.打铃的铃声分两种:1种是连续响铃,持续时间为10秒;另一种断续响铃,停1秒钟,持续时间也是10秒.本系统的工作流程、时间显示:通电或系统复位后,系统自动进入时

9、钟显示,从00:00:00开始计时,此时可以设定当前时间.、时间校对:用“选择键“和“调节键“来调节时间.第一次按“选择键“时,小时的两位数快速闪烁,这时可以用“调节键“来修改小时数.第二次按“选择键“时,分钟的两位数快速闪烁,这时可以用“调节键“来修改分钟数.第三次按“选择键“时,退出时间校对状态,按新的设定时间修复走时.用“调节键“来修改所选定的内容时,则每按一次“调节键“,所选定的内容加1,长按“调节键“(按下的时间超过1秒以上),则所选的内容按每秒增加10的速度快速增加.当分钟增加到59、小时增加到23时,自动回复到0,再从开始增加.时钟设置正确后,再次按“选择键“(即第三次按“选择键

10、“),时间校对从00开始计时.如在时间校对过程中,超过30秒时钟时间没按任何按键,则自动恢复原来的时间走时和显示.、打铃时间设置:用户最多可以设定32组自动打铃时间点,当按动“打铃时间设定键“后,数码管显示01 * *,其中01(前2位)表示报时点的组别,其值从02到32,第三、四位为打铃时间的小时数,第五、六为打铃时间的分钟数.第一次按“打铃时间设定键“时,则显示“01 “,01则表示第一组报时点,“ “表示该组的报时时间还未设置,为无效状态,此时可以用“选择键“、“调节键“来设置该组的打铃时间:如显示的为“01 * *“(*表示具体是时间数据),表明该组的打铃时间已经设置,此时也可以用“选

11、择键“、“调节键“来更改该组的打铃时间.当该组的打铃时间设置或更改完毕,按动“打铃时间设定键“,可将该组的打铃时间数据存入RAM中,同时组别数据加1,如显示“02 * *“或“02 “,然后可以对第二组的打铃时间数据进行修改或设置,再次按动“打铃时间设定键“,则将第二组打铃时间存储起来,显示变为“03 * *“或“03 “,再对第三组的打铃时间进行修改和设置,依次类推,直到设置完毕.当某一组别的打铃时间显示为“* “(则未设置,为无效组别),而继续按“打铃时间设定键“,则该组的数据不存储,退出打铃时间设置状态,恢复实时始终走时和显示状态.、打铃时间的查询和消除:按动“打铃时间设定键“,可以对各

12、组已设置的打铃时间进行查看,如有错误,则可用上述方法进行修改.如果清楚某组的打铃时间,先用“打铃时间设定键“找到并显示该组的打铃时间,再用“选择键“、“调节键“将该组的打铃时间设定为“* 00 00“.再次按动“打铃时间设定键“,则可清除该组的时间数据,而后面的各组时间数据的组别依次往前移一位,保证各打铃时间之间不出现空组别或无效组别.如:清除第7组数据后,第8组数据就移至第7组,第9组的数据移至第8组在时间校对、打铃时间设置、查询与修改过程中,超过30秒钟没按任何一个有效按键,则自动恢复原来的时间走时和显示.、打铃的铃声类别设置:在打铃时间设置过程中,可以用“铃声选择键“来设置打铃的铃声类别

13、.在设置某组别的打铃时间时,默认铃声为“连续铃声“,即不按“铃声选择键“时为连续铃声.用此方法可以对每组打铃时间的铃声进行设置或更改.不同的铃声用两个发光二极管进行指示. 3.3 软件设计、系统资源分配:为了便于程序的设计、阅读及修改,需要先对系统的存储器资源进行分配和说明.、软件流程:根据上述工作流程和设计要求,软件设计可以分为以下几个功能模块:、主程序:初始化及键盘控制.、计时程序模块:为定时器0中断服务子程序,完成刷新计时缓冲区的功能.、时间校对模块:完成实时时钟的时间设定.、打铃时间设置模块:完成打铃时间的设置与清除.、显示程序模块:完成6位LED数码管的动态显示.、键盘扫描程序模块:

14、判断是否有键按下,并求取键号.、定时比较程序模块:判断报时时间是否,如时间到,则启动打铃处理程序.、打铃程序模块:设置两种不同的打铃模式,并选择其一输出.、其他辅助功能程序:如“选择键“处理、“调节键“处理、“打铃时间设定键“处理等键盘设置程序;拆字、合字处理程序等.第四章 程序设计4.1 系统资源分配4.1.1 为方便阅读程序,先对系统的资源分配加以说明。1)定时器。定时器 0 用作时钟定时,按方式 1 工作,每隔 100ms 溢出中断一次。2)片内 RAM 及标志位的分配与定义见下表:地 址功 能名 称初始化2320H计时缓冲区,小时 23H,分22H,秒 21H,100ms20HHOUR

15、,MINSEC,MSEC00H2FH2AH显示缓冲区计时状态:2FH 小时十位,2EH 小时个位,2DH 分十位,2CH 分个位,2BH 秒十位,2AH 秒个位打铃设定状态:2FH 组别十位,2EH 组别个位,2BH 分十位,2AH 分十位。DISP0P500H30H6FH用户打铃时间存储器(时,分)每个打铃时间点占两个字节,低字节小时,高字节分钟。32 个报时点共占 64 字节,小时字节的最高存储铃声选择状态:0-连续打铃,1-断续打铃AHOURAMIN00H70H7FHF0(B.0)F1(B.1)堆栈区共 16 个字节打铃时间设置标志位分钟值变更标志位键处理标志位断续打铃标志位0F0H0F

16、1H0F2H0F3H00H0000F2(B.2)F3(B.3)4.1.2 软件流程根据上述工作流程,软件设计可分为以下几个功能模块:1)主程序:初始化与键盘监控。2)计时:为定时器 0 中断服务子程序,完成刷新计时缓冲区的功能。3)时间设置与报时设置:由键盘输入设置当前时间与定时启闭时间。4)显示:完成 5 位 LED 动态显示。5)键盘扫描:判断是否有键盘按下,并求取键号。6)定时比较:判断报时时间到否,如时间到,则启动报时处理程序。7)其他辅助功能程序,如键盘设置、拆字、合字、冬季或夏季时间选择及假日停止报时等。下面分模块进行软件设计:4.2 程序模块设置:1、主程序模块(MAIN)1、定时中断服务程序模块(CTCINT)2、扫描显示子程序(DISP)3、键扫描子程序(CHECKEY)4、键值处理子程序(KEYACC)5、选择键处理子程序(SHIFTP)6、调节键处理子程序(TIAOJIE)7、打铃时间设定键处理子程序(USECLR)8、铃声选

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号