基于单片机的八路抢答器

1绪论………………………………………………………………………………………………4

1. 错误!未定义书签。八路抢答器的概

述.....................................................4

1.2设计任务与要求 . ............................................. 4 2总体方案设计..................................................... 5

2.1方案设计„„„„„„„„„„„„„„„„„„„„„„„ 2.2 方案论证与比较 ............................ 错误!未定义书签。 2.3 总体框图设计

3 硬件电路设计 ................................... 错误!未定义书签。

3.1 AT89C51单片机 . ............................ 错误!未定义书签。 3.2 按键电路 .................................. 错误!未定义书签。 3.3 复位电路 .................................. 错误!未定义书签。 3.4 报警电路

3.5 LED数码显示电路和驱动电路 3.6 总设计电路图

4 软件设计 ....................................... 错误!未定义书签。

4.1 程序流程图 ................................ 错误!未定义书签。 5总结 ........................................... 错误!未定义书签。 参考文献: ....................................................... 17 附录 ............................................................. 18

附录一 程序代码 ............................... 错误!未定义书签。

1 绪论

1.1 八路抢答器的概述

随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计的八路抢答器以AT89C51单片机为核心器件,包括时钟电路、复位电路、显示电路、按键电路以及报警电路。基于MCS-51系列单片机AT89C51的一种抢答器. 该电路采用AT89C51单片机的四个8位并行I/O接口连接各个控制电路来实现抢答功能. 该电路设计简单, 进行简单更改便可实现对8组或8组以下的人员抢答. 它能根据不同的抢答输入信号,经过单片机的控制处理产生不同的对应输出信号,最后经过LED 数码管显示相应的路数,充分利用了单片机的优点。

1.2 设计任务及要求

(1)、设计任务

基于MCS-51系列单片机AT89C51,设计一个多功能八路抢答器 (2)、设计要求

1)抢答器同时供8名选手或8个代表比赛,分别用8个按钮K1~K8。 2)设置一个系统清除和抢答控制开关K9,该开关由主持人控制。 3)抢答器具有锁存功能与显示功能。即选手按动按钮,锁存相应的编号 并在优先抢答选手的编号一直保持到主持人将系统清除为止。 4)主持人按下抢答“开始”按钮,抢答开始。

5)当某一路抢答成功时,在数码管上显示成功信息和该路的号数; 6)当某一路抢答违规时,能在数码管上显示违规信息和该路的号数; 7)具有定时抢答发功能, 且一次抢答的时间由主持人设定(如5秒) 。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

8)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

9如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

2 总体方案设计

2.1 方案设计

方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作工序比较繁琐,使用不太方便。

方案二:采用89C51系列单片机作为控制核心。该系统可以完成运算控制、信号识别以及显示功能的实现。利用单片机程序判断选手按键是否有效,若无效,启动扬声器报警。选手若按正常的操作进行抢答,利用数码管显示电路实现倒计时显示时间。整个系统具有极其灵活的可编程性,能方便的对系统进行动能的扩张和更改。

2.2 方案设计论证与选择

相对于第一个方案:

方案二可靠性好:单片机按照工业控制要求设计,抵制工业噪声干扰优于一般的CPU 。

单片机有一般电脑所必须的器件,如三台双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。

控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳转指令。

所以我选择方案二。

2.3 总体框图设计

该系统以89C51单片机为核心,由晶振和复位电路、抢答器电路、时序控制电路、报警电路、LED 数码管显示器和驱动电路组成。复位电路、按键电路、数码管显示电路、报警电路这几部分电路组成。系统框图如图2-3所示。工作原理:接通电源后,主持人按下“清除”按钮,对系统进行复位和清零,抢答器处于禁止状态,数码管显示器显示设定时间;主持人按下“开始”按钮,抢答器开始工作,选手可进行抢答,在此过程中,抢答器完成优先判断、编号显示、扬声器提示。当一轮抢答之后,定时器停止,禁止二次抢答,显示器显示剩余时间。如果再次抢答,必须由主持人再次操作“清除”或者“开始”状态按钮。

图2-3

3 硬件设计

3.1 AT89C51单片机

