微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 作息闹铃控制器设计

作息闹铃控制器设计

时间:03-19 来源:GEC 点击:

引言

在日常工作和学习中,经常需要对作息时间进行控制,以规范工作、学习、休息等作息秩序,本文采用51系列单片机机实现对校园作息时间的控制设计,已完成对每天对作息最多40次打铃控制,同时具有对控制器日常时间调整及显示、打铃时间设置、掉电数据不丢失等功能。

系统硬件结构组成

为实现上述功能,硬件方面主要采用AT89C52单片机实现对整个系统控制,采用DS1302时钟芯片完成对控制器时间的计时控制,同时采用24C02串行存储芯片保存打铃时间控制参数以免掉电丢失,设计8个按键分别用于对时间调整和打铃时间的设置和调整,并采用静态显示方法对6个数码管控制已完成对时间及打铃时间点等参数的设置和调整显示,采用继电器控制电路完成弱电对强电220V控制以完成对电铃的通断电控制从而控制铃声。具体电路图如图1所示。


图1 作息打铃控制器硬件原理图

MCS-51模拟IIC总线

本设计为防止掉电后所设置电铃时间点数据丢失,特用一片IIC协议串行通信的含有256字节的EEPROM芯片CAT24WC02作为存储芯片。IIC协议允许系统设计者只用两根线就可以将多达128个不同的设备连接在一起,极大的节省了单片机接口线,只需在这两根线上分别加一个10kΩ的上拉电阻,即可解决阻抗匹配问题。IIC器件通过各自的硬件连线方式来确定自己的地址,如本设计中CAT24WC02芯片地址为0000。对于没有IIC总线接口的单片机来说,使用任何两根线均可模拟IIC总线时序。在本设计中采用P3.3、P3.4分别来模拟SCL和SDA线,当SCL处于高电平时,SDA由高电平变成低电平时构成一个开始条件,对IIC总线的所有操作均须由开始条件开始;当SCL处于高电平时,SDA由低电平变成高电平时构成一个停止条件,此时IIC总线的所有操作均停止;当SCL为低电平且SDA线电平变化时,则数据由CPU输出到IIC总线;当SCL为高电平且SDA线电平不变时,则CPU读取IIC总线上的数据;当SCL为高电平且SDA电平变化时,IIC总线上位开始条件或停止条件;数据传输以8为序列进行,IIC器件在第9个时钟周期时将SDA置位为低电平,即送出一个确认(应答)信号ACK,表明数据已经被其收到。这里使用到以下4个公用函数:

void I2cStart(); //产生开始信号

void I2cStop(); //产生停止信号

void I2cSendByte(uchar ByteData) ;//发送一个字节数据

uchar I2cReceiveByte(); //接收一个字节数据

DS1302时钟电路

DS1302是美国Dallas公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压宽达2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31字节用于临时性存放数据的RAM寄存器。DS1302控制电路图如图1所示,VCC1为后备电源, VCC2为主电源,在主电源关闭的情况下,也能保持时钟连续运行。DS1302由VCC1或VCC2两者中的电压较大者供电,当VCC2大于VCC1+0.2V时,VCC2给DS1302供电,当VCC2小于VCC1时,DS1302由VCC1供电。X1、X2为振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:1、RST接通控制逻辑,允许地址/命令序列送入移位寄存器;2、RST提供了终止单字节或多字节数据的的传送手段,当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送工程中置RST为低电平,则会终止此次数据传送,并且I/O引脚为高阻态。上电运行时,在 VCC≥2.5V之前,RST必须保持低电平。

DS1302的控制字如图2所示,字节的最高位(第7位)必须是逻辑1,如为0则不能报数据写入到DS1302,位6如为0,则表示存取日历时钟数据,为1表示存取RAM数据;为5为至位1指示操作单元的地址,最低位(第0位)为0则表示要进行写操作,为1表示进行读操作,控制字节是从最低未开始输出。在控制指令字输入后的下一个SCLK时钟的上升沿时数据写入DS1302,数据输入从低位开始,同样,在紧跟8位控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据是从低位至高位。

DS1302共有12个寄存器,其中7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器如图3所示。 DS1302还有年份寄存器、充电寄存器、时钟突发寄存器与RAM等相关寄存器。时钟突发寄存器可一次性顺序读写充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top