单片机课程设计——时间控制器 .pdf
单片机课程设计
——时间控制器
一.设计要求:
设计一个以AT89C52为核心的时间控制器。可以实现时间显示和
设置闹钟功能。用89S52单片机设计一个时间控制器,有8位数码管
显示年月日及时分秒,具有日历和时钟功能,有一路输出控制电灯,
有一路输出控制蜂鸣器,可以设置年月日及时分秒,可以设置一张时
间表,该时间表记录什么时间开、关电灯,什么时间开、关蜂鸣器,
而单片机按这张时间表来控制电灯和蜂鸣器。该时间表要求掉电时仍
能保存不掉数据,所以需要用一片EEPROM来保存数据,如用
24C02/04/08等。
二.设计原理:
在AT80C52单片机内部对机器周期进行计数,从而得到定时。由
于AT89C52的内部计数器是16位的,振荡脉冲频率为12MHZ,这
样一个机器周期为1μs,计满一次为65536μs。
显示器选用8位共阳极数码管,分别表示时、分、秒。同时选用
两个74HC273作为片选和位选锁存器。同时经过P0口外加四个键
盘用以调整时间。
软件部分分为四大模块:调整初始时间、设置闹铃时间实现闹铃
功能、显示时间和脉冲计数模块。脉冲计数模块,通过AT89C52的
T0进行计数,设置T0计数溢出时,由内部硬件置位,同时开放中断,
使系统进入中断服务程序。在定时器运行前,在其中先预置入计数初
值,为了计算方便,在次设置中预置的初值为(65536-1000),这
样一次“硬件计时周期”就可定时1000μs。在中断服务程序设置进
行1000次“硬件计时周期”就可得到1S。同理进行分、小时的计
时。
三.流程图:
开始
设置INT0中断向量开启INT0中断
初始化时间
延时1秒,秒数加1
秒数已为60?
分钟数加1,秒钟数清0
分钟数已为60?
小时数加1,分钟数1
小时数已为24?
小时数清0
四.设计原理图:
五.程序清单:
SYSTEMequ0
NMLIGHTONequ6
NMLIGHTOFFequ7
NMALARMONequ8
ANALARMOFFequ9
YEAR1equ10H
YEAR2equ11H
YEAR3equ12H
YEAR4equ13H
MONTH1equ14H
MONTH2equ15H
DAY1equ16H
DAY2equ17H
HOUR1equ18H
HOUR2equ19H
MINUTE1equ1AH
M