自动打铃系统(3) - 图文(2)

2019-09-01 22:51

1.2方案二:采用中断定时实现功能

方案二原理框图如图1-2所示:

中 断 蜂鸣器 89C52 8255芯片 数码管 图 1-2 采用中断定时实现功能

该系统以STC89C52单片机为核心控制部件。用8255做I/O拓展芯片,数码管接8255的PA、PB引脚,用动态扫描的方式显示当前时间。蜂鸣器与单片机的P2.0口相连,当打铃时间到时,由STC89C52发出打铃指令。以外部INT0和INT1中断按钮实现调时功能。

1.3方案比较

本设计要求能实现基本计时和打铃功能。计时和打铃时间设计,方案一中用到了DS1302时钟芯片计时和打铃时间设置;方案二中采用定时器中断来计时并结合软件设置打铃时间。上述两种方案中:方案一的外围硬件电路设计复杂,而且时钟芯片没有得到充分利用,而方案二的软件计时具有硬件开销小,成本低,外围电路设计简单等优点。调时设计,方案一中用矩阵键盘实现调时功能;方案二中采用外部中断0和1的两个按钮来实现调时。上述两种方案中:方案一的软件设计比方案二的难度系数大,使程序易读性不强。综合对计时的精密程度要求不高的本系统,本设计采用方案一来实现功能。

2.单元电路设计与论证

本设计主要由STC89C52单片机芯片与8255芯片组成的模块为控制核心、蜂鸣器电路模块实现打铃功能、中断0、1按钮模块调整当前时间、数码管显示模块显示时间,由以上四大模块构成了本系统,详细电路图见附录一,硬件设计总框图如图2-1:

按键 外部中断 89C52 8255 I/O拓展引脚 扫描电路 数码管 打铃 电路 蜂 鸣 器 图2-1硬件设计总框图

2.1单片机、I/O拓展

加一键 移位键 P0.0~P0.7 D0~D7 WR WR PA0~PA5 RD RD RESET P2.7 RESET CS STC89C52 PB0~PB7 8255A 蜂鸣器 P2.2P2.1P2.0 P3.3P3.2 A1 A0 图 2-2 主控电路框图 STC89C52RC是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。STC89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时/计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。其主要特性[1]如

有:与MCS-51 兼容;8k可反复擦写(>1000次)Flash ROM;全静态工作:0Hz~24MHz;三级程序存储器锁定;256*8位内部RAM;32可编程I/O线;2个16位可编程定时/计数器;5个中断源;可编程串行通道;低功耗的空闲和掉电模式。I/O拓展采用8255芯片,单片机用89C52,电路框图如图2-2所示。

2.2打铃电路设计

采用P型三极管为蜂鸣器提供5V电源,并把STC89C52的P2.0口与三极管的基极相连接,当P2.0口有低电平输入出时,三极管导通[2],蜂鸣器响应,从而实现打铃功能。电路框图如图2-3所示:

P2.0

1K限流电阻 bP型三极管 c蜂鸣器 e5V电源 图2-3打铃电路框图

2.3时间设置电路设计

用中断0开关作为移位开关并接入SCT89C52芯片的P3.2口,设置所需调节的显示位;用中断1开关作为加一开关并接入SCT89C52芯片的P3.3口,对所选调节位进行加一操作。利用中断按键实现时间设置的电路框图如图2-4所示:

加一开关 P3.3 接地中断1按钮 2.4数码管电路设计

8255的PA口控制数码管的位选,低电平有效;PB口做为段选输出,接1K欧姆

移位开关 中断0按钮 5V电源 P3.2 图 2-4 时间设置电路框图

的限流电阻[3]。如图2-5所示:

PB0~PB71K限流电阻 PA0~PA5P型三极管 数 码 管 图2-5数码管显示电路框图

3系统软件工作流程图

3.1主程序工作流程

Y 打 铃 打铃到? N Y 键按下? N 时间设置子程序 调用扫秒显示子程序 初始化8255芯片和打开中断 开 始 图 3-1 主程序流程图

主程序首先设置8255模式,并打开中断0,设置中断为边沿触发模式;其次在死循环中执行读秒显示子程序,当定时器满一秒时,在显示缓冲区中时间加一,等待送入数码管显示;再次按键扫描子程序,如果有中断0或中断1按钮被按下时,则转入相应

功能的子程序中;最后如果当前显示时间满足预设打铃条件,通过打铃判断子程序跳入对应的打铃方式中执行[4]。详细主程序见附录二,主程序流程图如图3-1。

3.2定时器中断显示子程序

此子程序为本设计的核心之一,首先初始化定时器T0,设置T0为工作方式1,其初始值为3CB0H(既每次溢出定时50ms),并对其循环20次,然后把时间加1s,并送入显示缓冲区等待显示[5]。显示时,先取出内存地址中的数据,然后查得对应的显示用段码从PB口输出,PA口将对应的数码管选中供电,就能显示缓冲区中的数据值。为了显示秒位和上下午标志在数码管显示上特加了“—”、“A”、“P”这三个特殊字符子。程序流程图如图3-2:

T0中断 保护现场 定时器初值校正 N1S到? YT加一处理 数码管显示当前时恢复现场,中断返回 图 3-2定时器中断显示子程序流程图

3.3中断服务子程序

此子程序是为调时时服务的,首先初始化定时器T1,设置T1为工作方式1,其初始值为3CB0H(既每次溢出定时50ms)[1],并对其循环8次,然后使数码管被选中的调时位闪烁,子程序流程图如图3-3所示:

T1中断 保护现场 秒表 秒表/闪烁? 时钟调时闪烁


自动打铃系统(3) - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学教师继续教育培训总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: