1、 毕业设计说明书 基于单片机的16路抢答器设计 专 业 机电一体化技术 班 级 姓 名 指导教师 一、 主要元器件及设计方案选择 1. 单片机选型 本设计单片机选用AT89C51, AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器; 2. 按键方案选择 方案一:独立式按键。如果设置过多按键,将会占用较多 I/O 口,而且会给布线带来不便,因此,此方案适用于按键较少的
2、情况。 方案二:矩阵式键盘。此方案适用于按键较多的情况,但程序较为复杂。很显然,本系统中需要16个按键用于抢答,因此,可以采用4×4 矩阵式键盘。固该设计选用方案二。 二、 系统硬件设计 1. 系统整体结构 系统其整体结构如图1所示。 复位电路 按键模块 单 片 机 显示电路 蜂鸣器 图1 系统整体框图 2. 晶振复位及开始抢答电路 晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按
3、下复位开关后进行下一题的准备。电路如图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 显示及
4、驱动电路 5. 蜂鸣器电路 当主持人按下开始抢答按钮、选手违规抢答、选手抢答成功等情况时,蜂鸣器都发出声响提示。蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。提供蜂鸣器发声所需要较高的电流,单片机的I/O口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流,其电路如图5所示。 图5 蜂鸣器音频输出电路图 三、 系统软件设计 1. 系统主流程 开 始 初始化 读键盘是否有键按下 调用显示抢答违规并报警子程序 中断条件是否满足 进入中断程序 N N Y Y 图6
5、系统主流程图 2. 抢答控制流程图 N Y 开中断并响声提示 设定定时器初值并启动定时器 10秒抢答倒计时开始显示 调用读键子程序作为延时程序 是否有按键按下 10到时中断并返回 调用抢答者获得回答的子程序 图7 系统程序流程图 3. 显示抢答违规流程图 开始 报警提示两次 显示违者编号 图8 显示抢答违规流程图 4. 抢答成功控制流程图 开始 响声提示 设定定时器初值并启动 显示抢答者且3秒后20秒倒计时 20秒回答问题时间到并响声提示 RET 图8 抢答成功控制流程
6、图 图纸与程序 一、系统整体电路 基于单片机的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
7、 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
8、 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:
9、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
10、 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
11、 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
12、 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 ;抢答违规报警并显示抢答违规组号 M
13、OV 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 ;正常
14、抢答读键 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
15、 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
16、 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 W
17、18: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
18、 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
19、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
20、 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