AT89C51作为抢答电路系统的核心器件。如图3-1所示,该器件是INTEL 公司生产的MCS -51系列单片机的基础产品,采用了可靠的CMOS 工艺制造技术,具有高性能的8位单片机,属于标准的MCS -51的CMOS 产品。不仅结合了HMOS 的高速和高密度技术及HMOS 的低功耗特征,而且继承和扩展了MCS -48单片机的体系结构和指令系统。

图3-1

①AT89C51单片机的主要特征:

A 、与MCS -51兼容,4K 字节可编程闪烁存储器; b 、灵活的在线系统编程,掉电标识和快速编程特性; c 、寿命为1000次写/擦周期,数据保留时间可10年以上; d 、全静态工作模式:0HZ~33HZ;

e 、三级程序存储器锁定;f128×8位内部RAM ,32位可编I/O线; g 、两个16位定时器/计数器,5个中断源,4个8位并行的I/O接口,1个

全双工I/O接口。

h 、有位寻址功能、适于布尔处理的位处理机。 ②单片机与报警电路

系统中的报警电路是由发光二极管和限电流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接线方法与P2端口相同,不同的是Flash 编程和程序校验,P1接收低8位地址数据。 ③程序存储器

本系统的所需的没有必要外扩程序存储器,所以不用考虑存储器扩充容量的大小,单片机本身的存储器就已足够。 ④数据存储器

根据系统的功能要求,不需扩展外部RAM ,89C51本身的RAM 就能满足要求。 ⑤I/O接口芯片

根据系统的功能要求,I/O接口芯片的也不需进行扩展。 ⑥总线驱动能力

MCS-51系列单片机的外部扩展功能很强,但4个8位并行的带负载的能力是有限的。P0口能驱动8个TTL 电路,P1~P3口只能驱动3个TTL 电路。在实际运用中,这些端口的负载不应超过总负载能力的70%,以保证留有一定的余量,以增强系统的抗干扰能力,在外接负载较多的情况下,应采用总线驱动电路,以提高端口的驱动能力和抗干扰能力

3.2 按键电路

键盘是人与微机系统打交道的主要设备。按键电路如图3-2所示。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。该电路完成两个功能:一是分辨出选手按键的先后,并锁存抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键,即使其他选手操作无效。抢答器具有锁存、定时、显示和报警功能。

时序控制电路是抢答器设计的关键,它要完成的功能是:一、主持人按动“开

始”按键K8时,抢答电路和定时电路进入正常抢答状态。二、当主持人未按动“开始”按键,但有参赛选手按动抢答键时,蜂鸣器声响,抢答电路和定时电路停止工作。

图3-2

3.3 复位电路

复位是计算机的一个重要工作状态。如图3-3所示,在单片机工作时,接电之前要复位,断电后也要复位,在抢答器中复位则为定时做铺垫的,在抢答之前要复位,抢答完毕后也要复位,按了复位键之后,LED 的显示全为00,当引脚RST 端保持两个机器周期以上的高电平,AT89C51可以进入复位状态。

图3-3

3.4 报警电路

报警电路具有报警功能,如图3-4所示,如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示为00,并发出一段时间的报警声

图3-4

3.5 LED数码显示器和驱动电路

本设计所用的显示器为7段共阴极接法LED 显示器,如图3-5所示,当某一发光二极管的阳极输入高电平时,则该段发光。利用P0口做段选码口输出,P2口的1\3\4三位做位选码输出.

图3-5

3.6 总设计电路图

图3-6

4、软件设计

4.1程序流程图

在本设计中包括了以下八个主要的程序:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。主流程图如图所示:

图4-1

图4-2

4-3

5 调试

5.1准备开始:

图5-1

5.2 二号选手抢答成功:

图5-2

5.3四号选手抢答成功:

图5-3

5.4抢答时间到,无人抢答:

5-4

5.5抢答犯规:

图5-5

6.总结

开始选择课程设计题目是,看见这个题目觉得挺好弄得,但是想的总是美好的。这次课程设计的仿真工具是从来没有使用过,是在老师和同学的指导下学会的,结合单片机设计电路更是从来没有接触过,但是没有办法,所以通过上网或去图书馆查阅资料了解了一些,经过两个星期的设计,从开始的什么都不会,慢慢的自己会更改电路,会仿真,导入程序后会自己进行一些修改。虽然不是很系统的学习这些,但是基本的操作已经了解了。通过这次课程设计,我们意识到,要想设计出好的电路,必须清楚明白的知道题目所要表达的意思,并且要了解各种元器件的用途,这次设计综合了我们所学习过的知识,也对这些知道进行了一定的扩展了解,这些对我们是很有帮助的。

