




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 说 明 书课程名称:单片机原理及其在煤矿中的应用设计题目: 比赛计分器 院 系:矿业工程学院 学生姓名: 学 号:2012003019专业班级: 采矿 指导教师: 2014年 12月 31 日课 程 设 计 任 务 书设计题目比赛计分器学生姓名所在院系矿业工程学院专业、年级、班采矿 设计要求:1.数码管显示甲、乙两支比赛队伍的分数2.可以分别对甲、乙两队分数进行更改,包括加和减,但最低只能是0,最高只能是993.可以调整得到不同的分值,以便根据不同的情况方便地调整甲、乙两队分数,同时电路中含有分值显示模块,可以清楚地确认出调整得到的分值4.电路含有清零按键,可以对甲、乙两队分数
2、及分值切换部分清零学生应完成的工作: 本设计以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日:进行硬件电路与
3、软件程序的编写及调试;2014年12月27日 2014年12月30日:编写课程设计说明书;2014年12月31日:提交课程设计。任务下达日期:2014年12月 21 日 任务完成日期:2014年12月 31日指导教师(签名): 学生(签名): 比赛计分器设计摘 要:本设计使用AT89C51单片机作为主体,结合其他一些外部电路,如复位电路、时钟电路、数码管显示、分数调整按键电路和分值调整及其显示电路等,利用汇编语言编写程序来实现数码管动态显示,以作为两支比赛队伍的得分。其中,按键部分可实现两支比赛队伍的分数调整及清零操作,分值显示电路则可通过不同的发光二极管的发光情况来显示不同的分值。关键词:A
4、T89C51;数码管动态显示;按键;比赛计分目录一课程设计意义及要求 .41.设计要求.42.设计意义.4二总体设计方案.51.方案结构图.52.系统硬件设计.5三系统软件设计.91.流程图.92.源程序.10四系统仿真与调试.161.Keil仿真过程.162.Proteus仿真过程.20五心得体会.25六参考文献.26七附录:27附录A:材料清单.27附录B:Keil仿真.28附录C:Proteus仿真.29比赛计分器一课程设计要求及意义1.设计要求在一场比赛中,可以根据不同的需要准确地显示参赛的两支队伍的得分,同时通过手动按键可以实现两队得分的及时刷新。在一场比赛计分结束之后,可以通过按键
5、实现两队分数的清零,以便于下一次比赛的计分。2.设计意义(1)通过此次基于单片机的比赛计分系统的设计,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧,并对MCS-51单片机的结构和原理有了更深入的认识,以便于可以在将来的工作和学习中更好地应用它。(2)本次设计用由AT89C51编程控制LED七段数码管作显示的比赛计分系统。它具有价格低廉,性能稳定,操作方便并且易于携带等特点,可以在比赛得分两位数以下且仅有两支比赛队伍需要计分的场合进行使用。二总体设计方案1.方案结构图时钟电路 AT89C51 单片机数码管显示电路复位电路LED分值显示电路电路分数调整按键电路2.系统硬件设
6、计1)MCS-51单片机引脚功能简介本设计中用到的AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4kb的可反复擦写的Flash只读程序存储器和128 b的随机存取数据存储器,它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。如图所示为AT89C51单片机基本构造: AT89C51 40个引脚可分为四类:(1).主电源引脚GND和Vcc (2)时钟振荡电路引脚XTAL1和XTAL2(3)控制信号引脚RST/VPD,ALE/
7、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.0P1.5分别连接按键,实现对甲、乙两队分数的加减,进行加减时变量值的调整以及清零功能;P0.0P0.6连接数码管的段选位,P2.0P2.5连接数码管的位选位,即P0口与P2口共同控制数码管的显示;P3.0P3.4连接五个发光二极管用于
8、显示15共五个用于调节甲、乙两队分数的分值。3)本设计内部时钟电路将两个30PF的电容串联,对频率有微调作用,再与晶体振荡器并联,两端分别引脚XTAL1和XTAL2相连接,并且在两个电容之间设置接地。4) 本设计的复位电路本设计中采用上电手动复位电路,将一个100K欧姆的电阻和一个50欧姆的电阻,一个手动按键,一个22PF的电容器并联,左侧接地,右侧接入RST端,并且在控制信号引脚EA处连接电源,输入高电平,以便先访问内部ROM,后访问外部ROM。5)数码管显示数码管发光原理 发光二极管显示器(简称LED)一般有若干个发光数码管组成,数码管的每一个数码段是一只发光二极管。当发光二极管导通时,相
9、应的一点或一个笔画发光。控制发光二极管发光组合,可以显示所需要的字符。由数码管外型图和工作原理可知,无论是共阴极数码管还是共阳极数码管,其显示字形中码段的定义都是一致的。微机进行显示控制,一般通过I/O口送出七段码,显示及时送出七段码相同,若I/O口线与数码管引脚连线不同,显示的字型也不相同。若数码管的abcdefgdp与I/O接口的D0D7一一对应,则在共阴极、共阳极结构下的七段码如表所示。显示字形0123456789七段码共阴3FH06H5BH4FH66H6DH7DH07H7FH67H共阳C0HF9HA4HB0H99H92H82HF8H80H90H本例中的数码管显示电路(共阳极)本例使用数
10、码管动态显示,即任何时刻只给一个数码管通电,通电一定时间后再给下一个数码管通电。只要刷新频率较高,动态显示方式同样可以实现稳定显示。动态显示的最大优点是节约I/O接口。本次设计使用六位数码管,其中前两位和后两位用来显示甲、乙两队的比赛得分,中间两位只需显示分隔符即可,P0口低7位作为数码管显示的段选位,P2口低6位作为数码管显示的位选位。6)分数调整按键电路:本例中使用独立式按键S1S4来对甲、乙两队分数进行调节,使用S5改变分值以便于快速及时的根据具体实际情况改变两队的比分,使用S6对甲、乙两队分数及分值切换清零,其中S1S6分别与P1口的低六位连接,通过P1口的低六位的电平高低控制显示,如
11、下:7)LED分值显示电路: 本例使用五个发光二极管的发光情况来显示分值,其中五个发光二极管分别与P2口的低五位连接,即通过P2口来控制发光二极管的发光情况,来显示分值切换S5按键的调节情况,具体电路如下图所示:三系统软件设计1.流程图开始初始化调用数码管显示函数判断S1是否按下甲加分 是 否判断S2是否按下甲减分 是 否判断S3是否按下乙加分 是判断S4是否按下 否乙减分 是 否判断S6是否按下清零 是 否判断S5是否按下 否 是切换分值LED分值显示电路显示2.源程序JIA EQU 0C0HYI EQU 0C1H ;甲乙两队分数TEMP EQU 0C2H ;存放切换分数JIAJIA BIT
12、 P1.0 ;甲加分控制位JIAJIAN BIT P1.1 ;甲减分控制位YIJIA BIT P1.2 ;乙加分控制位YIJIAN BIT P1.3 ;乙减分控制位SWITCH BIT P1.4 ;分值切换控制位RESET BIT P1.5 ;比分清零控制位ORG 0000HSJMP STARTSTART:MOV DPTR,#TABLE ;将表首址送DPTR MOV JIA,#50 MOV YI,#50 ;比分送入初值 MOV TEMP,#1 ;开机默认加减分值为1 MOV P3,#01HA1:ACALL DISPLAY ;调显示函数 JNB JIAJIA,S1 JNB JIAJIAN,S2
13、JNB YIJIA,S3 JNB YIJIAN,S4 JNB RESET,C4 JNB SWITCH,S5 LJMP A1 ;判断按下的控制键S1:LCALL DELAY ;去抖动 JB JIAJIA,A1 ;确认按键 MOV A,JIA ADD A,TEMP MOV JIA,A LCALL B0C0:JB JIAJIA,A1 ;等键释放 LCALL DISPLAY SJMP C0S2:LCALL DELAY ;去抖动 JB JIAJIAN,A1 MOV A,JIA CLR C SUBB A,TEMP MOV JIA,A LCALL B1C1:JB JIAJIAN,A1 ;等键释放 LCALL
14、 DISPLAY SJMP C1S3:LCALL DELAY ;去抖动 JB YIJIA,A1 MOV A,YI ADD A,TEMP MOV YI,A LCALL B2C2:JB YIJIA,A1 ;等键释放 LCALL DISPLAY SJMP C2A2:LCALL A1S4:LCALL DELAY ;去抖动 JB YIJIAN,A1 MOV A,YI CLR C SUBB A,TEMP MOV YI,A LCALL B3C3:JB YIJIAN,A1 ;等键释放 LCALL DISPLAY SJMP C3C4:AJMP S6S5:LCALL DELAY ;分数切换 JB SWITCH,A
15、1 INC TEMP MOV A,TEMP CJNE A,#2,D0 MOV P3,#02HD0:CJNE A,#3,D1 MOV P3,#04HD1:CJNE A,#4,D2 MOV P3,#08HD2:CJNE A,#5,D3 MOV P3,#10HD3:CJNE A,#6,D4 MOV P3,#01H MOV TEMP,#1D4:JB SWITCH,A2 LCALL DISPLAY SJMP D4S6:MOV JIA,#0 MOV YI,#0 MOV TEMP,#1 MOV P3,#01H LJMP A1B0:MOV 0C3H,A ;超出范围的解决办法 ORL A,#9BH CJNE A
16、,#0FFH,E0 MOV A,#99 MOV JIA,A RETE0:MOV A,0C3H ORL A,#97H CJNE A,#0FFH,R MOV A,#99 MOV JIA,A RETB1:ORL A,#7FH CJNE A,#0FFH,R CLR A MOV JIA,#0 RETB2:MOV 0C3H,A ORL A,#9BH CJNE A,#0FFH,E1 MOV A,#99 MOV YI,A RETE1:MOV A,0C3H ORL A,#97H CJNE A,#0FFH,R MOV A,#99 MOV YI,A RETB3:ORL A,#7FH CJNE A,#0FFH,R C
17、LR A MOV YI,#0 RETR: MOV A,0C3H RET ;* 数码管显示函数DISPLAY:MOV A,JIA ;甲队比分显示 MOV B,#10 ;将8位二进制转换位十进制 DIV AB SETB P2.0 MOVC A,A+DPTR ;送段码 MOV P0,A ;显示甲比分比分百位 LCALL DELAY CLR P2.0 ;关位选 MOV A,B SETB P2.1 MOVC A,A+DPTR MOV P0,A LCALL DELAY CLR P2.1 SETB P2.2 MOV P0,#3FH ;显示分隔符 LCALL DELAY CLR P2.2;* 乙队比分显示 M
18、OV A,YI MOV B,#10 DIV AB SETB P2.4 MOVC A,A+DPTR MOV P0,A LCALL DELAY CLR P2.4 MOV A,B SETB P2.5 MOVC A,A+DPTR MOV P0,A LCALL DELAY CLR P2.5 SETB P2.3 MOV P0,#3FH LCALL DELAY CLR P2.3 RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H ;*延时程序DELAY:MOV R6,#5 F: MOV R7,#255 DJNZ R7,$ DJNZ R6,F
19、 RETEND四系统仿真与调试使用Keil、Proteus软件调试仿真是通过对程序的编译链接执行来发现程序中的语法错误与逻辑错误并加以排除纠正的过程,通过对源程序逐步执行来观察是否能达到预期的硬件显示的效果,之后用proteus将编译好的程序输入到以设计好的电路的AT89C51中,开始模拟调试,进一步修改并完善硬件及软件设计。具体过程如下:1)Keil仿真过程(1)打开Keil汇编语言软件,建立一个工程项目选择芯片确定选项ProjectNew Project输入工程名“比赛计分器”保存工程文件(鼠标点击保存按钮) (2)选CPU厂家(Atmel)选CPU型号(89C51) 选好后确定(3)Pr
20、ojectOptions for Target Target 1 (或点击图标)在Target中更改CPU 晶振频率为12MHz在Output中选择生成HEX 格式其它采用缺省设置选好后确定。(4)建立汇编源文件FileNew 弹出源文件编辑窗口输入已经编好的源程序。源程序编写完后,FileSave As 将文件以“比赛计分器.asm”保存在 “比赛计分器”目录下,获得汇编语言源程序。(5)用项目管理器生成(编译)各种应用文件点击Target 1 前之+ 号出现Source Group1点击它并按鼠标右键会生弹出下拉菜单见窗口选择Add Files to Group Source Group
21、1 向项目中添加“比赛计分器.asm”源文件在Source Group 1 前会出现一个+号点击之弹出“比赛计分器.asm”文件名点击该文件名主窗口中会出现该程序。(6)编译:点击图标(7)检查并修改源文件中的错误 如果在源文件中存在错误在Output 窗口中会出现错误提示信息,需要在源程序中进行修改,然后存盘后重新Build 观察错误提示信息。(8)编译后截图(0错误,0警告)2)Peoteus仿真过程(1)打开Peoteus软件,建立一个空白文件(2)第二步,点击“P”(Pick Devices),添加所需设计元器件本设计所需元器件如下图所列:(3)将各元器件放置到适当位置,按照设计原理将其连线,完成电路。(4)点击开始按钮,系统开始运行,通过独立式按键改变甲、乙两支参赛队伍的得分,同时也可以改变对甲、乙两支参赛队伍分数进行调节时的变量值,并在发光二极管显示电路中将这个值显示出来电路初始运行:改变甲、乙两队分数及分值切换电路后:清零后:五心得体会在本次课程设计中,通过基于典型单片机AT89C51的设计和应用,让我对单片机的工作原理及功能有了更加深刻的了解,并对单片机程序语言设计有了新的、进一步的认识,对一些指令的使用也更加熟悉了。另外,在查阅一些文献资料后,我还发现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东中考45套数学试卷
- 国开英语数学试卷
- 贵州高考一模数学试卷
- 衡水高三模考数学试卷
- 河南省驻马店数学试卷
- 贵州七年级数学试卷
- 河东区八上期中数学试卷
- 海南小学升学数学试卷
- 海南联考数学试卷
- 哈尔滨高一英语数学试卷
- 《电子沙盘》课件
- DB32T 1590-2010 钢管塑料大棚(单体)通 用技术要求
- 阿片类药物不良反应综合防治专家共识(2024年版)
- 2024版无人机研发与定制合同
- 精神病缄默状态
- 企业员工手机管理制度与规范
- 2025年中考物理一轮复习资料配套练习专题02 光现象(测试)(含答案)
- 蒋诗萌小品《谁杀死了周日》台词完整版
- 《经济法学》(第三版)电子教案
- 婚礼流程及费用清单
- DB4116-T 059-2024 智慧消防运维服务规范
评论
0/150
提交评论