找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3510|回复: 7
打印 上一主题 下一主题
收起左侧

单片机8位竞赛抢答器的设计报告下载

  [复制链接]
跳转到指定楼层
楼主
ID:358511 发表于 2018-6-25 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、简述
通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。
二、设计任务和要求
    以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
    设置一个系统清除和抢答控制开关S,开关由主持人控制。
     抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
    抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。
     当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。
     参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
     如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
三、设计方案提示
1、电路设计( Proteus仿真通过)   
8位竞赛抢答器的设计电路原理图,如下页图所示:

完整的Word格式文档51黑下载地址:
八位竞赛抢答器.doc (951 KB, 下载次数: 81)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:371045 发表于 2018-7-13 17:24 | 只看该作者
您好,请问有程序码
回复

使用道具 举报

板凳
ID:371413 发表于 2018-7-14 12:58 | 只看该作者
lzy7071780 发表于 2018-7-13 17:24
您好,请问有程序码

没有,我也想要
回复

使用道具 举报

地板
ID:138664 发表于 2018-7-14 16:47 | 只看该作者
lzy7071780 发表于 2018-7-13 17:24
您好,请问有程序码



楼主电路的程序hex 见附件

1.rar (131 Bytes, 下载次数: 22)



回复

使用道具 举报

5#
ID:450005 发表于 2018-12-19 16:48 | 只看该作者
基于c语言的还是汇编语言?
回复

使用道具 举报

