资源描述
温州职业技术学院高等教育自学考试
毕业论文(设计)
课题名称: 电子技术在生产实践中应用的课题设计
姓 名: 准考证号:
专 业: 所在中职:
年 级: 08级 指导教师: 王照恩
2012年 02 月 21 日 浙江温州
课 题 摘 要
数字电子钟的设计方法有多种,其中,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。
本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。与传统机械表相比,它具有走时精确,显示直观等特点。
此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示“P”点以及时分秒的计时,算是一次比较成功的设计了。
关键词 电子钟 单片机 汇编
目 录
1 电子钟功能及总体方案的介绍 1
1.1电子钟功能介绍 1
1.1.1基本功能要求 1
1.1.2扩展功能要求 1
1.2总体方案介绍 2
1.2.1计时方案 2
1.2.2键盘/显示方案 2
2 电子钟的工作原理 3
2.1实现时钟计时的基本方法 3
2.2电子钟的时间显示 3
2.3电子钟的启、停及时间调整 3
3 电子钟原理图及元件清单 4
3.1电子钟电路原理图 4
3.2元件清单 4
4 软件系统设计 5
4.1电子钟程序流程框图 5
4.1.1主程序流程框图 5
4.1.2键扫子程序流程框图 5
4.1.3中断服务程序流程框图 7
4.1.5显示子程序流程框图 9
4.1.6加一子程序流程框图 10
4.2电子钟总体程序清单 11
总 结 18
致 谢 19
参考资料 20
附 录 21
1 电子钟功能及总体方案的介绍
1.1电子钟功能介绍
1.1.1基本功能要求
可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。
(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态;
(2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态;
(3)、调整状态,按偶数次A键进入,在此状态下,按A、B、C、D键均有效。如按下A键,则退出调整状态,进入运行状态;按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。
基本功能要求:
“P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。
按下A 键后,电子钟以起始时间:00时00分00秒开始运行。
再次按下A 键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。
注意:每次按下B、C、D键,只允许加一,不允许连加。
1.1.2扩展功能要求
(1)、在调整状态下,按下B、C、D键,允许连加,而A键无论在何种状态下,均不允许连击;
(2)、时、分、秒的间隔符“。”以一定频率闪烁;
(3)、时间显示以“灭零”方式进行;
(4)、可调整运行的电子钟用两个按键(例如:A键、B键)来控制。
1.2总体方案介绍
1.2.1计时方案
利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
1.2.2键盘/显示方案
AT89S52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
AT89S52 是一种低功耗,高性能的CMOS 8位微型计算机。它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案,结构如图1-1如示。
1-1 AT89S52电路显示方框图
2 电子钟的工作原理
2.1实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs =50000μs
X=15536→0011110010110000→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
37H 36H 35H 34H 33H 32H 31H 30H
时十位 时个位 分隔 分十位 分个位 分隔 秒十位 秒个位
2.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。
A键控制电子钟的启、停;
B键调整时;
C键调整分;
D键调整秒。
3 电子钟原理图及元件清单
3.1电子钟电路原理图
电子钟原理图 (见附录1)
3.2元件清单
电子钟元件清单如表1所示:
表1 电子钟元器件清单
元件名称
规格型号
数量(个)
单片机
AT89S52
1
显示驱动芯片
74LS245
2
8位一体的共阳LED显示器
7SEG-MPX8-CA-BLUE
1
晶振
12MHz
1
电容
33pF
2
电容
22μF
1
按键
BUTTON
5
电阻
0.2K
1
电阻
1K
1
上拉电阻
10K
4
限流电阻
0.1K
8
排阻
RESPACK-8/10K
1
4 软件系统设计
4.1电子钟程序流程框图
4.1.1主程序流程框图
图4-1主程序流程框图
见图4-1所示
4.1.2键扫子程序流程框图
见图4-2所示
图 4-2 键扫子程序流程框图程框图
4.1.3中断服务程序流程框图
见图4-3所示
4-3中断服务程序流程框图
4.1.4“P.”点显示子程序流程框图
见图4-4所示
图4-4 “P.”点显示子程序流程框图
4.1.5显示子程序流程框图
见图4-5所示
4.1.6加一子程序流程框图
见图4-6所示
图 4-6 加一子程序
4.2电子钟总体程序清单
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0030H
MAIN: MOV SP, #60H ;确立堆栈区
MOV PSW, #00H ;
MOV R0, #20H ;RAM区首地址
MOV R7, #5FH ;RAM区单元个数
QL: MOV @R0, #00H ;RAM清零
INC R0
DJNZ R7, QL
MOV IP, #02H ;IP初始化,优先定时器0
MOV IE, #82H ;IE初始化,
MOV TMOD, #01H ;定时器0方式1工作
LCALL PP ;调P.子程序
NEXT: LCALL KEY ;按键检测子程序
JB ACC.0, RUNF ;A键按下运行
LCALL DISP ;调用显示子程序
SJMP NEXT
RUNF: LCALL OUTT ;调传送子程序
LCALL TIME ;开电子钟
JK: LCALL DISP ;调用显示子程序
LCALL KEY ;按键检测子程序
JZ JK
LCALL ANKEY
LCALL DISP ;调用显示子程序
SJMP JK
P点显示:
PP: MOV 37H, #12 ;P点编码送寄存器
MOV R0, #30H ;P点编码送寄存器
MOV R7, #07H
PPP: MOV @R0, #10
INC R0
DJNZ R7, PPP
RET
键扫子程序:
KEY: LCALL KEYS ;调键值处理子程序
JZ EXIT ;没有键按下转到返回
LCALL DISP
LCALL DISP ;调显示去抖动
LCALL KEYS
JZ EXIT
MOV B, 20H ;保存键值
KEYSF: LCALL KEYS ;调键值处理子程序
JZ KEYY ;键释放,转到恢复键值
LCALL DISP ;调显示子程序延时
AJMP KEYSF ;等到键释放
KEYY: MOV A, B ;键值送20H单元保存
EXIT: RET ;返回
KEYS: MOV P1, #0FFH ;先向P1口写1
MOV A, P1 ;P1口值送累加器A
CPL A ;A值取反
ANL A, #0FH ;保存P1口的低4位
MOV 20H, A ;A值送20H保存
RET
键功能子程序:
ANKEY: CLR EA ;关中断
CHECK: JB TR0, YXZ ;判断是否运行
K0: CJNE A, #01H, K1
AJMP RUN ;转运行
K1: CJNE A, #02H, K2
AJMP KEY1 ;转时调整
K2: CJNE A, #04H, K3
AJMP KEY2 ;转分调整
K3: CJNE A, #08H, OUT
AJMP KEY3 ;转秒调整
YXZ: JB ACC.0, STOP
AJMP OUT
KEY1: MOV R0, #45H ;时调整
LCALL ADD1
CLR C
CJNE A, #24H, OUTT
ACALL CLR0
AJMP OUTT
KEY2: MOV R0, #43H ;分调整
LCALL ADD1
CLR C
CJNE A, #60H, OUTT
ACALL CLR0
AJMP OUTT
KEY3: MOV R0, #41H ;秒调整
ACALL ADD1
CLR C
CJNE A, #60H, OUTT
ACALL CLR0
传送显示数据:
OUTT: MOV 30H, 40H ;秒显示单元41H-42H
MOV 31H, 41H
MOV 32H, #11 ; "-"
MOV 33H, 42H ;分显示单元43H-44H
MOV 34H, 43H
MOV 35H, #11 ; "-"
MOV 36H, 44H ;时显示单元44-45H
MOV 37H, 45H
RET
STOP: CLR TR0 ;关电子钟并跳出
RET
RUN: LCALL TIME ;运行电子钟
OUT: SETB EA ;无键按下或完成功能跳出
RET
运行电子钟:
TIME: SETB EA
MOV TL0, #0B0H
MOV TH0, #3CH ;3CB0H
MOV R4, #20 ;50ms,20次循环
SETB TR0 ;启动定时器0
RET
定时中断:
INTT0: PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
MOV TL0, #0B0H ;重新设定定时初值
MOV TH0, #3CH
SETB TR0 ;启动定时器0
DJNZ R4, OUTT0 ;1秒到
ADDSS: MOV R4, #14H ;20次计数
MOV R0, #41H ;秒十位
ACALL ADD1 ;加1程序
CLR C
CJNE A, #60H, ADDMM ;1分到
ADDMM: JC OUTT0
ACALL CLR0
MOV R0, #43H
ACALL ADD1 ;加1程序
CLR C
CJNE A, #60H, ADDHH ;1小时到
ADDHH: JC OUTT0
ACALL CLR0
MOV R0, #45H
ACALL ADD1 ;加1程序
CLR C
CJNE A, #24H, HOUR ;1天到
HOUR: JC OUTT0
ACALL CLR0
OUTT0: MOV 30H, 40H ;秒显示单元41H-42H
MOV 31H, 41H
MOV 32H, #11 ; "-"
MOV 33H, 42H ;分显示单元43H-44H
MOV 34H, 43H
MOV 35H, #11 ; "-"
MOV 36H, 44H ;时显示单元44-45H
MOV 37H, 45H
POP PSW
POP ACC
SETB ET0
RETI
时间清零子程序:
CLR0: CLR A
MOV @R0, A
DEC R0
MOV @R0, A
RET
加一子程序:
ADD1: MOV A, @R0 ;取十位
DEC R0
SWAP A
ORL A, @R0 ;组合十位与个位
ADD A, #01H ;加1
DA A ;十进制调整
MOV R3, A ;暂存
ANL A, #0FH ;屏蔽十位
MOV @R0, A ;放入个位单元
MOV A, R3 ;取值
INC R0
SWAP A
ANL A, #0FH ;屏蔽个位
MOV @R0, A ;放入十位单元
MOV A, R3 ;数值放入A中等待判断
RET
显示子程序 30H:
DISP: MOV R1, #30H ;显示缓冲存储单元首地址
MOV R2, #80H ;从右至左显示
DISP1: MOV P2, R2 ;送位控
MOV A, @R1
MOV DPTR, #TAB
MOVC A, @A+DPTR
MOV P0, A ;送段控
ACALL DL ;延时
MOV A, R2
JB ACC.0, DISP2
RR A
INC R1
MOV R2, A
AJMP DISP1
DISP2: RET
TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH
DL: MOV R6, #14H ;显示延时子程序
DL1: MOV R7, #19H ;
DL2: DJNZ R7, DL2
DJNZ R6, DL1
RET
END
总 结
毕业设计中既动脑,又动手,是一个理论与实际结合的过程。仅仅有理论是不够的,更重要的是实际,是我们设计的实物,具有设计合理,经济实用的优点。这就需要我们设计者考虑问题是要仔细,周密,不能有丝毫的大意。对设计方案的优越化,也需要我们综合各方面的因素考虑,尤其是实际。
鉴于本人所学知识有限,经验不足,又是初次研究这种复杂的实际,在此过程中难免存在一些错误和不足之处,恳请各位老师给予批评和指正。
致 谢
本课题在选题及研究过程中得到王照恩老师的悉心指导。感谢温州职业中等专业学校和温州职业技术学院对我的辛勤培育,感谢王老师对本次毕业设计的指导。
参考资料
1 胡辉.单片机应用系统设计与训练[M].中国水利水电出版社,2004.9。
2 曹巧媛.单片机原理及应用[M].北京:电子工业出版社,1997.7。
3 赵秀珍,单永磊.单片微型计算机原理及其应用[M].北京:中国水利水电出版社,2001.8。
4 张毅刚,修林成,胡振江.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1990.8。
5 张洪润,兰清华.单片机应用技术教程[M].北京:清华大学出版社,1997.11。
6 李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993.8。
附 录
19
展开阅读全文