单片机微机原理及应用课程设计-篮球记分牌的设计.doc

上传人:椰子壳 文档编号:5019087 上传时间:2020-01-29 格式:DOC 页数:17 大小:114KB
返回 下载 相关 举报
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第1页
第1页 / 共17页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第2页
第2页 / 共17页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第3页
第3页 / 共17页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第4页
第4页 / 共17页
单片机微机原理及应用课程设计-篮球记分牌的设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《单片机微机原理及应用课程设计-篮球记分牌的设计.doc》由会员分享,可在线阅读,更多相关《单片机微机原理及应用课程设计-篮球记分牌的设计.doc(17页珍藏版)》请在三一文库上搜索。

1、单片机微机原理及应用课 目: 篮球记分牌的设计 学 院: 电气工程学院 班 级: 自动化 08-2 姓 名: 指导教师: 完成时间:2011年12月11日篮球赛计时计分器一 设计目的 设计并制作一个用于赛场的篮球赛计时计分器,实现如下基本功能:(1) 能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。(2) 能随时刷新甲,乙两队在整个赛程中的比分。(3) 中场交换场地时,能交换甲,乙两队比分的位置。(4) 比赛时间结束时,能发出报警指令。 二 设计意义 通过篮球计分计时器的制作,可以使我熟悉,了解单片机开发设计实例的过程,并能使读者加深对单片机的理解和运用以及掌握单片机与外围接口的一些

2、方法和技巧,这主要表现在以下的一些方面:(1) 篮球计分计时器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些实用性强的外围接口。(2) 掌握键盘接口原理,能正确地把键盘使用到单片机系统中,可以了解到LED显示器的结构,工作原理以及这种显示器的接口实例。 (3)学会调试电路,分析电路故障,积累电路调试经验。三 具体设计内容 1 系统框图构成 基于单片机系统的篮球计分计时器的系统构成框图如下所示:2硬件电路改进: 由于原来的电路比较复杂,用了很多芯片,浪费成本,而且给后期调试的调试会带来较多麻烦,故对原来的硬件电路进行了改动。改动方面主要关于数码管显示的驱动和位选的,前期的

3、电路设计采用了大量的CD4511和CD4094来进行数码管显示的驱动和位选,而这次的电路设计只用了8个三极管就实现了这项功能。下面前期电路设计的计时部分的原理图,还有更为复杂的计分原理图未给出后期改进的整体原理图:(3)软件调试及组装软件的编程调试首先要抓住计分和计时两大模块,在这两大模块成功的基础上再进行其他细小模块的组装和完善。主要编程的问题,所以就概述就举例子概述一下计分模块和计时模块刚开始均会出现显示数值范围不正确或者十位和个位二者之中只显示个位的情况,经软件调试,重新编程后成功的解决了问题。I 上半场比赛结束, 可按下交换比分按钮,交换甲乙两队的比分,重新调整计时时间为20分钟,按下

4、启动按钮,下半场比赛开始 八 篮球赛计时计分器程序流程图及程序 代码如下:K1BITP1.0K2BITP1.1K3 BIT P1.2K4 BIT P1.3K5BITP1.4K6BITP1.5K7 BIT P1.6K8 BIT P1.7 MIN EQU 30H SEC EQU 31H SEC100 EQU 32H DIS_BUF EQU 33H BUF_MIN_HEQUDIS_BUFBUF_MIN_LEQUDIS_BUF+1BUF_SEC_HEQUDIS_BUF+2BUF_SEC_LEQUDIS_BUF+3K_OLD EQU 41HK_NEW EQU 42H DIS_DIGIT EQU 43H

5、DIS_INDEX EQU 44HK_OLD1 EQU 45H K_NEW1 EQU 46HFLAG EQU 47H CONVERT EQU 48HORG0000HJMPMAINORG 0003H LJMP INT_0ORG0000BHLJMPTIMER0ORG0001BHLJMPTIMER1ORG 0030HMAIN: MOV SP,#60HMOV P0,#0FFHMOV P2,#0FFHMOV TMOD,#011HMOV TH0,#0FCHMOV TL0,#017HMOV TH1,#0DCHCLR AMOV TL1,A MOV CONVERT,#00H MOV CONVERT+1 ,#00

6、H MOV CONVERT+2,#00H MOV CONVERT+3 ,#00H CLRA MOV MIN,#20 MOV SEC,AMOV SEC100,A MOV BUF_MIN_H,#0A4HMOV BUF_MIN_L,#0C0H MOV BUF_SEC_H,#0C0HMOV BUF_SEC_L,#0C0H MOV DIS_BUF+4,#0C0H MOV DIS_BUF+5,#0C0H MOV DIS_BUF+6,#0C0H MOV DIS_BUF+7,#0C0H MOV FLAG ,#00H MOV K_OLD,#00H BEEP_BL00: MOV R3,#10 MOV R2,#20

