DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 107|回复: 0
打印 上一主题 下一主题

基于ATmage8的打铃器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:34:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0 引言
???
本设计根据学校常规教学和临时教学活动(如考试等)对打铃时间的要求,对打铃器的设计进行了改进,使其可分别工作在夏制、冬制、临时三种模式下。每种工作模式支持多达80个时间点的打铃输出,并且根日期的设置,打铃器可以自动切换冬夏两种工作模式,实现不同时制的打铃。如需临时改变打铃时间,将系统切换至临时工作模式,设置打铃时间即可,极大地简化了打铃器的操作。通过电路设计的优化改进,提高了设备的可靠性和操作易用性,并在使用过程中表现出了较高稳定性和实用性。

1 系统硬件设计
???
打铃器由ATmega8单片机最小系统、DS1302时钟电路、LED数码显示电路、串行口通讯电路、按键电路和打铃输出控制电路构成,系统电路如图1所示。




??? ATmage8单片机是美国ATEMEL公司的一款高性能、低功耗的8位AVR微处理器,内含32个8位通用工作寄存器、RC时钟振荡电路、8K字节的系统内可编程Flash、512字节的EEPROM及1K的SRAM。ATmega8内含丰富的总线接口,并有专门的SPI接口,可方便实现与时钟电路的连接。
??? 时钟芯片采用的是DS1302。它是一种高性能、低功耗、带RAM的实时时钟电路,可以对年、月、日、周日、时、分、秒进行计时。在工作过程中,SCM对这些时钟单元的数据循环读取,将读到的时间与打铃时间比对,以确定是否打铃。通过修改相应的时间单元,可实现系统时间的调整。
??? 时间显示采用了4位共阳LED数码管动态显示方式,PC口与数码管的段码相连,Pb0、Pb1、Pb6、Pb7作为位选信号分别控制数码管的共阳极;S1~S4分别与PD4、PD5、PD6、PD7相连,用于系统设置和时间调整;串行通讯接口电路分别与ATmega8的RXD和TXD引脚相连,通过与PC联机,可快速完成打铃器的系统设置、打铃时间设定及系统时间的调整;SPI接口与DS1302的数据I/O相连,从DS1302中读取实时时钟。
??? PD2与打铃控制电路相连,电路如图2所示,打铃输出时,该引脚被置为低电平,三极管Q1饱和导通,经光耦隔离并触发Q2饱和导通,继电器JD1得电闭合,并触发双向晶闸管AK极导通,AC220V电源经bT136的AK极,电铃线圈得电响铃。当响铃时间结束后,PD2被置为高电平,Q1截止,后续电路均失电,响铃停止。





2 软件设计
???
打铃器上电后,SCM将从片内的EEPROM中读取设置参数进行系统的初始化,然后读取DS1302时间单元,将时间通过定时中断程序显示出来。在工作过程中,每个打铃时间点用两个字节分别表示小时和分钟的时间值,当秒单元为‘00’时,系统将调用一次打铃时间比较子程序,以确定当前时间是否打铃,系统的主程序流程如图3所示。




                          
                       
                          
                               
??? 打铃器可工作在冬制、夏制和临时打铃三种模式,每种工作模式最多可设置80个打铃时间点,基本满足任何工作场合要求。每个打铃时间点用2个字节表示,3种工作模式共占480字节的存储空间,根据工作模式的不同,打铃时间分3个区存放在ATmage8的EEPROM存储器中。系统上电后,SCM根据模式特征字自动判别工作模式,并将对应区间的打铃数据复制到SCM片内的SRAM区。
2.1 打铃时间比较子程序
???
在主程序中,SCM读取DS1302的数据后,对秒数据进行判断。当秒单元为“00”时,程序立即调用打铃时间比较子程序,否则将不执行该子程序的调用。在打铃时间比较子程序中,SCM首先从片内的EEPROM区取出当前工作模式的打铃次数字,将其复制到Ring cnt计数变量中,然后将当前模式的第一组打铃时间与系统时间进行比较,若打铃时间与当前时间相等,置PD0引脚为低电平,打铃控制电路接通并响铃,同时置响铃标志位为‘1’,程序返回。若不相等,Ring cnt变量减一,继续比较下一组打铃时间,直到时间相等或Ring cnt变量减为‘0’,则子程序返回。程序流程图如图4所示。响铃标志位置‘1’后,系统将启动15s定时,定时结束后,PD0置高电平当,电铃停止工作,同时将响铃标志位也置‘0’。
2.2 串口通讯子程序
???
打铃器的时间设定、查询和系统设置可通过键盘操作完成。为了准确快捷地完成打铃器设置,系统还支持串口操作功能,通过串行口与PC机进行通讯,在上位机上可以完成打铃器的相关设置。上位机软件通过串行口向打铃器发送命令,完成打铃器参数的设置与查询,命令格式为:命令字+数据+结束标识,其具体组成如表1所示。在通讯过程中,SCM在RAM区开辟一块存储空间接收上位机发送的数据。每接收到一个字节都判断其是否为结束标识,若为结束标识,则停止接收,否则继续接收。当数据接收完成后,程序便开始查询命令字状态,并根据表1中命令字含义进行数据的相关处理。若命令字为查询命令字时,则SCM根据命令字含义返回相应的数据至PC,并通过上位机软件显示出来,上位机软件如图5所示。
                          
                       
                          
                               










3 结束语
???
本打铃器电路简洁,价格低廉,且简单易用。通过在学校一年多的使用检验,打铃器走时精准,性能稳定可靠,具有较高的推广价值。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-28 13:59 , 耗时 0.081055 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表