8位竞赛抢答器的设计Word文档下载推荐.docx
- 文档编号:20171174
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:20
- 大小:335.25KB
8位竞赛抢答器的设计Word文档下载推荐.docx
《8位竞赛抢答器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《8位竞赛抢答器的设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
1、单片机晶振及复位部分电路电路
2、选手抢答部分电路:
由八个按键S0~S7以及8个阻值为1k的上拉电阻组成
3、开始、复位、时间设置及扬声器部分电路:
由3个按键、1个电阻、NPN和1个BUZZER组成,用于主持人操作及扬声器提示报警
4、显示部分电路:
由3个74LS373芯片及3个数码管构成,用于显示倒计时时间和抢答结果
四、软件的设计
主程序流程图
主程序
MAIN:
MOVTMOD,#01H;
主程序
MOVTH0,#3CH
MOVTL0,#0B0H
SETBEA
SETBET0
SETBEX0
SETBIT0
MOVR4,#30;
30秒倒计时
MOVR3,#0AH;
抢答结果
MOVR7,#0AH;
倒计时
MOVR6,#0AH
MOVR0,#30;
R0存放倒计时的显示值,初值设为30
LCALLXIANSH2
子程序
1、开始、复位程序
;
********复位程序********
FW:
JNB,FW1;
预判复位键按下否
JMPFW
FW1:
LCALLDELAY;
去抖动,判断是否真按下
JNB,FW2
FW2:
MOVR3,#0BH;
复位按下,则存放选手编号的R3,放入"
灭"
的代码
MOVA,R4;
倒计时初值R4放入显示倒计时寄存器R0中
MOVR0,A
LCALLXIANSH1
开始程序
SAM:
JNB,PK
JMPSAM
PK:
JNB,PK1;
扫描开始键是否按下
PK1:
按下则R3存"
代码,
SETBTR0;
/启动定时器
MOVR2,#0AH;
中断次数设为10次,刚好1秒
HERE:
CJNER1,#01H,YY;
若R1中存放的选手按键标志位为1,则转入STAR
JMPSTAR;
否则继续循环等待中断
YY:
JMPHERE
2、中断程序
中断程序
IT0P:
CLRTR0
DECR2
CJNER2,#05H,JX0;
中断5次后,开启扬声器
clr
JX0:
CJNER2,#00H,JX1;
中断10次后,关闭扬声器,这样喇叭响秒
setb
DECR0
R2中再存入中断次数
JX1:
LCALLSAMO
CJNER1,#01H,JX2;
扫描选手按键标志位R1,未按下则转JX2,按下则返回
JMPRETURN
JX2:
JNB,PK2
JMPCZ
PK2:
检测复位键按下否
JNB,QFW
QFW:
MOVR1,#01H
JMPRETURN;
按下则返回
CZ:
CJNER0,#00H,CZ1;
倒计时是否计时完毕
clr;
及时完毕无人抢答则扬声器开启
LCALLDELAY5;
延时1秒
MOVR1,#01H;
R1设1
中断返回
CZ1:
MOVTH0,#3CH;
计时器初值重装
SETBTR0
RETURN:
RETI
3、选手键盘扫描程序
选手键盘扫描程序
SAMO:
JNB,XS1
JNB,XS2
JNB,XS3
JNB,XS4;
预扫描选手按键是否按下
JNB,XS5
JNB,XS6
JNB,XS7
JNB,XS80
RETURN2:
RET;
未按下则返回
XS80:
LJMPXS8
XS1:
去抖动再判是否按下
JNB,XS11
JMPRETURN2
XS11:
setb;
按下则显示1号扬声器关闭
MOVR3,#01H
XS2:
LCALLDELAY
JNB,XS22
XS22:
按下则显示2号扬声器关闭
MOVR3,#02H
XS3:
JNB,XS33
XS33:
按下则显示3号扬声器关闭
MOVR3,#03H
XS4:
JNB,XS44
XS44:
MOVR1,#01H;
按下则显示4号扬声器关闭
MOVR3,#04H
XS5:
JNB,XS55
XS55:
按下则显示5号扬声器关闭
MOVR3,#05H
XS6:
JNB,XS66
XS66:
按下则显示6号扬声器关闭
MOVR3,#06H
XS7:
JNB,XS77
XS77:
MOVR3,#07H;
按下则显示7号扬声器关闭
XS8:
JNB,XS88
XS88:
按下则显示8号扬声器关闭
MOVR3,#08H
4、数码管显示程序
显示程序
XIANSH1:
MOVA,R0
MOVB,#0AH;
R0中存放的倒计时显示值除10分出十位和个位
DIVAB
MOVR7,A;
十位存入R7中
MOVR6,B;
个位存入R6中
XIANSH2:
SETB
CLR;
选择选手编号的数码管
CLR
MOVA,R3
MOVDPTR,#SEGTAB;
调入代码
MOVCA,@A+DPTR
MOVP2,A;
显示选手编号
SETB;
选择显示十位的数码管
MOVA,R7
MOVDPTR,#SEGTAB;
MOVP2,A;
显示十位
选择显示个位的数码管
SETB
MOVA,R6
MOVDPTR,#SEGTAB;
MOVP2,A;
显示个位
RET
5、抢答时间设计程序
抢答时间设置程序
SHESH:
INCR0;
倒计时初值加1
CJNER0,#31,BQL;
倒计时初值设置超过30自动清零
MOVR0,#00H
BQL:
MOVR3,#0BH
MOVA,R0;
倒计时初值存入其专用寄存器R4中,这样可以全局不变,R0会倒计时中递减而改变
MOVR4,A
6、延时子程序
10ms延时程序(用于去抖动)
DELAY:
MOVR7,#20
D1:
MOVR6,#248
D2:
DJNZR6,D2
DJNZR7,D1
1s延时程序(无人抢答报警)
DELAY5:
MOVR7,#40
DL1:
MOVR6,#50
DL2:
MOVR5,#248
DL3:
DJNZR5,DL3
DJNZR6,DL2
DJNZR7,DL1
五、仿真与调试
抢答器调试结果
1、开始
开始运行仿真电路数码管显示FFF。
2、倒计时
首先按下复位按钮,当按下开始按钮时开始倒计时。
3、抢答
在倒计时时间内抢答有效,倒计时后和主持人还没按开始按钮抢答均无效。
4、倒计时时间设置
在还没开始和抢答结束后均可设置抢答倒计时时间0~30s
�
5、抢答结束复位清零
抢答结束后可按复位键清零以便下一次抢答。
六、结论与心得
此次课程设计,开始很苦恼,无从下手。
后来和同学讨论决定首先借助于网络资料。
网络上的资源大多并不完善,甚至有些根本看不懂。
此时真的很头疼。
于是回想之前实验课上所学习的知识。
寻找借鉴例题。
零零散散下载摘录很多东西。
又结合抢答比赛的实际应用,开始起草最初的设计草案。
想法很多设计也几近完整,然而很多功能却无法实现。
于是决定按照草案一步步依次解决,边解决边定稿最后设计方案。
中间遇到很多问题、困难。
这时我才了解到对知识的掌握还有许多的生疏和欠缺。
然而此时后悔已经于事无补。
我们只能不停在网络上搜索查找学习,尽量弥补自身知识的不足。
渐渐完善此设计。
在这次试验设计中在老师的严格要求下,我发现了自己知识上的不足和理论时间上的差距。
通过此次的课程设计使我对本科知识有了更深入的了解提高了实践的操作能力。
同时,也规范了我对报告文体格式的掌握。
并让我了解到认真刻苦,以真理为武,追求卓越的精神!
附件1:
电路图
附件2:
源程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPSHESH
ORG000BH
LJMPIT0P
ORG0100H
MOVTMOD,#01H;
主函数
SETBET0
SETBEX0
SETBIT0
MOVR4,#30;
MOVR3,#0AH;
MOVR7,#0AH;
MOVR6,#0AH
MOVR0,#30;
LCALLXIANSH2
STAR:
setb;
关喇叭
MOVR1,#00H;
选手按键,复位按键,无人抢答的标志位,用于从等待中断中返回到初始
复位部分程序
JNB,FW1;
LCALLDELAY;
JMPFW
MOVR3,#0BH;
MOVA,R4;
MOVR0,A
LCALLXIANSH1
开始部分程序
JNB,PK1;
MOVR3,#0BH;
SETBTR0;
MOVR2,#0AH;
CJNER1,#01H,YY;
JMPSTAR;
CLRTR0
DECR2
CJNER2,#05H,JX0;
clr
CJNER2,#00H,JX1;
DECR0
MOVR2,#0AH;
CJNER1,#01H,JX2;
JMPRETURN
JMPCZ
JMPRETURN;
CJNER0,#00H,CZ1;
clr;
LCALLDELAY5;
MOVR1,#01H;
JMPRETURN;
MOVTH0,#3CH;
SETBTR0
JNB,XS3
JNB,XS4;
JNB,XS5
JNB,XS6
JNB,XS7
JNB,XS80
RET;
JMPRETURN2
setb;
MOVR3,#01H
MOVR3,#02H
MOVR3,#03H
MOVR3,#04H
MOVR3,#05H
setb;
MOVR3,#06H
MOVR3,#07H;
MOVR3,#08H
MOVB,#0AH;
DIVAB
MOVR7,A;
MOVR6,B;
CLR;
CLR
MOVA,R3
MOVDPTR,#SEGTAB;
MOVCA,@A+DPTR
MOVP2,A;
SETB;
MOVA,R7
SETB
MOVA,R6
MOVDPTR,#SEGTAB;
MOVP2,A;
RET
INCR0;
CJNER0,#31,BQL;
MOVA,R0;
10ms延时程序(去抖动)
MOVR6,#248
数码管显示调用代码
SEGTAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0FFH单片机原理及应用》�.高等教育出版社�.2004
[2]张鑫�.《单片机原理及应用》�.电子工业出版社�.2005
[3]曹国清�.《数学电路与逻辑设计》中国矿业大学出版社�.2004
[4]任致程�.《经典集成电路400例》机械工业出版社�.2002
[5]薛栋梁�.《单片机原理及应用》�.中国水利水电出版社�.2001
[6]吴金戎,沈庆阳等�.《8051单片机实践与应用》�.清华大学出版社�.2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 竞赛 抢答 设计