范文一:多路智能抢答器课程设计
辽宁工程技术大学电子技术课程设计
1. 设计详细任务与要求
1.1基本功能
1.可同时让4名选手参赛,他们的编号分别是0、1、2、3,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S 0, S 1, S 2, S 3。
2.节目主持人设置一个控制开关,用来控制系统的清零和抢答的开始。 3.数字抢答器应具有数码锁存,显示功能。抢答开始后,若有选手按动抢
答按钮,编号立即锁存,并在LED 数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。
1.2扩展功能
1.定时抢答功能。抢答器定时为10s ,启动起始键后,定时器开始工作,立即减计,并在显示器上显示出来,同时扬声器要短暂报警。
2.参赛选手在设定的时间内抢答(10s ),抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
3.当定时抢答的时间已到,还没有选手抢答进,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。
1
2方案设计与论证
方案一:
1)10秒定时器:可由一片74LS161来实现。当74LS161输出为1111时通
过与非门将脉冲信号截止,显示器停留在10上。
2)抢答器部分:由4位选手的开关及自己根据实际情况用与非门连接成的简单译码器,输出接七段译码器,七段译码器接数字显示器。抢答成功的选手对应的灯亮且数字显示其编号。
3)时基脉冲选用实验室提供的信号发生器。
4)报警部分:当计时器计到10时,输出一个高电平使二极管发光且发出报警声。
方案二:
1)10秒定时器:可由两片74LS192构成。当第一片为零即输出1111时通
过74LS20将脉冲信号截止,使其显示为00。
2)抢答器部分:由一74LS148优先编码器实现抢答功能,用74LS279将选手代码锁存直到主持人清零为止,然后用7段译码器显示选手代码。 3)脉冲产生电路可由一74LS121来产生,提供给定时电路及声响电路。 4)报警部分:由一NE555定时器来控制,当倒计时为零时产生报警声响。
经过分析及研究我决定用第二种方案,因为它对我们比较实际,大部分元器件我们已经学过,而且原理较简单,现在应用到设计中来提高我们对这些元件的记忆,加深对他们的了解,为以后的设计提供了较好的应用。
辽宁工程技术大学电子技术课程设计
3设计方案简述
定时抢答的总体框图如图所示,它由主体电路和扩展电路两部分组成。主体电路完成基本的抢答功能,扩展电路完成定时抢答的功能。
系统框图
抢答器的组成框图
如图所示的定时抢答器的工作过程是:接通电源时,节目主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时显示器上显示设定的时间,当节目主持人宣布抢答题目后,说一声“抢答开始”,同时将控制开关拨到开始位置,扬声器给出声响提示,抢答器处于工作状态,定时器倒计时,当定时时间到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。当选手在定时时间内按动抢答按钮时,抢答器要完成以下四项工作:
① 优先编码电路立即分辨出抢答者的编号,并由锁存器进行锁存然后由译码显示电路显示编号;
② 扬声器发出短暂的声响,提醒节目主持人注意;
③ 控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答; ④ 控制电路要使定时器停止工作, 并保持到主持人将系统清零为止。抢答完毕时,主持人操作控制开关,使系统回复到禁止工作状态,以便下一轮抢答。
3
4. 单元电路的设计
4.1抢答电路的设计
抢答电路的功能有两个:一是能分辨出选手按按钮的先后,并锁存优先抢答器的编号,供译码显示电路用;二是要使其他选手的按按钮操作无效。选用优先编码器74LS148和RS 锁存器74LS279可以完成上述功能,其电路组成图如图所示。
该部分电路的工作原理是:当主持人控制开关处于“清除”位置时,RS 触发器的端为低电平,输出端(4Q~1Q)全部为低电平。于是74LS48的BI =0, 显示灯灭,74LS148的选通输入端ST =0,74LS48处于工作状态,此时锁存电路不工作。当主持人开关拨到“开始”位置时,优先编码器电路和锁存电路处于同时工作状态,即抢答器处于等待工作状态,等待输入端I 7..... I 0输入信号,当有选手将按钮按下时(如按下S5),74LS48的输出Y 2Y 1Y 0=010, Y EX =0, 经RS 锁存后,CTR=1,BI =1,74LS279处于工作状态,4Q3Q2Q=101,经74LS48译码后,显示器上显示出“5”,此外CTR=1,是74LS148的ST 端为高电平,74LS148处于禁止工作状态,封锁其他按钮的输入。当按下的按钮松开后,74LS148的Y EX =1, 但由于CTR 维持高电平不变,所以74LS148仍然处于禁止工作状态,其他按钮的输入信号不会被接收。这就保证了抢答者优先性以及抢答电路的准确性。当优先抢答者回答完问题后,主持人操作控制开关S ,使抢答电路复位,一遍进行下一轮的抢答。
辽宁工程技术大学电子技术课程设计
R9
Key = Space
J9
主持控制清Key = A J1A J2A J3A J4A 1.0kΩR1R2R3R4R5R6R7R8
4-1抢答电路
4.1.1 七段数码显示74LS48
为了能以十进制数码直观的显示数字系统的运行数据,目前广泛使用了七段字符显示器,或称七段数码管。这种字符显示器由七段可发光的线段拼合而成。它的功能简图和管脚引线图如下所示。
灯测试输入LT :当LT =0时,便可使被驱动数码管的七段同时点亮,以检查该数码管各段能否正常发光。设置灭灯输入RBI 的目的是为了不显示零灭灯。
5
灭灯输入/灭灯输出BI /RBO 具有双功能输入/输出,当BI /RBO 作为输入端时,称为灭灯输入端。只要加入灭灯控制信号BI =0,无论输入端是什么信号,定可将被驱动数码管的各段同时熄灭。当BI /RBO 作为输出端使用时称为灭灯输出端。
4-1-1显示器引脚图
二进制BCD 码译码管真值表如4-1-1表所示:
SR 触发器引脚图如下图所示:
辽宁工程技术大学电子技术课程设计
4-2-1 SR触发器
4.1.3 74LS148优先编码器功能
优先编码器即在同一时间内,当有多个输入信号进行请求编码时,只对优先级别高的信号进行编码的逻辑电路,称为优先编码器。常用的集成优先编码器有74LS148(8线-3线) 其原理和功能真值表4-1-3所示。
4-1-3优先编码器
优先编码器74LS148的真值表如4-1-3表所示:
7
由表不难看出在S =0电路正常工作状态下,允许输入当中同时有几个输入端为低电平,即有编码输入信号。IN 3的优先权最高,IN 0的优先权最低。当
IN 7=0时,无论其他输入端有无输入信号,输出给出IN 3的输出编码。即
Y 2Y 1Y 0=000, 当IN 3=1,IN 2=0,无论输入端输入什么信号只对IN 2编码,输出Y 2Y 1Y 0=001
4.2定时电路的设计
节目主持人根据抢答器题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,选用十进制同步加/减计数器74LS192进行设计,计数器的时钟脉冲由秒脉冲提供,
74LS192真值表如4-2表所示
74LS192具有下述功能:
4-2
① 异步清零:CR=1,Q 3Q 2Q 1Q 0=0000
② 异步置数:CR=0,LD =0,Q 3Q 2Q 1Q 0=D 3D 2D 1D 0 ③ 保持:CR=0,LD =1,CP U =CP D =1,Q 3Q 2Q 1Q 0保持原态
④ 加计数:CR=0,LD =1,CP U =CP,CP D =1,Q 3Q 2Q 1Q 0按加法规律计数。 ⑤ 减计数:CR=0,LD =1,CP U =1,CP D =CP,Q 3Q 2Q 1Q 0按减法规律计数。
辽宁工程技术大学电子技术课程设计
4-2可预置时间的定时电路
4.3 报警电路的设计
该电路由555定时器和三极管构成的报警电路,其中由555芯片构成多谐振
荡电路,其频率为
1 1.43 ≈ ﹙R1+2R2﹚C ㏑2 ﹙R1+2R2﹚C
555输出的信号经过三极管放大从而推动扬声器发声和报警两个电路。PR 为控制信号,当PR 为高电平时,多谐振荡起工作,反之,停振。
9
4-3报警电路
4.3.1 555定时器
引脚图4-3-1
GND (接地):地线(或共同接地),通常被连接到电路共同接地。
TRI (出发点):这个脚位是触发NE555使其启动它的时间周期。触发信号上缘电压须大于2/3Vcc ,下缘须低于1/3Vcc 。
OUT (输出):当时间周期开始555的输出输出脚位,移至比电源电压少1.7伏的高电位。周期的结束输出回到0伏左右的低电平。于高电位时的最大输出电流大约200mA 。RST (重置):一个低逻辑电位送至这个脚位时会重置定时器和使输出回到一个低点位。它通常被接到正电源或忽略不用。
CON (控制):这个接脚准许由外部电压改变触发和闸限电压。当计时器经营在稳定或震荡的运作方式下,这输入能用来改变或调整输出频率。
THR (重置锁定):重置锁定并使输出称低态。当这个接脚的电压从1/3Vcc 电压以下移至2/3Vcc 以上时启动这个动作。
DIS (放电):这个接脚和主要的输出接脚有相同的电流输出能力,当输出为ON 时为LOW ,对地为低阻抗,当输出为OFF 时为HIGH ,对地为高阻抗。 Vcc (V+):供应电压的范围是+4.5伏特(最小值)至+16伏特(最大值)。
辽宁工程技术大学电子技术课程设计 555定时器真值表如4-3-1表所示:
4-3-1
4.3.2 555构成的多谐振荡器
多谐振荡器是一种自激振荡器,在接通电源后,不需要电源后,不需要外加触发信号(即没有输入信号)。便能自动产生矩形脉冲,由于矩形脉冲中含有丰富的高次谐波分量,所以称为多谐振荡器。
先将555定时器接成施密特触发器,再把施密特触发器的反相输出端经RC 积分电路接回到它的输入端,就构成了多谐振荡器。
4-3-2 555多谐振荡器
11
电容电压Vc 与输出电压V o 的波形如上图所示。 充电时间:T1=﹙R1+R2)C ㏑2 放电时间:T2=R2C㏑2
振荡周期:T=T1+T2=(R1+2R2)C ㏑2 振荡频率:f=1/T
占空比:q=T1/T=(R1+R2)/(R1+2R2)
4.4时序控制电路设计
时序控制电路是抢答器的关键,它要完成以下三项任务:
① 主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态;
② 当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作;
③ 当设定的抢答时间到时,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作;
根据上面的功能要求,设计时序控制电路如下图所示。图中门G1的作用是控制时钟信号CP 的放行与禁止,门G2的作用是控制74LS148的输入使能端ST 。图(a )所示电路的工作原理:主持人控制开关从“清除”位置拨到“开始”位置时,来自于图1.1所示的74LS279输出的CTR=0,经G3反向后,A=1,则从555输出端来的时钟信号CP 能够加到74LS192的CP D 时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,来自于抢
辽宁工程技术大学电子技术课程设计
答电路所示74LS192的借位输出端BO 2 1, 门G2的输出ST =0,使74LS148处于正常
工作状态,从而实现功能1的要求。当选手在定时时间内按动按钮时,CTR=1,经G3反向,A=0,封锁CP 信号,定时器处于保持工作状态,同时,门G2的输出ST =1,74LS148处于禁止工作状态,从而实现功能2的要求。当定时时间到时,来自74LS192的封锁CP 信号,使定时电路保持00状态不变,从而实现功能3的要求,74LS121用于控制报警电路及发声时间。
4-4时序逻辑电路
4.5抢答器整体电路原理图(仿真)
13
4-5抢答器整体电路
辽宁工程技术大学电子技术课程设计
5 多路智能竞赛抢答器设计总结
经过了一个多星期的查阅资料及理论分析,终于完成了课程设计的仿真和论文完成了。经过这次课程设计,大大地提高了我的动手能力以及分析问题的能力,
从中也学到了很多书面上所没有高清楚的问题。
这次课程设计,让我学到了很多有用的知识和能力,这对以后的学习和工作都是非常有益的。
下面对本设计的思路进行总结:
① 数字抢答器有主体电路与扩展电路组成。
② 优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。
③ 通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。
④ 经过仿真,数字抢答器成形。
15
参考文献
⑴康华光. 电子技术基础数字部分. 高等教育出版社.2003年3月 ⑵康华光. 电子技术基础模拟部分. 高等教育出版社.2003年4月 ⑶阎石. 数字电子技术基础. 高等教育出版社.2003年
⑷马玉芳/朴忠学/张国军. 电子技术实验指导书. 电工电子技术实验中心. ⑸王彩君/杨睿. 数字电路实验. 国防工业出版社.2006年7月
范文二:多路抢答器课程设计报告
北 华 航 天 工 业 学 院
课程设计报告(论文)
设计课题: 多路抢答器 专业班级:学生姓名: 刘丽红 指导教师: 李宗睿 设计时间:
北华航天工业学院电子工程系
指导教师:李宗睿 教研室主任: 王俊红
2012年 5 月 18 日
注:本表下发学生一份,指导教师一份,栏目不够时请另附页。
课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。
内 容 摘 要
此次课程设计主要是应用实验室的试验箱完成两路抢答器的功能。主要
设置了三个按键,一个主持人按键、两个选手按键。程序开始执行之后主持人按下按键开始五秒倒计时,若无选手抢答则进行下一轮抢答。主持人继续按下按键,若在五秒倒计时抢答则抢答有效并显示选手号码。将程序复位在开始执行则依次重复进行。
索引关键词:抢答器
抢答有效
五秒倒计时
目 录
一 概 述 ………… ……………………………………………………1 二 方案设计与论证……………………………………………………………1 三 单元电路设计与参数计算…………………………………………………1 四 总原理图及元器件清单……………………………………………………3 五 安装与调试…………………………………………………………………4 (一般分静态调试与动态调试两大内容)
六 性能测试与分析……………………………………………………………4 (要围绕设计要求中的各项指标进行)
七 结论…………………………………………………………………………4 八 心得体会……………………………………………………………………5 九 参考文献……………………………………………………………………5 附录:程序
一、 概述
利用单片机实验室的试验箱完成多路抢答器。利用单片机实验箱上的开关作为抢答按键,设置一个抢答开始开关供主持人使用,当开始抢答后,显示器进行5s倒计时显示,如果时间到,抢答无效,在5s内,当某一路抢答后,显示器显示是哪一路完成抢答。
再设置一个按键,在每一题完成抢答后,按键触发下一题开始抢答。 但实际上利用试验箱并不能完全达到实验要求,所以有所改动。确定后,实验效果为:程序运行当主持人按下键后开始五秒倒计时,五秒内若无选手抢答,主持人再次按下键进行下一次抢答。若有人在五秒内抢答则强大有效。复位后在执行程序进行下一轮。
二、方案设计与论证
由于本次课题要求有一个主持人按键,两个选手按键。所以要开放三个外部中断,外部中断0和外部中断1。将主持人的按键设置为外部中断0,选手按键利用一个与门将外部中断1扩展为两个外部中断。五秒倒计时利用延时一秒和查表显示程序来解决。对于选手号码的显示利用右移寄存器的内容和查表显示来解决。
对于试验箱上的电路连接主要是数码管位选的连接以及外部中断引脚P3.2和P3.3。主持人的按键和P3.2连接,两个选手的按键经一个与门再和P3.3连接。数码管旁边的CS口和单片机的片选口CS0连接。
三、单元电路设计与参数计算 1、 单片机电路部分
2、数码管显示部分
因为实验箱的片选口是CS0口,所以位选码地址为8002H,是十六进制数,转化为二进制数为1000 0000 0000 0010,因此选择P2.7与P0.1口,段选码地址为8004H,也是十六进制数,转化为二进制数为1000 0000 0000 0100,因此选择P2.7与P0.2口。通过与非门,使LS473正常工作。
四、总原理图及元器件清单 1.总原理图
2.元件清单
五、安装与调试
首先将程序输入计算机的WAVE6000软件中,进行调试后改正没有语法错误后将试验箱与计算机连接后,编译运行,进而查看实验结果如何。
六、性能测试与分析
刚开始运行,发现只能进行五秒倒计时,而且主持人的按键不起作用。则检查程序,发现中断的初始化设置的有问题,改正后再次编译运行,又发现不能显示选手的号码。再次检查程序发现,选手号码显示的程序中指针没有指向表格首地址,所以查不到选手的号码,则无法显示。改正后编译运行试验目的达到。
七、 结论
经过调试与改正后,基本能达到题目要求。即:程序开始执行之后主持人按下按键开始五秒倒计时,若无选手抢答则进行下一轮抢答。主持人继续按下按键,若在五秒倒计时抢答则抢答有效,并显示选手号码。将程序复位在开始执行则依次重复进行。
八、 心得体会
通过这次单片机课设让我对单片机加深了了解,同时对基础知识的运用和程序的编写得到了巩固。虽然课设过程中有很多困难,但经老师指导后问题得以解决。因此过程中也学到了很多课本上没有的知识。
九、参考文献
[1] 胡宴如.高频电子线路[M].高教出版社. 2001.9:12-19
[2] 卢屹 数字锁相环的参数设计及其应用[J] 通信技术2001,(9):12-15
附录:程序清单
ORG 000H
JMP BEGIN ORG 0003H AJMP LOOP3 ORG 0013H AJMP LOOP
MOVX @DPTR,A MOV A,#00000001B MOV DPTR,#8002H MOVX @DPTR,A ;MOV SBUF,8000H LCALL DELAY TABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH DELAY: MOV R1,#5 LOOP1: MOV R2,#200 LOOP2: MOV R3,#250 DJNZ R3,$ DJNZ R2,LOOP2 DJNZ R1,LOOP1 RET
BEGIN: MOV A,#00000000B MOV DPTR,#8002H MOVX @DPTR,A MOV SP,#70H MOV TCON,#0FH CLR IE0 CLR IE1 MOV IE,#85H SETB PX0 SJMP $ LOOP: MOV R4,#5 MOV A,#00000000B MOV DPTR,#8002H MOVX @DPTR,A DJS: MOV A,R4 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#8004H
DJNZ R4,DJS MOV A,R4 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A MOV A,#00000001B MOV DPTR,#8002H MOVX @DPTR,A LCALL DELAY RETI
LOOP3: MOV A,#00000000B MOV DPTR,#8002H MOVX @DPTR,A MOV A,P1 CPL A JZ LOOP3 MOV R4,#0 LOOP4: RRC A INC R4 JNC LOOP4 CLR A MOV A,R4 mov dptr,#TABLE MOVC A,@A+DPTR MOV DPTR,#8004H MOVX @DPTR,A
;MOV SBUF,8000H MOV A,#00000001B MOV DPTR,#8002H MOVX @DPTR,A LCALL DELAY LCALL DELAY LCALL DELAY
MOV A,#00000000B
MOV DPTR,#8002H MOVX @DPTR,A MOV SP,#70H
MOV TCON,#0FH CLR IE0 CLR IE1 MOV IE,#85H SETB PX0 MOV R4,#00H CLR IE0 MOV SP,#70H AJMP BEGIN RETI
7
电子工程系 单片机 课程设计成绩评定表
专业: 电气信息类 班级: B10201 学号: 19 姓名: 刘丽红
年 月 日
8
范文三:多路抢答器课程设计报告
课 程 设 计 说 明 书
题目: 多路抢答器设计
二级学院
年级专业
学 号 学生姓名
指导教师
教师职称 机械工程学院 14级机械设计制造及其自动化 1401210012 曾骏 洪云 讲师
目录
摘要························································1
一、绪论························································1
1、单片机抢答器的背景·······································1
2、单片机的应用·············································2
3、抢答器的应用·············································3
二、方案设计····················································4
1、总方案设计···············································4
2、基本功能·················································4
3、扩展功能·················································5
三、硬件电路设计···············································6
1、单片机的选择·············································6
2、各模块设计···············································7
2.1、单片机最小系统········································7
2.2、抢答按键电路··········································8
2.3、显示器电路············································8
2.4、蜂鸣器音频输出电路····································9
四、软件设计··················································10
1、程序设计················································10
2、主程序设计··············································11
五、心得体会····················································12 附录
1.程序清单·················································13
2.硬件图···················································23
六、参考文献····················································24
摘要
此次设计使用AT89C51单片机为核心控制元件,设计一个简易的抢答器,与数码管、报警器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断电路等。设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,而复位电路,则使其能再开始新的一轮答题和比赛,与此同时还利用汇编语言编程,使其能够实现一些基本的功能。
本次设计系统实用性强、判断精确、操作简单、扩展功能强等。它的功能实现是比赛开始,主持人读完题之后按下总开关,则计时开始,此时数码管开始进行1s的减计时,直到有一个选手按下抢答按钮,这时对应的数码管上会显示出该选手的编号和抢答所用的时间,同时该选手的报警器也会发出声音,来提示有人抢答本题。如果在规定的30s时间内没有选手做出抢答,则此题作废,即开始重新一轮的抢答。
关键词:单片机、抢答器、数码管、报警器
一、 绪论
1、单片机抢答器的背景
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。单片机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人脑的作用,要是它出了毛病,那么整个装置就将瘫痪。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词--“智能型”。如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。
2、单片机的应用
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1.在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,
无线电对讲机等。
5.单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
3、抢答器的应用
随着我国经济和文化事业的发展,在很多的公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。抢答器又称为第一信号鉴别器,因此能广泛应用于各种知识竞赛、文艺活动等场合。
二、方案设计
1、总方案设计
抢答器的工作原理是采用单片机最小系统(时钟电路、复位电路),用查询式键盘进行抢答。采用动态显示组号。主持人按下开始抢答键后选手才可以开始抢答。若主持人没有按下开始抢答按纽(P3.0),而有选手抢答则为抢答违规,此时报警器响起并显示此选手的组号,需要主持人按下开始抢答开关重新抢答。在主持人按下开始抢答按纽(P3.0),蜂鸣响声提示,且数码管进行30秒倒计时(30秒内抢答有效),有选手在30秒抢答,蜂鸣器响声提示并显示他的组号,同时开始60秒倒计时(60秒内必须回答完问题),60秒后主持人按下复位开关 为下一题的抢答做准备;若此30秒内没有选手抢答,则此次抢答作废,由主持人按下复位开关进行下一轮重新抢答。此次设计包括单片机最小系统、抢答按键 模块(8个按键)、显示模块、抢答开关模块、蜂鸣器音频输出模块。如下图所示为总体方框图。
2本功
能 (1)、设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别为0、1、2、3、4、5、6、7,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别为S0-S7。
(2)、给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
(3)、抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管行显示出选手的编号,扬声器给出音响提
示,同时封锁输入电路,禁止其他选手抢答。优先抢答的选手的编号一直保持到主持人将系统清零为止。
(4)、如果主持人未按"抢答开始"键,而有人按了抢答按键,此为犯规抢答,LED上不断闪烁FF和犯规报警器并响个不停,直到主持人按下"停止" 键为止。
3、扩展功能
(1)、抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(比如30s)。当节目主持人按下“开始”键后,要求定时器立即减计时,并用显示器显示,同时扬声器发出短暂的声响,声响持续时间0.5s左右。
(2)、参赛选手在设定的时间内抢答,抢答有效,定时显示器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
(3)、如果定时器抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答。
(4)、P3.0为开始抢答,P3.1为停止,p1.0-p1.7为八路抢答输入, 数码管段选P0口,位选P2口低3位,蜂鸣器输出为P3.6口。P3.2抢答时间调整,P3.3回答时间调整,P3.4为时间加1调整,P3.5为时间减1调整。
三、硬件电路设计
1、单片机的选择
单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。
它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出适配器简单,功能较低。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的ROM,并且ROM可以直接用编程器来擦写,使用起来比较方便。本设计使用到的元器件包括:AT89C51芯片、数码LED显示器、七段LED数码管的译码。其中AT89C51是系统的核心,它主要负责控制各个部分的协调工作。在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,P1.0-P1.7为抢答输入键接口,数码管段选P0口,位选P2口,蜂鸣器输出为P3.6口。
本课题在选取单片机时,根据课本上的单片机知识,并且充分借鉴了许多成 形产品使用单片机的经验,结合自己的实际情况,选择了Intel公司的89C51单片机。单片机的引脚排列图如图2所示:
图2 AT89C51单片机引脚排列
各条引脚说明如下:
外接晶振引脚XTAL1和XTAL2
① XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。
② XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。
③RST复位引脚。 ④PSEN片外程序存储器开发信号引脚(输出信号)。
⑤ALE提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。 ⑥EA片外程序存储器使用信号引脚/编程电源输入引脚。
⑦P0.0~P0.7:P0口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时的地址/数据复用口。
P1.0~P1.7:P1口8位口线,通用I/O接口无第二功能。
P2.0~P2.7:P2口8位口线,第一功能作为通用I/O接口,第二功能作为存储器扩展时传送高8位地址。
P3.0~P3.7:P3口8位口线,第一功能作为通用I/O接口,第二功能作为单片机的控制信号。
2、各模块设计
2.1、单片机最小系统
单片机的最小系统由时钟电路和复位电路组成。时钟电路中电容器C起稳定振荡频率、快速起振的作用,电容值一般为5~33pF。本设计中采用大小为30pF的电容和12MHz的晶振,晶振提供89C51的时钟脉冲使其工作。复位电路是使单片机初始化,即使单片机重新开始执行程序。当复位开关按下,RST由高电平变为低电平,则程序从头开始执行。通常选择C=10~30μF,R=1K,本设计采用的电容值为22μF的电容和电阻为1K的电阻。在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。如下图所示。
图3 单片机最小系统
2.2、抢答按键电路
抢答电路的功能有两个:一是能分辨出选手按键的先后,并锁存优先抢答者的编号,供译码显示电路用;二是要使其他选手的按键操作无效。89C51的P1口做一个八路抢答按键。P1口P1.0至P1.7对应1~8号8位选手,当主持人按下开始按钮后,电平由高电平变成低电平传入P3口,此时选手可以开始抢答。此电路中采用10K的电阻起保护作用。当某一选手按下抢答按钮后,电平由高电平变成低电平传入P1口,经单片机处理后从P0输出由数码管显示抢答者编号,扬声器给出音响提示。当有一人抢答以后,由于系统已经接收到了一个电平信号,同一时间内它将不再接受另外的电平信号,所以其他选手将不好再抢答。
2.3、显示器电路
数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管。而数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端连在一起,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。数码显示管分为共阳数码管和共阴数码管两种。
本设计采用共阴极数码显示管做显示电路。由于采用的是共阴的数码显示管,所以只要数码管的各引脚为高电平,那么其对应的二极管就会发光。数码管要显示抢答违规者编号、正常抢答者编号、抢答倒计时和回答问题时间倒计时,数码管采用动态显示。段选位接P0口,P0口显示的是抢答者的编号;位选位接P2口,P2口显示的是抢答倒计时和答题倒计时。电源供电电压为5V,当上拉电阻选用220Ω电阻时灌电流为22mA。不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。
图4 显示器电路
3.2.4、蜂鸣器音频输出电路
蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。提供蜂鸣器发声所需要较高的电流,单片机的I/O口驱动能力有限,而我们知道三极管有电流放大的作用。
蜂鸣器音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。当主持人按下开始按钮,系统接收到一个低电平,此时蜂鸣器响起;当开始抢答后,某一选手按下抢答按钮,系统接收到一个低电平,此时蜂鸣器响起;当还未开始抢答就有选手按下抢答按钮后,此时系统将接收到一个矩形脉冲由高低电平交换运行来控制蜂鸣器,是低电平时蜂鸣器响起,高电平时蜂鸣器停止发声。
图5 蜂鸣器音频输出电路
四、软件设计
1、程序设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
模块程序设计法的主要优点是:
(1)单个模块比起一个完整的程序易编写、调试及修改。
(2)程序的易读性好。
(3)程序的修改可局部化。
(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。
(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 本系统软件采用模块化结构,由主程序﹑键盘子程序、显示驱动子程序等构成。
2、主程序设计
为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。当在扫描到有人按下了抢答键,马上关闭T0、调用显示程序、封锁键盘。
五、心得体会
通过本次课程设计使我对Proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。并且在老师的耐心指导和自己的不懈努力下,我终于顺利的完
成了这次科研实践。
在最初编写过程中,我也曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。特别是Proteus仿真软件的使用,一开始因为对软件不熟悉,要慢慢摸索,后来差不多会了以后,画仿真图又浪费了我大量的时间,最后在不断努力中终于把仿真图画出来了,最后要把写好的程序导入芯片。其实这也是一大难事,由于对于书本上的很多知识还不能灵活运用,尤其是对程序语言的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂。但后来通过自己和同学的仔细的分析,并认真分析了原来已有的代码和应有的硬件后,经过多次调试和测试终于成功了。平心而论,这次课程设计耗费了我不少的心血。
虽说这次课程设计有点辛苦,但是苦中还是有乐的,和同学们相互帮助,当LED亮了起来,喇叭响了起来是对我这段日子以来最好的告慰。而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。同时在查找资料的过程中我也学到了许多新的知识,在和同学协作的过程中增进同学友谊,使我对团队精神的积极性和重要性有了更加充分的理解,为以后进入社会奠定了一些基础。
附录
1、程序清单
#include
#define uchar unsigned char
#define uint unsigned int
sbit wela_hao=P3^0;
sbit wela1=P3^1;
sbit wela2=P3^7;
sbit rest=P3^5;
sbit host=P3^6;
sbit led1=P3^4;//绿灯
sbit led2=P3^3;//红灯
sbit led3=P3^2;//黄灯
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit key7=P1^6;
sbit key8=P1^7;
uchar hao,shu,shu1,shi,ge,t0,t1,start,flag;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void init();/*初始函数申明*/
void display(uchar shi,uchar ge,uchar hao);
void delay(uint z);
void keyscan();
void main()
init();
display(shi,ge,hao);
while(1)
{
if(host==0) //主持人
{
delay(5);
if(host==0)
{
flag=1;
start=1;
delay(5);
while(!host);
}
}
if(rest==0) //复位
{
delay(5);
if(rest==0)
{
shu1=10;
shu=30;
led2=1;
led3=1;
hao=0;
delay(5);
start=1;
delay(5);
}
}
if(flag==1)
{ if(start==0)//选手按下,倒计时10秒 { led3=0; wela1=0; wela2=0; delay(1); TR0=0; TR1=1; display(shi,ge,hao); delay(1); } if(start==1)//主持人按下,倒计时30秒 {
led1=0;
wela1=0; wela2=0; delay(1); TR0=1;
TR1=0;
display(shi,ge,hao); delay(1); keyscan(); } }
}
}
void init()/*初始化*/
{
t0=0;
t1=0;
flag=0;
shu=30;
shu1=10;
wela_hao=0;
hao=0;
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=0;
TR1=0;
}
void display(uchar shi,uchar ge,uchar hao)/*数码管动态扫描*/ {
wela1=1;
P0=table[ge];
delay(5);
wela2=1;
P0=table[shi];
delay(5);
wela_hao=0;
P2=table[hao];
delay(5);
}
void keyscan()/*按键扫描函数*/ {
if(key1==0)
{
delay(5);
if(key1==0)
{
hao=1; P2=table[hao]; start=0;
TR1=1;
TR0=0;
delay(5);
while(!key1);
}
}
if(key2==0)
{
delay(5);
if(key2==0)
{
hao=2; P2=table[hao]; start=0;
delay(5);
while(!key2); } }
if(key3==0) {
delay(5); if(key3==0) {
hao=3; P2=table[hao]; start=0; delay(5);
while(!key3); }
}
if(key4==0) {
delay(5); if(key4==0) {
hao=4; P2=table[hao]; start=0; delay(5);
while(!key4); }
if(key5==0) {
delay(5);
if(key5==0)
{
hao=5;
P2=table[hao];
start=0;
delay(5);
while(!key5);
}
}
if(key6==0)
{
delay(5);
if(key6==0)
{
hao=6;
P2=table[hao];
start=0;
delay(5);
while(!key6);
}
}
if(key7==0)
{
delay(5);
if(key7==0)
{
hao=7;
P2=table[hao];
start=0;
delay(5); while(!key7); }
}
if(key8==0)
{
delay(5); if(key8==0) { hao=8; P2=table[hao];
start=0;
delay(5); while(!key8); }
}
}
void delay(uint z)/*延时函数*/
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void time0() interrupt 1/*定时器0*/
{
TL0=(65536-50000)%256;
shi=shu/10;
ge=shu%10;
t0++;
if(t0==20)
{
t0=0;
shu--;
shi=shu/10;
ge=shu%10;
if(shu==0)
{
while(1)
{
shu=0;
hao=0;
led1=1;
led2=0;
wela1=0;
wela2=0;
delay(1);
display(shi,ge,hao);
}
}
}
}
void time1() interrupt 3/*定时器1*/
{
TL1=(65536-50000)%256;
shi=shu1/10;
ge=shu1%10;
t1++;
if(t1==20)
if(shu1==0) { { t1=0; shu1--; shi=shu1/10; ge=shu1%10;
while(1)
{
shu1=0;
hao=0;
led1=1;
led3=1;
led2=0;
wela1=0;
wela2=0;
delay(1);
display(shi,ge,hao);
}
}
2、硬件图
七、参考文献
[1] 李泉溪. 《单片机原理与应用实例仿真》.北京航天航空大学出版社 2009
年
[2] 江世明. 《基于Proteus的单片机应用技术》. 电子工业出版社 2008年
[3] 范力旻. 《单片机原理与应用》. 北京电子工业出版社2009年
[4] 郭建江. 《单片机技术与应用》. 南京东南大学出版社,2008年
[5] 楼然苗,李光飞.《单片机课程设计指导》. 北京北京航空航天大学出版社,2007年
[6] 万光毅.
. 北京航天航空大学出版社 2003年 《单片机实验与实践教程》
范文四:多路抢答器的课程设计
专业:电子信息工程 课程:多路抢答器设计 学生姓名学号:201312700053方秋实 201312700107李炳均
201312700103吴桐光
201312700102钟燏
201312700078孔健
2016年月
多路抢答器课程设计报告
6
多路抢答器设计
摘要 随着电子技术的飞速发展,基于单片机的控制系统已应用于工业、农业、
电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。
本设计是以四路抢答为基本理念。考虑到依需设定限时回答的功能,利用STC89C52单片机及外围接口实现的抢答系统,利用单片机的单线程无线循环的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时。同时使数码管能够正确地显示时间,并且给出指令的提示。系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在20S设定;可以显示是哪位选手有效抢答,正确回答后,主持人按下加分按键,基本分是选手分数加10分,选手答错扣10分;回答问题时间倒记时显示,倒计时完后系统自动跳回时钟模式。
关键词:STC89C52;单片机;数码管;抢答器;智能
1 引言
目前各种各样的竞赛越来越多,无论是学校、工厂、军队还是益智性电视节目,其中用到抢答器的概率非常大。目前很多抢答器基本上采用小规模数字集成电路设计,使用起来不够理想。因此设计一款更易于使用和区分度高的抢答器成了非常迫切的任务。现在单片机已进入各个领域,以其功耗小、智能化而著称。所以若利用单片机来设计抢答器,便使以上问题得以解决。针对以上情况,本课程设计出以STC89C52单片机为核心的多路抢答器。它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过数码管显示相应的路数和答题时间以及各项命令等,使竞赛真正达到公正、公开、公平。
2 设计任务与要求概述
2.1 题目
多路路比赛抢答器
2.2 设计任务
利用8052单片机,制作一个有4个按键的比赛抢答器,可供5名选手比赛的抢答,每组设置一个抢答按钮,按钮的编号与选手的编号对应,主持人设置控制开关,用来控制系统的复位,在有人按键时进行对应选手显示。
2.3 设计要求
1 完成系统的硬件电路设计与软件设计; 2 采用汇编或C语言编程;
3 采用KeilC等软件实现系统的软件部分;
4 论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。
2.4 设计目的
1 综合运用相关课程中所学的理论知识去完成这一设计课题。
2 通过查阅手册和相关文献资料,培养自己独立分析和解决问题的能力。 3 进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解。
4 学会电路的设计与程序的调试。 5 学会撰写课程设计论文。
6 培养严肃认真的工作作风和严谨的科学态度。
3 方案总体设计
3.1 方案 3.1.1 控制芯片
我们采用51系列单片机STC89C52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。单片机技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活
的可编程性,能方便地对系统进行功能的扩张和更改。
STC89C52单片机特点如下:a、可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。b、控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
3.1.2 显示方式
在实现基本功能时,我们采用了八位数码管显示,后两位显示倒计时时间,第一位默认为00,第三位置选手的分数,在此基础上还在程序里加了更改抢答时间和倒计时时间的模块,也可通过数码管显示,成为一个比较完整的系统。
后来在实现拓展功能时,我加入DS1302时钟模块,不使用抢答功能的时候可以用作一个时钟(可调),另外八个数码管能够显示出选手的得分情况,答题所用的时间,能清楚地看到比赛进行的整个过程。
3.1.3流程框图
流程框图
4 硬件电路设计
4.1 抢答器的工作原理
在系统正常运行的状态下,正常为一个实时时钟,本系统有两种模式,一种是抢答模式,另一种为校时模式,当按键按下,系统判定工作模式之后,分别
进入不同的工作状态,然后在各自状态下,扫描抢答键的状态,判断是哪个选手按下的,以此来实现抢答功能。
4.2 单元电路设计 4.2.1 抢答器电路
该电路有八个按钮分别接于P1.0~P1.7可实现两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时数码管显示显示编号;二是禁止其他选手按键操作无效。如有再次抢答需等待20S倒计时结束重置,“清除”然后再
进行下一次抢答。如图4.1
图4.1 抢答器按键电路
4.2.3复位按键输入电路的设计
复位是计算机的一个重要工作状态。开始和复位键分别接于P3.0和P3.1口,在单片机工作时,接电之前,断电后也要复位。在抢答器中复位则为恢复初始状
态,在抢答之前要按下抢答模式按键。按了复位键,将返回时钟模式。如图4.3
图4.3复位电路
4.2.4 时钟震荡电路
CPU的操作需要精确的定时,可用一个晶体振荡器产生稳定的时钟脉冲来控制AT89C51单片机上的XTAL1和XTAL2分别为振荡电路的输入和输出。
如图4.4
图4.4 时钟振荡电路
4.2.5 显示电路的设计
本系统通过数码管来显示各提示信息。如图4.6
图4.6 显示时间电路
74HC595芯片样图
74HC595控制时序图
Q0?Q7 pin15, pin1~ 7 并行数据输出 GND pin 8 地
Q’7 pin 9 串行数据输出
~MR 10 低电平是将移位寄存器的数据清零,(接VCC) SH-CP pin 11 移位寄存器时钟输入 ST-CP pin 12 存储寄存器时钟输入
~OE pin 13 输出有效(低电平) (接GND) DS pin 14 串行数据输入 VCC pin 16 电源
4.2.6 实时时钟芯片DS1302
DS1302的控制字为
8位
7位 必须为1,否则不能把数据写入
6位 0表示存取阳历时钟数据,1表示存取RAM 数据 1~5表示操作单元地址 0 位 1: 读操作,0:写操作
控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0位)开始。同样,在紧跟8 位的控制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从最低位到最高位。
5 设计总结
通过这次课程设计,我更进一步地认识了抢答器的工作原理,掌握了它的调整及测试方法。本系统通过采用STC89C52单片机作为核心,以5个按键输入抢答信号,以数码管显示,根据烧录到单片机中的程序控制整个系统的工作流程,整体性好,效率高,实现了抢答器的智能化。在这过程之中也遇到了一些问题,C语言基础也需要加强,编程能力有待提高。
6 致谢
通过此次的课程设计,让我更进一步的巩固了单片机的各种知识。但在设计的过程中,遇到了很多的问题,有一些知识已经不太清楚了,但是通过一些资料又重新的翻阅并且认真的复习了相关教科书中的内容。此次的课程设计树立了对自己工作能力的信心,相信会对今后的学习工作生活都有非常重要的影响,而且大大的提高了动手能力,使我充分的体会到了创造过程中的探索的艰难和成功的喜悦。虽然这次做出的作品还存在很多需要改进的地方,但是在整个设计过程中所学习到的东西是这次实训所得到的最大收获跟财富,使我终身受益。最后,我要感谢指导老师和同学们的帮助!
附录一
系统电路图
图附录 系统电路图
附录二 部分程序清单
#include #include
#define uchar unsigned char #define uint unsigned int sbit beep = P2^3; sbit we = P2^7; sbit du = P2^6; sbit S2 = P3^0; sbit S3 = P3^1; sbit S4 = P3^2; sbit S5 = P3^3;
uchar code leddata[]={
0x06, 0x5B, 0x4F,
0x66,
};
unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //数码管各位的码表
unsigned char code duan[]={0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f};
//1-8的码表 0x00是全灭 0x7d 是6
void sel(unsigned int num)
{
P0=wei[num];
we=1;
we=0;
}
void seg(unsigned int num)
{
P0=duan[num];
du=1;
du=0;
}
uint i=0;
uint j;
uint m;
uint counter=20;
uint num = 0;
uint socek_1[] = {1,1,1,1,1};
void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 120; y > 0 ; y--);
}
display_empty()
{
int i;
for(i=0; i
{
P0=wei[i];
we=1;
we=0;
P0=duan[0];
du=1;
du=0;
}
}
display_socer(int i, int socer)
{
while(1)
{
sel(0);
seg(socer);
delay(2);
sel(1);
seg(0);
delay(2);
sel(2);
seg(0);
delay(2);
sel(3);
seg(0);
delay(2);
sel(4);
seg(0);
delay(2);
sel(5);
seg(0);
delay(2);
sel(6);
seg(0);
delay(2);
sel(7);
seg(i+1);
delay(2);
if(S5 == 0)
{
delay(5);
if(S5 == 0)
{
while( !S5 );
break;
}
}
}
}
void display(uint j)
{
we = 1;
P0 = 0x7f;
we = 0;
du = 1;
P0 = leddata[j];
du = 0;
delay(1);
}
void key()
{
if(S2 == 0)
{
delay(5);
if(S2 == 0)
{
m=1;
num = 1;
display(0);
while( !S2 );
}
}
if(S3 == 0)
{
delay(5);
if(S3 == 0)
{
m=1;
num = 2;
display(1);
while( !S3 );
}
}
if(S4 == 0)
{
delay(5);
if(S4 == 0)
{
m=1;
num = 3;
display(2);
while( !S4 );
}
}
if(S5 == 0)
{
delay(5);//软件消抖
if(S5 == 0)
{
m=1;
num = 4;
display(3);
while( !S5 );
}
}
if(m==1)
{
beep=0;
delay(3000);
beep=1;
}
}
void main()
{
while(1)
{
if(S2 == 0)
delay(5); if(S2 == 0) { while( !S2 ); break; } } } TMOD = 0x01; TH0 = (65536 - 46082)/256; TL0 = (65536 - 46082)%256; TR0 = 1; /************选手开始抢答***************/ staring: while(1) { if(TF0 == 1) { TF0 = 0; TH0 = 0x4b; TL0 = 0xfe; counter++; } if(counter==20) { counter=0; switch(i++) { case 0: P1 = 0X00;break; case 1: P1 = 0X01;break; case 2: P1 = 0X03;break; case 3: P1 = 0X07;break; case 4: P1 = 0X0f;break; case 5: P1 = 0X1f;break; case 6: P1 = 0X3f;break; case 7: P1 = 0X7f;break; case 8: P1 = 0Xff; beep=0;delay(3000);beep=1; break; } }
第15页
{ while(1) { if(S5 == 0) { delay(5); if(S5 == 0)
{
while( !S5 );
i=0;
delay(50);
goto staring;
}
}
}
}
key();
if(m==1)
break;
}
i=0;
/************选手开始答题,倒计时*****/
while(1)
{
if(m == 1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0x4b;
TL0 = 0xfe;
counter++;
}
if(counter==20)
{
counter=0;
switch(i++)
第16页
case 0: P1 = 0X00;break; case 1: P1 = 0X01;break; case 2: P1 = 0X03;break; case 3: P1 = 0X07;break; case 4: P1 = 0X0f;break; case 5: P1 = 0X1f;break; case 6: P1 = 0X3f;break; case 7: P1 = 0X7f;break; case 8: P1 = 0Xff; beep=0;delay(3000);beep=1; break; } } if(i == 9) { display_socer(num, --socek_1[num]); display_empty(); i=0; m=0; delay(50); goto staring; } if(S2 == 0) { delay(5); if(S2 == 0) { while( !S2 ); display_socer(num, ++socek_1[num]); display_empty(); i=0; m=0; delay(50); goto staring; } } if(S3 == 0) { delay(5); if(S3 == 0) {
第17页
if(--socek_1[num] == 0 ) socek_1[num] = 1; display_socer(num, socek_1[num]);
}
}
while(1);
}
display_empty(); i=0; m=0; delay(50); goto staring; } }
范文五:多路抢答器课程设计
福建师范大学闽南科技学院
微型计算机控制技术课程设计
题目:多路抢答器设计
系别:计算机与信息科学系 专业:08网络工程
学号:122622008067
姓名:黄巧燕
组别:第六组
设计时间:2011年5月20日
摘要
新新时代,生活娱乐的多元化已是现代的生活形式之一。知识、娱乐比赛更是流行于各行各业, 而其中又以抢答形式为主。 在抢答过程中,为了知道哪一组或哪一位选手抢先获得抢答权,必须要设计一个系统来完成这个任务,避免人的主观意识判断。在抢答中,只靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差甚小,也可分辨出哪组优先答题。此次设计使用AT89C51单片机为核心控制元件,设计一个简易的抢答器,与数码管、报警器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断电路等。设计的抢答器具有实时显示抢答选手的号码和抢答时间的特点,而复位电路,则使其能再开始新的一轮答题和比赛,与此同时还利用汇编语言编程,使其能够实现一些基本的功能。
【关键词】:单片机、抢答器、数码管、报警器
一、系统概述
1.设计目的
在信息化高速发展的时代,各种娱乐丰富着人们的多姿生活。 智力竞赛是一种生动活泼的教育方式,而抢答就是智力竞赛中非常常见的一种答题方式。抢答能引起参赛者和观众的极大兴趣,并且能在极短的时间内,使人们迅速增加一些科学知识和生活常识。但是,在这类比赛中,对于谁先谁后抢答,在何时抢答,如何计算答题时间等等问题,若是仅凭主持人的主观判断,就很容易出现误判。所以,我们就需要一种具备自动锁存,置位,清零等功能智能抢答器来解决这些问题。本设计为八路抢答器,它能准确、公正、直观地判断出第1位抢答者。通过抢答器的指示灯显示、数码显示和警示蜂鸣等手段指示出第1位抢答者。其制作成本低,线路简单,选材及制作容易等特点,并且能够实现优先抢答,具有数字集成电路的锁存性。
2.设计要求
(1)设计一款6路或以上的抢答器。
(2)设计一个抢答控制开关(开始抢答后才允许答题者抢答),供主持人用。
(3)设定抢答时间限制,超过时间后,该题作废。
(4)设定抢答时间。
(5)数字LED显示答题者号数。
3.适用范围
a.待开发的软件名称:多路抢答器的设计
b.项目提出者:福建师范大学闽南科技学院
c.用户:主持人
d.运行该软件的单位:福建师范大学闽南科技学院
4.参考资料
1. 《微型计算机控制技术》(第2版) 潘新民 王燕芳 编著
2. 《单片机原理及应用教程》(第2版) 赵全利 肖兴达 主编
3. 《微机计算机原理与借口技术》(第2版) 冯博琴 吴宁 主编
4. 《软件工程导论》(第5版) 张海藩 主编
5.《电子技术基础实验》高等教育出版社 陈大钦 主编
6.《电子技术课程设计指导》 高教出版社 彭介华 主编
二、系统硬件设计
1.总体设计
本设计是采用单片机设计的比赛用抢答器系统。它具有电路简单、功能齐全、制作成本低、性价比高等特点,是一种经济、实用的比赛用抢答器。硬件部分主要由单片机、CD4511 译码器、LED 显示器、发光二极管、声音报警器、主持人操作键盘和其它基本外围电子电路组成。采用Proteus模拟硬件电路、KEIL软件进行编程相结合以达到理论模拟的效果。根据课程设计项目要求该系统所需要的器件在Proteus中基本都可以找出来。KEIL编出的程序也能与Proteus结合。因此该系统可以实现。以AT89C51为核心,连接LED数码管,晶振电路,开关电路组成。其工作原理图如下所示:
图1 工作原理图
元件功能:RX8 驱动译码单片机,输入接单片机的P口,输出接数码管的七段;三极管驱动发光二极管和蜂鸣器。
2.多路抢答器电路
(1)本次设计为了方便论述选以8路抢答器来设计。分别用8个按钮 1~7 表示。
图2 多路抢答器电路图
(2)给节目主持人设置一个控制开关,用来控制系统的清零和抢答的开始。
(3)抢答器具有优先抢答功能,先按按钮的选手编号能被锁存和显示,并有喇叭提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。
(4)抢答器具有定时抢答的功能,且一次抢答的时间为n秒钟,从有人抢答开始,用数码管倒计时间n、n-1、n-2…1、0;倒计时到0的时候,喇叭发出声响。当节目主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器进行显示,同时喇叭发出响声。
(5)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间。
(6)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答。
三、系统软件设计
1.总体设计
工作原理为:接通电源后,主持人将开关拨到"清除"状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置“开始”状态,宣布“开始”抢答,抢答器工作。定时器倒计时,扬声器给出声响提示,选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"清除"和"开始"状态开关。
2.关键模块设计
原理图思想:
图3
图4主程序流程图
图5犯规抢答程序流程图
图6外部中断服务程序
图7初始化定时器流程图
3.功能实现
整个原理图由最小系统,滤波电路,抢答电路,抢答显示电路,主持人控制电路,以及蜂鸣器控制电路。
下面主要介绍功能实现:
1. 主持人控制电路,当主持人按下“开始”按键时,通过软件启动定时器。
2. 抢答电路,“开始”后,选手可以答题,当有人按下抢答按键时,对应的 P 口将变为低电平,通过程序控制使得对应的发光二极管发光,并在数码管上显示对应的按键号码。
3. 如果单片机内部的定时器定时完毕无人抢答,则通过定时器中断来启动蜂鸣器响。
4. 抢答显示电路,单片机通过P口输出对应的低电平控制发光二极管发光,以及将按键号码输到RX8,通过RX8译码给数码管,显示按键号码。
4.程序说明(部分)
倒计时程序(抢答倒计时和回答倒计时都跳到改程序):
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: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.6,TZ3
JNB P1.7,TZ4
AJMP RECOUNT
TZ3: JMP TRUE7
TZ4: JMP TRUE8
QUIT: CLR OK ; 如果按下了"停止键"执行的程序
CLR RING
AJMP START
四、调试
1、仿真测试
由keil软件编译生成hex文件,将此文件导入单片机中,进行硬件仿真。
1.1 初始状态仿真
主持人未按开始按钮且选手都处于准备状态时。仿真结果如图7。
图8 初始状态仿真图
1.2 抢答开始仿真
主持人按下开始按钮后,选手们进入抢答30秒倒计时。仿真结果如图8。
图9抢答开始仿真图
1.3 抢答成功仿真
主持人按下开始按钮后,30秒内抢答则为成功抢答。仿真图为6号选手成功抢答,抢答后进入60秒倒计时答题时间。仿真结果如图9。
图10 抢答成功仿真图
11
1.4 抢答违规仿真
若在主持人还未按下开始按钮时,选手就抢答则为抢答犯规。图为2号选手在主持人未宣布开始时就抢答,从而造成犯规。仿真结果如图10。
图11 抢答违规仿真图
1.5 抢答过时仿真
主持人按下开始按钮后,开始30秒抢答倒计时,如果在这30秒中无人抢答,此次抢答算作失败,系统又将恢复为初始状态。仿真结果如图11
12
图12 抢答过时仿真图
2、仿真结果分析
通过对电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上可以很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。
当仿真开始运行时,各个模块处于初始状态。此时显示器并无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声,并且在数码管上显示犯规的选手的编号。主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示30秒倒计时,同时蜂鸣器发出声音提醒选手抢答开始了。选手抢答成功,同时也进入到倒计时60秒答题时间。从仿真的测试结果来看,此设计还是能比较好的实现预期的目标。
五、心得体会
通过本次课程设计使我对Proteus仿真软件的使用和汇编语言有了更进一步的了解和掌握。
在最初编写过程中,我们曾经因为实践经验的缺乏失落过,也曾经因仿真成功而热情高涨。特别是Proteus仿真软件的使用,一开始因为对软件不熟悉,要
13
慢慢摸索,后来差不多会了以后,画仿真图又浪费了我大量的时间,最后在不断努力中终于把仿真图画出来了,最后要把写好的程序导入芯片。其实这也是一大难事,由于对于书本上的很多知识还不能灵活运用,尤其是对程序语言的理解和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂。但后来我们组员详细地讨论,并认真分析了原来已有的代码和应有的硬件后,经过多次调试和测试终于成功了。平心而论,这次课程设计耗费了我们不少的心血。
虽说这次课程设计有点辛苦,但是苦中还是有乐的,而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。同时在查找资料的过程中我也学到了许多新的知识,在和同学协作的过程中增进同学友谊,使我对团队精神的积极性和重要性有了更加充分的理解,为以后进入社会奠定了一定基础。
14
转载请注明出处范文大全网 » 多路智能抢答器课程设计