比赛计时器单片机课程设计.docx
- 文档编号:16493897
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:14
- 大小:436.60KB
比赛计时器单片机课程设计.docx
《比赛计时器单片机课程设计.docx》由会员分享,可在线阅读,更多相关《比赛计时器单片机课程设计.docx(14页珍藏版)》请在冰点文库上搜索。
比赛计时器单片机课程设计
单片微型计算机原理与接口技术课程设计报告
班级:
电0802-2班
姓名:
学号:
指导老师:
日期:
2010/6/27~2010/7/2
一、课程设计要求
比赛计时器
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.串行口中断流程图
六、程序代码
STEQUP2.4
JHEQUP2.3
ASEQUP2.2
BGEQUP2.1
ORG0000H
AJMPMAIN
ORG0003H
AJMPIN0
ORG000BH
AJMPTIME0
ORG0013H
AJMPIN1
ORG001BH
AJMPTIME1
ORG0023HAJMPTX
ORG0050H
MAIN:
;初始化
MOVSP,#60H
SETBP3;关蜂鸣器
CLRPSW.3
CLRPSW.4
CLRTR0
MOVTMOD,#21H;T1方式2,T0方式1
MOVR5,#3;时间初值
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTL1,#0F3H
MOVTH1,#0F3H
CLR00H
MOVR6,#0;A的分
MOVR7,#0;B的分
MOVSCON,#0D8H;方式3
MOVPCON,#00H
MOVR3,#0
SETBET0
SETBET1
SETBEX0
SETBIT0
SETBTR1
SETBES
SETBEA
LP:
CJNER5,#0,CONT
CLRTR0
CLRET0
CLRP3.6
CONT:
JB00H,ST0
JNBAS,JIA
JNBBG,JIAN
JNBJH,JH0
AJMPLP
ST0:
JNBJH,JH0
AJMPLPAB
JH0:
MOVA,R6
XCHA,R7
MOVR6,A
JNBJH,$
AJMPLP
LPAB:
JNBAS,AJ;改分
JNBBG,BJ
AJMPLP
AJ:
INCR6
JNBAS,$
AJMPLPAB
BJ:
INCR7
JNBBG,$
AJMPLPAB
;改时间
CJNER5,#99,LL
LJMPLP
LL:
INCR5
JNBAS,$
SJMPLP
JIAN:
CJNER5,#0,LL1
LJMPLP
LL1:
DECR5
JNBBG,$
SJMPLP
;改时间
XIANSHI:
MOVP0,30H
SETBP2.6
ACALLDELY
CLRP2.6
MOVP0,31H
SETBP2.5
ACALLDELY
CLRP2.5
MOVP0,32H
SETBP1.6
ACALLDELY
CLRP1.6
MOVP0,33H
SETBP1.7
ACALLDELY
CLRP1.7
RET
CONVE:
MOV30H,#00;转换成十进制
MOV31H,#00
MOV32H,#00
MOV33H,#00
MOVA,R5
MOVB,#10
DIVAB
MOV31H,A
MOV30H,B
MOVA,R6
MOVB,#10
DIVAB
MOV32H,B
MOVA,R7
MOVB,#10
DIVAB
MOV33H,B
RET
XING:
MOVR2,#4
MOVR1,#30H
LP2:
MOVA,@R1
MOVDPTR,#LAMPMAP
MOVCA,@A+DPTR
MOV@R1,A
INCR1
DJNZR2,LP2
RET
DELY:
SETBPSW.4
MOVR7,#255
GY:
MOVR6,#50
DJNZR6,$
DECR7
CJNER7,#1,GY
DJNZR7,$
DJNZR5,$
CLRPSW.4
RET
DELY2:
SETBPSW.3
MOVR2,#100
MOVR4,#100
D1:
MOVR3,#100
DJNZR3,$
DJNZR2,D1
CLRPSW.3
RET
TIME0:
MOVTH0,#3CH;定时50MS
MOVTL0,#0B0H
INCR3
CJNER3,#20,L3
DECR5
MOVR3,#00H
L3:
RETI
TIME1:
PUSHACC
PUSHPSW;MOVTL1,#0F3H
ACALLCONVE
ACALLXING
ACALLXIANSHI
POPPSWPOPACC
RETI
IN0:
JNB00H,KAI
CLR00H;GUAN
CLRTR0
;CLRP3.6
RETI
KAI:
SETB00H;KAI
SETBTR0
RETI
IN1:
MOVA,#04H
MOVSBUF,A
JNBTI,$
CLRTI
MOVA,#14H
MOVSBUF,A
JNBTI,$
CLRTI
MOVA,#02H
MOVSBUF,A
JNBTI,$
CLRTI
RETI
TX:
JNBRI,FS
JB01H,WAIT1;通讯
MOVA,SBUF
CJNEA,#04H,QQ
MOVA,#04H;是04H
MOVSBUF,A
JNBTI,$
CLRTI
SETB01H
CLRRI
QQ:
RETI
WAIT1:
CLR01H
MOVA,SBUF
CJNEA,#0AAH,RET1
MOVA,R7;是AAH
ANLA,#0FH
MOVR7,A
MOVA,R6
ANLA,#0FH
SWAPA
ADDA,R7
MOVSBUF,A
JNBTI,$
CLRTI
CLRRI
RET1:
RETI
FS:
CLRTI
RETI
LAMPMAP:
DB7EH48H3DH6DHDB4BH67H77H4CH7FH6FH
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单片机实例教程》,电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 比赛 计时器 单片机 课程设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)