比赛计时器单片机课程设计_单片机课程设计时钟

2020-02-27 其他范文 下载本文

比赛计时器单片机课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机课程设计时钟”。

单片微型计算机原理与接口技术课程设计报告

班级:电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单片机实例教程》,电子工业出版社

《比赛计时器单片机课程设计.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
比赛计时器单片机课程设计
点击下载文档
相关专题 单片机课程设计时钟 计时器 单片机 课程设计 单片机课程设计时钟 计时器 单片机 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文