基于STCC单片机和DS时钟芯片定时开关的设计与仿真.doc
文本预览下载声明
基于STC89C52单片机和DS1302时钟芯片定时开关的设计与仿真
摘 要:本设计介绍一种以STC89C52单片机、DS1302、1602液晶显示为核心,具备调节时间,设置开启时间与关闭时间的定时开关的实现过程。本系统采用C语言编写,其与汇编语言相比具有更好的移植性和可读性,便于修改和增减功能,并通过protues成功仿真。
关键词:单片机;定时开关;C语言;Protues
中图分类号:TP39 文献标识码:A
0引言
定时开关[1]在人们生活中扮演着重要的角色,给人们的生活带来了很大的方便,早在我国的古代采用滴水方式计时,当水滴到一定量时引发机关报时。随着电子信息的快速发展, 如今的电视机,电风扇等电器产品都附带了定时器,但是电子产品附带的定时器只适用于该用电器,并不能扩展使用到其他用电器上。
本文所介绍的定时开关目的在于控制主电源,从而适用于能瞬间断电的一切电子产品,不仅能在规定的时间准时断开同时能在设定的时间内准时开启,给人们日常生活带来了极大的方便,如能通过应用此定时开关在上班期间定时煮饭,手机充电在适当时间将电源断开。
该定时器具备以下几个特点:1.采用C语言[2]编写程序,与汇编语[3]言相比便于修改和增减功能;2.所才用的芯片STC89C52单片机、1602液晶显示器,DS1302时钟芯片功耗低、可靠性高;3.与机械定时器相比不仅消除了噪声,更加准确,且使用寿命要长; 4.采用Protues仿真,方便直观。
1系统设计方案
以STC89C52[4]单片机为核心,通过DS1302时钟芯片进行时间控制,使用1×4键盘作为数据输入方式,驱动1602显示器提示程序运行过程和开锁的步骤。系统结构如图1。
图1 系统结构图
Figure 1 The structure chart of System
2系统设计
2.1系统硬件组成
使用的元器件有:核心芯片STC89C52、时钟芯DS1302、液晶显示1602、继电器、蜂鸣器、1*4键盘[5]、发光二极管和三极管。
2.2系统软件设计
本系统采用单片机的C语言编写程序对整个系统的硬件进行管控。实现了对DS1302的控制,1602的显示,时间管控。其中时间管控包括:系统时间以及开启与关闭时间的设定,系统时间与开启或关闭时间相同时继电器、蜂鸣器和指示灯工作状态的管控 。系统程序流程如图2所示。
图2 系统程序流程图
Figure 2 The flow chart of System Process?
2.2.1 DS1302的控制[6]
DS1302的RST、SCLK和I/O分别与单片机的P2.0、P2.1和P2.2相连。单片机与DS1302进行数据交换时,首先要将RST变为高电位,也就是单片机P2.0必须逻辑1。在RST保持为高电位时候,SCLK时钟由低电位变为高电位的上升沿时,数据被写入DS1302中,数据从最低位通过I/O开始写入。在RST保持高电位,SCLK时钟由高电位变为低电位的下降沿时,从DS1302读取数据,数据也是从DS1302的最低位通过I/O读取。
DS1302读取数据子程序
unsigned char read( unsigned char addr )
{
unsigned char j,temp,value;
CE=0;
SCLK=0;
CE = 1;
//发送地址
for ( j=8; j0; j-- )
{
SCLK = 0;
temp = addr;
IO = (bit)(temp0x01);
addr = 1;
SCLK = 1;
}
//读取数据
for ( j=8; j0; j-- )
{
ACC_7=IO;
SCLK = 1;
ACC=1;
SCLK = 0;
}
CE=0;
value=ACC;
value=value/16*10+value%16;
return (value);
}
2.2.2 1602的显示[7]
通过单片机指令控制1602光标是否闪烁,是否清除原来数据以及显示的具体位置,并不停地对数据显示进行刷新,从而显示了准确的时间,并为系统提供了智能的人机对话模式。
2.2.3 时间的管控
当系统启动时,STC89C52单片机立即从DS1302时钟芯片获取时间,并通过键盘和1602显示器配合完成对当系统时间、启动时间和关闭时间的设定。当系统时间与启动时间相同,从而控制继电器闭合,直到系统时间与关闭时间相同时断开。
?
3系统仿真
本文采用具有强大的EDA仿真功能的protues[8]软件进行仿真,仿真图如图2。
图3系统仿真图
Figure 3 Simulation diagram of the System
3.1系统介绍
系统仿真图
显示全部