基于单片机实现的比赛计分器设计毕业设计论文.docx
- 文档编号:12142484
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:20
- 大小:202.91KB
基于单片机实现的比赛计分器设计毕业设计论文.docx
《基于单片机实现的比赛计分器设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的比赛计分器设计毕业设计论文.docx(20页珍藏版)》请在冰豆网上搜索。
基于单片机实现的比赛计分器设计毕业设计论文
第1章系统总体方案设计…………………………………………………1
概述…………………………………………………………………1
系统框图……………………………………………………………2
第2章系统硬件设计………………………………………………………3
80C5单片机…………………………………………………………3
按钮设置……………………………………………………………4
分值切换显示功能…………………………………………………4
发光二极管显示器…………………………………………………6
2.4.1数码管显示器数量选择……………………………………………6
2.4.2数码管共阴共阳接法的选择………………………………………6
2.4.3数码管驱动的选择…………………………………………………6
2.4.4系统原理图…………………………………………………………6
第3章软件设计………………………………………………………………7
系统流程图……………………………………………………………7
显示子程序…………………………………………………………8
延时子程序…………………………………………………………8
第4章系统的安装调试说明…………………………………………………10
软件调试……………………………………………………………10
软硬联调……………………………………………………………11总结……………………………………………………………………………12
参考文献………………………………………………………………………13
附录A源程序清单……………………………………………………………14
附录B系统原理图……………………………………………………………21
第1章系统总体方案设计
1.1.概述
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。
单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。
并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。
而美国ATMEL公司开发生产了新型的8位单片机——AT89系列单片机。
他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51就是其中典型的代表。
本设计是基于AT89S51单片机的篮球计分器,利用7段共阴LED作为显示器件。
在此设计中共接入了1个八位一体7段共阴LED显示器,每队显示器显示范围可达到0~255分。
系统功能简介
本设计内容为比赛计分器,主要用于各种体育比赛记录分数。
采用独立式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。
通过加减分键和分值切换键配合使用可以较方便实现预置分。
比分通过1个八位一体7段共阴LED显示器显示,每队比分显示三位数。
1.2.系统框图
图系统框图
第2章系统硬件设计
80C51单片机
因为我们上课时学的是MCS-51,所以就选择了STC89C52单片机,因为它与INTEI MCS-51 兼容,并且它们都具有相同的CPU和指令系统,引脚功能兼容,容易掌握和使用。
按钮设置3×4矩阵式键盘
根据设计共需要7个按键,可采用3×3矩阵式键盘,但考虑到常用键盘为3×4矩阵式键盘,而且方便以后功能的扩展和方便硬件的连接,所以最终决定采用3×4矩阵式键盘作为输入。
计分器应该有7个按键分别标注于原理图,见图.
图按钮功能图
其中1/2/3分切换由发光二极管指示,加1减1分别对应。
预置分是事先设定分数可以分别设定甲乙两队的初始分数。
按下清零后,显示的分数清零。
分值切换显示功能
图分值切换显示功能图
2.4发光二极管显示器的结构、工作原理及其接口电路
下图为典型的数码管:
图8段LED数码管
如上图,LED显示器又称为数码管,LED显示器由8个发光二极管组成。
中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LEDD显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
表2-1代码对应表
显示字符
共阴极段码
共阳极段码
显示字符
共阴极段码
共阳极段码
0
3FH
C0
8
7FH
80H
1
06H
F9
9
6FH
90H
2
5BH
A4
A
77H
88H
3
4FH
B0
B
7CH
83H
4
66H
99H
C
39H
C6
5
6DH
92H
D
5EH
A1H
6
7DH
82H
E
79H
86H
7
07H
F8
F
71H
8EH
动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。
其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。
CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。
而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在本课题中采用P0口输出段码,P3口为位控制输出口。
2.4.1数码管显示器数量选择
两个队,每队2位比分,每个显示器只能显示一位,则至少需要采用4个8段数码管显示器。
段数码管显示器采用动态显示输出比分。
2.4.2数码管共阴共阳接法的选择
51单片机I/O口输出高电平时输出的电流很小,数码管不会太亮;因为本设计采用动态显示,单片机I/O口直接接数码管,所以决定采用共阳数码管。
2.4.3数码管驱动的选择
为了使数码管亮度达到要求,数码管的位选端需要驱动,因为单片机I/O口的高电平输出的电流很小,需要驱动电路驱动,从而增加显示亮度。
最简单便宜的驱动就是使用三极管,为低电平时开通,所以选择PNP型三极管。
2.4.4系统原理图(见附录)
第3章软件设计
3.1.
系统流程图
N
N
3.2显示子程序流程图
图显示子程序流程图
延时子程序
延时子程序就是通过执行一些没用但又占用时间的指令的集合。
这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给R7赋值,即可根据用户的需要延时,流程图见图4-4。
图延时子程序流程图
第4章系统的安装调试说明
4.1.软件调试
上电时对系统中进行检测是单片机程序中的一个良好设计。
在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。
很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。
另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。
比如:
系统的外部RAM(数据存储器)是单片机系统中常用的器件。
外部RAM如果存在问题,程序通常都会成为无法控制。
因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。
另外,在仿真前要做好充分的准备。
单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。
很多时候,没有仿真器却能促使工程师写出更高质量的程序。
在硬件仿真调试之前,下面准备工作将是必要的:
(1)程序编完后,对代码仔细逐行检查。
检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。
检查代码是否符合编程规范。
(2)对各个子程序进行测试。
测试的方法:
用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。
(3)如果代码有修改,再次对代码进行检查。
4.2.软硬联调
首先将编译成功程序载入单片机系统开发板。
通电后,LED5,电源指示灯点亮,数码管显示“0000”.。
对应的“4”键为甲加分按钮,当LED5亮时,每次按下“4”键,甲队分数加1;当LED6亮时,每次按下“4”键,甲队分数加2;当LED7亮时,每次按下“4”键,甲队分数加3;其中LED5,LED6,LED7的点亮与熄灭是通过对应的“1”键来控制,可以通过按“1”键来实现LED5,LED6,LED7之间的切换。
对应的“8”键为甲队减分键,当LED5亮时,每次按下“8”键,甲队分数减1;当LED6亮时,每次按下“8”键,甲队分数减2;当LED7亮时,每次按下“4”键,甲队分数减3;“7”键为乙加分键,“B”键为乙队减分键,其实现功能与甲队一样。
对应的“0”键为预置分按钮,按下“0”键之后,通过按甲乙队加、减分按钮配合分数切换键实现快速预置分。
”RESET”为复位键,按下可以实现复位。
数码管显示甲乙队当前分数,复位后,数码管显示“0000”。
总结
做了两周的单片机课程设计,我有了很多的体会和感想。
我们的课程设计是比赛计分器。
设计可以在实验室里做,也可以在寝室里做,我大部分时间还是在寝室里做的。
比赛计分器设计,这个内容没有现成的程序和设计图,需要我们真正亲手去编。
这两周的实习真的有点难度,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这个程序,但是只好硬着头皮去看去理解。
但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。
上课的时候的学习从来没有真正的用单片机,只是从理论的角度去理解枯燥乏味。
但在实习中使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在组里讨论或者是同学之间相互帮助。
团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。
尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。
最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
来源:
(-单片机课程设计心得_逆流的风_新浪博客
参考文献
[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002
[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001
[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001
[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002
[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
附录A
源程序清单
NUMAEQU30H
NUMBEQU31H;甲乙两队的分数
D1EQU32H;显示缓存区32h—35h
D2EQU33H
D3EQU34H
D4EQU35H
DUANEQUP0;段显示端口
WEI1EQU;位选端口EQU
WEI3EQU
WEI4EQU
TEMPEQU36H;存放切换的加减分数1/2/3
KEYDATEEQU37H;存放按键值
ORG0000H
MAIN:
MOVNUMA,#0
MOVNUMB,#0;分数清零
MOVTEMP,#1;起始时的分数加1
MOVP1,#0DFH
ACALLTRAN
M0:
ACALLDISP;调用显示函数
ACALLKEYSCAN;调用按键获取函数
SJMPM0;
;********************************************************
KEYSCAN:
MOVP2,#0FFH;采用反转法读取按键值
MOVP2,#0F0H
MOVA,P2
ANLA,#0F0H
CJNEA,#0F0H,K0
SJMPK4
K0:
MOVR5,#5
K1:
ACALLDELAY2MS;10ms延时去抖动
DJNZR5,K1
MOVA,P2
ANLA,#0F0H
CJNEA,#0F0H,K2
SJMPK4;是抖动返回
K2:
MOVKEYDATE,A;存储按键值
MOVP2,#0FH
MOVA,P2
ANLA,#07H
ORLA,KEYDATE;取得键值存放在KEYDATE中
MOVKEYDATE,A
K3:
MOVA,P2
ANLA,#07H
CJNEA,#07H,K3;等待按键松开
ACALLCHULI;调用按键处理函数
ACALLTRAN
K4:
RET
;********************************************************
CHULI:
MOVA,KEYDATE
CJNEA,#0E6H,C0
MOVNUMA,#0
MOVNUMB,#0
MOVTEMP,#1;按下清零键,A,B队分数清零,加分为1
MOVP1,#0DFH
RET
C0:
CJNEA,#0D6H,C2
INCTEMP;按下分值切换键,按一下分值加1,
MOVP1,#0BFH
MOVA,TEMP
CJNEA,#3,C01
MOVP1,#7FH
C01:
CJNEA,#4,C1
MOVTEMP,#1;分值循环1-2-3-1
MOVP1,#0DFH
C1:
RET
C2:
CJNEA,#0E5H,C4
MOVA,NUMA;按下A队加分按键,A队加分
ADDA,TEMP;分值相加
CJNEA,#99,C3;
MOVA,#0
C3:
MOVNUMA,A
RET
C4:
CJNEA,#75H,C6
MOVA,NUMB;按下B队加分按键,A队加分
ADDA,TEMP;分值相加
CJNEA,#99,C5;
MOVA,#0
C5:
MOVNUMB,A
RET
C6:
CJNEA,#0E3H,C9
MOVA,NUMA;按下A队减分按键,A队减分
SUBBA,TEMP;分值相减
CJNEA,#0FCH,C7
RET
C7:
JCC8
MOVA,#99
C8:
MOVNUMA,A
RET
C9:
CJNEA,#073H,C12
MOVA,NUMB;按下B队加减按键,A队减分
SUBBA,TEMP;分值相减
CJNEA,#0FCH,C10
RET
C10:
JCC11
MOVA,#99
C11:
MOVNUMB,A
C12:
RET
;***********************************************************
TRAN:
MOVA,NUMA;进制转换将10进制分数转化成
2进制,然后显示
MOVB,#10
DIVAB
MOVD1,A
MOVD2,B
MOVA,NUMB
MOVB,#10
DIVAB
MOVD3,A
MOVD4,B
RET
;***********************************************************
DISP:
MOVDPTR,#TAB;显示函数,
CLRWEI1;位选通
MOVA,D1;
MOVCA,@A+DPTR;取段码
MOVDUAN,A;送段码
ACALLDELAY2MS;
SETBWEI1;关位选
CLRWEI2
MOVA,D2
MOVCA,@A+DPTR
MOVDUAN,A
ACALLDELAY2MS
SETBWEI2
CLRWEI3
MOVA,D3
MOVCA,@A+DPTR
MOVDUAN,A
ACALLDELAY2MS
SETBWEI3
CLRWEI4
MOVA,D4
MOVCA,@A+DPTR
MOVDUAN,A
ACALLDELAY2MS
SETBWEI4
MOVDUAN,#0FFH;
RET
;************************************************************
DELAY2MS:
MOVR6,#5
D0:
MOVR7,#248
DJNZR7,$
DJNZR6,D0
RET
TAB:
DB28H;0
DB0EBH;1
DB32H;2
DB0A2H;3
DB0E1H;4
DB0A4H;5
DB24H;6
DB0EAH;7
DB20H;8
DB0A0H;9
DB60H;A
DB25H;B
DB3CH;C
DB23H;D
DB34H;E
DB74H;F
DB0D7H;-.
DB0F7H;-
DB61H;H
DB70H;P
DB0DFH;.
DB27H;O
DB0FFH;全黑
附录B
硬件原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 比赛 计分 设计 毕业设计 论文