第一篇:单片机课程设计(基于多路数字抢答器)(范文)
一、概述
大学四年的学习生活中,会遇到各种各样的竞赛,抢答器便成为了主要的工具之一。而现在的抢答器智能化越来越强,这必然会提高抢答器的成本。本抢答器与其他抢答器电路相比较成本低、制作方便,并且还有作弊显示功能。因此,这款四路抢答器摒弃了成本高、体积大、操作复杂等不足。我们采用了数字显示器直接指示,因而本抢答器具有显示直观,操作简单的特点。
二、主要功能及技术指标
抢答器的工作原理是用矩阵式键盘进行抢答。采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.2),蜂鸣响声提示,且数码管10秒倒计时(10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时(20秒内必须回答完问题)。20秒后主持人按下复位开关为下一题的抢答做准备。单片机最小系统、抢答按键模块(四位并行数码显示、1*4矩阵式键盘)、显示模块、抢答开关模块、蜂鸣器输出模块。
三、系统组成及原理
1、分图
四、软件
1、分配流程图
初始化开始
20秒回答问题时间到并响声提示调用读键子程序作为延时程序设定定时器初值并启动定时器中断条件是否满足Y开中断并响声提示NN读键盘是否有键按下Y调用显示抢答违规并报警子程序报警提示编号10秒抢答倒计时开始显示显示违规者编号是否有按键按下NY调用抢答者获得回答的子程序10到时中断并返回响声提示设定定时器初值并启动显示抢答者并且3秒后倒计时RET3
2、源程序
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 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 CLR P2.4 MOV P0,53H LCALL DELAY1 SETB P2.4 MOV A,B MOVC A,@A+DPTR MOV 54H,A CLR P2.5 MOV P0,54H LCALL DELAY1 SETB P2.5 L18:JNB TF1,L18 CLR TF1 DJNZ 55H,L19 DEC R3 CJNE R7,#00H,D6
LJMP D5 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,#0AH 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;正常抢答读键 MOV R4,#250D W17:MOV R2,#00H CLR P1.0 INC R2 JB P1.4,W0 LCALL DE1 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,W15 LCALL DE1 W15:SETB P1.3 DJNZ R4,W16 LJMP W18 W16:LJMP W17 W18:RET DE1:MOV P1,#0FFH;MOV 70H,#20D CLR P3.0 S3:LCALL DELAY DJNZ 70H,S3 SETB P3.0 SETB P2.0 抢答成功声音提示及回答问题时间20秒倒计时7
SETB P2.1 MOV DPTR,#TAB MOV A,R2 MOV B,#0AH DIV AB MOVC A,@A+DPTR MOV 56H,A 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 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
五、分析
这次实训遗憾的是,我的实训材料是买的成品的板,没有自己去焊制自己的实训板,当然这节省了一些时间,但是,在原理图上确实也花费了一些时间。对于四路抢答器的程序方面,也有需要改进的地方,有很多的不合适的地方,比如,在违规抢答倒计时方面,当你违规抢答时,也会出现20秒的倒计时,和正常抢答的一样。所以,在以后的编程和调试过程中还应该注意这种小的毛病。
六、体会
本次实训使我对单片机有课更加深入的了解,以及对汇编语言的编程有了更进一步的体会,知道在编程的过程中会有大量的错误产生,一次一次的修改,有时真的比较麻烦。在最初读程序的过程中,也遇到过大量的程序读不懂,在编程的过程中,确实话费了很多的时间。
在此我非常要感谢的是各位知道老师不遗余力的指导,同样也非常感谢同学的帮助,在我不懂程序时帮助我完善程序。这次实训能够顺利的完成,当然与我个人的努力也是分不开的。
七、参考文献
[1]张鑫《单片机原理及应用》电子工业出版社2010年
[2]李泉溪《单片机原理与应用实例仿真》北京航天航空大学出版社 2009年
[3] 张洪润《单片机应用设计200例》北京航空航天大学出版社2006年 [4] 万光毅《单片机实验与实践教程》北京航天航空大学出版社2003年
第二篇:多路智力竞赛抢答器
湖南工学院
多路智力竞赛抢答器设计报告书
课程名称:多路智力竞赛抢答器 系部名称:电气与信息工程系 专业名称:电子信息工程技术 班级名称:电信0702 设计人 :裴书茂 学号 :402070220 指导老师: 设计时间:
湖南工学院
(课程设计任务书目录)
前言 „„„„„„„„„„„„„„„„ 1 设计功能要求 „„„„„„„„„„„„„„ 2 抢答器框架设计 „„„„„„„„„„„„„ 3 电路设计 „„„„„„„„„„„„„„„ 4 1)抢答电路设计 „„„„„„„„„„„„ 4 2)定时电路设计 „„„„„„„„„„„„ 53)报警电路设计
„„„„„„„„„„„„ 64)时序控制电路设计 „„„„„„„„„„ 7元器件介绍 „„„„„„„„„„„„„„„„ 8 1)74LS148功能介绍 „„„„„„„„„„„ 8 2)74LS192功能介绍 „„„„„„„„„„„ 9 仿真电路实验 „„„„„„„„„„„„„„„„ 10 1)Proteus仿真电路图 „„„„„„„„„„实物制作 „„„„„„„„„„„„„„„„„ 11 1)原理图 „„„„„„„„„„„„„„„ 11 2)PCB制图 „„„„„„„„„„„„„„„ 12 3)焊接与调试 „„„„„„„„„„„„„„ 13 心得体会 „„„„„„„„„„„„„„„„„ 15 鸣谢 „„„„„„„„„„„„„„„„„„„ 15 参考资料 „„„„„„„„„„„„„„„„„ 15
前 言
随着电子技术的飞跃发展,社会发展步入了信息时代,随着信息时代对人才高素质和信息化的要求,随着高等教育发展的趋势,人们的生活水平提高,对精神文明生活的要求也跟着提高,这对电子领域提出了跟更高的要求。
电子学是一门应用很广泛的科学技术,发展及其迅速。要想学好这门技术,首先是基础理论的系统学习,然后要技术训练,进而培养我们对理论联系实际的能力,设计电路的能力,实际操作的能力,以及培养正确处理数据、分析和综合实验结果、检查和排除故障的能力。同时也加深我们对电子产品的理解。
智力抢答器的设计和测试作为此次课程设计的课题,我们采用一般意义上的设计方案,即采用集成芯片构成电路。
数字电路具有很多的有点:(1)便于高度集成化。由于数字电路采用二进制,因此单元电路的结构简单,允许电路参数有较大的离散性,便于集成。
(2)工作可靠性高,抗干扰能力强。数字信号用二进制表示,数字电路的识别能力强。
(3)(4)(5)数字信息便于长期存放。
数字电路集成产品多,通用性强,成本低。
保密性好。数字信息容易进行加密处理,不易被窃取。
设计功能要求
一、功能要求
1、设计制作一个可容纳5组参赛的数字式枪答器,每组设置一个抢答按钮供抢答者使用。
2、给主持人设置一个控制开关,用来控制系统的清零和抢答的开始。
3、抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号(1~5),同时扬声器给出音响提示。同时禁止其他选手抢答。
4、抢答器具有定时抢答的功能,抢答时间设定为30秒,当主持人按下开始按钮时,定时器立刻倒计时,并显示。选手在设定的时间内抢答有效。超过时间抢答无效,定时显示器显示00。
二、设计步骤与要求
1、拟定电路的组成框图,要求能实现所有功能,使用的元器件少,成本低。
2、设计并安装电路,要求布线整齐、美观,便于级联和调试。
3、测试所设计抢答器的逻辑功能,满足各项功能要求。
4、画出整机逻辑电路图。
5、写出设计报告。
抢答器框架设计
定时抢答器的总体框图(如图
1.1)所示,它由主体电路和扩展电路两部分组成。主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答按钮时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成定时抢答的功能。
图1 如图所示为总体方框图。工作原理为:接通电源后,主持人将开关拨到“清零”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置;开始“状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。
电路设计
一、抢答电路设计
设计电路如图2所示。电路选用优先编码器 74LS148 和锁存器 74LS297 来完成。该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(显示电路采用七段数字数码显示管);二是禁止其他选手按键,其按键操作无效。
图2 工作过程:开关S置于”清除“端时,RS触发器的 R、S端均为0,4个触发器输出置0,使74LS148的优先编码工作标志端(图中5号端)=0,使之处于工作状态。当开关S置于”开始“时,抢答器处于等待工作状态,当有选手将抢答按键按下时(如按下S5),74LS148的输出经RS锁存后,CTR=1,RBO(图中4端)=1,七段显示电路74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。此外,CTR
=1,使74LS148 优先编码工作标志端(图中5号端)=1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为CTR=1,使优先编码工作标志端(图中5号端)=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置“清除”然后再进行下一轮抢答。74LS148为8线-3线优先编码器,表1为其功能表。
表1
二、定时电路设计
节目主持人根据抢答器的难易程度,设计一次抢答的时间,通过预置时间电路对计数器进行预置,选用十进制同步加减计数器74LS192进行设计,计数器的时钟脉冲由秒脉冲电路提供。具体电路如图3。
原理及设计:该部分主要由555定时器秒脉冲产生电路、十进制同步加减计数器74LS192减法计数电路、74LS48译码电路和2个7段数码管即相关电路组成。具体电路如图3所示。两块74LS192实现减法计数,通过译码电路74LS48显示到数码管上,其时钟信号由时钟产生电路提供。原理及设计:该部分主要由555定时器秒脉冲产生电路、十进制同步加减计数器74LS192减法计数电路、74LS48译码电路和2个7段数码管即相关电路组成。具体电路如图3所示。两块74LS192实现减法计数,通过译码电路74LS48显示到数码管上,其时钟信号
图3 由时钟产生电路提供。按键弹起后,计数器开始减法计数工作,并将时间显示在共阴极七段数码显示管DPY_7-SEG 上,当有人抢答时,停止计数并显示此时的倒计时时间;如果没有人抢答,且倒计时时间到时,输出低电平到时序控制电路,控制报警电路报警,同时以后选手抢答无效。结合我们的实际经验及考虑到元器件的成本,我们选择的电阻值为R1=15K,R2=68K,C=10uF,代入到上式中即得,即秒脉冲。
三、报警电路设计
由555 芯片构成多谐振荡电路 ,555 的输出信号再经三极管放大 ,从而推动扬声器发声。
控制电路包括时序和报警两个电路 ,如图4 所示。控制电路需具有以下几个功能。
主持人闭合开关扬声器发声 ,多路抢答器电路和计时电路进入正常状态;参赛者按键时 ,扬声器发声 ,抢答电路和计时电路停止工作;抢答时间到 ,无人抢答 ,扬声器发声 ,抢答电路和计时电路停止工作
图4
四、时序控制电路设计
时序控制电路是抢答器设计的关键,它要完成以下三项功能。
1)主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态。
2)当参赛选手按动抢答按键时,扬声器发声,抢答电路和定时电路停止工作。
图5 3)当设定的抢答时间到,无人抢答时,扬声器发声,定时和定时电路停止工作。
根据上面的功能要求,设计的时序控制电路如(图5)所示。图中,门G1 的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端。图11、4的工作原理是:主持人控制开关从”清除“位置拨到”开始"位置时,来自于(图2)中的74LS279的输出 1Q=0,经G3反相,A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,则“定时到信号”为 1,门G2的输出 =0,使 74LS148处于正常工作状态,从而实现功能①的要求。当选手在定时时间内按动抢答键时,1Q=1,经 G3反相,A=0,封锁 CP信号,定时器处于保持工作状态;同时,门G2的输出 =1,74LS148处于禁止工作状态,从而实现功能②的要求。当定时时间到时,则“定时到信号”为0,=1,74LS148处于禁止工作状态,禁止选手进行抢答。同时,门G1处于关门状态,封锁 CP信号,使定时电路保持00状态不变,从而实现(功能3)的要求。集成单稳触发器74LS121用于控制报警电路及发声的时间。
元器件介绍
一、74LS148功能介绍
在优先编码器电路中,允许同时输入两个以上编码信号。不过在设计优先编码器时,已经将所有的输入信号按优先顺序排了队。在同时存在两个或两个以上输入信号时,优先编码器只按优先级高的输入信号编码,优先级低的信号则不起作用。74148是一个八线-三线优先级编码器。
如图6所示的是八线-三线编码器74148的管脚图引脚图。
图6
二、74LS192功能介绍
74LS192是双时钟方式的十进制可逆计数器。
CPU为加计数时钟输入端,CPD为减计数时钟输入端。LD为预置输入控制端,异步预置。CR为复位输入端,高电平有效,异步清除。CO为进位输出:1001状态后负脉冲输出。BO为借位输出:0000状态后负脉冲输出。
图7
图8
仿真电路实验
一、Proteus仿真电路图
仿真电路课实现抢答功能,由于软件局限,报警电路没有在仿真当中。
实物制作
一、原理图
二、PCB制图
三、焊接与调试
在制板中最重要的一个环节就是线路的印制。在这次的制作中,由于打印的客观原因,使在转印的效果不是很好。做出的实物没有预期的好。这也是以后一定要注意的地方。
1)焊接部分需要注意的是:
严格按照线路的设计进行焊接,首先焊接过孔,在对元器件进行焊接。焊接时间不宜过久,但要完全熔着,以免造成冷焊。焊点的表面要平滑、有光泽。焊点完全冷却前,不可移动。电烙铁不用时要放置于电烙铁架上,并随时保持烙铁头的清洁。焊接完毕,要在烙铁头镀上薄层焊锡,避免氧化,并等冷却后再收存。
2)调试部分需要注意的是:
在通电之前必须对照原理图对线路进行详细的检查。检查是否有虚焊或者为焊接的点。可用万用表进行线路检查,看是否有线路在焊接的时候不慎连接在了一起,如有进行修改。在检查完毕之后才可以通电测试。如果在通电之后任然有问题,应立即断电,再仔细检查。
心得体会
通过这次设计,我的理论知识掌握得更扎实,动手能力明显提高。同时,通过网上搜索等多方面的查询资料,我学到许多在书本上没有的知识,也认识到理论联系实践的重要。在制作当中遇到了许多以前没遇到的困难。我们利用许多的方法去解决所遇到的问题。制作好以后,虽然基本符合设计要求,但我们总觉得欠缺点什么。这次设计,让我感受最深是。在仿真的阶段遇到很多的问题,计时电路不能随抢答而停止,还有就是由于软件的局限在仿真时候没有完成整体电路的调试,这也为最后的实物调试造成了困难。我们一定要具备一定的检查、排除电路故障的能力。我深刻认识到了“理论联系实际”的这句话的重要性与真实性。而且通过对此课程的设计,我不但知道了以前不知道的理论知识,而且也巩固了以前知道的知识。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛。在整个设计到电路的焊接以及调试过程中,我个人感觉调试部分是最难的,由于在印制电路板的时候效果不好出现很多的断线,这让整个焊接和调试很麻烦。调试是一个经验的积累过程,没有经验是不可能在短时间内将其完成的,可能也是老师要求我们加以提高的一个重要方面吧!
鸣谢
感谢老师的耐心指导;
感谢同学的帮助;
感谢湖南工学院电信系实验老师的大力支持;
感谢湖南工学院对我的支助。
参考文献
宋树祥《高频电子线路》北京大学出版社
谢自美《电子线路设计实验测试》华中科大出版社
第三篇:单片机课程设计8路竞赛抢答器
课程设计任务书 设计内容
⒈设计一个智力竞赛抢答器,可同时供8名选手或8个代表队参加比赛,他们的编号分别是1、2、3、4、5、6、7、8,各用一个抢答按钮,按钮的编号与选手的编号相对应,分别是S0、S1、S2、S3、S4、S5、S6、S7。
⒉给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。
⒊抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时蜂鸣器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。
4.用中小规模集成电路组成智力竞赛抢答器电路,画出各单元电路图和总体逻辑框图,正确描述各单元功能,合理选用电路器件,画出完整的电路设计图以及写出设计总结报告 2 设计要求
⒈抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30s)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示,同时蜂鸣器发出声响。
⒉参赛选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。
⒊如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示00。
摘要
抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。工厂、学校和电视台等单位常举办各种智力竞赛, 抢答记分器是必要设备。在我校举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,为解决这个问题,我们小组准备就本次大赛的机会制作一个低成本但又能满足学校需要的八路数显抢答器。
本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。
目录
一.方案设计与论证.........................................................................................1 二.实现的原理和电路......................................................................................2
2.1组成部分............................................................................................2 2.2抢答器................................................................................................2 2.3锁存器................................................................................................2 三.硬件电路设计.............................................................................................3
3.1抢答器的电路框图..............................................................................3 3.2单元电路设计.....................................................................................4
3.2.1抢答器的设计...........................................................................4 3.2.2时序电路的设计.......................................................................4 3.2.2复位电路的设计.......................................................................5 3.2.4外部振荡电路...........................................................................5 3.2.5显示电路的设计.......................................................................6 3.2.6按钮输入电路的设计................................................................6 3.2.7报警电路的设计.......................................................................6 3.2.8发声.........................................................................................7
四.软件设计....................................................................................................7
4.1系统主程序的设计..............................................................................8 4.2抢答信号的处理设计..........................................................................9 4.3键盘扫描子程序...............................................................................10 4.4显示子程序......................................................................................12 五.系统的仿真...............................................................................................12 六.调试功能说明...........................................................................................14
6.1系统的调试......................................................................................14 6.2 软件调试问题及解决.......................................................................14 七.参考文献..................................................................................................15 八.心得体会..................................................................................................16
一.方案设计与论证
方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
方案二:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下:
<1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
<3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。二.实现的原理和电路
2.1组成部分:
输入锁存控制电路——按键S1~S8,锁存器D1及相关门电路 数码显示电路——译码器,全加器,及3个数码管
报警电路——定时器(构成多谐振荡器)和三极管,蜂鸣器
2.2抢答器
工作过程:接通电源,主持人将控制开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯。当主持人宣布抢答题目后,说一声“开始”同时将控制开关拨到“开始”位置,抢答器处于工作状态。当选手按动抢答时,抢答器完成3项工作。
1)优先编码电路立即分辨出抢答者的编号,并由锁存器进行锁 存,然后由数码管显示电路编号。
2)扬声器发出声响,提醒主持人注意
3)控制电路要对输入编码电路进行封锁,避免其他人再次抢答,并保持到主持人清零。当选手将问题回答完毕后,主持人操作控制开关,使系统恢复到禁止工作状态,以便下一次抢答。
2.3锁存器
锁存器输入信号均为同一电平时,锁存器控制电路的输出信号将锁存器打开,这时锁存器输入端的信号送往相应的输出端。当有一输入端的电平发生跳变时,其对应输出端电平也跟着变化,此变化的输出电平送入锁存器控制电路,控制电路立即产生控制信号封锁锁存器,此时输入不影响输出。电路图如下:
三.硬件电路设计
3.1抢答器的电路框图
如上图
(一)所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始,停止”。由电路框图下面的总体设计图
(二)总设计图的工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。
总体设计图
(二)3.2单元电路设计
3.2.1抢答器的设计
由总体设计图
(二)可知该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次的抢答。
3.2.2时序电路的设计
时序控制电路是抢答器设计的关键,它要完成以下功能:
a.主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。3.2.2复位电路的设计
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图示:
3.2.4外部振荡电路
外部震荡电路单片机必须在AT89C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。3.2.5显示电路的设计
显示电路使用了七段数码管7SEG-MPX4-CC,它是共阴极的,由高电平点亮。
3.2.6按钮输入电路的设计
抢答器的输入按钮使用常开开关,这些常开开关组成了抢答按键,硬件电路简单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。
3.2.7报警电路的设计
报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性,8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作“清除”和“开始”状态开关。图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
3.2.8发声
这里能利用程序来控制单片机P3.6口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的声音。
四.软件设计
整个程序的设计思路如下:首先用进位标志C作为主持人按键的状态标志,C=0为可以开始抢答(如果需要也可用一个发光二极管将C的状态显示出来,只需将程序做小小的修改即可);接下来开外部中断0;然后是读取按键状态,只要有一个按键按下(引脚为高电平)并且为C=0,则开始进入分析按键状态程序,用循环移位指令分析出事第几个按键按下,并将其放入P1口进行显示输出。上述程序相对来说很简单,首先它从硬件的微妙数量级处理速度上确保了不会同时按下2个按键,因此程序没有区分重复按键的部分,另外程序使用了外部中断,从而保证了主持人按键的权限是所有按键中权限最高的。
主程序流程图如下:
4.1系统主程序的设计
主程序的功能主要是完成内部各寄存单元的初始化,对接口电路的初始化,内部定时器的初始化,中断的初始化及调节显示程序对初始状态的显示以及对外部信号的等待处理,也就是说完成前期的准备工作等待随时对外部信号进行响应。程序清单如下:
OK EQU 20H
;抢答开始标志位 RING EQU 22H ;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H
AJMP INTOSUB
ORG 00BH
AIMP T01NT
ORG 0013H
AJMP INT1SUB
ORG 001BH
AJMP T1INT
ORG 0040H
MAIN:MOV R1,#30
;初设抢答时间为30S
MOV R2,#60
;初设答题时间为60S
MOV TMOD,#11H
;设置未定时器、模式1
MOV TH0,#0F0H
MOV TLO,#0FFH
;越高发声频率越高,越尖
MOV TH1,#3CH
MOV TL1,#0B0H
;50MS为一次溢出中断
SETB EA
SETB ETO
SETB T1
SETB EX0
SETB EX1
;允许四个中断,T0,T1,INTO,INT1
CLR OK
CLR RING
SETB TR1
SETB TRO 一开始就运行定时器,显示FFF,如果想重新计数,重置TH1,TL1就可以了。
4.2抢答信号的处理设计
当主持人按下开始抢答键后开始抢答,程序部分采用中断方式处理。在中断处理程序中完成相应操作,修改计时单元的数据并使红色指示灯亮。程序清单如下:
START:MOV R5,#0BH
MOV R4,#0BH
MOV R3,#0BH
ACALL DISPLAY
;未开时抢答的时候显示FFF
JB P3.0,NEXT
;DDDDDDD
ACALL DELAY
JB P3.0,NEXT
;去抖动如果“开始键”按下就向下执行,否则跳到非法抢答查询
ACALL BARK
;按键发声
MOV A,R1
MOV R6,A
;送R1->R6因为R1中保存了抢答时间
SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答
MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号
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,FALSE7
JNB P1.7,FALSE8
AJMP START 4.3键盘扫描子程序
对行列式键盘的扫描方法有两种。一为扫描法,对键盘按行逐行扫描查询,其结构清晰但对于最后行列的按键需经多次扫描;一为反转法,它先使行全为零,读人列的状态暂存,然后使列全为零,读人行的状态保存,对两次保存数据进行查询即可得知按下键的行列数从而确定键值。在程序中采用反转法对键盘进行扫描。键盘扫描程序在确定键值后保存等待后续处理。程序清单如下:
AAAA1:MOV A,P1
CJNE A,#0FFH,AA1 ;当不全为0时的数据为有效数据
AA0:MOV 36H,A
;将有效数据送到36H暂存
AJMP LOOP2
AA1:DEC R7
AJMP AA0(1)键值处理子程序
此子程序根据键盘扫描所取得的键值作出相应的处理。在抢答时,只对数字(代表相应抢答分组)1^8按下有效,其他键按下无效。抢答成功,开始答题键按下给出相应信号指示。程序清单如下:
TRUE1:ACALL BARK
MOV A,R2
MOV R6,A
;抢答时间R2送R6
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
MOV R3,#06H
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
4.4显示子程序
此程序仅完成6位数据的动态显示,可显示数据和代码。初始状态显示8位全熄灭。程序清单如下:
DISPLAY:MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出,P2低三位做选码输出
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#0FEH
MOV P0,A
ACALL DELAY2
MOV DPTR,#DAT2
MOV A,R5
MOVC A,@A+DPTR
MOV P2,#0FDH
MOV P0,A
ACALL DELAY2
MOV A,R4
MOVC A,@A+DPTR
MOV P2,#0FBH
MOV P0,A
ACALL DELAY2
RET
DAT1:DB 00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;“灭”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“灭”,“F”
DAT2:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H ; 第一个为零,其他与上同,因为十位如果为零显示熄灭
五.系统的仿真
1.抢答器protenus软件的仿真
绘制抢答器的软件仿真图步骤分一下四步:(1)、查找所需要的元器件;(2)、根据电路图进行连线;(3)、是用来写线所对应的坐标,即下图所示的P1.1等坐标;
(4)、下载所写完的C程序即可以仿真。通过以上步骤,来实现抢答器设计的仿真实现,仿真如上图所示:
六.调试功能说明
6.1系统的调试
系统调试包括硬件调试和软件调试,‘
硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,主要用数字万用表测量电路。
软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。
6.2 软件调试问题及解决
下面说一下如何在keil中调用proteus进行MCU外围器件的仿真。(1)、安装keil 与 proteus。
(2)、把安装proteus MODELS目录下 VDM51.dll文件复制到Keil安装目录的 C51BIN目录中。
(3)、修改keil安装目录下 Tools.ini文件,在C51字段加入 TDRV5=BINVDM51.DLL(“Proteus VSM Monitor-51 Driver”),保存。(注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值就可以了。引号内的名字随意)
3、打开proteus,画出相应电路,在proteus的debug菜单中选中use remote debug monitor
4、在keil中编写C语言程序
5、进入KEIL的project菜单option for target '工程名'。在DEBUG选项中右栏上部的下拉菜单选中 Proteus VSM Monitor-51 Driver。
6、在keil中进行debug吧,同时在proteus中查看直观的结果(如LCD显示„)这样就可以像使用仿真器一样调。
问题:有时候在自己创建的元器件的管脚上无法实现连线。
回答:应该是管脚的间距太小了。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。
七.参考文献
[1]51单片机原理与实践/高卫东,辛友顺,韩彦征编著.北京航空航天大学出版社,2008.1 [2]刘红玲、邵晓根,《微机原理与接口技术》,中国电力出版社,2006年第一版
[3]冯博琴,《微型计算机原理及接口技术》,清华大学出版社 [4]艾德才,《微型计算机原理与接口技术》,高等教育出版社 [5]沈美明,《IBM-PC汇编语言程序设计》,清华大学出版社 [6] 任致程,《经典集成电路400例》机械工业出版社,2002 [7] 胡 锦.《数字电路与逻辑设计》 高等教育出版社
八.心得体会
通过二周的课程设计,使我对数字电路有了进一步的了解,在设计抢答器、报警器、定时器的过程中,通过翻阅资料,上网搜索等,我对各电路器件(如:与非门和LED显像管等)及原理有了更深一层次的认识,既增强了我的理解能力,也使我能更好的运用所学的知识。开始时我还不太明白电路是如何连接的,并且对其原理也不甚了解,但通过对所学知识更深入的了解和同学的讲解和帮助,最终使我克服了难关,并成功地作出了设计。四周的锻炼,28天的不同感受,我有过对知识掌握不足时的迷茫,也有过思路不清时的懊恼,但一路走来,我却收获了知识,收获了希望和努力后的成果。
在此我要感谢老师的谆谆教导和同学们的帮助,我相信这十几天的不懈努力会给我未来的学习带来很多的启发,我会在以后的工作生活中更好的理论联系实际,证明自己的能力。
第四篇:单片机数字万用表课程设计
《单片机》课程设计
题
目:
基于单片机的数字多用表设计
专
业:
电力系统及其自动化
班
级:
本自动化
姓
名:
学号:
指导老师:
小组成员:
成绩:
摘要
本次设计采用单片机芯片
AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。为使系统更加稳定,使系统的整体精度得以保障,本电路使用了ADC0809数据转换芯片,单片机系统设计采用AT89S51作1
为主控芯片,配以RC上电复位电路和震荡电路,程序每执行周期耗时缩到最短,这样保证了系统的实时性。
关键词
数字万用表
AT89S51单片机
AD转换与控制
目录
摘要„„„„„„„„„„„„„„„„„„„„„„„„„2 关键词„„„„„„„„„„„„„„„„„„„„„„„„2 绪论
1.数字万用表设计背景„„„„„„„„„„„„„„„„„4 1.1 数字万用表的设计目的和意„„„„„„„„„„„„„
41.2 数字万用表的设计依据…………………………………….4
1.3 数字万用表设计重点解决的问题„„„„„„„„„„„„4
2.数字万用表总体设计方案……………………………………5 2.1数字万用表的基本原理……………………..…….…….5 2
2.2芯片选择及功能简介………………………………………..2.3电路原理图及仿真图……………………………………..……….2.4系统板上硬件连线………………………………..………..…… 2.5程序设计内容………………………………..………..…… 2.6C语言源程序………………………………..………..…… 总结……………………………………….….………… 4心得体会 参考文献……………………………..…….………..13
绪论
数字万用表亦称数字多用表,简称
DMM(Digtial Multimeter)。它是采用数字化测量技术,把连续的模拟量转换成不连续的,离散的数字形式并加以显示的仪表。传统的指针式万用表功能单精度低,不能满足数字化时代的需求,采用单片机的数字万用表,已被广泛用于电子及工业测量、工业自动化仪表、自动测试系统等智能测量领域,显示出强大的生命力。数字万用表具有以下几点优势:(1)显示清晰直观,计数准确
为了提高观察的清晰度,新型的手势式数字万用表已普遍采用字高为26mm的大屏幕LCD(液晶显示器)。有些数字万用表还增加了背光源,以便于夜间观察读数。(2)显示位数
数字万用表的显示位数通常为3位到8位半。
(3)准确度高
准确度是测量结果中系统误差与随机误差的综合。它表示测量结果与真值的一致程度,也反映了测量误差的大小,准确度愈高,测量误差愈小。数字万用表的准确度远优于指针万用表。
(4)
分辨力高
数字万用表在最低电压量程上末位1个字所代表的电压值,称作仪表的分辨率,宏观世界反映了仪表灵敏度的高低,分辨率随显示位数的增加而提高。(5)
测试功能强
数字万用表不止可以测量直流电压,直流电流,电阻二3
极管正向压降等等。(6)测量范围宽
数字万用表可满足常规电子测量的需要,智能数字万用表的测量范围更宽广。
(7)测量速率快
数字万用表在每秒中内对被电压的测量次数称为测量速率,单位是次/秒。它主要取决于A/D转换器的转换速率。一般数字万用表的测量速率为2到5次/秒。有的呢过达到20次/秒以上,另外有的比这个还要高得多。数字万用表可满足不同用户对测量速率的需要。
(8)
输入阻抗高
数字万用表电压档具有很高的输入阻抗,通常为10至10000M欧姆,从被测电路上吸取的电流小,不会影响被测信号源的工作状态,能减小由信号源内阻引起的测量误差。(9)保护功能完善,抗干扰能力强
数字万用表具有比价完善的保护电路,过载能力强,新型的数字万用表还增加了高压保护器件,能防止浪涌电压。
本设计就是居于这个设计理念一个基于单片机的数字万用表。该设备具有直观简单的优点。并且能深入的说明 万用表的测量原理。能直观的了解万用表各个部分的结构和测试原则。
1数字万用表的设计背景
在本章中主要介绍了系统的设计原则和总体方案及其系统概述等。
1.1数字万用表的设计目的和意义
数字万用表是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量,已被广泛应用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。随着时代科技的进步,数字万用表的功能越来越强大,把电量及非电量的测量技术提高到崭新水平。
1.2 数字万用表的设计依据
根据数字万用表的原理,结合以下的设计要求:“设计一个数字万用表,能够测量直流电压值,直流电流、直流电阻。实现多级量程的直流电压测量,其量程范围是200mv、2v ,20v,200v和500v.实现多级量程的直流电流测量,其量程范围是2mA,20mA,200mA、2A和20A.实现多级量程的电阻测量,其量程范围是200、2k ,20k,200k和2M。由此设想出以下的解决方法,即数字万用表的系统由分流电阻、分压电阻、基准电阻、电容测试芯片电路、51单片机最小系统、显示部分、报警部分、AD转换和控制部分组成。为使系统更加稳定,使系统整体精度得以保障。
1.3数字万用表设计重点解决的问题
本设计重点要解决的问题是对不同量程的各种测量内容的转换,还有就是各部分电路组合成一个完整的数字万用表,而难点解决的问题就是程序的设计,要保正其可行性从而保证设计的正确性。数字万用表总体设计方案 2.1数字万用表的基本原理
数字万用表的最基本功能是能够测量直流电压,直流电流,还有能够测电量阻。
下面我们分别介绍各个部分的组成:(1)、模数(A/D)转换与数字显示电路
常见的物理量都是幅值(大小)连续变化的所谓模拟量(模拟信号)。指针式仪表可以直接对模拟电压、电流进行显示。而对数字式仪表,需要把模拟电信号(通常是电压信号)转换成数字信号,再进行显示和处理(如存储、传输、打印、运算等)。数字信号与模拟信号不同,其幅值(大小)是不连续的。这种情况被称为是”量化的"。若最小量化单位(量化台阶)为,则数字信号的大小一定是的整数倍,该整数可以用二进制数码表示。但为了能直观地读出信号大小的数值,需经过数码变换(译码)后由数码管或液晶屏显示出来。(2)、多量程数字电压表原理
在基准数字电压表头前面加一级分压电路(分压器),可以扩展直流电压测量的量程。
(3)多量程数字电流表原理 测量电流的原理是:根据欧姆定律,用合适的取样电阻把待测电流转换为相应的电压,再进行测量。
(4)电阻测量原理
数字万用表中的电阻档采用的是比例测量法。
由稳压管ZD提供测量基准电压,流过标准电阻和被测电阻的电流基本相等
2.2芯片选择及功能简介
这次的课程设计中,我们这一种选择了芯片AT89S51和ADC0809。
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin封装的双列直接PDIP封装,芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口左边那列引脚逆时针数起,依次为1、2、3、4、„、40,其中芯片的1脚5
顶上有个凹点。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
1、主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线
2、外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路输入端XTAL2(Pin20):片内振荡电路输出端
3、控制引脚(4根)RST/VPP(Pin9):复位引脚,出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
4、可编程输入/输出引脚(32根)AT89S51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7。AT89S51的主要性能参数:与MCS-51产品指令系统完全兼容
4k字节在系统编程(ISP)Flash闪速存储器
1000次擦写周期
4.0-5.5V的工作电压范围 全静态工作模式:0Hz-33MHz 三级程序加密锁
128×8字节内部RAM
32个可编程I/O口线 2个16位定时/计数器 6个中断源 全双工串行UART通道
低功耗空闲和掉电模式
中断可从空闲模唤醒系统 看门狗(WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程(ISP字节或页写模式)ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片 1.主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。2.内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。3.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2-1~2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路
ALE:地址锁存允许信号,输入,高电平有效。
START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
Vcc:电源,单一+5V。
GND:地。ADC0809的工作过程
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行
数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
2.3电路原理图
2.4系统板上硬件连接
a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
2.5程序设计内容
1.由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了。
2.由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF)
2.6C语言源程序
#include
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};unsigned char dispcount;unsigned char getdata;unsigned int temp;
long int i;
代替原来的unsigned char i;
sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;
void main(void){
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
TR1=1;
TR0=1;
ST=1;
ST=0;
while(1)
{
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
i=getdata*196;
dispbuf[5]=i/10000;
i=i%10000;
dispbuf[6]=i/1000;
i=i%1000;
dispbuf[7]=i/100;
ST=1;
ST=0;
}
} }
void t0(void)interrupt 1 using 0
{
CLK=~CLK;}
void t1(void)interrupt 3 using 0
{
TH1=(65536-6000)/256;
TL1=(65536-6000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==5)
/*原来的:
temp = getdata * 235;
temp=temp/128;
i=5;
dispbuf[0]=10;dispbuf[1]=10;dispbuf[2]=10;dispbuf[3]=10;dispbuf[4]=10;dispbuf[5]=0;dispbuf[6]=0;dispbuf[7]=0;while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
} dispbuf[i]=temp;*/
//定时器0 中断服务
//定时器1 中断服务
{
P1=P1 | 0x80;
}
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
3.总结
设计结果综述:
(1)、数字万用表完成的功能主要是对电压、电流、电阻的测量,它主要由分流电阻、分压电阻、基准电阻、51单片机最小系统、显示部分、报警部分、AD转换和控制部分组成。(2)、数字万用表属于一种测量工具,其本身的好坏直接影响到测量结果,因此上面的设计在实物上只可以测直流电压,在仿真上可以测出直流电压电流和电阻。(3)、单片机部分跟AD转换部分是整个设计的核心,ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF);AT89S51单片机作为主控芯片,配以RC上电复位电路和震荡电路,使系统稳定运行。(4)、在本次软件设计过程中,采用的是C语言程序。
4心得体会
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的仿真环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所12
在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!通过这次的课程设计,使我更加透彻的了解到我在单片机这方面的知识的浅薄,从而促进了握要更加了解单片机知识的决心。
5参考文献
C语言程序设计第三版
51单片机开发与应用基础教程13
C语言版)
(
第五篇:数字电路课程设计--数字抢答器
智力竞赛抢答器
一、本次课程设计目的
1.结合所学的数字电路的理论知识来完成数字电路课程设计。
2.在数字电路的课程设计中,熟悉数字电路的逻辑设计过程以及集成电路的使用。
3.学会利用一些没学过的IC来设计电路。4。学会用软件方法仿真电路。
二、本次课程设计安排
1、时间安排
略。
2、地点安排
S2403实验室。
智力竞赛抢答器 设计目的
(1)熟悉集成电路的引脚安排及使用方法。(2)掌握各芯片的逻辑功能及使用方法。(3)了解面包板结构及其接线方法。(4)了解数字抢答器的组成及工作原理。(5)熟悉数字抢答器的设计与制作。(6)学会用软件方法仿真电路。设计思路
(1)设计抢答器电路。
(2)设计可预置时间的定时电路。(3)设计报警电路。(选做)(4)设计时序控制电路。(选做)设计过程
3.1方案论证 数字抢答器总体方框图如图1所示。button,sw-spdt
图 1 数字抢答器框图
其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置于“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。3.2电路设计
抢答器电路如图2所示。
图2 数字抢答器电路
该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关S置于“清除”端时,RS触发器的R端均为0,4个触发器输出置0,使74LS148的ST=0,使之处于工作状态。当开关S置于“开始”时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出Y2Y1Y0010,YEX0,经RS锁存后,1Q=1,BI=1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为“5”。此外,1Q=1,使74LS148ST=1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的YEX1,此时由于仍为1Q=1,使ST=1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置于“清除”然后再进行下一轮抢答。
定时电路如图3所示。由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74LS192进行设计。
图 可预置时间的定时电路
报警电路如图4所示。由555定时器和三极管构成的报警电路如图4所示。其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
图报警电路
时序控制电路如图5所示。时序控制电路是抢答器设计的关键,它要完成以下三项功能:① 主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
② 当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。③ 当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。图中,门G1 的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端ST。
图5的工作原理是:主持人控制开关从“清除”位置拨到“开始”位置时,来自图 2中的74LS279的输出 1Q=0,经G3反相,A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,则“定时到信号”为 1,门G2的输出ST=0,使 74LS148处于正常工作状态,从而实现功能①的要求。当选手在定时时间内按动抢答键时,1Q=1,经 G3反相,A=0,封锁 CP信号,定时器处于保持工作状态;同时,门G2的输出ST=1,74LS148处于禁止工作状态,从而实现功能②的要求。当定时时间到时,则“定时到信号”为0,ST=1,74LS148处于禁止工作状态,禁止选手进行抢答。同时,门G1处于关门状态,封锁 CP信号,使定时电路保持00状态不变,从而实现功能③的要求。集成单稳触发器74LS121用于控制报警电路及发声的时间。
图时序控制电路
4系统调试与结果
(1)组装调试抢答器电路。
(2)可预置时间的定时电路,并进行组装和调试。当输人1Hz的时钟脉冲信号时,要求电路能进行减计时,当减计时到零时,能输出低电平有效的定时时间到信号。
(3)调试报警电路。
(4)定时抢答器的联调,注意各部分电路之间的时序配合关系。然后检查电路各部分的功能,使其满足设计要求。
5主要仪器与设备
集成电路: 74LS148—1片,74LS279—1片,74LS48—3片,74LS192—2片,NE555—2片,74LS00—1片,74LS121—1片。
电 阻: 510Ω—2只,1KΩ—9只,4.7kΩ—l只,5.1kΩ—l只,100kΩ—l只,10kΩ—1只,15kΩ—1只,68kΩ—l只。
电 容: 0.1uF—1只,10 uF—2只,100 uF—1只。三极管: 3DG12—1只。(3DG12为普通高频小功率NPN型硅(材料)三极管,特征频率100MHZ,集电极最大直流耗散功率0.7W,0.3A/20V。)
其 它: 发光二极管—2只,共阴极显示器—3只。
6设计体会与建议
6.1设计体会
通过这次对数字抢答器的设计与制作,让我了解了设计电路的程序,也让我了解了关于抢答器的基本原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。此外,本实验也可通过EDA软件MAX PLUSⅡ实现。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。6.2对设计的建议
我希望老师在我们动手制作之前应先告诉我们一些关于所做电路的资料、原理,以及如何检测电路的方法,还有关于检测芯片的方法。这样会有助于我们进一步的进入状态,完成设计。参考文献
[1] 康华光.电子技术基础[M].北京:高等教育出版社,1999年
[2] 彭华林等编.数字电子技术[M].长沙:湖南大学出版社,2004年 [3] 金唯香等编.电子测试技术[M].长沙:湖南大学出版社,2004年 [4] 侯建军.数字电路实验一体化教程[M].北京:清华大学出版社,北京交通大学出版社,2005年
[5] 阎石.数字电子技术基础[M].北京:高等教育出版社,2001年
1Hz脉冲发生电路