参考文献:

[1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006 [4]夏路易,石宗义。电路原理图与电路板设计教程Protel 99se. 北京:北京希望电子出版社,2002

[5]康华光。模拟电路技术基础(第五版)。北京:高等教育出版社,2

附录

附录一程序代码:

OK EQU 25H ;抢答开始标志位 RING EQU 27H ;响铃标志位

DATA0 EQU 40H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT

MAIN: MOV R1,#5 ;初设抢答时间为5s MOV R2,#5 ;初设答题时间为5s MOV TMOD,#10H ;设置未定时器方式2 MOV TH0,#0ECH

MOV TL0,#0FFH ;越高发声频率越高, 越尖 MOV TH1,#3CH

MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0

SETB ET1 ;允二个中断,T0/T1 CLR OK CLR RING SETB TR1

SETB TR0

;=====查询程序=====

START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH

ACALL DISPLAY ;未开始抢答时候显示P00 JB P3.0,NEXT ACALL DELAY

JB P3.0,NEXT ;抖动, 如果" 开始键" 按下就向下执行, 否者跳到非法抢答查询 ACALL BARK MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位, 用于COUNT 只程序中判断是否查询抢答

MOV R3,#0AH ;抢答只显示计时, 灭号数

AJMP COUNT ;进入倒计时程序," 查询有效抢答的程序" 在COUNT 里面

NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP START TZ1: JMP FALSE7 TZ2: JMP FALSE8

;=====非法抢答处理程序=====

FALSE1: ACALL BARK ;按键发声 MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR FALSE7: ACALL BARK MOV R3,#07H AJMP ERROR FALSE8: ACALL BARK MOV R3,#08H AJMP ERROR

;=====倒计时程序(抢答倒计时和回答倒计时都跳到该程序)=====

COUNT: MOV R0,#00H ;重置定时器中断次数

MOV TH1,#3CH

MOV TL1,#0B0H ;重置定时器

RECOUNT: MOV A,R6 ;R6保存了倒计时的时间, 之前先将抢答时间或回答时间给R6

MOV B,#0AH

DIV AB ;除十分出个位/十位

MOV 30H,A ;十位存于(30H)

MOV 31H,B ;个位存于(31H)

MOV R5,30H ;取十位

MOV R4,31H ;取个位

MOV A,R6

SUBB A,#07H

JNC LARGER ;大于5s 跳到LARGER, 小于等于5s 会提醒

MOV A,R0

CJNE A,#0AH,FULL ;1s中0.5s 向下运行

CLR RING

AJMP CHECK

FULL: CJNE A,#14H,CHECK ;下面是1s 的情况, 响并显示号数并清R0, 重新计时

SETB RING

MOV A,R6

JZ QUIT ;计时完毕

MOV R0,#00H

DEC R6 ;一秒标志减1

AJMP CHECK

LARGER: MOV A,R0

CJNE A,#14H,CHECK ;如果1s 向下运行, 否者跳到查" 停/显示"

DEC R6 ;计时一秒R6自动减1

MOV R0,#00H

CHECK: JNB P3.1,QUIT ;如按下停止键退出

ACALL DISPLAY

JB OK,ACCOUT ;如果是抢答倒计时, 如是则查询抢答, 否者跳过查询继续倒数(这里起到锁抢答作用)

AJMP RECOUNT

ACCOUT: MOV A,DATA0

JNB P1.0,TRUE1

JNB P1.1,TRUE2

JNB P1.2,TRUE3

JNB P1.3,TRUE4

JNB P1.4,TRUE5

JNB P1.5,TRUE6

JNB P1.7,TZ4

AJMP RECOUNT

TZ3: JMP TRUE7

TZ4: JMP TRUE8

QUIT: CLR OK ;如果按下了" 停止键" 执行的程序 CLR RING

AJMP START

;=====正常抢答处理程序=====

TRUE1: ACALL BARK

MOV A,R2

MOV R6,A ;

MOV R3,#01H

CLR OK ;

以就锁了抢答, 回答倒计时开始.

AJMP COUNT

TRUE2:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#02H

CLR OK

AJMP COUNT

TRUE3:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#03H

CLR OK

AJMP COUNT

TRUE4:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#04H

CLR OK

AJMP COUNT

TRUE5: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#05H

CLR OK

AJMP COUNT

TRUE6: ACALL BARK

MOV A,R2

MOV R6,A 回答时间R2送R6 因为答题的计时不再查询抢答, 所

CLR OK

AJMP COUNT

TRUE7: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#07H

CLR OK

AJMP COUNT

TRUE8: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#08H

CLR OK

AJMP COUNT

;=====犯规抢答程序=====

ERROR: MOV R0,#00H

MOV TH1,#3CH

MOV TL1,#0B0H

MOV 34H,R3 ;

HERE: MOV A,R0

CJNE A,#0AH,FLASH ;0.5s

CLR RING

MOV R3,#0AH

MOV R4,#0AH

MOV R5,#0AH ;

AJMP CHECK1

FLASH: CJNE A,#14H,CHECK1 ;

清R0, 重新计

SETB RING

MOV R0,#00H

MOV R3,34H ;

MOV R5,#0BH

MOV R4,#0BH ;

AJMP CHECK1

CHECK1: JNB P3.1,QUIT1

ACALL DISPLAY

AJMP HERE

QUIT1: CLR RING

CLR OK

AJMP START

;=====显示程序===== 犯规号数暂存与(34H) 向下运行->灭并停响 三灯全灭 下面是1s 的情况, 响并显示号数并取回号数 显示00和号数

DISPLAY: MOV DPTR,#DAT1 ;查表显示程序, 利用P0口做段选码口输出/P2口的1\3\4三位做位选码输出.

MOV A,R3

MOVC A,@A+DPTR

MOV P2,#0feH

MOV P0,A

ACALL DELAY

MOV DPTR,#DAT2

MOV A,R5

MOVC A,@A+DPTR

MOV P2,#0fdH

MOV P0,A

ACALL DELAY

MOV A,R4

MOVC A,@A+DPTR

MOV P2,#0fbH

MOV P0,A

ACALL DELAY

RET

DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H ;"灭

","1","2","3","4","5","6","7","8","9"," 灭","P"

DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,3fH

;第一个为零, 最后一个为零, 其他与上相同, 因为十位如果为零显示熄灭

;=====延时(显示和去抖动用到)=====

DELAY: MOV 32H,#12H

LOOP: MOV 33H,#0AFH

LOOP1: DJNZ 33H,LOOP1

DJNZ 32H,LOOP

RET

;=====发声程序=====

BARK: SETB RING

ACALL DISPLAY

ACALL DISPLAY

CLR RING ;按键发声

RET

;=====TO溢出中断(响铃程序)=====

T0INT: MOV TH0,#0ECH

MOV TL0,#0FFH

JNB RING,OUT;

CPL P3.6 ;RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音

OUT: RETI

;=====T1溢出中断(计时程序)=====

T1INT: MOV TH1,#3CH

MOV TL1,#0B0H

INC R0

RETI

;========INTT0中断服务程序============

INTT0:MOV DATA0,P1

CLR EX0

RETI

END

1绪论………………………………………………………………………………………………4

1. 错误!未定义书签。八路抢答器的概

述.....................................................4

1.2设计任务与要求 . ............................................. 4 2总体方案设计..................................................... 5

2.1方案设计„„„„„„„„„„„„„„„„„„„„„„„ 2.2 方案论证与比较 ............................ 错误!未定义书签。 2.3 总体框图设计

3 硬件电路设计 ................................... 错误!未定义书签。

3.1 AT89C51单片机 . ............................ 错误!未定义书签。 3.2 按键电路 .................................. 错误!未定义书签。 3.3 复位电路 .................................. 错误!未定义书签。 3.4 报警电路

3.5 LED数码显示电路和驱动电路 3.6 总设计电路图

4 软件设计 ....................................... 错误!未定义书签。

4.1 程序流程图 ................................ 错误!未定义书签。 5总结 ........................................... 错误!未定义书签。 参考文献: ....................................................... 17 附录 ............................................................. 18

附录一 程序代码 ............................... 错误!未定义书签。

1 绪论

1.1 八路抢答器的概述

随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作用也越来越重要。本文设计的八路抢答器以AT89C51单片机为核心器件,包括时钟电路、复位电路、显示电路、按键电路以及报警电路。基于MCS-51系列单片机AT89C51的一种抢答器. 该电路采用AT89C51单片机的四个8位并行I/O接口连接各个控制电路来实现抢答功能. 该电路设计简单, 进行简单更改便可实现对8组或8组以下的人员抢答. 它能根据不同的抢答输入信号,经过单片机的控制处理产生不同的对应输出信号,最后经过LED 数码管显示相应的路数,充分利用了单片机的优点。

1.2 设计任务及要求

(1)、设计任务

基于MCS-51系列单片机AT89C51,设计一个多功能八路抢答器 (2)、设计要求

1)抢答器同时供8名选手或8个代表比赛,分别用8个按钮K1~K8。 2)设置一个系统清除和抢答控制开关K9,该开关由主持人控制。 3)抢答器具有锁存功能与显示功能。即选手按动按钮,锁存相应的编号 并在优先抢答选手的编号一直保持到主持人将系统清除为止。 4)主持人按下抢答“开始”按钮,抢答开始。

