8位竞赛抢答器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计专业电气工程及其自动化
指导教师_______________________________ 学生______________ 颜良堂_____________ 学号B16 ___________
题目8位竞赛抢答器的设计
2013年12月25日
目录
设计任务与要求. ............................................................
方案设计与论证 (3)
方案一: (3)
方案二:
三、单元电路的设计..........................................
芯片的选择及工作原理. (4)
系统的硬件构成及功能. (4)
四、软件的设计. (5)
主程序流程图. (6)
主程序. (6)
子程序. (7)
1、开始、复位程序. (7)
2、中断程序. (8)
3、选手键盘扫描程序. (9)
4、数码管显示程序. (12)
5、抢答时间设计程序. (13)
6、延时子程序. (13)
五、仿真与调试. (14)
抢答器调试结果. (14)
六、结论与心得. (16)
附件1:电路图 (16)
附件2:源程序 (17)
附、参考文献? . (24)
一、设计任务与要求
以单片机为核心,设计一个8 位竞赛抢答器:同时供8 名选手或8 个代表队比赛,分别用8个按钮SO〜S7表示。
设置一个系统清除和抢答控制开关S,开关由主持人控制。
抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如3O 秒)。
当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为左右。
参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选
手的编号和抢答的时间,并保持到主持人将系统清除为止。
如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示OO。
通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局
变量后,通过键盘扫描程序使每按下一次按键,时间加 1 (超过30时置0)。同时单片
机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停
止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。
方案设计与论证
方案一:
使用C语言编程实现基于单片机的八位抢答器的课程设计,用到的元器件有
AT89C51、MAX7219按键、数码管、上拉电阻、蜂鸣器等。
使用汇编语言编程实现八位抢答器的课程设计,用到的元器件有AT89C51、74LS373、按键、数码管、上拉电阻、蜂鸣器等。
选择方案二的理由:首先汇编语言是一种功能很强的程序设计语言,也是利用计算机所有
硬件特性并能直接控制硬件的语言,具有很高的精确控制;其次选用74LS373芯片作为数码
管的控制芯片是因为它容易控制选用3个741S373分别控制倒计时的两个数码管及一个显示
抢答结果的数码管,所以我选择了方案二。
三、单元电路的设计
芯片的选择及工作原理
本设计使用到的元器件包括AT89C51芯片、数码管。
工作原理:
仿真开始显示FFF;按下"复位”键显示倒计时初值,起初设的是30秒;再按下"设时”
键,按一下计数初值加1,到30自动清零;按下“开始”键开始倒计时,每减一,有秒的声响;当有选手按下,则倒计时停止,显示当前倒计时数值和选手编号;若在倒计时计数到
0,无人抢答则有1秒声响的报警。
系统的硬件构成及功能
1、单片机晶振及复位部分电路电路
2、选手抢答部分电路:由八个按键S0~S7以及8个阻值为1k的上拉电阻组成
3、开始、复位、时间设置及扬声器部分电路:由3个按键、1个电阻、NPF和1个BUZZERS成, 用于主持人操作及扬声器提示报警
4、显示部分电路:由3个74LS373芯片及3个数码管构成,用于显示倒计时时间和抢答结果
四、软件的设计
主程序流程图
主程序
Y
显示抢答结果MAIN: MOV TMOD,#01H 主程序
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB
EXO
SETB ITO
MOV R4,#30 ;30秒倒计时
MOV R7,#0AH ; 倒计时
MOV R6,#0AH
存放倒计时的显示值,初值设为30 MOV R0,#30 ;R0
LCALL XIANSH2
子程序
1、开始、复位程序
;******** 复位程序********
预判复位键按下否
FW: JNB ,FW1 ;
JMP FW
去抖动,判断是否真按下
FW1: LCALL DELAY ;
JNB ,FW2
JMP FW
FW2: MOV R3,#0BH ; 复位按下,则存放选手编号的R3,放入"灭" 的代码
倒计时初值R4放入显示倒计时寄存器R0中MOV A,R4 ;
MOV R0,A
LCALL XIANSH1
; 开始程序
SAM: JNB ,PK
JMP SAM
扫描开始键是否按下
PK: JNB ,PK1 ;
JMP SAM
按下则R3存"灭”代码,PK1: MOV R3,#0BH ;
SETB TR0 ;/ 启动定时器
MOV R2,#0AH ; 中断次数设为10次,刚好1秒