7、0MAIN1100: CPL p3.7 LCALL DELAY500 LCALL DELAY500 DJNZ R2,MAIN1100 CPL p3.6 LCALL DELAY500 LCALL DELAY500 LCALL DELAY500 MOV R2,#200MAIN2100: CPL p3.7 LCALL DELAY500 DJNZ R2,MAIN2100 DJNZ R3,MAIN1100 LJMP STARTDELAY500: MOV R7,#230LOOP1: DJNZ R7,LOOP1 RETSTART:MOV DIS_DIGIT,#0FEHCLR AMOV DIS_INDEX,A

8、 SETB EA SETB ET0 SETBTR0SETB IT0 SETB EX0SETB PT0 MAIN_LP: CALL KEY_PROG SJMPMAIN_LPKEY_PROG: CALL K_SCAN MOV A,K_NEW CJNE A,K_OLD,KEY_P1 JMP END_PROC_KEYKEY_P1: MOV R4,#15KEY_P2: MOV R7,#10 CALL DELAYMS DJNZ R4,KEY_P2 CALL K_SCAN MOV A,K_NEW CJNE A,K_OLD,KEY_P3 JMP END_PROC_KEYKEY_P3: JB ACC.0,PRO

9、C_K1 JB ACC.1,PROC_K2 JB ACC.2,PROC_K3 JB ACC.3,PROC_K4 LJMPEND_PROC_KEYPROC_K1:LCALL BEEP_BL001 INC MINMOV A,MIN; CJNE A, #100,UPDATE_MIN21MOV MIN,#00HUPDATE_MIN21:MOV A,MIN MOV B,#10DIV AB; A = MIN / 10MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV B

10、UF_MIN_L,ASJMP END_PROC_KEYPROC_K2:LCALL BEEP_BL001 DEC MINMOV A,MIN CJNE A, #255, UPDATE_MIN1MOV MIN,#99UPDATE_MIN1:MOV A,MIN MOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN LMOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_MIN_L,A SJMP END_PROC_KEY PROC_K3: LCALL BEEP_BL001 PUSH P

11、SW INC FLAG MOV A ,FLAG RRC A JNC STOP CLR P3.6 SETB ET1 SETB TR1POP PSW SJMP END_PROC_KEY STOP:SETB P3.6 CLR ET1 CLR TR1POP PSWSJMP END_PROC_KEY PROC_K4: LCALL BEEP_BL001 MOV R3,CONVERT+1 MOV CONVERT+1,CONVERT+3 MOV CONVERT+3,R3 MOV R3,CONVERT MOV CONVERT,CONVERT+2 MOV CONVERT+2,R3 LCALL CONVETEREN

12、D_PROC_KEY:RET ; 键扫描子程序K_SCAN: MOV P1,#0FFH MOV K_NEW,#00H MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV K_NEW,A RETUSING0TIMER0:; 定时器0中断服程序, 用于数码管的动态扫描PUSH ACCPUSH PSWPUSH AR0MOV TH0,#0FCHMOV TL0,#017HMOV P2,#0FFHMOV A,#DIS_BUFADD A,DIS_INDEXMOV R0,AMOV A,R0MOV P0,AMOV P2,DIS_DIGITMOVA,DIS_DIGITRLAMOVDIS_D

13、IGIT,AINCDIS_INDEXMOV R5 , DIS_INDEX CJNE R5,#08H,TT MOV DIS_INDEX ,#00H MOV DIS_DIGIT,#0FEHTT:POP AR0POP PSWPOP ACCRETI TIMER1:; 定时器1中断服务程序, 产生时基信号10msPUSHPSWPUSH ACCPUSH BPUSH DPHPUSH DPLMOV TH1,#0DCHMOV TL1,#00HINC SEC100MOV A,SEC100CJNE A, #100, END_TIMER1MOV SEC100,#00H LCALLDEC_SEC END_TIMER1:

14、POP DPLPOP DPHPOP BPOP ACCPOPPSWRETI ; DEC_SEC:DEC SEC MOV A ,MIN JNZ OBTAIN CPL P3.6 MOV A ,SEC JNZ OBTAIN MOV BUF_SEC_L,#0C0H CLR TR1 CLR ET1 BEEP_BL: MOV R3,#10 MOV R2,#200MAIN11: CPL p3.7 LCALL DELAY500 LCALL DELAY500 DJNZ R2,MAIN11 CPL p3.6 LCALL DELAY500 LCALL DELAY500 LCALL DELAY500 MOV R2,#2