5)当某一路抢答成功时,在数码管上显示成功信息和该路的号数; 6)当某一路抢答违规时,能在数码管上显示违规信息和该路的号数; 7)具有定时抢答发功能, 且一次抢答的时间由主持人设定(如5秒) 。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

8)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

9如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

2 总体方案设计

2.1 方案设计

方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便的完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作工序比较繁琐,使用不太方便。

方案二:采用89C51系列单片机作为控制核心。该系统可以完成运算控制、信号识别以及显示功能的实现。利用单片机程序判断选手按键是否有效,若无效,启动扬声器报警。选手若按正常的操作进行抢答,利用数码管显示电路实现倒计时显示时间。整个系统具有极其灵活的可编程性,能方便的对系统进行动能的扩张和更改。

2.2 方案设计论证与选择

相对于第一个方案:

方案二可靠性好:单片机按照工业控制要求设计,抵制工业噪声干扰优于一般的CPU 。

单片机有一般电脑所必须的器件,如三台双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。

控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳转指令。

所以我选择方案二。

2.3 总体框图设计

该系统以89C51单片机为核心,由晶振和复位电路、抢答器电路、时序控制电路、报警电路、LED 数码管显示器和驱动电路组成。复位电路、按键电路、数码管显示电路、报警电路这几部分电路组成。系统框图如图2-3所示。工作原理:接通电源后,主持人按下“清除”按钮,对系统进行复位和清零,抢答器处于禁止状态,数码管显示器显示设定时间;主持人按下“开始”按钮,抢答器开始工作,选手可进行抢答,在此过程中,抢答器完成优先判断、编号显示、扬声器提示。当一轮抢答之后,定时器停止,禁止二次抢答,显示器显示剩余时间。如果再次抢答,必须由主持人再次操作“清除”或者“开始”状态按钮。

