找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于ATmage8的打铃器设计

[复制链接]
admin 发表于 2013-3-22 18:09:15 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
0 引言
     
本设计根据学校常规教学和临时教学活动(如考试等)对打铃时间的要求,对打铃器的设计进行了改进,使其可分别工作在夏制、冬制、临时三种模式下。每种工作模式支持多达80个时间点的打铃输出,并且根日期的设置,打铃器可以自动切换冬夏两种工作模式,实现不同时制的打铃。如需临时改变打铃时间,将系统切换至临时工作模式,设置打铃时间即可,极大地简化了打铃器的操作。通过电路设计的优化改进,提高了设备的可靠性和操作易用性,并在使用过程中表现出了较高稳定性和实用性。

1 系统硬件设计
     
打铃器由ATmega8单片机最小系统、DS1302时钟电路、LED数码显示电路、串行口通讯电路、按键电路和打铃输出控制电路构成,系统电路如图1所示。
    20121107051741160143886.jpg
   
     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截止,后续电路均失电,响铃停止。
    20121107051741207023887.jpg
   

2 软件设计
     
打铃器上电后,SCM将从片内的EEPROM中读取设置参数进行系统的初始化,然后读取DS1302时间单元,将时间通过定时中断程序显示出来。在工作过程中,每个打铃时间点用两个字节分别表示小时和分钟的时间值,当秒单元为‘00’时,系统将调用一次打铃时间比较子程序,以确定当前时间是否打铃,系统的主程序流程如图3所示。
    20121107051741238273888.jpg
   
     打铃器可工作在冬制、夏制和临时打铃三种模式,每种工作模式最多可设置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所示。
    20121107051741300763889.jpg
    20121107051741347643890.jpg
    20121107051741394513891.jpg
   
3 结束语
     
本打铃器电路简洁,价格低廉,且简单易用。通过在学校一年多的使用检验,打铃器走时精准,性能稳定可靠,具有较高的推广价值。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-23 22:29 , Processed in 0.075334 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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