15、00MAIN21: CPL p3.7 LCALL DELAY500 DJNZ R2,MAIN21 DJNZ R3,MAIN11 LJMP OBTAINOBTAIN:MOV A,SECCJNE A, #255,UPDATE_SECMOV SEC,#59LCALL DEC_MINUPDATE_SEC:MOV A,SEC MOV B,#10DIV ABMOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_SEC_H,AMOV A,SEC MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_SEC_L,ARET DEC_MIN:DEC MINM

16、OV A,MIN CJNE A, #255, UPDATE_MINMOV MIN,#00HUPDATE_MIN:MOV A,MIN MOV B,#10DIV AB; A = MIN / 10MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV BUF_MIN_H,AMOV A,MIN MOV B,#10DIV ABMOV A,BMOVC A,A+DPTRMOV BUF_MIN_L,ARETRET ; 中断INT0服务程序INT_0: PUSHPSWPUSH ACCPUSH BPUSH DPHPUSH DPL JB k1,RKEY1 MOV R7,#30 LCALL DELAYM

17、S JB k1,RKEY1 LJMP KP1 RKEY1 :JB k2,RKEY2 MOV R7,#30 LCALL DELAYMS JB k2,RKEY2 LJMP KP2 RKEY2 :JB k3,RKEY3 MOV R7,#30 LCALL DELAYMS JB k3,RKEY3LJMP KP3RKEY3 : JB k4,RKEY4 MOV R7,#30 LCALL DELAYMS JB k4,RKEY4LJMP KP4RKEY4: LJMP KP5KP1: LCALL BEEP_BL001 INC CONVERT MOV A,CONVERT CJNE A,#0AH,KP5MOV CON

18、VERT ,#00HINC CONVERT+1MOV A,CONVERT+1CJNE A,#0AH,KP5MOV CONVERT+1,#00HLJMP KP5KP2: LCALL BEEP_BL001 DEC CONVERT MOV A,CONVERT CJNE A,#255,KP5MOV CONVERT,#09HDEC CONVERT+1MOV A,CONVERT+1CJNE A,#255,KP5MOV CONVERT+1,#09HLJMP KP5KP3: LCALL BEEP_BL001 INC CONVERT+2 MOV A,CONVERT+2CJNE A,#0AH,KP5MOV CON

19、VERT+2 ,#00HINC CONVERT+3MOV A,CONVERT+3CJNE A,#0AH,KP5MOV CONVERT+3,#00HLJMP KP5KP4: LCALL BEEP_BL001 DEC CONVERT+2 MOV A,CONVERT+2 CJNE A,#255,KP5MOV CONVERT+2 ,#09HDEC CONVERT+3MOV A,CONVERT+3CJNE A,#255,KP5MOV CONVERT+3,#09HLJMP KP5KP5:LCALL CONVETERPOP DPLPOP DPHPOP BPOP ACCPOPPSWRETIDELAYMS:;

20、延时子程序DLY_LP1:MOVR6,#185DLY_LP2:NOPNOPNOPDJNZR6,DLY_LP2DJNZR7,DLY_LP1END_DLYMS:RET ;蜂鸣器响一声子程序BEEP_BL001: MOV R3,#1 PUTOFF: ; MOV R2,#30MAIN11001: CPL p3.7 LCALL DELAY500 LCALL DELAY500 DJNZ R2,MAIN11001 DJNZ R3,PUTOFF RET ;显示缓冲区代码转码子程序CONVETER: MOV A,CONVERT MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV DIS_BUF

21、+7,A MOV A,CONVERT+1 MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV DIS_BUF+6,A MOV A,CONVERT+2 MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV DIS_BUF+5,A MOV A,CONVERT+3 MOV DPTR,#DIS_CODEMOVC A,A+DPTRMOV DIS_BUF+4,ARET查表指令DIS_CODE:DB0C0HDB0F9HDB0A4HDB0B0HDB099HDB092HDB082HDB0F8HDB080HDB090HDB0FFHEND总 结这次课程设计虽然只有短短的两周时间,但我们受益匪浅。刚开始时觉得自己的课题无处入手,但通过老师的讲解和查询资料,开始有了自己的思路,整理出了总体方案,然后设计出硬件原理图,源程序等。在这次设计中困难最大的就是调试,收获最多的也是调试,因为调试的时候你必须对程序相当的熟悉,对每一条指令相当了解,并且硬件的连接也要清晰的印在脑海里,只有这样你才能让软件和硬件结合在一起,实现预期功能。在编程结束时需要编写END指令,这也是初学者编程时经常忘记的。总之,在课程设计中遇到了不少的困难,在老师的细心讲解和辅导下,最终完成了本次设计。在此,由衷感谢老师的指导和帮助。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1