图2-3

3 硬件设计

3.1 AT89C51单片机

AT89C51作为抢答电路系统的核心器件。如图3-1所示,该器件是INTEL 公司生产的MCS -51系列单片机的基础产品,采用了可靠的CMOS 工艺制造技术,具有高性能的8位单片机,属于标准的MCS -51的CMOS 产品。不仅结合了HMOS 的高速和高密度技术及HMOS 的低功耗特征,而且继承和扩展了MCS -48单片机的体系结构和指令系统。

图3-1

①AT89C51单片机的主要特征:

A 、与MCS -51兼容,4K 字节可编程闪烁存储器; b 、灵活的在线系统编程,掉电标识和快速编程特性; c 、寿命为1000次写/擦周期,数据保留时间可10年以上; d 、全静态工作模式:0HZ~33HZ;

e 、三级程序存储器锁定;f128×8位内部RAM ,32位可编I/O线; g 、两个16位定时器/计数器,5个中断源,4个8位并行的I/O接口,1个

全双工I/O接口。

h 、有位寻址功能、适于布尔处理的位处理机。 ②单片机与报警电路

系统中的报警电路是由发光二极管和限电流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接线方法与P2端口相同,不同的是Flash 编程和程序校验,P1接收低8位地址数据。 ③程序存储器

