单片机应用比赛计分器.docx
- 文档编号:30131167
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:29
- 大小:947.80KB
单片机应用比赛计分器.docx
《单片机应用比赛计分器.docx》由会员分享,可在线阅读,更多相关《单片机应用比赛计分器.docx(29页珍藏版)》请在冰豆网上搜索。
单片机应用比赛计分器
课程设计说明书
课程名称:
《单片机原理及其在煤矿中的应用》
设计题目:
比赛计分器
院系:
矿业工程学院
学生姓名:
学号:
2012003019
专业班级:
采矿
指导教师:
2014年12月31日
课程设计任务书
设计题目
比赛计分器
学生姓名
所在院系
矿业工程学院
专业、年级、班
采矿
设计要求:
1.数码管显示甲、乙两支比赛队伍的分数
2.可以分别对甲、乙两队分数进行更改,包括加和减,但最低只能是0,最高只能是99
3.可以调整得到不同的分值,以便根据不同的情况方便地调整甲、乙两队分数,同时电路中含有分值显示模块,可以清楚地确认出调整得到的分值
4.电路含有清零按键,可以对甲、乙两队分数及分值切换部分清零
学生应完成的工作:
本设计以AT89C51单片机为主控模块,利用汇编语言编写程序实现数码管显示。
主要任务包括:
(1)硬件原理图的设计
(2)软件程序的设计(3)用汇编语言进行软件程序的编写与调试(3)系统运行以及结果分析(4)撰写课程设计报告(5)我负责软件程序的设计、修改和调试
课程设计提交的成果
1)设计说明书2)图样资料a)系统原理图;3)查阅文献不少于5篇
b)硬件电路图;
c)汇编语言源程序;
d)PROTEUS运行仿真图;
工作计划:
2014年12月21日:
搜索有关资料并进行硬件原理图设计;文献查阅。
2014年12月23日—2014年12月26日:
进行硬件电路与软件程序的编写及调试;
2014年12月27日—2014年12月30日:
编写课程设计说明书;
2014年12月31日:
提交课程设计。
任务下达日期:
2014年12月21日
任务完成日期:
2014年12月31日
指导教师(签名):
学生(签名):
比赛计分器设计
摘要:
本设计使用AT89C51单片机作为主体,结合其他一些外部电路,如复位电路、时钟电路、数码管显示、分数调整按键电路和分值调整及其显示电路等,利用汇编语言编写程序来实现数码管动态显示,以作为两支比赛队伍的得分。
其中,按键部分可实现两支比赛队伍的分数调整及清零操作,分值显示电路则可通过不同的发光二极管的发光情况来显示不同的分值。
关键词:
AT89C51;数码管动态显示;按键;比赛计分
一.课程设计意义及要求...........................4
1.设计要求....................................4
2.设计意义....................................4
二.总体设计方案..................................5
1.方案结构图..................................5
2.系统硬件设计................................5
三.系统软件设计..................................9
1.流程图......................................9
2.源程序.....................................10四.系统仿真与调试................................16
1.Keil仿真过程...............................16
2.Proteus仿真过程............................20
五.心得体会.....................................25
六.参考文献.....................................26
七.附录:
……………………………………………………27
附录A:
材料清单………………………………………..27
附录B:
Keil仿真………………………………………...28
附录C:
Proteus仿真…………………………………….29
比赛计分器
一.课程设计要求及意义
1.设计要求
在一场比赛中,可以根据不同的需要准确地显示参赛的两支队伍的得分,同时通过手动按键可以实现两队得分的及时刷新。
在一场比赛计分结束之后,可以通过按键实现两队分数的清零,以便于下一次比赛的计分。
2.设计意义
(1)通过此次基于单片机的比赛计分系统的设计,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧,并对MCS-51单片机的结构和原理有了更深入的认识,以便于可以在将来的工作和学习中更好地应用它。
(2)本次设计用由AT89C51编程控制LED七段数码管作显示的比赛计分系统。
它具有价格低廉,性能稳定,操作方便并且易于携带等特点,可以在比赛得分两位数以下且仅有两支比赛队伍需要计分的场合进行使用。
二.总体设计方案
1.方案结构图
2.系统硬件设计
1)MCS-51单片机引脚功能简介
本设计中用到的AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kb的可反复擦写的Flash只读程序存储器和128b的随机存取数据存储器,它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
如图所示为AT89C51单片机基本构造:
AT89C5140个引脚可分为四类:
(1).主电源引脚GND和Vcc
(2)时钟振荡电路引脚XTAL1和XTAL2
(3)控制信号引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp
(4)输入/输出引脚P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。
2)本设计的引脚连接
时钟振荡电路引脚XTAL1和XTAL2分别用作晶体振荡的输入端和输出端;控制信号引脚RST连接手动复位电路,作为复位信号输入端;EA引脚连接外部电源,保证先访问内部ROM,再访问外部ROM;P1.0~P1.5分别连接按键,实现对甲、乙两队分数的加减,进行加减时变量值的调整以及清零功能;P0.0~P0.6连接数码管的段选位,P2.0~P2.5连接数码管的位选位,即P0口与P2口共同控制数码管的显示;P3.0~P3.4连接五个发光二极管用于显示1~5共五个用于调节甲、乙两队分数的分值。
3)本设计内部时钟电路
将两个30PF的电容串联,对频率有微调作用,再与晶体振荡器并联,两端分别引脚XTAL1和XTAL2相连接,并且在两个电容之间设置接地。
4)本设计的复位电路
本设计中采用上电手动复位电路,将一个100K欧姆的电阻和一个50欧姆的电阻,一个手动按键,一个22PF的电容器并联,左侧接地,右侧接入RST端,并且在控制信号引脚EA处连接电源,输入高电平,以便先访问内部ROM,后访问外部ROM。
5)数码管显示
①数码管发光原理
发光二极管显示器(简称LED)一般有若干个发光数码管组成,数码管的每一个数码段是一只发光二极管。
当发光二极管导通时,相应的一点或一个笔画发光。
控制发光二极管发光组合,可以显示所需要的字符。
由数码管外型图和工作原理可知,无论是共阴极数码管还是共阳极数码管,其显示字形中码段的定义都是一致的。
微机进行显示控制,一般通过I/O口送出七段码,显示及时送出七段码相同,若I/O口线与数码管引脚连线不同,显示的字型也不相同。
若数码管的abcdefgdp与I/O接口的D0~D7一一对应,则在共阴极、共阳极结构下的七段码如表所示。
显示字形
0
1
2
3
4
5
6
7
8
9
七段码
共阴
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
67H
共阳
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
②本例中的数码管显示电路(共阳极)
本例使用数码管动态显示,即任何时刻只给一个数码管通电,通电一定时间后再给下一个数码管通电。
只要刷新频率较高,动态显示方式同样可以实现稳定显示。
动态显示的最大优点是节约I/O接口。
本次设计使用六位数码管,其中前两位和后两位用来显示甲、乙两队的比赛得分,中间两位只需显示分隔符即可,P0口低7位作为数码管显示的段选位,P2口低6位作为数码管显示的位选位。
6)分数调整按键电路:
本例中使用独立式按键S1~S4来对甲、乙两队分数进行调节,使用S5改变分值以便于快速及时的根据具体实际情况改变两队的比分,使用S6对甲、乙两队分数及分值切换清零,其中S1~S6分别与P1口的低六位连接,通过P1口的低六位的电平高低控制显示,如下:
7)LED分值显示电路:
本例使用五个发光二极管的发光情况来显示分值,其中五个发光二极管分别与P2口的低五位连接,即通过P2口来控制发光二极管的发光情况,来显示分值切换S5按键的调节情况,具体电路如下图所示:
三.系统软件设计
1.流程图
是
否
是
判断S3是否按下
判断S4是否按下
判断S6是否按下
判断S5是否按下
乙加分
乙减分
清零
切换分值
LED分值显示电路显示
否
是
否
是
否
是
否
否
是
2.源程序
JIAEQU0C0H
YIEQU0C1H;甲乙两队分数
TEMPEQU0C2H;存放切换分数
JIAJIABITP1.0;甲加分控制位
JIAJIANBITP1.1;甲减分控制位
YIJIABITP1.2;乙加分控制位
YIJIANBITP1.3;乙减分控制位
SWITCHBITP1.4;分值切换控制位
RESETBITP1.5;比分清零控制位
ORG0000H
SJMPSTART
START:
MOVDPTR,#TABLE;将表首址送DPTR
MOVJIA,#50
MOVYI,#50;比分送入初值
MOVTEMP,#1;开机默认加减分值为1
MOVP3,#01H
A1:
ACALLDISPLAY;调显示函数
JNBJIAJIA,S1
JNBJIAJIAN,S2
JNBYIJIA,S3
JNBYIJIAN,S4
JNBRESET,C4
JNBSWITCH,S5
LJMPA1;判断按下的控制键
S1:
LCALLDELAY;去抖动
JBJIAJIA,A1;确认按键
MOVA,JIA
ADDA,TEMP
MOVJIA,A
LCALLB0
C0:
JBJIAJIA,A1;等键释放
LCALLDISPLAY
SJMPC0
S2:
LCALLDELAY;去抖动
JBJIAJIAN,A1
MOVA,JIA
CLRC
SUBBA,TEMP
MOVJIA,A
LCALLB1
C1:
JBJIAJIAN,A1;等键释放
LCALLDISPLAY
SJMPC1
S3:
LCALLDELAY;去抖动
JBYIJIA,A1
MOVA,YI
ADDA,TEMP
MOVYI,A
LCALLB2
C2:
JBYIJIA,A1;等键释放
LCALLDISPLAY
SJMPC2
A2:
LCALLA1
S4:
LCALLDELAY;去抖动
JBYIJIAN,A1
MOVA,YI
CLRC
SUBBA,TEMP
MOVYI,A
LCALLB3
C3:
JBYIJIAN,A1;等键释放
LCALLDISPLAY
SJMPC3
C4:
AJMPS6
S5:
LCALLDELAY;分数切换
JBSWITCH,A1
INCTEMP
MOVA,TEMP
CJNEA,#2,D0
MOVP3,#02H
D0:
CJNEA,#3,D1
MOVP3,#04H
D1:
CJNEA,#4,D2
MOVP3,#08H
D2:
CJNEA,#5,D3
MOVP3,#10H
D3:
CJNEA,#6,D4
MOVP3,#01H
MOVTEMP,#1
D4:
JBSWITCH,A2
LCALLDISPLAY
SJMPD4
S6:
MOVJIA,#0
MOVYI,#0
MOVTEMP,#1
MOVP3,#01H
LJMPA1
B0:
MOV0C3H,A;超出范围的解决办法
ORLA,#9BH
CJNEA,#0FFH,E0
MOVA,#99
MOVJIA,A
RET
E0:
MOVA,0C3H
ORLA,#97H
CJNEA,#0FFH,R
MOVA,#99
MOVJIA,A
RET
B1:
ORLA,#7FH
CJNEA,#0FFH,R
CLRA
MOVJIA,#0
RET
B2:
MOV0C3H,A
ORLA,#9BH
CJNEA,#0FFH,E1
MOVA,#99
MOVYI,A
RET
E1:
MOVA,0C3H
ORLA,#97H
CJNEA,#0FFH,R
MOVA,#99
MOVYI,A
RET
B3:
ORLA,#7FH
CJNEA,#0FFH,R
CLRA
MOVYI,#0
RET
R:
MOVA,0C3H
RET
;**************************数码管显示函数
DISPLAY:
MOVA,JIA;甲队比分显示
MOVB,#10;将8位二进制转换位十进制
DIVAB
SETBP2.0
MOVCA,@A+DPTR;送段码
MOVP0,A;显示甲比分比分百位
LCALLDELAY
CLRP2.0;关位选
MOVA,B
SETBP2.1
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.1
SETBP2.2
MOVP0,#3FH;显示分隔符
LCALLDELAY
CLRP2.2
;****************************乙队比分显示
MOVA,YI
MOVB,#10
DIVAB
SETBP2.4
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.4
MOVA,B
SETBP2.5
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.5
SETBP2.3
MOVP0,#3FH
LCALLDELAY
CLRP2.3
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H
;***************************延时程序
DELAY:
MOVR6,#5
F:
MOVR7,#255
DJNZR7,$
DJNZR6,F
RET
END
四.系统仿真与调试
使用Keil、Proteus软件调试仿真是通过对程序的编译链接执行来发现程序中的语法错误与逻辑错误并加以排除纠正的过程,通过对源程序逐步执行来观察是否能达到预期的硬件显示的效果,之后用proteus将编译好的程序输入到以设计好的电路的AT89C51中,开始模拟调试,进一步修改并完善硬件及软件设计。
具体过程如下:
1)Keil仿真过程
(1)打开Keil汇编语言软件,建立一个工程项目选择芯片确定选项
Project→
NewProject→
输入工程名“比赛计分器”→
保存工程文件(鼠标点击保存按钮)
(2)
选CPU厂家(Atmel)→
选CPU型号(89C51)→
选好后确定
(3)
Project→
OptionsforTarget‘Target1’…(或点击图标
)→
在Target中→
更改CPU晶振频率为12MHz→⑤在Output中→⑥选择生成HEX格式其它采用缺省设置→⑦选好后确定。
(4)建立汇编源文件
File→
New→
弹出源文件编辑窗口→④输入已经编好的源程序。
源程序编写完后,
File→
SaveAs将文件以“比赛计分器.asm”保存在“比赛计分器”目录下,获得汇编语言源程序。
(5)用项目管理器生成(编译)各种应用文件
点击Target1前之+号→出现
SourceGroup1→
点击它并按鼠标右键
会生弹出下拉菜单见窗口→选择
AddFilestoGroup‘SourceGroup1’
→
向项目中添加“比赛计分器.asm”源文件→
在SourceGroup1前会
出现一个+号→
点击之弹出“比赛计分器.asm”文件名点击该文件名→
主窗口中会出现该程序。
(6)编译:
点击图标
(7)检查并修改源文件中的错误
如果在源文件中存在错误在Output窗口中会出现错误提示信息,需要在源程序中进行修改,然后存盘后重新Build观察错误提示信息。
(8)编译后截图(0错误,0警告)
2)Peoteus仿真过程
(1)打开Peoteus软件,建立一个空白文件
(2)第二步,点击“P”(PickDevices),添加所需设计元器件
本设计所需元器件如下图所列:
(3)将各元器件放置到适当位置,按照设计原理将其连线,完成电路。
(4)点击开始按钮,系统开始运行,通过独立式按键改变甲、乙两支参赛队伍的得分,同时也可以改变对甲、乙两支参赛队伍分数进行调节时的变量值,并在发光二极管显示电路中将这个值显示出来
电路初始运行:
改变甲、乙两队分数及分值切换电路后:
清零后:
五.心得体会
在本次课程设计中,通过基于典型单片机AT89C51的设计和应用,让我对单片机的工作原理及功能有了更加深刻的了解,并对单片机程序语言设计有了新的、进一步的认识,对一些指令的使用也更加熟悉了。
另外,在查阅一些文献资料后,我还发现单片机在现实生活与生产中应用是广泛的,由于单片机价格低廉,性能稳定,而且原理简单,易于操作,在许多小型电子设备中都可以看到它的身影。
因而,学习好单片机,将意味着掌握了一门实用的技能,相信在日后的生活工作中将会有很大的促进和帮助作用。
在这一周左右的时间里,我也充分体会到了课堂学习和课后实践之间的差距,许多知识只有当你真正的在生活之中经历过,应用之后才能明白它的真实含义,我想这也许也是这次课程设计带给我最直接的启示,这必将引导我日后其他学科的学习
最后要非常感谢曹金燕老师对我们的指导和帮助,还有其他组成员的帮助,正是在大家的帮忙之下,才让我们最终成功地完成了这次课程设计。
六.参考文献
[1]牛昱光.单片机原理与接口技术.北京.电子工业出版社,2008.2
[2]邓红.单片机实验与应用教程(第二版).冶金工业出版社,2010.9
[3]赵晓安.MCS-51单片机原理及应用.天津:
天津大学出版社,2001.3
[4]张毅刚.单片机原理及应用(第二版).北京:
高等教育出版社,2010.5
[5]林之琦.基于Proteus的单片机可视化软硬件仿真.北京:
北京航空航天大学出版社,2006
七.附录
附录A:
材料清单
Proteus中器件名称
器件中文名称
数量
备注
AT89S51
AT89S51
1个
CRYSTAL
晶振
1个
LED-RED
发光二级管
5个
7SEG-MPX6-CA
6位七段共阳极数码管
1个
BUTTON
按键
7个
RESPACK-7
八引脚排阻
1个
CHIPRESISTOR
电阻
6个
10Ω
CHIPRESISTOR
电阻
1个
100KΩ
CHIPRESISTOR
电阻
1个
50Ω
CAP-ELEC
电解电容
1个
22PF
CAP
电容
2个
30PF
附录B:
Keil仿真(0错误,0警告)
附录C:
Proteus仿真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机应用 比赛计分器 单片机 应用 比赛 计分