1、单片机简易四路抢答器1 设计任务和方案31.1 设计任务3 1.2功能要求说明3 1.3 设计总体方案及工作原理说明32 抢答器的硬件系统的设计5 2.1 硬件系统各模块功能简要介绍5 2.2 电路原理图、PCB图和元器件布局图5 2.3 元器件清单63 抢答器软件系统的设计73.1使用的单片机资源的情况8 3.2 各模块功能简要介绍8 3.3 程序的流程框图8 3.4 程序清单124 抢答器的设计结论、仿真结果和教学建议13 4.1 设计结论和使用说明13 4.2 仿真结果13 4.3 设计体会14 4.4 教学建议15参考文献16致谢17附录181 设计任务和方案1.1设计任务(一)设计题
2、目:抢答器(二)设计目的与任务:学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。1.2功能要求说明该抢答器上电或按键复位后能自动显示系统提示符“P.” 。设定S2GN键、S3GN键、S4GN键、S5GN键、S6GN键、S7GN键、S8GN键分别为一号选手键、二号选手键、三号选手键、四号选手键、开始键、答完键、复位键。若在主持人按下开始键之前有人按下抢答键,则抢答违规,数码管显示器显示违规台号,违规指示灯(接在P3.2上的灯)亮,只有主
3、持人按复位键后才能重新开始抢答。主持人按下开始键后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;若30S后依然无人抢答,蜂鸣器发出音响,违规指示灯亮。正常抢答下,从抢答键按下开始30S内,答完键没按下,则数码管显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响。各台数字显示的消除、蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位键实现。1.3设计总体方案及工作原理说明设计中采用AT89S52芯片、LED显示器、蜂鸣器、LED灯和一些独立式按键构成一个简易四路抢答器。设计中是采用单片机的内部定时器进行定时,原理框图如图1.1所示 整个抢答器的工作原理是:在正常的供电状态下,开始抢
4、答时利用单片机倒计时,并由单片机将所需要显示的数据送到LED显示器的输入口,当有键按下时则执行相应的键功能程序。图1.1 原理框图2抢答器的硬件系统的设计2.1 硬件系统各模块功能设计 该抢答器主要由单片机最小系统、独立式键盘模块、LED显示电路模块、蜂鸣电路模块和LED指示灯电路模块组成。各模块的功能如下:(1)单片机最小系统由AT89S52单片机、时钟电路和复位电路构成。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。时钟电路由一个12MHz的石英晶体振荡器和两个33pF的的电容组成振荡电路和分频电路。复位电路采用上电复位和按键复位结合的方式对
5、电路进行复位,主要是通过RST引脚送入单片机。单片机最小系统为整个电路的核心。(2)独立式键盘模块 采用独立式键盘接法,共有七个按键来对电路进行控制。分别通过上拉电阻接在单片机的P1口线上。其中有四个按键为抢答键(接在P1.0-P1.3口线上),开始键接在P1.4口线上,答完键接在P1.5口线上,复位键接在P1.6口线上。(3)LED显示电路模块采用两个四位一体共阳型数码管显示器进行显示。由于位控线的驱动电流较大,因此在P2口线上接了8个PNP型三极管提高驱动能力;在单片机的P1口线和P2口线上接了16个470的电阻,这些电阻起限流的作用。将段控口a-dp接在P0.0-P0.7上,位控口接在P
6、2口线上,实现对显示的控制。LED显示电路模块主要用来指示第一抢答者,显示倒计时和违规的台号。(4)蜂鸣电路模块单片机P3.1口线上接上一个1K电阻然后再通过一个PNP型三极管与蜂鸣器相连接组成蜂鸣器电路,接入PNP型三极管是为了增强蜂鸣器的驱动电流。蜂鸣电路主要完成提示和违规报警功能。(5)LED指示灯电路模块 单片机P3.2口线上经过一个470的电阻与LED灯的阴极相连接,LED灯的阳极接正五伏电压。470的电阻起限流的作用。LED指示灯电路模块主要用来指示用违规操作发生。2.2电路原理图、PCB图和元器件布局Proteus原理图、PCB图以及元器件布局图分别见附录1附录2与附录3。 2.
7、3元器件清单 元器件清单见附录4。3 抢答器软件系统的设计3.1 使用的单片机资源的情况该抢答器用到了单片机的定时器的功能,定时器0采用工作方式1并以中断方式工作;在数据的显示时采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去。本设计采用独立式键盘,键盘直接接在P1口上且按键的结果存贮在单片机的内部数据存储器里面。用到的LED显示器接到了单片机的P0口线上和P2口线上。LED指示灯和蜂鸣器接在P3口线上。 3.2 各模块功能简要介绍 该抢答器所用的软件模块有定时器模块、按键模块、LED显示模块。(1)定时器模块选择定时器0,设置定时器定时方式为方式1以中断方式工作,设置定时时
8、间为50mS。(2)按键模块采用独立式键盘,共用七个按键对电路进行控制和操作,分别为S2GN、S3GN、S4GN、S5GN、S6GN、S7GN、S8GN来控制抢答器。S2GN、S3GN、S4GN、S5GN代表选手;S6GN为开始键、S7GN为答完键、S8GN为复位键。(3)LED显示模块 抢答器上电显示P.,按开始键开始抢答,显示器显示倒计时,若为无效抢答则显示器显示违规台号。3.3 程序的流程框图(1)主程序流程框图如图3.1所示。图3.1 主程序流程框图(2)抢答键程序流程框图 抢答键程序流程框图如图3.2所示。图中的代表主程序流程框图中的。图3.2 抢答键程序流程框图(3)开始键程序流程
9、框图开始键程序流程框图如图3.3所示。图中的代表主程序流程框图中的。图代表抢答键程序流程框图中的图3.3 开始键程序流程框图(4)答完键程序流程框图开始键程序流程框图如图3.4所示。图中的代表主程序流程框图中的。图3.4 答完键程序流程框图(5)复位键程序流程框图复位键程序流程框图如图3.5所示,图中的代表主程序流程框图中的。图3.5 复位键程序流程框图3.4程序清单见附录5。4抢答器的设计结论、仿真结果和教学建议4.1设计结论和使用说明(1)设计结论 通过对单片机进行外接键盘和LED数码管的操作以及加上硬件电路和软件的结合,实现了抢答器P.显示以及抢答倒计时的显示,正常抢答时显示台号,抢答违
10、规时显示违规台号、违规指示灯亮、蜂鸣器报警。通过测试和仿真以及修改,该抢答器完成了设计任务,符合设计要求。(2)使用说明该抢答器采用两个四位一体八段数码管显示。当抢答器一上电即可显示“P.”,进入准备工作状态。按下S6GN(开始键)键后,抢答开始并计时30S;若10S内无人抢答,蜂鸣器发出警示音,若计时到仍无人抢答则违规指示灯亮,蜂鸣器报警。若在S6GN键按下之前有人抢答,则显示器显示违规台号,违规指示灯亮,只有按S8GN(复位键)才能重新开始抢答。正常抢答下,显示器显示台号,蜂鸣器发出音响,其它抢答键无效;正常抢答下,从抢答键按下开始30S内,S7GN键(答完键)没按下,则数码管显示器显示违
11、规台号,违规指示灯亮,蜂鸣器发出音响。各台数字显示的消除、蜂鸣器音响及违规指示灯的关断,都要通过主持人按S8GN键实现。4.2仿真结果在仿真时用到了两个软件,第一个是Keil,第二个是Proteus,本次仿真是将两个软件结合起来进行的。运用Keil软件用来编译和调试程序,运用Ptoteus软件来仿真。Ptoteus仿真电路原理图参见附录。抢答器上电时,仿真的数码管显示器显示如图4.1所示,当按下开始键时,显示器显示倒计时,此时数码管显示器的显示如图4.2所示,若在开始键按下之前有人抢答,数码管显示违规台号,违规指示灯亮,仿真图如图4.3所示。正常抢答时,数码管显示台号仿真图如图4.4所示。抢答
12、超时时,数码管显示违规台号,违规指示灯亮,蜂鸣器发出音响,仿真图如图4.5所示。图4.1 抢答器上电显示P.图图4.2 抢答器显示倒计时图图4.3 抢答器正常抢答图图4.4 抢答器抢答违规图图4.5 抢答器超时违规图4.3设计体会本次我设计的抢答器已经能够完成任务,达到了设计要求。这次设计的巧妙之处是在中断服务程序中完成了一些标志位的处理,使得编程更加容易。虽然最后我设计的抢答器能完成任务,但仍存在很多的不足。例如,我所设计的抢答器统计选手的得分情况,因此还需多加改进。我所用的实物板子的电路虽然不是自己设计的,但是通过老师的讲解我知道了各个模块电路设计的原理。由于以前已经做过几块板子了,因此在
13、用Ptrtel软件绘制电路原理图、画PCB图以及制版的过程中并没有遇到太大的困难。在进行程序编写时,虽然遇到了一点小小的问题,但是我通过Keil软件调试,最终将编写有误的程序修正过来。在进行编程时我用汇编语言和C语言各编写了一套。通过编写程序,我进一步熟悉了指令的运用。这次课程设计让我认识到,调试程序时必须具有良好的耐性,不能急躁,否则会事倍功半。遇到问题是应当迎难而上,不能逃避,必须对自己有足够的信心!4.4教学建议王老师不仅传授了知识给我们还教会了我们不少做人的道理,对于大学教师来说这是难能可贵的,这些做人的道理对于我们经后进入社会将会有很大的帮助。在教学方面,我尤其觉得王老师的课件做的特
14、别的好,课件重点、难点突出,讲解非常详细,而且还补充了一些很实用的知识。王老师将理论教学与实际操作相结合,让我们更深刻的掌握了知识,同时也让我们认识到书本上的东西不一定都全对,必须通过实践来检验它。我认为王老师的课讲得已经很好了,在此我只想提一个自己的拙见,希望在以后王老师能多启发我们的创新精神。参考文献1马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计M.北京:北京航空航天大学出版社,2006 Ma Zhongmei,J, Zhang Kai, MaYan. MCU C language program design M .beijing: Beijing aerospace univ
15、ersity press, 20062李广弟,朱月秀,冷祖祁.单片机基础M.北京:北京航空航天大学出版社,2007 Li Guangdi, ZhuYuexiu, Leng Zuqi. Microcontroller M .beijing: Beijing university of aeronautics and press, 2007 3李光飞.单片机课程设计实例指导M.北京:北京航空航天大学出版社,2004.9 Li Guangfei. This course design example guide M .beijing: Beijing university of aeronautic
16、s and press, 2004.9 4邢增平.Protel 99 SE设计专家指导M.北京:中国铁道出版社,2004 Xing Zengping. Protel 99 SE design expert guidance M .beijing: China railway publishing house, 2004 附 录1附 录4元器件名称规格数量AT89S521底座40脚3晶振12MHz1发光二极管9单排插40脚1三极管90129蜂鸣器1小按键9下载口座子十芯118b20温度传感器1六脚开关1USB电源线加接口1电阻2001电阻4.7K1电阻1K3电阻47024电解电容220F1瓷片电
17、容33pF2排阻10K2短路帽3杜邦线8p1PCB板子1电源白色插座1附 录5(1)汇编语言;*;项目名称:抢答器;设计者:潘艳;设计日期:2010年12月20日;项目功能要求:抢答器上电或按键复位后能自动显示系统提示符“P.”,; 进入准备工作状态。主持人按下开始按钮后,抢答开始并; 限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人; 按下开始按钮之前有人按下抢答器,抢答违规,显示器显; 示违规台号,违规指示灯亮,其它按钮不起作用;正常抢; 答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无; 效;正常抢答下,从按下抢答按钮开始30S内,答完按钮; 没按下,则作超时处理,超时处理时,
18、违规指示灯亮,数; 码管显示违规台号,蜂鸣器发出音响;各台数字显示的消; 除,蜂鸣器音响及违规指示灯的关断,都要通过支持人按; 复位按钮。;违规指示灯使用接在P3.2上的LED灯;*;堆栈栈底7FH;*;8个LED灯接至P30-P37;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.7-P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从右至左依次为78H,79H,7AH,7BH,7CH,7DH,7EH,7FH ;*;独立式键盘设定;8个按键S2至S9分别依次接
19、在P1.0至P1.7口线; ;*;键功能程序;S2GN (S2键键功能程序) 1号选手;S3GN (S3键键功能程序) 2号选手;S4GN (S4键键功能程序)3号选手;S5GN (S5键键功能程序) 4号选手;S6GN (S6键键功能程序) 开始键;S7GN (S7键键功能程序) 答完键;S8GN (S8键键功能程序)复位键;*;常数表格;DISBH(系统提示符P.字型代码序号表);TAB(共阳数码管字型代码表);*; ;子程序;KEY(键扫描子程序);KEYCHULI(P1口数据处理子程序);DISP(数码管显示子程序);DL(1毫秒延时子程序);*;中断服务程序;TC0(50ms定时器0
20、以中断方式1进行中断);*;数据存储器变量及常量单元定义;;40H字节单元: 十六进制数 存放定时50ms循环次数;20H字节单元: 十六进制数 键值;21H.0: 开始键按下标志位;21H.1: 抢答键按下标志位;21H.2: 超时标志位 ;78H-7FH字节单元: 显示缓存区;30H字节单元: 十进制数 秒个位数 非压缩BCD码;31H字节单元: 十进制数 秒十位数 非压缩BCD码;32H字节单元: 十进制数 秒值 压缩BCD码;*;伪指令定义区 SECGE EQU 30H SECSHI EQU 31H SHU EQU 32H;*; ;系统起始程序区 ORG 0000H START: LJ
21、MP MAIN ORG 000BH LJMP TC0;*;系统监控程序区 ORG 0030H MAIN: MOV SP, #7FH ;确立堆栈区 MOV PSW, #00H MOV R0, #20H ;RAM区首地址 MOV R7, #96 ;RAM区单元个数 ML: MOV R0, #00H INC R0 DJNZ R7, ML MOV TMOD, #01H ;定时器初始化,定时器0以工作方式1工作 MOV TH0, #3CH MOV TL0, #0B0H SETB EA ;开启总中断 SETB ET0 ;开启定时器0分中断;*;显示系统提示符“P.”TSF: MOV DPTR, #DISB
22、H ;系统初始化后提示符“P.”字符代 MOV R5, #08H ;码表首地址 MOV R0, #78H DISPTSF: CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSF LCALL DISP;*;键盘控制指令 TT: LCALL DISP ;调用显示程序 LCALL KEY JB 20H.0, S2GN ;1号选手 JB 20H.1, S3GN1 ;2号选手 JB 20H.2, S4GN1 ;3号选手 JB 20H.3, S5GN1 ;4号选手 JB 20H.4, S6GN1 ;开始键 JB 20H.5, S7G
23、N1 ;答完键 JB 20H.6, S8GN1 ;复位键 LJMP TT ;无键按下,则返回TT,继续调显示、扫描按键 S3GN1: LJMP S3GN S4GN1: LJMP S4GN S5GN1: LJMP S5GN S6GN1: LJMP S6GN S7GN1: LJMP S7GN S8GN1: LJMP S8GN ;*;键功能区;S2键功能区 S2GN: JNB 21H.0, W20 ;若抢答违规则跳转到W20 SETB TR0 CLR P3.1 SETB 21H.1 LCALL DLL W23: MOV R2, #5 MOV R0, #78H MOV R0, #0 INC R0 MOV R0, #3 INC R0 W21: MOV R0, #16 INC R0 DJNZ R2, W21 MOV R0, #01H ;此段程序为更新显示缓冲区 SETB P3.1 W24: LCALL DISP LCALL KEY JB 20H.5, S7GN22 ;答完键 JB 20H.6, S8GN22 ;复位键 JB 21H.2, W25 LJMP W24 W20: MOV R2, #7 MOV R0, #78H W22: MOV R0, #16 INC R0 DJNZ R2, W22 MOV R0, #01H LJMP W26 W25: LCALL DI
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1