资源描述
毕业设计说明书
基于单片机的16路抢答器设计
专 业 机电一体化技术
班 级
姓 名
指导教师
一、 主要元器件及设计方案选择
1. 单片机选型
本设计单片机选用AT89C51, AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器;
2. 按键方案选择
方案一:独立式按键。如果设置过多按键,将会占用较多 I/O 口,而且会给布线带来不便,因此,此方案适用于按键较少的情况。
方案二:矩阵式键盘。此方案适用于按键较多的情况,但程序较为复杂。很显然,本系统中需要16个按键用于抢答,因此,可以采用4×4 矩阵式键盘。固该设计选用方案二。
二、 系统硬件设计
1. 系统整体结构
系统其整体结构如图1所示。
复位电路
按键模块
单
片
机
显示电路
蜂鸣器
图1 系统整体框图
2. 晶振复位及开始抢答电路
晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。电路如图2所示。
图2 复位及开始抢答电路
3. 矩阵式键盘
89C51的P1口做一个4×4的行列式键盘做为选手的抢答按键。P1.0至P1.3轮流输出低电平在软件查询P1.4至P1.7的电平变化来输入组号。给每一个选手编号1至16,当选手按下按钮时,电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号,抢答电路如图3所示。
图3 选手抢答电路
4. 显示电路
本次设计电路包括显示和驱动,显示采用数码管,驱动用三极管PNP。数码管的显示可以分为两种:静态显示和动态显示。数码管采用动态显示,电路如图4所示。
图4 显示及驱动电路
5. 蜂鸣器电路
当主持人按下开始抢答按钮、选手违规抢答、选手抢答成功等情况时,蜂鸣器都发出声响提示。蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。提供蜂鸣器发声所需要较高的电流,单片机的I/O口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流,其电路如图5所示。
图5 蜂鸣器音频输出电路图
三、 系统软件设计
1. 系统主流程
开 始
初始化
读键盘是否有键按下
调用显示抢答违规并报警子程序
中断条件是否满足
进入中断程序
N
N
Y
Y
图6 系统主流程图
2. 抢答控制流程图
N
Y
开中断并响声提示
设定定时器初值并启动定时器
10秒抢答倒计时开始显示
调用读键子程序作为延时程序
是否有按键按下
10到时中断并返回
调用抢答者获得回答的子程序
图7 系统程序流程图
3. 显示抢答违规流程图
开始
报警提示两次
显示违者编号
图8 显示抢答违规流程图
4. 抢答成功控制流程图
开始
响声提示
设定定时器初值并启动
显示抢答者且3秒后20秒倒计时
20秒回答问题时间到并响声提示
RET
图8 抢答成功控制流程图
图纸与程序
一、系统整体电路
基于单片机的16路抢答器电路图
二、系统控制程序
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP ESS1
ORG 0100H
MAIN:SETB EA
SETB EX1 SETB IT1 ;外部中断1初始化
L16:MOV P1,#0FFH
MOV R2,#00H
CLR P1.0
INC R2
JB P1.4,L0
LCALL DE0
L0:INC R2
JB P1.5,L1
LCALL DE0
L1:INC R2
JB P1.6,L2
LCALL DE0
L2:INC R2
JB P1.7,L3
LCALL DE0
L3:SETB P1.0
CLR P1.1
INC R2
JB P1.4,L4
LCALL DE0
L4:INC R2
JB P1.5,L5
LCALL DE0
L5:INC R2
JB P1.6,L6
LCALL DE0
L6:INC R2
JB P1.7,L7
LCALL DE0
L7:SETB P1.1
CLR P1.2
INC R2
JB P1.4,L8
LCALL DE0
L8:INC R2
JB P1.5,L9
LCALL DE0
L9:INC R2
JB P1.6,L10
LCALL DE0
L10:INC R2
JB P1.7,L11
LCALL DE0
L11:SETB P1.2
CLR P1.3
INC R2
JB P1.4,L12
LCALL DE0
L12:INC R2
JB P1.5,L13
LCALL DE0
L13:INC R2
JB P1.6,L14
LCALL DE0
L14:INC R2
JB P1.7,L15
LCALL DE0
L15:LJMP L16 ;读行列式键盘
ESS1:MOV 70H,#30D ;外部中断1
MOV R7,#0CH
CLR P3.0
S2:LCALL DELAY
DJNZ 70H,S2
SETB P3.0 ;蜂鸣器提示开始抢答
MOV TMOD,#00010000B
MOV R3,#0AH
L20:MOV 55H,#14H
L19:MOV TH0,#3CH
MOV TL0,#0B0H ;定时器1初始化
SETB TR1 ;启动定时器1
MOV A,R3
MOV B,#0AH
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 53H,A
LCALL DELAY1
SETB P2.4
MOV A,B
MOVC A,@A+DPTR
MOV 54H,A
CLR P2.5
MOVC A,@A+DPTR
MOV 54H,A
CLR P2.5
MOV P0,54H
LCALL DELAY1
SETB P2.5
L18:JNB TF1,L18
D6:CJNE R3,#0FFH,L21
LJMP L22
L21:LJMP L20 ;抢答倒计时
L22:MOV 73H,#02D
S5:MOV 70H,#20D
MOV 71H,#20H
CLR P3.0
S4:LCALL DELAY
DJNZ 70H,S4
SETB P3.0
S6:LCALL DELAY
DJNZ 71H,S6
DJNZ 73H,S5 ;抢答倒计时时间到声音提示
D5:RETI
DE0:MOV DPTR,#TAB ;抢答违规报警并显示抢答违规组号
MOV A,R2
MOV B,#0A
S10:MOV 72H,#20D
MOV 73H,#10D
CLR P3.0
S8:LCALL LCC
DJNZ 72H,S8
SETB P3.0
S9:LCALL LCC
DJNZ 73H,S9
DJNZ 71H,S10
L17:LCALL LCC
LJMP L17
LCC:CLR P2.4
MOV P0,50H
LCALL DELAY
DELAY1:MOV P1,#0FFH ;正常抢答读键
W0:INC R2
JB P1.5,W1
LCALL DE1
W1:INC R2
JB P1.6,W2
LCALL DE1
W2:INC R2
JB P1.7,W3
LCALL DE1
W3:SETB P1.0
CLR P1.1
INC R2
JB P1.4,W4
LCALL DE1
W4:INC R2
JB P1.5,W5
LCALL DE1
W5:INC R2
JB P1.6,W6
LCALL DE1
W6:INC R2
JB P1.7,W7
LCALL DE1
W7:SETB P1.1
CLR P1.2
INC R2
JB P1.4,W8
LCALL DE1
W8:INC R2
JB P1.5,W9
LCALL DE1
W9:INC R2
JB P1.6,W10
LCALL DE1
W10:INC R2
JB P1.7,W11
LCALL DE1
W11:SETB P1.2
CLR P1.3
INC R2
JB P1.4,W12
LCALL DE1
W12:INC R2
JB P1.5,W13
LCALL DE1
W13:INC R2
JB P1.6,W14
LCALL DE1
W14:INC R2
JB P1.7,W15
LCALL DE1
W15:DJNZ R4,W16
LJMP W18
W16:LJMP W17
W18:RET
DE1:MOV P1,#0FFH ;抢答成功声音提示及回答问题时间20秒倒计时
MOV 70H,#20D
CLR P3.0
S3:LCALL DELAY
DJNZ 70H,S3
SETB P3.0
SETB P2.0
SETB P2.1
MOV DPTR,#TAB
MOV A,R2
MOV A,B
MOVC A,@A+DPTR
MOV 57H,A
MOV TMOD,#00000001B
MOV R5,#16H
L32:MOV R6,#14H
L31:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
CLR P2.4
MOV P0,56H
LCALL DELAY
SETB P2.4
CLR P2.5
MOV P0,57H
LCALL DELAY
SETB P2.5
CJNE R5,#14H,L34
LJMP L35
L34: JC L35
LJMP L30
L35: MOV A,R5
MOV B,#0AH
DIV AB
MOVC A,@A+DPTR
MOV 58H,A
MOV A,B
MOVC A,@A+DPTR
MOV 59H,A
CLR P2.6
MOV P0,58H
LCALL DELAY
SETB P2.6
CLR P2.7
MOV P0,59H
LCALL DELAY
SETB P2.7
L30:JNB TF0,L30
CLR TF0
DJNZ R6,L31
DEC R5
CJNE R5,#0FFH,L32
MOV P1,#0FFH
MOV 70H,#50D
CLR P3.0
S7:LCALL DELAY
DJNZ 70H,S7
SETB P3.0
MOV P2,#0FFH
MOV R3,#00H
MOV R7,#00H
RET
DELAY:MOV 51H,#10D ;延时子程序
D0:MOV 52H,#248D
D1:DJNZ 52H,D1
DJNZ 51H,D0
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
展开阅读全文