基于单片机的四路抢答器的课程设计.docx
- 文档编号:8720709
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:305.14KB
基于单片机的四路抢答器的课程设计.docx
《基于单片机的四路抢答器的课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的四路抢答器的课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机的四路抢答器的课程设计
课程设计(论文)
课程设计名称单片机原理及其在电气和测控学科中的应用
题目名称基于单片机的四路抢答器设计
系别专业电气工程系、
姓名
学号
指导教师
2011年6月21日
课程设计(论文)任务书
年级专业
学生姓名
学号
题目名称
四路抢答器设计
设计时间
2011年6月13日—2011年6月23日
课程名称
单片机原理及在电气测控学科中的应用
课程编号
设计地点
一、课程设计(论文)目的
课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。
单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象.《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。
二、已知技术参数和条件
1、利用89C51系列单片机
2、KEIL软件;Wave软件;
3、THKSCM-1型单片机实验系统
三、任务和要求
要求实现功能:
将其中3个按键定义为1-4号,1个按键用做清除与开始,第1位数码管用于计时,第2位数码管用于显示当前抢答者。
当开始后第2位数码管闪烁显示"-",计时开始,等待抢答。
当抢答后,停止计时,第2位数码管显示抢答者对应编号,按清除键清除。
1、要求设计出电气原理图;
2、要求设计出程序流程图;
3、要求设计出程序;
4、在实验室做出产品或仿真调试。
注:
1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;
2.此表1式3份,学生、指导教师、教研室各1份。
四、参考资料和现有基础条件(包括实验室、主要仪器设备等)
1、单片机课程设计指导,中南大学出版社,张一斌等2009年9月
2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月
3、THKSCM-1型单片机实验系统实验指导书、KEIL软件,WAVE软件
4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。
五、进度安排
2011年6月13日:
收集和课程设计有关的资料,熟悉课题任务和要求
2011年6月14日-15日:
总体方案设计
2011年6月16日-17日:
硬件电路设计
2011年6月18日-19日:
软件设计
2011年6月20日-22日:
系统调试改进
2011年6月23日:
整理书写设计说明书
2011年6月24日:
答辩并考核
六、教研室审批意见
教研室主任(签字):
年月日
七|、主管教学主任意见
主管主任(签字):
年月日
八、备注
指导教师(签名):
学生(签名):
········摘要·········1
第一章抢答器总体设计··································2
1.1设计任务与要求···································2
1.2方案设计与论证···································2
第二章单片机应用系统简介·····························3
2.1单片机结构········································3
2.2单片机的封装形式,引脚定义及功能··············3
第三章硬件电路设计·····································4
3.1抢答器的电路图····································5
3.2单元电路设计······································5
3.3复位电路设计······································6
3.4报警电路设计······································6
3.5显示电路···········································7
第四章软件设计···········································7
4.1系统主程序设计····································8
4.2主程序清单·········································9
第五章调试及性能分析···································23
第六章设计总结及心得···································24
附录:
参考文献
摘要
随着现代娱乐节目及其它游戏环节的需要,也为了完善节目的紧张气氛和观众的互动,就出现了多路抢答器。
它是人们常用于各种需要抢答比赛时用的电路器材,是一名公正的裁判员。
抢答器的出现给人们带来极大的方便,他能准确无误的从若干名参赛中确定出最先抢答者,并且有显示,声效等功能。
Digest
Withmodernentertainmentprogramsandothergameloop,alsoneedinordertoimprovetheprogramoftensionandtheaudienceinteraction,appearedmoreroadviestoanswerfirstdevice.Itisoftenusedinallkindsofpeopleinthegametoviestoanswerfirstcircuitequipment,isafairjudge.Theemergenceoftheviestoanswerfirstpeoplebringsgreatconvenience,hecanaccuratefromseveralofparticipatinginthefirstviestoanswerfirstdeterminethe,andhaveashow,soundeffects,andotherfunctions.
第一章抢答器的总体设计
1.1设计任务与要求
要求实现功能:
将其中3个按键定义为1—4号,第一位数码管用于计时,第二位数码管用于显示当前抢答着。
当开始后第二位数码管闪烁显示“-”,计时开始后,等待抢答。
抢答后,停止计时,第二位数码管显示抢答者对应编号,按清除键清除。
1.设计出电气原理图;
2.设计出程序流程图;
3.设计出程序;
4.在实验室做出产品或仿真调试。
1.2设计方案与论证
方案:
该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制,信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便,便于控制和实现。
具有灵活的可编程性,能方便对系统功能的扩张和更改。
图1.2抢答器原理图
第二章单片机应用系统简介
2.1单片机结构
(1)80C51单片机的功能结构
图2.1单片机内部结构图
2.2单片机的封装形式,引脚定义及功能。
(1)80C51封装
80C51系列单片机具有双列直插式和方形两种封装。
(2)80C51系列单片机引脚功能
VCC---工作电源+5V
GND---电源接地
ALE/PROG—访问外部存储器时作为低8位地址锁存控制信号。
PSEN---外部程序读选通信号。
EA/VPP---访问程序存储器控制信号。
RET---复位信号
XTAL1---片内震荡电路输入端。
XTAL2---片内震荡电路输出端。
P0--P3—输入输出端口。
图2.280C51双列直插式引脚分布图
第三章硬件电路设计
3.1抢答器的电路图
如图3.1所示为电路图,其工作原理为:
接通电源后主持人将开关拨到“清零”状态,抢答器处于禁止状态,定时器设定时间,主持人将开关置“开始”,宣布抢答开始时,定时器倒计时,扬声器发出响声。
选手要在规定时间内完成抢答;优先判断,编号锁存,扬声器提示。
图3.1抢答器电路图
3.2单元电路设计
3.2.1抢答选手开关电路
图3.2所示,该图为各个选手抢答信号的输入装置,在通过单片机,选择有效信号,同时封锁
图3.2.1抢答器选手开关电路
3.2.2复位电路设计
外部中断的内部中断并存,单片机硬件复位端。
图3.2.2复位端电路图
3.2.3报警电路设计
报警电路用于报警,但遇到信号时,发出报警,图3.2.3就是报警电路。
选手在设定时间内抢答时,实现优先判断编号锁存等提示。
图3.2.3报警器电路图
3.2.4显示电路
显示电路用于显示抢答时间以及抢答信号,同时对犯规抢答组进行闪烁显示。
其显示电路如图3.2.4所示。
图3.2.4显示电路图
第四章软件设计
4.1主程序系统结构图
如图4-1所示为总体原理框图。
其工作原理为:
接通电源后,主持人将开光FW拨到“清零”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开光置“开始”状态,宣布“开始”抢答器工作。
定时器开始倒计时。
选手在规定的15s定时时间内抢答时,抢答器完成:
优先判断、编号显示、扬声器提示,倒计时显示。
当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。
如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。
图4-1总体原理框图
4.2系统主程序
为了能过达到抢答的公平,公正,合理,应该在主持人发布抢答命令之前必须设定抢答时间,因而设定时间程序很重要。
。
下面是抢答器主程序流程图4.2
图4.2抢答器主程序流程图
4.3主程序清单
OKEQU20H;抢答开始标志位
RINGEQU22H;响铃标志位
DATA0EQU36H;抢答按键口数据存放地址
ORG0000H
AJMPMAIN
ORG0003H
AJMPINTT0
ORG000BH
AJMPT0INT
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#15;初设抢答时间为15s
MOVR2,#45;初设答题时间为45s
mov38h,#60;启用锦囊时间从60s倒计时
MOVTMOD,#11H;设置未定时器/模式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断
SETBEA
SETBET0
SETBET1;允许二个中断,T0/T1
CLROK
CLRRING
SETBTR1
SETBTR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了
;=========================================================================
;=================================查询程序================================
;=========================================================================
START:
MOVDATA0,#0FFH;初始化
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示FFF
JNBP3.3,SELSUB0
JNBP3.4,TZ3;倒计时调整
JBP3.0,NEXT
ACALLDELAY
JBP3.0,NEXT;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
SETBEX0;开放INT0
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1->R6,因为R1中保存了抢答时间
SETBOK;抢答标志位,在使用锦囊时用作判断是抢答倒计时还是回答倒计时
MOVR3,#0AH;抢答只显示计时,灭号数
AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面
NEXT:
JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,TZ1
JNBP1.3,TZ2
AJMPSTART
TZ1:
AJMPFALSE3
TZ2:
AJMPFALSE4
TZ3:
AJMPSELSUB1
AJMPSTART
;=========================================================================
;===========================非法抢答处理程序==============================
;=========================================================================
FALSE1:
MOVR3,#01H
AJMPERROR
FALSE2:
MOVR3,#02H
AJMPERROR
FALSE3:
MOVR3,#03H
AJMPERROR
FALSE4:
MOVR3,#04H
AJMPERROR
;=========================================================================
;=========================SELSUB0(抢答时间R1调整程序)=====================
;=========================================================================
SELSUB0:
MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY;先在两个时间LED上显示R1
JNBP3.5,INC0;P3.5为+1s键,如按下跳到INCO
JNBP3.6,DEC0;P3.6为-1s键,如按下跳到DECO
JNBP3.1,BACK0;P3.1为确定键,如按下跳到BACKO
AJMPSELSUB0
INC0:
MOVA,R1
CJNEA,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
MOVR1,#00H
ACALLDELAY1
AJMPSELSUB0
ADD0:
INCR1
ACALLDELAY1
AJMPSELSUB0
DEC0:
MOVA,R1
JZSETR1;如果R1为0,R1就置99,
DECR1
ACALLDELAY1
AJMPSELSUB0
SETR1:
MOVR1,#63H
ACALLDELAY1
AJMPSELSUB0
BACK0:
AJMPSTART
;=========================================================================
;=========================SELSUB1(回答时间R2调整程序)=====================
;=========================================================================
SELSUB1:
MOVA,R2
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.5,INC1
JNBP3.6,DEC1
JNBP3.1,BACK1
AJMPSELSUB1
INC1:
MOVA,R2
CJNEA,#63H,ADD1
MOVR2,#00H
ACALLDELAY1
AJMPSELSUB1
ADD1:
INCR2
ACALLDELAY1
AJMPSELSUB1
DEC1:
MOVA,R2
JZSETR2
DECR2
ACALLDELAY1
AJMPSELSUB1
SETR2:
MOVR2,#63H
ACALLDELAY1
AJMPSELSUB1
BACK1:
AJMPSTART
;=========================================================================
;===============================启用锦囊程序==============================
;=========================================================================
REPEAT:
MOVA,38h;使用锦囊时重新计时
MOVR6,A
CLRRING;当倒计时进入最后5秒的时候,启用锦囊能消除蜂鸣
;=========================================================================
;=============倒计时程序(抢答倒计时和回答倒计时都跳到改程序)==============
;=========================================================================
COUNT:
MOVR0,#00H;重置定时器中断次数
MOVTH1,#3CH
MOVTL1,#0B0H;重置定时器
RECOUNT:
MOVA,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6
MOVB,#0AH
DIVAB;除十分出个位/十位
MOV30H,A;十位存于(30H)
MOV31H,B;个位存于(31H)
MOVR5,30H;取十位
MOVR4,31H;取个位
MOVA,R6
SUBBA,#07H
JNCLARGER;大于5s跳到LARGER,小于等于5s会提醒
MOVA,R0
CJNEA,#0AH,FULL;1s中0.5s向下运行
CLRRING
AJMPCHECK
FULL:
CJNEA,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计
SETBRING
MOVA,R6
JZQUIT;计时完毕
MOVR0,#00H
DECR6;一秒标志减1
AJMPCHECK
LARGER:
MOVA,R0
CJNEA,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示"
DECR6;计时一秒R6自动减1
MOVR0,#00H
CHECK:
JNBP3.1,QUIT;如按下停止键退出
JNBOK,CHECKK;只在回答倒计时才有效
AJMPNEXTT
CHECKK:
JNBP3.0,REPEAT;判断是否使用锦囊
NEXTT:
ACALLDISPLAY
JBOK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)
AJMPRECOUNT
ACCOUT:
MOVA,DATA0
JNBACC.0,TRUE1
JNBACC.1,TRUE2
JNBACC.2,TZ7
JNBACC.3,TZ8
AJMPRECOUNT
TZ7:
AJMPTRUE3
TZ8:
AJMPTRUE4
AJMPRECOUNT
QUIT:
CLROK;如果按下了"停止键"执行的程序
CLRRING
AJMPSTART
;=========================================================================
;============================正常抢答处理程序=============================
;=========================================================================
TRUE1:
ACALLBARK
MOVA,R2
MOVR6,A;抢答时间R2送R6
MOVR3,#01H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TRUE2:
ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#02H
CLROK
AJMPCOUNT
TRUE3:
ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#03H
CLROK
AJMPCOUNT
TRUE4:
ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#04H
CLROK
AJMPCOUNT
;=========================================================================
;============================犯规抢答程序=================================
;=========================================================================
ERROR:
MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV34H,R3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 四路 抢答 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)