本系统的所需的没有必要外扩程序存储器,所以不用考虑存储器扩充容量的大小,单片机本身的存储器就已足够。 ④数据存储器

根据系统的功能要求,不需扩展外部RAM ,89C51本身的RAM 就能满足要求。 ⑤I/O接口芯片

根据系统的功能要求,I/O接口芯片的也不需进行扩展。 ⑥总线驱动能力

MCS-51系列单片机的外部扩展功能很强,但4个8位并行的带负载的能力是有限的。P0口能驱动8个TTL 电路,P1~P3口只能驱动3个TTL 电路。在实际运用中,这些端口的负载不应超过总负载能力的70%,以保证留有一定的余量,以增强系统的抗干扰能力,在外接负载较多的情况下,应采用总线驱动电路,以提高端口的驱动能力和抗干扰能力

3.2 按键电路

键盘是人与微机系统打交道的主要设备。按键电路如图3-2所示。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。该电路完成两个功能:一是分辨出选手按键的先后,并锁存抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键,即使其他选手操作无效。抢答器具有锁存、定时、显示和报警功能。

时序控制电路是抢答器设计的关键,它要完成的功能是:一、主持人按动“开

始”按键K8时,抢答电路和定时电路进入正常抢答状态。二、当主持人未按动“开始”按键,但有参赛选手按动抢答键时,蜂鸣器声响,抢答电路和定时电路停止工作。

图3-2

3.3 复位电路

复位是计算机的一个重要工作状态。如图3-3所示,在单片机工作时,接电之前要复位,断电后也要复位,在抢答器中复位则为定时做铺垫的,在抢答之前要复位,抢答完毕后也要复位,按了复位键之后,LED 的显示全为00,当引脚RST 端保持两个机器周期以上的高电平,AT89C51可以进入复位状态。

图3-3

3.4 报警电路

报警电路具有报警功能,如图3-4所示,如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示为00,并发出一段时间的报警声

图3-4

3.5 LED数码显示器和驱动电路

本设计所用的显示器为7段共阴极接法LED 显示器,如图3-5所示,当某一发光二极管的阳极输入高电平时,则该段发光。利用P0口做段选码口输出,P2口的1\3\4三位做位选码输出.

图3-5

3.6 总设计电路图

图3-6

4、软件设计

4.1程序流程图

在本设计中包括了以下八个主要的程序:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。主流程图如图所示:

图4-1

图4-2

4-3

5 调试

5.1准备开始:

图5-1

5.2 二号选手抢答成功:

图5-2

5.3四号选手抢答成功:

图5-3

5.4抢答时间到,无人抢答:

5-4

5.5抢答犯规:

图5-5

6.总结

开始选择课程设计题目是,看见这个题目觉得挺好弄得,但是想的总是美好的。这次课程设计的仿真工具是从来没有使用过,是在老师和同学的指导下学会的,结合单片机设计电路更是从来没有接触过,但是没有办法,所以通过上网或去图书馆查阅资料了解了一些,经过两个星期的设计,从开始的什么都不会,慢慢的自己会更改电路,会仿真,导入程序后会自己进行一些修改。虽然不是很系统的学习这些,但是基本的操作已经了解了。通过这次课程设计,我们意识到,要想设计出好的电路,必须清楚明白的知道题目所要表达的意思,并且要了解各种元器件的用途,这次设计综合了我们所学习过的知识,也对这些知道进行了一定的扩展了解,这些对我们是很有帮助的。

参考文献:

[1] 张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3] 阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006 [4]夏路易,石宗义。电路原理图与电路板设计教程Protel 99se. 北京:北京希望电子出版社,2002

[5]康华光。模拟电路技术基础(第五版)。北京:高等教育出版社,2

附录

附录一程序代码:

OK EQU 25H ;抢答开始标志位 RING EQU 27H ;响铃标志位

DATA0 EQU 40H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT

MAIN: MOV R1,#5 ;初设抢答时间为5s MOV R2,#5 ;初设答题时间为5s MOV TMOD,#10H ;设置未定时器方式2 MOV TH0,#0ECH

MOV TL0,#0FFH ;越高发声频率越高, 越尖 MOV TH1,#3CH

MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0

SETB ET1 ;允二个中断,T0/T1 CLR OK CLR RING SETB TR1

SETB TR0

;=====查询程序=====

START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH

ACALL DISPLAY ;未开始抢答时候显示P00 JB P3.0,NEXT ACALL DELAY

JB P3.0,NEXT ;抖动, 如果" 开始键" 按下就向下执行, 否者跳到非法抢答查询 ACALL BARK MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位, 用于COUNT 只程序中判断是否查询抢答

MOV R3,#0AH ;抢答只显示计时, 灭号数

AJMP COUNT ;进入倒计时程序," 查询有效抢答的程序" 在COUNT 里面

NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,TZ1 JNB P1.7,TZ2 AJMP START TZ1: JMP FALSE7 TZ2: JMP FALSE8

;=====非法抢答处理程序=====

FALSE1: ACALL BARK ;按键发声 MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR FALSE7: ACALL BARK MOV R3,#07H AJMP ERROR FALSE8: ACALL BARK MOV R3,#08H AJMP ERROR

;=====倒计时程序(抢答倒计时和回答倒计时都跳到该程序)=====

COUNT: MOV R0,#00H ;重置定时器中断次数

MOV TH1,#3CH

MOV TL1,#0B0H ;重置定时器

RECOUNT: MOV A,R6 ;R6保存了倒计时的时间, 之前先将抢答时间或回答时间给R6

MOV B,#0AH

DIV AB ;除十分出个位/十位

MOV 30H,A ;十位存于(30H)

MOV 31H,B ;个位存于(31H)

MOV R5,30H ;取十位

MOV R4,31H ;取个位

MOV A,R6

SUBB A,#07H

JNC LARGER ;大于5s 跳到LARGER, 小于等于5s 会提醒

MOV A,R0

CJNE A,#0AH,FULL ;1s中0.5s 向下运行

CLR RING

AJMP CHECK

FULL: CJNE A,#14H,CHECK ;下面是1s 的情况, 响并显示号数并清R0, 重新计时

SETB RING

MOV A,R6

JZ QUIT ;计时完毕

MOV R0,#00H

DEC R6 ;一秒标志减1

AJMP CHECK

LARGER: MOV A,R0

CJNE A,#14H,CHECK ;如果1s 向下运行, 否者跳到查" 停/显示"

DEC R6 ;计时一秒R6自动减1

MOV R0,#00H

CHECK: JNB P3.1,QUIT ;如按下停止键退出

ACALL DISPLAY

JB OK,ACCOUT ;如果是抢答倒计时, 如是则查询抢答, 否者跳过查询继续倒数(这里起到锁抢答作用)

AJMP RECOUNT

ACCOUT: MOV A,DATA0

JNB P1.0,TRUE1

JNB P1.1,TRUE2

JNB P1.2,TRUE3

JNB P1.3,TRUE4

JNB P1.4,TRUE5

JNB P1.5,TRUE6

JNB P1.7,TZ4

AJMP RECOUNT

TZ3: JMP TRUE7

TZ4: JMP TRUE8

QUIT: CLR OK ;如果按下了" 停止键" 执行的程序 CLR RING

AJMP START

;=====正常抢答处理程序=====

TRUE1: ACALL BARK

MOV A,R2

MOV R6,A ;

MOV R3,#01H

CLR OK ;

以就锁了抢答, 回答倒计时开始.

AJMP COUNT

TRUE2:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#02H

CLR OK

AJMP COUNT

TRUE3:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#03H

CLR OK

AJMP COUNT

TRUE4:ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#04H

CLR OK

AJMP COUNT

TRUE5: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#05H

CLR OK

AJMP COUNT

TRUE6: ACALL BARK

MOV A,R2

MOV R6,A 回答时间R2送R6 因为答题的计时不再查询抢答, 所

CLR OK

AJMP COUNT

TRUE7: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#07H

CLR OK

AJMP COUNT

TRUE8: ACALL BARK

MOV A,R2

MOV R6,A

MOV R3,#08H

CLR OK

AJMP COUNT

;=====犯规抢答程序=====

ERROR: MOV R0,#00H

MOV TH1,#3CH

MOV TL1,#0B0H

MOV 34H,R3 ;

HERE: MOV A,R0

