8位竞赛抢答器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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秒

相关文档
最新文档