2024年5月2日发(作者:)
课 程 设 计 报 告
基于微处理器
的定时器设计
一. 硬件系统的设计:
(1)设计要求:
本课程设计的定时器,待机状态是一台时钟,以秒为单位两点闪烁,可
设置多个闹铃时间,蜂鸣器鸣叫时间持续一分钟,并可作秒表使用,可控制
秒表启停。
(2) 设计目的:
1. 复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进
行系统的回顾和总结。
2. 拓展知识面,课堂的知识是远远满足不了设计的要求的,这就需要我们
主动去找寻更多的资料,了解更多的知识。
3. 培养了设计能力和解决实际问题的能力,同时增强了自学能力,通过设
计完整的单片机系统也初步掌握了组成系统、编程、调试等能力。
4. 通过本LCD电子钟的设计初步了解了单片机应用系统开发研制过程,软
件和硬件设计的方法。
5. 本课程设计目的是制作基于微处理器的定时器,将学过的微处理器硬件
和软件知识,以及电子线路知识进行综合应用,形成一个能实际运行的
电子作品。
(3) 系统组成及工作原理
该定时器主要由单片机,复位电路 ,电源,蜂鸣器和开关构成。
本定时器采用ATMEL公司的AT89S51单片机为核心,使用晶振11.0592MHz
晶振与单片机AT89S51相连,通过软件编程的方法实现12分钟为一个周期,同
时LCD显示分钟和秒的要求。
(a)硬件的设计:
本设计的硬件系统主要由以下几个模块来实现:控制模块、输入模块、输出
模块、电源模块。
控制模块主要用开关实现秒表与时钟以及闹钟之间的变换。。
输入模块主要用于向控制器模块输入各种信息。
输出模块主要用于实时的实现各种显示。
电源模块主要用于向整个硬件系统供电。
(b)设计电路连线原理图:
C1
220p
19
(c)时钟电路
X1
CRYSTAL
C2
220p
18
9
29
本设计是采用内部时钟方式,用一个11.0592MHz晶振和两个30Pf瓷片电容
组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图见图
(d)AT89S51及LCD的引脚图:
a) :
b)
(4)元器件清单
名称
CPU
晶振
电阻
AT89S51
11.0592MHZ
5.1K
150
三极管
排阻
电容
9012
4.7K*8
10uf
0.1uf
30pf
40引脚插针
蜂鸣器
数量
1
1
3
1
1
1
1
1
2
1
1
液晶显示器ED-S801
剪刀
镊子
面包板、键盘
1
1
1
1、1
(二)软件系统的设计:
(1)使用单片机资源的情况:
设计时使用单片机资源的情况如下:AT89S51单片机的
P0、P1、P2口作为液晶数据线接口,其中,P0口接液晶分
个位,P1接液晶秒十位,P2接液晶秒个位。P3 口接时钟电
路和控制开关,用单片机定时器0中方式1来控制定时器运
行。
(2)软件系统的各个模块功能:
本设计的软件系统主要采用以下基本模块来实现:
主程序、中断服务程序、开关控制和液晶显示程序。
主程序用于对于各个程序模块的运行及控制,以及各个模
式程序的初始化。特别是定时中断的初始值。实验中定时时
间为50ms。所以TH0=3CH, TL0=0B0H。
中断服务程序用于时钟的运行,以及通过定时中断来实现各
个模式。即是待机模式,闹钟模式,秒表模式。通过定时中
断控制液晶中间两点闪烁,每隔0.5s闪烁一次。在闹钟模式,
但时钟走到10s时,蜂鸣器响5s。
开关控制用于确定按键并进行相应的模式处理。如,当K2=1,
时钟进入秒表模式,假如K1=1,秒表计时,否则K1=0,秒表
暂停。但K2=0,判断K1,假如K1=1,时钟进入闹钟模式,
否则进入待机模式。
液晶显示程序用于控制液晶的显示,显示分秒时钟。
(3)设计的软件流程框图:
YES
进入秒表模式
开始
进入主程序
开始计时
K2为高吗?
NO
K1为高吗?
YES NO
进入闹钟模式
待机模式
开始计时
开始计时
继续计时
K1为低?
时钟到10
no
YES no
秒?
yes
秒表暂停
秒
响够
no
5秒?
no
秒表继续计时
yes
继续计时
开始计时
(3)实验程序
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ITT0
ORG 0100H
MAIN: MOV SP,#60H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TMOD,#01H
SETB ET0
SETB EA
MOV R0,#0
MOV R1,#0
MOV R2,#0
CLR P3.0
MOV R7,#0
MOV DPTR,#TAB
SETB P3.1
SETB P3.3
SETB TR0
SJMP $
ORG 0500H
ITT0: MOV TH0,#3CH
MOV TL0,#0B0H
INC R7
CJNE R7,#20,MM;1S是否到
CPL P3.1
MOV R7,#0
JB P3.7,MODE2;K2为1则进入秒表模式,否则顺序执行,进
入待机或闹钟模式
INC R2
JNB P3.3,DELL;闹钟响?跳入判断是否响够5S
WW: CJNE R2,#10,EXIT;秒个位溢出
MOV R2,#0
INC R1
JB P3.6,MODE1;K1为1跳转入闹钟模式,否则顺序执行,进
入待机模式
QQ: CJNE R1,#6,EXIT;秒十位溢出
MOV R1,#0
INC R0
CJNE R0,#10,EXIT;分个位溢出
MOV R0,#0
CPL P3.0;分十位变化,只为0或1
SJMP EXIT
MM: CJNE R7,#10,EXIT0
CPL P3.1;0.5S到,两点取反
EXIT: MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A;输出分秒
EXIT0: RETI
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
MODE1: JB P3.0,EXIT1
CJNE R0,#0,EXIT1
CJNE R1,#1,EXIT1
CJNE R2,#0,EXIT1;时间到00:10吗
CLR P3.3
MOV R6,#5
EXIT1: SJMP QQ
DELL: DJNZ R6,LOOP;响够5S吗
SETB P3.3
LOOP: SJMP WW
MODE2: INC R2
CJNE R2,#10,EXIT2
MOV R2,#0
INC R1
CJNE R1,#6,EXIT2
MOV R1,#0
INC R0
CJNE R0,#10,EXIT2
MOV R0,#0
CPL P3.0
SJMP EXIT2
EXIT2: JNB P3.6,STOP;秒表暂停键按下,即K1为0
EXIT3: SETB TR0;继续,开定时器中断,继续计时
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
SJMP EXIT0
STOP: CLR TR0;暂停,关定时器中断,停止计时
JB P3.6,EXIT3
SJMP STOP
END
发布评论