CJNE A,#0AH,FLASH ;0.5s

CLR RING

MOV R3,#0AH

MOV R4,#0AH

MOV R5,#0AH ;

AJMP CHECK1

FLASH: CJNE A,#14H,CHECK1 ;

清R0, 重新计

SETB RING

MOV R0,#00H

MOV R3,34H ;

MOV R5,#0BH

MOV R4,#0BH ;

AJMP CHECK1

CHECK1: JNB P3.1,QUIT1

ACALL DISPLAY

AJMP HERE

QUIT1: CLR RING

CLR OK

AJMP START

;=====显示程序===== 犯规号数暂存与(34H) 向下运行->灭并停响 三灯全灭 下面是1s 的情况, 响并显示号数并取回号数 显示00和号数

DISPLAY: MOV DPTR,#DAT1 ;查表显示程序, 利用P0口做段选码口输出/P2口的1\3\4三位做位选码输出.

MOV A,R3

MOVC A,@A+DPTR

MOV P2,#0feH

MOV P0,A

ACALL DELAY

MOV DPTR,#DAT2

MOV A,R5

MOVC A,@A+DPTR

MOV P2,#0fdH

MOV P0,A

ACALL DELAY

MOV A,R4

MOVC A,@A+DPTR

MOV P2,#0fbH

MOV P0,A

ACALL DELAY

RET

DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,73H ;"灭

","1","2","3","4","5","6","7","8","9"," 灭","P"

DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,3fH

;第一个为零, 最后一个为零, 其他与上相同, 因为十位如果为零显示熄灭

;=====延时(显示和去抖动用到)=====

DELAY: MOV 32H,#12H

LOOP: MOV 33H,#0AFH

LOOP1: DJNZ 33H,LOOP1

DJNZ 32H,LOOP

RET

;=====发声程序=====

BARK: SETB RING

ACALL DISPLAY

ACALL DISPLAY

CLR RING ;按键发声

RET

;=====TO溢出中断(响铃程序)=====

T0INT: MOV TH0,#0ECH

MOV TL0,#0FFH

JNB RING,OUT;

CPL P3.6 ;RING标志位为1时候P3.6口不断取反使喇叭发出一定频率的声音

OUT: RETI

;=====T1溢出中断(计时程序)=====

T1INT: MOV TH1,#3CH

MOV TL1,#0B0H

INC R0

RETI

;========INTT0中断服务程序============

INTT0:MOV DATA0,P1

CLR EX0

RETI

END


相关内容

  • 基于80C51单片机的八路抢答器设计
  • 专业论文 题目:基于80C51单片机的八路抢答器设 计 摘要:八路智力抢答器是一个可供八个参赛组进行智力竞赛的电路装置,该 装置主要是由单片机最小系统.控制电路(八个选手抢答按钮:三个主持人 控制按钮:四个修改按钮).数码显示电路与蜂鸣器电路组成的.单片机 (MCU )是目前在电气控制技术中广泛应用 ...

  • 单片机多路抢答器
  • 基于单片机的多路抢答器 1引言 此次设计提出了用AT89C51单片机为核心控制元件,设计一个简易的抢答器,本方案以AT89C51单片机作为主控核心,与晶振.数码管.蜂鸣器等构成八路抢答器,利用了单片机的延时电路.按键复位电路.时钟电路.定时/中断等电路,设计的八路抢答器具有实时显示抢答选手的号码和抢 ...

  • 单片机八路抢答器课程设计
  • 编号: 单片机课程设计报告 题 目:八路抢答器设计制作 院 (系): 电子工程系 专 业: 电子信息工程技术 学生姓名: 学 号: 指导教师单位: 姓 名: 题目类型:理论研究 实验研究 工程设计 工程技术研究 软件开发 2010年7月3日 课程设计( 论 文 )评 语 摘 要 随着社会的 ...

  • 毕业论文数显抢答器(八路)
  • 基于单片机的智能抢答器系统 摘要: 电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务.如果在抢答中,靠视觉是很难判断出哪组先答题.利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题.本设计使用STC8 ...

  • 基于51单片机抢答器毕业设计
  • 基于AT89C51的八路抢答器 摘 要 抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合.但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低.作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影 ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...

  • 电气自动化毕业设计论文题目
  • 电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机 ...