比赛计时器单片机课程设计_单片机课程设计时钟
比赛计时器单片机课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机课程设计时钟”。
单片微型计算机原理与接口技术课程设计报告
班级:电0802-2班
姓名:
学号:
指导老师:
日期:2010/6/27~2010/7/2
一、课程设计要求............................................................................3
二、硬件原理图................................................................................4 1.通用板原理图...........................................................................4 2.本实验所用到的原件原理图...................................................4
三、实物图........................................................................................5
四、硬件系统设计说明....................................................................5
五、软件流程图................................................................................6 1.主程序流程图...........................................................................6 2.串行口中断流程图...................................................................7
六、程序代码....................................................................................7
七、软件清单..................................................................................10
八、个人感想体会..........................................................................10
九、参考文献..................................................................................12
一、课程设计要求
比赛计时器
4个数码管,其中2个用于记录A、B队的分数,每队1个数码管,记分范围0~9分,另外2个数码管用来记录赛程时间,单位为秒。
采用倒计时方式。即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。计时范围为0~99秒,倒计时时间由按键设置。
要求:
1.有设置时间、启动、暂停、交换场地等功能。2.能记录整个赛程的比赛时间,并能修改比赛时间
3.能随时刷新甲、乙两队在整个过程中的比分
4.中场交换比赛场地时,能交换甲、乙两队比分的位置
5.比赛结束时,能发出报警声
本机地址为04H,当接到上位机发的04H时,则回发04H 当接到上位机发的AAH时,则将比分发出
二、硬件原理图
1.通用板原理图
2.本实验所用到的原件原理图
三、实物图
四、硬件系统设计说明
P1口用作数据输出口,P3.2用作起、停按键的输入口,P2.1用作中场交换场地按键的输入口,P2.2和P2.3用作更改时间和分数按键的输入口,P2.2和P2.3是分时复用的,没开始时用于改时间,开始后用于改分数,P1.6、P1.7、P2.5、P2.6分别用于四个数码管的片选,P3.6用于蜂鸣器的选通位。
五、软件流程图
1.主程序流程图2.串行口中断流程图
六、程序代码
ST EQU P2.4
JH EQU P2.3
AS EQU P2.2
BG EQU P2.1
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP IN0
ORG 000BH
AJMP TIME0
ORG 0013H
AJMP IN1
ORG 001BH
AJMP TIME1
ORG 0023H
ORG 0050H MAIN:
;初始化
MOV SP,#60H
SETB P3;关蜂鸣器
CLR PSW.3
CLR PSW.4
CLR TR0
MOV TMOD,#21H;T1方式2,T0方式1
MOV R5,#3;时间初值
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TL1,#0F3H
MOV TH1,#0F3H
CLR 00H
MOV R6,#0;A的分
MOV R7,#0;B的分
MOV SCON,#0D8H;方式3
MOV PCON,#00H
MOV R3,#0
SETB ET0
SETB ET1
SETB EX0
SETB IT0
SETB TR1
SETB ES
SETB EA
LP:
CJNE R5,#0,CONT
CLR TR0
CLR ET0
CLR P3.6 CONT:
JB 00H,ST0
JNB AS,JIA
JNB BG,JIAN
JNB JH,JH0
AJMP LP ST0:
JNB JH,JH0
AJMP LPAB JH0:
MOV A,R6
XCH A,R7
MOV R6,A
JNB JH,$
AJMP LP
LPAB:
JNB AS,AJ;改分
JNB BG,BJ
AJMP LP AJ:
INC R6
JNB AS,$
AJMP LPAB
BJ:
INC R7
JNB BG,$
AJMP LPAB
;改时间
CJNE R5,#99,LL
LJMP LP LL:
INC R5
JNB AS,$
SJMP LP JIAN:
CJNE R5,#0,LL1
LJMP LP
LL1:
DEC R5
JNB BG,$
SJMP LP
;改时间
XIANSHI:MOV P0,30H
SETB P2.6
ACALL DELY
CLR P2.6
MOV P0,31H
SETB P2.5
ACALL DELY
CLR P2.5
MOV P0,32H
SETB P1.6
ACALL DELY
CLR P1.6
MOV P0,33H
SETB P1.7
ACALL DELY
CLR P1.7
RET
CONVE:
MOV 30H,#00;转换成十进制
MOV 31H,#00
MOV 32H,#00
MOV 33H,#00
MOV A,R5
MOV B,#10
DIV AB
MOV 31H,A
MOV 30H,B
MOV A,R6
MOV B,#10
DIV AB
MOV 32H,B
MOV A,R7
MOV B,#10
DIV AB
MOV 33H,B
RET
XING: MOV R2,#4
MOV R1,#30H LP2:
MOV A,@R1
MOV DPTR,#LAMPMAP
MOVC A,@A+DPTR
MOV @R1,A
INC R1
DJNZ R2,LP2
RET
DELY:
SETB PSW.4
MOV R7,#255 GY:
MOV R6,#50
DJNZ R6, $
DEC R7
CJNE R7,#1,GY
DJNZ R7,$
DJNZ R5,$
CLR PSW.4
RET
DELY2: SETB PSW.3
MOV R2,#100
MOV R4,#100
D1: MOV R3,#100
DJNZ R3,$
DJNZ R2,D1
CLR PSW.3
RET
TIME0: MOV TH0,#3CH;定时50MS
MOV TL0,#0B0H
INC R3
CJNE R3,#20,L3
DEC R5
MOV R3,#00H
L3:
RETI
TIME1: PUSH ACC
PUSH PSW
ACALL CONVE
ACALL XING
ACALL XIANSHI
POP PSW
RETI
IN0: JNB 00H,KAI
CLR 00H;GUAN
CLR TR0
;CLR P3.6
RETI
KAI:
SETB 00H;KAI
SETB TR0
RETI
IN1:MOV A,#04H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#14H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#02H
MOV SBUF,A
JNB TI,$
CLR TI
RETI
TX:
JNB RI,FS JB 01H,WAIT1;通讯
MOV A,SBUF
CJNE A,#04H,QQ
MOV A,#04H;是04H
MOV SBUF,A
JNB TI,$
CLR TI
SETB 01H
CLR RI
QQ:
RETI
WAIT1: CLR 01H
MOV A,SBUF
CJNE A,#0AAH,RET1
MOV A,R7;是AAH
ANL A,#0FH
MOV R7,A
MOV A,R6
ANL A,#0FH
SWAP A
ADD A,R7
MOV SBUF,A
JNB TI,$
CLR TI
CLR RI RET1:
RETI
FS:
CLR TI
RETI
LAMPMAP:DB 7EH 48H 3DH 6DH DB 4BH 67H 77H 4CH 7FH 6FH
END
七、软件清单
1.WAVE6000 2.PROTEL 3.PROTUS 4.STC-ISP-V483
八、个人感想体会
通过一周的单片机课程设计,是我对51单片机有了更深的认识,将课上所学习的理论知识应用于实践,是自己得到了很大的提高。
在编程阶段,明显感觉到程序比平时的实验复杂得多,虽然在编程过程中遇到了好多困难,比如:按键的去抖动问题,显示的实时性,按键的数量不够用等等,不过还好平时有些基础,在经过自己的认真思考和团队合作,最后把这些问题都克服了。思路没有问题,然后是proteus绘制原理图。由于以前没用过proteus开始找器件的时候有点费劲,我们组在proteus仿真中刚开始并没有成功,在经过反复修改后,终于仿真成功了,后来我们就直接把程序输入到片子中,又发现了一些在仿真中没有出现的问题:可能是由于电路的连接错误,字型码和书上介绍的不一致,于是我们又自己编的字型码,这使我深刻的认识到实践与理论之间的巨大差距。
由于所使用的板子只有5个按键,而实现的功能需要开始1个、暂停1个、加分2个、加时间2个、交换场地1个,总共要7个按键,后来把开始暂停合用1个,加时间和加分分时复用2个,交换场地1个,合起来总共4个按键就足够了。
由于程序比较长,用到的寄存器比较多,我们就切换了寄存器组,然而在开始并没有抬高堆栈,导致显示出现错误,后来把堆栈抬高到60H,解决了这个问题。
另一个问题就是显示的实时性,刚开始时我们把显示程序放在了主程序,可是在进入完定时器中断后,主程序就不知道已经执行到哪里了,导致时间显示时快时慢;后来我们把显示程序放在了定时器中断中,解决了实时性问题。
短暂的5天小学期单片机课程设计,锻炼了自己的动手和思考,以及团队的合作能力,也查缺了自己在知识学习中所存在的漏洞。激发了学习的热情。最后要十分感谢邓老师的辛勤指导!
九、参考文献
1.高峰,《单片微型计算机原理及接口技术》,科学出版社
2.李学理,《基于proteus的8051单片机实例教程》,电子工业出版社