单片机汇编语言抢答器.docx
《单片机汇编语言抢答器.docx》由会员分享,可在线阅读,更多相关《单片机汇编语言抢答器.docx(32页珍藏版)》请在冰豆网上搜索。
单片机汇编语言抢答器
湖南工学院
课程设计说明书
课程:
单片机技术
课程设计题目:
抢答器
班级:
自本0903
姓名***********************
学号:
************
时间:
2011~2012学年第一学期
指导教师:
**********
2.2.5晶体振荡电路单元5
2.3硬件电路元器件简介5
2.3.1元器件清单5
3软件系统设计6
3.1占用单片机资源情况6
3.2程序流程框图7
4系统设计结论与分析8
4.1设计结论及使用说明8
4.1.1Proteus软件仿真8
4.1.2Proteus仿真原理图9
4.1.3仿真结果9
4.1.4设计结论10
5设计体会和教学建议11
5.1设计体会11
5.2教学建议11
参考文献12
附录13
1系统总体方案设计
1.1课题设计任务
设计七路抢答器,并设置为1,2,3,4,5,6,7路,选出最先按下的一路通过一个数码管显示此路数,同时实现特定的功能。
通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
1.2功能设计要求
设计一个具有特定功能的抢答器。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号,蜂鸣器发出音响。
各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
1.3设计方案及工作原理
1.3.1设计方案选取
该系统采用单片机AT89S52作为控制核心,该系统可以完成运输控制、信号识别及显示功能的实现。
由于用了单片机,其技术比较成熟,应用起来比较方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能够方便进行功能的扩展和更改。
AT89S52单片机特点:
1、可靠性好:
单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以“烧”写到ROM上,许多信号通道都在同一芯片上,故可靠性好。
2、扩展性好:
单片机有一般计算机所必须的器件,如总线、串并行的输入及输出引脚,可扩展为各种规模的微型计算机系统。
3、控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳转指令。
1.3.2抢答器工作原理
抢答器的工作原理是采用单片机最小系统,用程序查询方式采用动态显示组号。
AT89S52单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。
其存储器在物理上设计成数据存储器和程序存储器两个独立的空间,片内数据存储器有128个字节,片内程序存储器容量为4KB。
AT89S52有4个八位并行I/O口:
P0口,P1口,P2口和P3口,各接口均由接口锁存器,输出驱动器和输入缓冲器组成。
P1口是唯一的单功能口,仅能够用作通用的数据输入/输出口。
P3口是双功能口,除了具有数据输入/输出功能外,每条口线还具有第二功能,如P3.0口是串行输入口线,P3.1口是串行输出口线。
在需要外部数据存储器和程序存储器扩展时,P0口可作为分时复用的低八位地址/数据总线,P2口可作为高八位的地址总线,P3口也可作为AT89S52的一些特殊功能口,同时为闪烁编程和编程校验接受一些控制信号,图1.1为抢答器工作原理框图。
图1.1抢答器工作原理框图
2硬件系统设计
2.1硬件电路简介
硬件电路应该能够完成以下功能:
参赛者对主持人提出的问题要能够及时的做出反应,并按下抢答键回答。
当第一人按下抢答键后,则在数码管显示器上显示其组号,蜂鸣器发声,同时电路将其他按键封锁,使其不起作用。
回答完后主持人按复位键,开始下一轮抢答。
此外,还能够对提前抢答和超时等违规行为进行报警并显示其组号等。
各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
P1.0口由主持人控制,为抢答开始键和主持人复位键;P1.1-P1.7是七组抢答的输入口;P2.0-P2.7口为数码管的段选控制口;P3.1口为蜂鸣器控制口。
(1)硬件电路原理图:
见附录A
(2)硬件电路元器件PCB图:
见附录B
(3)硬件电路元器件布局图:
见附录C
2.2硬件系统各模块功能介绍
2.2.1抢答电路单元
采用七个BUTTON按键作为抢答器的选择按键,为独立式键盘,如图2.1所示:
图2.1选手抢答按键电路
独立式键盘是指用I/O口线构成的单个按键电路,每个独立式按键单独占有一根I/O口线,每根I/O口线上的工作状态不会影响其他I/O口线的工作状态,即一个按键对应着一个端口输入,可采用查询方式判断按键是否按下,1-7路的信息可以直接传输到P1.1-P1.7口线上。
2.2.2显示电路单元
采用两个八段的数码管显示,它是共阳极型的由低电平点亮数码管显示器。
显示由P2.0-P2.7口输出的数字代码,段码采用同相驱动,输入端加低电平,选中的数码段被点亮。
如图2.2所示:
图2.2显示单元电路
2.2.3蜂鸣音频电路单元
AT89S52芯片外接有蜂鸣电路,用来发出报警声。
蜂鸣器在主持人发出抢答信号,检查到有参赛者按键和有违规现象时发出蜂鸣声。
蜂鸣硬件电路比较简单,在P3.1口接上一只三极管、电阻和蜂鸣器即可,如图2.3所示:
图2.3蜂鸣音频电路
2.2.4复位电路单元
外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个周期的高电平即可实现复位。
硬件复位后的寄存器和存储器都可恢复到初始值。
本设计中有倒计时时间记忆功能,所以不能对单片机进行硬件复位,只能进行软件复位,系统复位电路如图2.4和主持人复位电路如图2.5所示:
图2.4系统复位电路
图2.5主持人复位电路
2.2.5晶体振荡电路单元
图2.6晶体振荡电路
2.3硬件电路元器件简介
2.3.1元器件清单
见附录D
3软件系统设计
3.1占用单片机资源情况
1、P1.0口由主持人控制,为抢答开始键和主持人复位键;P1.1-P1.7是七组抢答的输入口;P2.0-P2.7口为数码管的段选控制口;P3.1口为蜂鸣器控制口。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
2、主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响。
3、主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号。
4、正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
3.2软件系统各模块功能介绍
(1)显示程序:
显示程序通过数码管显示器将抢答者的组号、抢答时间及回答倒计时时间显示出来,让大家有直观的了解。
(2)复位程序:
复位电路是帮助主持人控制抢答器用的。
(3)蜂鸣程序:
蜂鸣程序是一个子程序,只在数码管显示时调用程序,就会实现蜂鸣。
(4)延时程序:
该系统有两段延时子程序,一段用于30s的抢答倒计时时间,另一段用于30s的回答倒计时时间。
3.3程序流程框图
(1)系统程序流程图
图3.1系统程序流程图
(2)抢答成功程序流程图
图3.2抢答成功程序流程图
(3)违规程序流程图
图3.3违规程序流程图
(4)程序清单:
见附录E
4系统设计结论与分析
4.1设计结论及使用说明
4.1.1Proteus软件仿真
Proteus的ISIS是LabCenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
如图4.1所示,当主持人按下开始键后,启动开始抢答,数码管上显示的“30s"代表抢答时间,系统预设30s倒计时抢答,如在10s内无人抢答,系统报警,视选手放弃抢答机会;同样在抢答成功后有30s的回答时间,在规定时间内回答完并按下按键,才算是正确抢答成功。
4.1.2Proteus仿真原理图
图4.1Proteus仿真原理图
4.1.3仿真结果
(1)提示符“P.”
图4.2显示提示符“P.”
(2)抢答倒计时
图4.3显示倒计时
(3)选手抢答成功
图4.4显示6号选手抢答成功
4.1.4设计结论
目前,电子抢答器仍处在不断完善的过程中,同时抢答器的功能实现形式也是多种多样,不仅可以通过数字编码来实现,而且可以通过单片机控制来达到目的。
由于时间与学识的限制,本课程设计的硬件电路系统中还有一些方面需要改进,如时钟电路不稳定等;由于设计中采用了模块化的程序设计方法,因此各个程序模块的连续性是一项至关重要的工作,理清各子程序之间的关系,正确处理各种中断程序之间的关系,防止中断冲突,提高系统的稳定性。
5设计体会和教学建议
5.1设计体会
第一次接触单片机课程,发现联系到了很多以前学到的知识,数电,C语言,这是对前段时间学习的巩固。
学习单片机也让我初步了解了一些关于自动控制有关的知识,而课程设计是我们对所学知识理论的检验与总结,同时又是提高自己动手能力的一种方法。
通过这次课程设计,我从中受益匪浅。
明白了学习是一个长期积累的过程。
在这次课程设计过程中遇到了很多困难,第一次接触PROTUES和PROTEL99.KEIL软件,这些软件对学好单片机有很大的帮助,在设计硬件电路时,刚开始不是很熟悉这些软件,在使用中遇到很多麻烦。
制作PCB板时有一位数码管不亮,查资料,用万用表检查线路,最终发现了问题所在,原来是虚焊了。
经过了几个星期的努力成功的做好了这次课程设计,这次课程设计让我懂得了分析问题,才能解决问题的道理。
知识需要慢慢积累,我在以后的工作和生活中都应该不断的学习,努力提高自己知识和综合素质。
5.2教学建议
在教学方面,我尤其觉得吴老师的课讲的特别的好,重点、难点突出,讲解非常详细,而且还补充了一些很实用的知识,同时经常让我们创新。
吴老师将理论教学与实际操作相结合,让我们更深刻的掌握了知识,特别是做实验,吴老师严格要求我们,这是为我们好,可以考察我们掌握知识的程度,理论必须通过实践来检验它,同时提高了同学们的动手能力。
在此我只想提一个自己的拙见,
课堂上多增加一点互动。
参考文献
[1]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,1998.
[2]王幸之等.单片机应用系统抗干扰技术[M].北京:
北京航空航天大学出版社,
1999.
[3]何为民.低功耗单片微机系统设计[M].北京:
北京航空航天大学出版社,1994.
[4]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,
1996.
[5]何立民.单片机高级教程[M].北京:
北京航空航天大学出版社,2000.
[6]陈敌北.例说80C51(第三版)[M].北京:
人民邮电出版社2010.
[7]马忠梅.单片机应用程序设计(第四版)[M].北京:
北京航空航天大学出版社,
2006.
[8]李广弟,朱月秀,冷祖祁.单片机基础[M].北京:
北京航空航天大学出版社,
2007.
附录
附录A:
硬件电路原理图
附录B:
硬件电路元器件PCB图
附录C:
硬件电路元器件布局图
附录D:
元器件清单
名称
数量
备注
AT89S52芯片
1
数码管
2
八段
晶振
1
12MHz
三极管
9
普通电容
2
33pF
极性电容
1
22uF
LED灯
9
电阻1
24
470Ω
电阻2
1
4.7KΩ
电阻3
3
1KΩ
电阻4
1
200Ω
蜂鸣器
1
USB电源接口
1
下载口
1
排阻1
4
八位
排阻2
4
二位
短路冒
3
排针
2
BUTTON按键开关
9
附录E:
程序清单
/****************************************************************/
/*项目名称:
抢答器*/
/****************************************************************/
;系统起始程序区
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPPTT0
ORG001BH
LJMPPTT1
/****************************************************************/
;系统监控程序区
ORG0030H
MAIN:
MOVSP,#5FH
MOVTMOD,#11H
MOVR0,#20H;RAM区首地址
MOVR7,#96;RAM区单元个数
ML:
MOV@R0,#00H
INCR0
DJNZR7,ML
MOVP3,#0FFH
MOVR4,#20
MOVR3,#20
SETBEA
SETBET0
SETBET1
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTH1,#3CH
MOVTL1,#0B0H
CLR3FH
CLR40H
QISHI:
LCALLDISP
MOVDPTR,#DISBH;系统初始化后提示符“P.”字符代码表首地址
MOVR5,#08H
MOVR0,#78H
DISPTSF:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR5,DISPTSF
LCALLDISP
LCALLKEY
JB20H.1,FG1
JB20H.2,FG2
JB20H.3,FG3
JB20H.4,FG4
JB20H.5,FG5
JB20H.6,FG6
JB20H.7,FG7
JNB20H.0,QISHI
LJMPKAISHI
/****************************************************************/
;提前抢答违规程序区
FG1:
MOV7BH,#01H//1号犯规
CLRP3.0//1号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG2:
MOV7BH,#02H//2号犯规
CLRP3.2//2号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG3:
MOV7BH,#03H//3号犯规
CLRP3.3//3号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG4:
MOV7BH,#04H//4号犯规
CLRP3.4//4号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG5:
MOV7BH,#05H//5号犯规
CLRP3.5//5号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG6:
MOV7BH,#06H//6号犯规
CLRP3.6//6号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FG7:
MOV7BH,#07H//7号犯规
CLRP3.7//7号违规指示灯亮
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
FGDISP:
MOV7FH,#10H
LCALLDISP
LCALLKEY
JB20H.0,QISHI2
LJMPFGDISP
QISHI2:
LJMPMAIN
/****************************************************************/
;蜂鸣程序区
KAISHI:
MOV7FH,#10H//主持人按下开始键
SETBTR0
MOV78H,#00H
MOV79H,#03H
KAI:
LCALLDISP
LCALLKEY
JB20H.1,QD1
JB20H.2,QD2
JB20H.3,QD3
JB20H.4,QD4
JB20H.5,QD5
JB20H.6,QD6
JB20H.7,QD7
LCALLDISP
JB3FH,FM//蜂鸣器10秒过后鸣叫(高电平有效)
LJMPKAI
FM:
CLRP3.1//蜂鸣器鸣叫
CLR3FH
SETBTR1
LJMPKAI
/****************************************************************/
;抢答成功程序区
/****************************************************************/
;1.第一人抢答到程序区
QD1:
MOV7BH,#01H//1号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA1
QD2:
MOV7BH,#02H//2号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA2
QD3:
MOV7BH,#03H//3号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA3
QD4:
MOV7BH,#04H//4号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA4
QD5:
MOV7BH,#05H//5号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA5
QD6:
MOV7BH,#06H//6号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA6
QD7:
MOV7BH,#07H//7号抢到
CLRP3.1//蜂鸣器鸣叫
LCALLDAOSHI
LJMPHUIDA7
DAOSHI:
MOV78H,#00H//抢答按键后倒计时
MOV79H,#03H
SETBTR1
MOVTH0,#3CH
MOVTL0,#0B0H
RET
/****************************************************************/
;2.选手回答程序区
HUIDA1:
LCALLDISP//1号回答
JB40H,CHAO11
LCALLKEY
JB20H.1,TING
LJMPHUIDA1
TING:
LCALLDISP//按下结束按键后只调显示
CLRTR0
LCALLKEY
JB20H.0,QISHI3
LJMPTING
QISHI3:
LJMPMAIN
HUIDA2:
LCALLDISP//2号回答
JB40H,CHAO22
LCALLKEY
JB20H.2,TING
LJMPHUIDA2
HUIDA3:
LCALLDISP//3号回答
JB40H,CHAO33
LCALLKEY
JB20H.3,TING
LJMPHUIDA3
HUIDA4:
LCALLDISP//4号回答
JB40H,CHAO44
LCALLKEY
JB20H.4,TING
LJMPHUIDA4
CHAO11:
LJMPCHAO1
CHAO22:
LJMPCHAO2
CHAO33:
LJMPCHAO3
CHAO44:
LJMPCHAO4
CHAO55:
LJMPCHAO5
CHAO66:
LJMPCHAO6
CHAO77:
LJMPCHAO7
HUIDA5:
LCALLDISP//5号回答
JB40H,CHAO55
LCALLKEY
JB20H.5,TING
LJMPHUIDA5
HUIDA6:
LCALLDISP//6号回答
JB40H,CHAO66
LCALLKEY
JB20H.6,TING
LJMPHUIDA6
HUIDA7:
LCALLDISP//7号回答
JB40H,CHAO77
LCALLKEY
JB20H.7,TING
LJMPHUIDA7
/****************************************************************/
;超时违规程序区
CHAO1:
CLRP3.0//1号超时:
违规指示灯亮
CLRP3.1//蜂鸣器鸣叫
MOV7F