电子定时器
1.系统硬件电路的设计
(1)芯片的选择
硬件电路要求实现对交流大电流电源的控制、定时时间的设定显示和到点提醒等功能。若采用40脚单片机有利于设计,但会增大电路板的体积。本设计采用ATMEL公司的AT89C2051单片机,芯片为20脚,体积小,工作电压范围宽(2.7V~6V)。
(2)交流控制接口电路
本设计采用继电器控制。也可用可控硅控制等。
(3)显示电路
显示电路采用4个LED数码管。为了在定时精度达到分的时候能显示出时钟在计时,两个数码管之间增加了两个发光二极管,以其闪烁来代表秒走动;为了使硬件显示电路简单,采用单片机直接驱动LED数码管(AT89C2051输出口能吸收20mA电流),用动态扫描法实现LED显示。
(4)电源电路
电源电路采用普通三端集成稳压电路。
(5)报警电路
报警电路采用普通5V成品小蜂鸣器。
2.系统软件主程序的设计
程序采用模块化、结构化设计,并采用了软件抗干扰技术,其软件的可靠性较好,可维护性强。其主要程序模块有:
(1)主程序
主程序有3个状态:待命状态、计时工作状态和到点工作状态。
(2)菜单(设置)程序
菜单程序完成定时方式和定时时间的设定。
(3)到点工作程序
到点工作程序根据所选定的不同定时方式,作不同的处理。
(4)抗干扰(出错)程序
程序跑飞时能被软件陷阱捕获,被抗干扰程序处理,返回复位状态,重新启动系统。
3.操作说明:
(1)通电以后,显示窗显示“----”,表示机器处于待命状态。
(2)按功能键(S2),显示窗显示“F-01”,进入功能设置,此时按修改键(S3)选择不同定时方式:
方式1:定时关电源,定时范围为1s~30min59s;
方式2:定时关电源,定时范围为1s~30h59min;
方式3:定时开电源,定时范围为1s~30min59s;
方式4:定时开电源,定时范围为1s~30h59min.
(3)选定定时方式后,再按功能键,进入时间设定。先设定秒(方式1、方式3)或分(方式2、方式4),再设定分(方式1、方式3)或小时(方式2、方式4)。按修改键增加数字,按功能键确定,按住修改键不放可快进。
(4)设定时间完毕,按下功能键,定时器长鸣一声,开始工作。
(5)定时时间到了在定时方式1和方式2,定时器会鸣叫,此时按任意键可停止鸣叫。
(6)在任何情况下,按下复位键(S2键),定时器重新回到待命状态。
原理图:
实物图:
源代码:
;************* 电子定时器的设计******************;
;*MCU: AT892051 ;
;*MCU-crystal: 12M ;
;*Version: 01 ;
;*Last Updata: 2007-6-14 ;
;*Author: zhaojun ;
;*Description: ;
;定时器T0、T1溢出周期为50MS,T0为秒计数用 ;
;S2为功能键、S3为方式选择键 ;
;P1口为字符输出口,采用共阳显示管 ;
;P3.2~P3.5为位选,P1.7为报警发音,P3.7为被控继电器 ;
;************************************************;
;******************
; 伪定义 ;
;******************
SL EQU 30H ; SL存放秒的个位数
SHEQU 31H ; SH存放秒的十位数
ML EQU 32H ; ML存放分的个位数
MH EQU 33H ; MH存放分的十位数
HL EQU 34H ; HL存放时的个位数
HHEQU 35H ; HH存放时的十位数
;
L0 EQU 36H ; L0~L3:显示数据存储器
L1EQU 37H
L2 EQU 38H
L3EQU 39H
DSPLYP EQU 3AH ; 显示数据指针(DISPLAY-POINT)
PLYTS EQU 3BH ; 显示次数计数器(DISPLAY-TIMES)
;
LPLMOD BIT 39H ; 低两位显示方式(LOW-PLAY-MOD)
HPLMOD BIT 3AH ; 高两位显示方式(HIGH-PLAY-MOD)
BRIGHT BIT 3BH ; DISPLAY子程序参数:亮灭指示位
;
TCOUNT EQU 3CH ; 时间计数器(TIME-COUNT)
;
ADDRES EQU 3DH ; 加1子程序参数
MAX EQU 3EH ; 加1子程序参数
IFDEC BIT 20H ; BCD加法子程序参数
;
R_MOD EQU 3FH ; 响铃方式参数
;
LED4 BIT 30H ; 发光管状态位
BELL BIT P1.7 ; 蜂鸣器
SWITCH BIT P3.7 ; 继电器
FKEY BIT P3.0 ; 功能键 (S1)
MKEY BIT P3.1 ; 修改键 (S2)
;
WORKIN BIT 38H ; 工作状态指示位
;
;******************
; 中断入口 ;
;******************
ORG 0000H
START: LJMP MAIN ; 0000H 引向主程序
LJMP ERR ; 0003H
NOP
NOP
LJMP ERR ; 引向出错处理程序
LJMP PGT0 ; 000BH 引向中断处理程序PGT0
NOP
NOP
LJMP ERR ; 引向出错处理程序
LJMP ERR ; 0013H INT1
NOP
NOP
LJMP ERR
LJMP ERR ; 001BH T1
NOP
NOP
LJMP ERR
LJMP ERR ; 0023H
NOP
NOP
LJMP ERR
LJMP ERR ; 002BH
NOP
NOP
;
;************
; 主程序 ;
;************
MAIN: MOV IE,#00H ; 关中断
MOV SP,#57H ; 设置
电子定时器AT89C205 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)