6#
ID:777047 发表于 2020-6-12 15:34 | 只看该作者
(2)程序代码
1主程序
OKEQU20H
RINGEQU22H
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT0SUB
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:MOVR1,#30
MOVR2,#60
MOVTMOD,#11H
MOVTH0,#0F0H
MOVTL0,#0FFH
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET0
SETBET1
SETBEX0
SETBEX1
CLROK
CLRRING
SETBTR1
SETBTR0
2查询程序
START:MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY
JBP3.0,NEXT
ACALLDELAY
JBP3.0,NEXT
ACALLBARK
MOVA,R1
MOVR6,A
SETBOK
MOVR7,#01H
MOVR3,#0AH
AJMPCOUNT
NEXT:JNBP1.0,FALSE1
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,FALSE7
JNBP1.7,FALSE8
AJMPSTART
3非法抢答处理程序
FALSE1:MOVR3,#01H
AJMPERROR
FALSE2:MOVR3,#02H
AJMPERROR
FALSE3:MOVR3,#03H
AJMPERROR
FALSE4:MOVR3,#04H
AJMPERROR
FALSE5:MOVR3,#05H
AJMPERROR
FALSE6:MOVR3,#06H
AJMPERROR
FALSE7:MOVR3,#07H
AJMPERROR
FALSE8:MOVR3,#08H
4抢答、回答时间调整程序
=====INT0(抢答时间R1调整程序)=====
INT0SUB:MOVA,R1
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC0
JNBP3.5,DEC0
JNBP3.1,BACK0
AJMPINT0SUB
INC0:MOVA,R1
CJNEA,#63H,ADD0
MOVR1,#00H
ACALLDELAY1
AJMPINT0SUB
ADD0:INCR1
ACALLDELAY1
AJMPINT0SUB
DEC0:MOVA,R1
JZSETR1
DECR1
ACALLDELAY1
AJMPINT0SUB
SETR1:MOVR1,#63H
ACALLDELAY1
AJMPINT0SUB
BACK0:RETI
;=====INT1(回答时间R2调整程序)=====
INT1SUB:MOVA,R2
MOVB,#0AH
DIVAB
MOVR5,A
MOVR4,B
MOVR3,#0AH
ACALLDISPLAY
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP3.1,BACK1
AJMPINT1SUB
INC1:MOVA,R2
CJNEA,#63H,ADD1
MOVR2,#00H
ACALLDELAY1
AJMPINT1SUB
ADD1:INCR2
ACALLDELAY1
AJMPINT1SUB
DEC1:MOVA,R2
JZSETR2
DECR2
ACALLDELAY1
AJMPINT1SUB
SETR2:MOVR2,#63H
ACALLDELAY1
AJMPINT1SUB
BACK1:RETI
5倒计时程序
REPEAT:MOVA,R2
MOVR6,A
CLRRING
COUNT:MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
RECOUNT:MOVA,R6
MOVB,#0AH
DIVAB
MOV30H,A
MOV31H,B
MOVR5,30H
MOVR4,31H
MOVA,R6
SUBBA,#07H
JNCLARGER
MOVA,R0
CJNEA,#0AH,FULL
CLRRING
AJMPCHECK
FULL:CJNEA,#14H,CHECK
SETBRING
MOVA,R6
JZQUIT
MOVR0,#00H
DECR6
AJMPCHECK
LARGER:MOVA,R0
CJNEA,#14H,CHECK
DECR6
MOVR0,#00H
CHECK:JNBP3.1,QUIT
JNBOK,CHECKK
AJMPNEXTT
CHECKK:JNBP3.0,REPEAT
NEXTT:ACALLDISPLAY
JBOK,ACCOUT
AJMPRECOUNT
ACCOUT:
MOVA,36H
JNBACC.0,TRUE1
JNBACC.1,TRUE2
JNBACC.2,TRUE3
JNBACC.3,TRUE4
JNBACC.4,TRUE5
JNBACC.5,TRUE6
JNBACC.6,TZ1
JNBACC.7,TZ2
AJMPRECOUNT
TZ1:JMPTRUE7
TZ2:JMPTRUE8
QUIT:CLROK
CLRRING
AJMPSTART
6正常抢答处理程序
TRUE1:ACALLBARK
MOVA,R2
MOVR6,A
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
TRUE5:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#05H
CLROK
AJMPCOUNT
TRUE6:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#06H
CLROK
AJMPCOUNT
TRUE7:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#07H
CLROK
AJMPCOUNT
TRUE8:ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#08H
CLROK
AJMPCOUNT
7犯规抢答程序
ERROR:MOVR0,#00H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV34H,R3
HERE:MOVA,R0
CJNEA,#06H,FLASH;0.3s
CLRRING
MOVR3,#0AH
MOVR4,#0AH
MOVR5,#0AH
AJMPCHECK1
FLASH:CJNEA,#0CH,CHECK1
SETBRING
MOVR0,#00H
MOVR3,34H
MOVR5,#0BH
MOVR4,#0BH
AJMPCHECK1
CHECK1:JNBP3.1,QUIT1
ACALLDISPLAY
AJMPHERE
QUIT1:CLRRING
CLROK
AJMPSTART
8其他功能程序
=====显示程序=====
DISPLAY:MOVDPTR,#DAT1
MOVA,R3
MOVCA,@A+DPTR
MOVP2,#0feH
MOVP0,A
ACALLDELAY2
MOVDPTR,#DAT2
MOVA,R5
MOVCA,@A+DPTR
MOVP2,#0fdH
MOVP0,A
ACALLDELAY2
MOVA,R4
MOVCA,@A+DPTR
MOVP2,#0fbH
MOVP0,A
ACALLDELAY2
RET
DAT1:DB00h,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
DAT2:DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
=====发声程序=====
BARK:SETBRING
ACALLDELAY1
ACALLDELAY1
CLRRING
RET
=====TO溢出中断(响铃程序)=====
T0INT:MOVTH0,#0ECH
MOVTL0,#0FFH
JNBRING,OUT;
CPLP3.6
OUT:RETI
;=====T1溢出中断(计时程序)=====
T1INT:MOVTH1,#3CH
MOVTL1,#0B0H
END

回复

使用道具 举报

7#
ID:787839 发表于 2020-6-23 16:24 | 只看该作者
ttzx131wp@ 发表于 2020-6-12 15:34
(2)程序代码
1主程序
OKEQU20H

这个是啥呀/捂脸看不懂
回复

使用道具 举报

8#
ID:787515 发表于 2020-6-27 21:06 | 只看该作者
ttzx131wp@ 发表于 2020-6-12 15:34
(2)程序代码
1主程序
OKEQU20H

太感谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表