单片机抢答器课程设计_第1页
单片机抢答器课程设计_第2页
单片机抢答器课程设计_第3页
单片机抢答器课程设计_第4页
单片机抢答器课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 系统总体设计方案1.1 设计课题任务设计一个具有特定功能的抢答器。1.2 功能要求说明(1) 该抢答器上电或按键复位后能自动显示系统提示符“P.”。(2) 主持人按下开始按钮后,抢答开始并限定时间30S。(3) 10S内无人抢答,蜂鸣器发出音响。(4) 主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用。(5) 正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效。(6) 正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,数码管显示违规台号。蜂鸣器发出音响。(7) 各台数字显示的消除,蜂鸣器

2、音响及违规指示灯的关断,都要通过主持人按复位按钮。1.3 总体方案介绍及工作原理抢答器的总体功能原理是以AT89S52单片机为主要的控制核心,通过外接8个独立式键盘作为控制信号源,1个四位一体数码管作为显示器件,蜂鸣器作为报警器件,单片机实时的去执行相应的功能。在数码管上显示出来,此时通过不同的按键来观看和调节各种数据。CPU控制原理图如图1-1所示。图1-1抢答器总体方框图2 硬件系统的设计2.1 系统各功能模块介绍2.1.1 AT89S52控制模块考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、数码管的显示控制,定时器应用等,我们选择了学习过的AT89S52系列单片机,具有反

3、应速度极快,工作效率特高的特点。2.1.2 键盘功能模块根据系统的基本的要求,基于时间的观看和设定等功能,采用由八个键构成的独立式键盘分别接在AT89S52单片机的P1.0-P1.7,非常的方便,在软件的设计时带来了极大的方便,使程序简易明了,可读性强。本次设计中,八个键分别定义为开始键、一号键、二号键、三号键答题键,对应着开始答题,各个选手抢答,答题完毕各键功能单一,互不影响,操作起来十分的清晰与方便。2.1.3 时钟电路模块在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。电容器C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型

4、值为30pF。外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。2.1.4 复位电路模块单片机电路共有上电复位、按键电平复位和按键脉冲复位三种,本次设计中采用按键电平复位,它是通过使复位端经电阻与Vcc电源接通而实现的。2.1.5 显示电路模块键盘、显示是单片机应用系统不可缺少的输入和输出设备, 是实现人机对话的纽带。键盘/显示器接口的设计,它不但要满足功能技术要求而且可靠性也要高。随系统不同要求就会不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发

5、,综合考虑软、硬件特点。在应用系统设计中,一般都是把键盘和显示器放在一起考虑的,本次设计中,考虑到只需六个选手进行抢答,一个单片机的I/O口线就够,所以采用独立式键盘正好合适,既合题意,也不浪费。而显示电路则由四位一体的共阳极数码管构成,它负责显示经单片机处理后的选手抢答信息及倒计时信息。2.1.4 定时发声模块定时发生模块主要由一个蜂鸣器来实现,到了警报时间则接通蜂鸣器实现报警功能。2.2 系统电路图总原理图、PCB图、元器件布局图见附录(1)2.3 系统的元器件清单 本系统中所用到的元件如表2-1所示。表2-1 系统元器件表器件型号数量器件型号数量单片机AT89S521个按键普通9个晶振1

6、2MHZ1 个开关6脚双路1个电容22F,33pF1个,2个 数码管 LD5461BS1个电阻普通若干下载接口10针接口1个二极管普通2个电源线普通1根蜂鸣器脉冲式1个单排针普通若干3 软件系统的设计3.1 使用单片机资源介绍AT89S52的P0,P1,P2,P3口作为输入输出口XTAL1、XTAL2:晶振输入 RST: 复位输入片内资源主要为:定时器/计数器T1,定时器中断1,通用寄存器。专用寄存器A、B、IE、P0、P1、P2、P3、TCON,位寻址单元30H、31H、36H。 3.2 软件系统各功能模块介绍3.2.1 独立式键盘模块独立式键盘软件设计通过在主程序中调用子程序KEY去执行键

7、盘扫描和调用子程序ANKEY去执行相应的功能 ,单片机P1口在复位后保持高电平,当键按下相应口线为低电平,此时CPU做初期判断,之后延时12ms,确定为按键后等待键松,之后执行子程序。达到通过键功能程序的分支执行相应的程序段,完成对应的操作。3.2.2 数码管显示模块数码管显示是通过调用子程序DISP来实现的,由于数码管的显示要求有实时性,所以在执行其他的程序的时候依然要经常调用显示子程序DISP。数码管的段控由CPU改变P2口相应位电平来实现,为实现不同的显示功能,设置了不同的显示缓冲单元,通过控制标志位控制。数码管的位控由CPU改变P0口相应位电平来实现,基于人的视觉延迟性,通过从右到左的

8、循环保证所有数码管都被点亮。3.2.3 报警模块在软件的设计中报警提示模块是通过驱动蜂鸣器产生的声音来告诉抢答时间是否已到,抢答时间到通过改变P3.1为低电平使蜂鸣器响起。3.3 软件系统程序流程框图软件系统的总体流程框图如图3-1,键扫、显示程序、中断服务程序、倒计时程序流程框图分别如图3-2、图3-3、图3-4、图3-5所示。图3-1抢答器总体流程框图图3-2抢答器键扫流程框图 图3-3抢答器显示流程框图 图3-4抢答器中断服务程序流程框图图3-5抢答器倒计时程序流程框图3.4 软件系统的程序 软件系统的程序如附录(2)4 系统的仿真分析及结论4.1 系统设计的使用说明在Proteus上画

9、好原理图,检查无误后再通电,主要在数码管上显示P. 。按下开始键后进入抢答倒计时30s,倒计时期间如果有抢答按键按下择显示抢答选手的号码并进入倒计时30s,如果30s没有答题完毕即没有按下答完键择蜂鸣器响报警。同样抢答开始后没有人抢答计时完毕后同样报警。如果没有按下开始抢答键选手就进行抢答择显示抢答选手号码并报警。报警后需要按复位键才能重新开始。4.2 系统设计的仿真结果上电或复位后显示P.、按下开始键后、正常抢答、非正常抢答、抢答倒计时完毕的结果分别如图4-1、4-2、4-3、4-4、4-5所示。图4-1抢答器显示P.仿真图图4-2抢答器按下开始键后仿真图图4-3抢答器正常抢答仿真图图4-4

10、抢答器非正常抢答仿真图图4-5抢答器抢答倒计时完了的仿真图4.3 系统的误差分析系统上电硬件调试的过程中,有时按键不灵主要是由于没有新做电路板用的是以前的电路板由于时间的问题板子已近老化所以按键不够灵敏,还有倒计时不是很准确并不是按照一秒一秒倒计时这主要是程序运行时各条语句的运行需要时间,还有就是定时的时候没有考虑延时程序所占的时间。4.4 设计体会电子技术快速发展的今天作为电子信息工程系的学生我们更要掌握一些基本的电力电子技术。通过此次的单片机的课程设计我更为熟练的掌握了各种电路的编辑软件,单片机程序编写软件。此次的单片机课程设计的过程苦乐并存,通过此次的课程设计我更加明白了实践和理论的差距

11、,此次的课程设计我一开始自以为C语言简单准备用C语言编写程序,但实践的检验表明我的C语言没有过关最后就只能用汇编语言编写但同样在汇编编写的过程中也或多或少的出现了不少的问题但通过依次的调试终于解决了问题完成了课程设计的要求。4.5 教学建议老师布置作业要求同学购买元器件独立自主的完成单片机实物,这能很好的加强学生的实践动手能力这点希望老师能够在以后的的教学过程中保持下去。还有老师对待学生的严格要求也是老师教学的特点,虽然一开始会觉得老师不近人情但事后会发现没有老师的严格你会学到什么呢?什么也学不到比如像我这种到了大学后人懒散的学生没有一个严格的老师大学我学不到什么所以希望老师能在以后一如既往的

12、严格对待您的学生我相信大学毕业后他们会感谢您的严格的。对于老师的教学中有一点我想提及一下那就是老师在上课时会不时的提及一些社会经历、生活的感悟等等这些讲解能够开阔我的的眼界,也能让我们学会更好的做人做事,但是老师每每一开讲就会忘了时间结果一下就下课了也就耽误了教学的计划,所以建议老师以后的教学中能够很好的控制时间。参考文献1马忠梅.单片机C程序设计M,北京:北京航空航天大学出版社,2007 MaZhongMei. Microcontroller C program design M, Beijing: Peking University press, 2007 aeronautics 2李广弟

13、.单片机基础M,北京:北京航空航天大学出版社,2007 Based LiAnDi. Microcontroller M, Beijing: Peking University press, 2007 aeronautics 3张洪润,兰清华.单片机应用技术教程M,北京:清华大学出版社,1997ZhangHongRun, LanQingHua. Microcomputer application technique tutorials M, Beijing: tsinghua university press, 1997 4 陆应华,王照平,王理.电子系统设计教程. 北京:国防工业出版社,200

14、5.LiuYingHua, WangZhaoPing, WangLi. Electronic system design tutorial. Beijing: defense industry press, 2005. 致 谢此次单片机课程设计的顺利完成首先要感谢王老师,是他教会我们单片机、数码管等等元件的使用,教会我们单片机的编程和调试。还有此次的课程设计我要感谢寝室众人对我的帮助。附 录(1)图1总原理图图2 PCB板底层图图3 PCB板顶层图图4元器件布局图附 录(2);*;项目名称:抢答器的设计;设计者:刘永;设计日期:2010年12月26日;*;堆栈栈底60H;*;LED数码管显示器

15、设定;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);*;独立式键盘设定;8个按键S2至S9分别依次接在P1.0至P1.7口线; ;* ;子程序;DISPLAY(数码管显示子程序);DELAY(1毫秒延时子程序,晶振频率12MHz);*;常数表格;TAB(共阳数码管字型代码表);*;中断服务程序;T1INT定时计数器中断服务程序;*;键功能程序;正常抢答功能程序TURE非正常抢答功能程序ERROR;*;伪指令定义区 OK EQU 20H; 抢答开始标

16、志位;*;系统起始程序区 ORG 0000H START:AJMP MAIN ORG 001BH LJMP T1INT;* ;系统监控程序区 ORG 0040HMAIN: MOV SP, #60H MOV R1, #30; 初设抢答时间为30s MOV R2, #30; 初设答题时间为30s MOV TMOD, #10H; 设置定时器/模式1 MOV TH1, #3CH MOV TL1, #0B0H; 5 0ms为一次溢出中断 SETB EA ; 中断总允许 CLR OK MOV P3, #0ffhSTT: MOV R5, #10 MOV R4, #10 MOV R3, #11MOV R7,

17、#10LCALL DISPLAY; 未开始抢答时候显示P. LCALL KEY0 LCALL NEXT LJMP STT;*;开始键扫程序KEY0: JB P1.0, NEXT2; 判断是否按下“开始键” LCALL DELAY JB P1.0,NEXT2; 去抖动后,如果"开始键"按下则向下执行 MOV A,R1 ; R1中值为抢答允许时间 MOV R6,A; 送R1到R6,因为R1中保存了抢答时间 SETB OK; 抢答标志位 MOV R3,#0AH; 抢答只显示计时,灭号数 LJMP COUNT; 进入倒计时程序, NEXT2:RET;*;非法抢答键扫程序NEXT:

18、JNB P1.1,TO2 JNB P1.2,TO3 JNB P1.3,TO4 JNB P1.4,TO5 JNB P1.5,TO6 RET;*;非法键扫跳转程序TO2:LJMP FALSE2TO3:LJMP FALSE3TO4:LJMP FALSE4TO5:LJMP FALSE5TO6:LJMP FALSE6TO7:LJMP FALSE7TO8:LJMP FALSE8;*;非法抢答跳转处理FALSE2: MOV R7, #0CHMOV R3,#01HLJMP ERRORFALSE3: MOV R7, #0CHMOV R3,#02H LJMP ERRORFALSE4: MOV R7, #0CHMO

19、V R3,#03H LJMP ERRORFALSE5: MOV R7, #0CHMOV R3,#04H LJMP ERRORFALSE6: MOV R7, #0CHMOV R3,#05H LJMP ERROR;*;倒计时程序(抢答倒计时和回答倒计时都是此程序)COUNT: MOV R0,#00H; 重置定时器中断次数 MOV TH1,#3CH MOV TL1, #0B0HSETB ET1 SETB TR1 ;重置定时器RECOUNT:MOV A,R6; R6保存了倒计时的时间 MOV B,#0AHSETB P3.1 DIV AB ;除十分出个位/十位 MOV 30H, A ;十位存于(30H)

20、 MOV 31H, B; 个位存于(31H) MOV R5,30H; 取十位 MOV R4,31H; 个位 MOV A,R6 SUBB A,#0BH JNB P1.6, QUIT JNC GOON ;大于10跳到GOON,小于等于10 MOV A,R0 CJNE A,#0AH,FULL LCALL BARK AJMP CHECKFULL: CJNE A,#14H,CHECK ;14H=20中断20次后,达一秒 MOV A,R6 JZ OUIT2; 计时完毕 MOV R0,#00H DEC R6 ;一秒标志减1 AJMP CHECKGOON: MOV A,R0 CJNE A,#14H,CHECK

21、 DEC R6 ;计时一秒R6自动减1 MOV R0,#00HCHECK: JB OK, TT JNB P1.7,QUIT ;如按下答完键退TT: ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答 AJMP RECOUNTACCOUT: JNB P1.1,TO_2 JNB P1.2,TO_3 JNB P1.3,TO_4 JNB P1.4,TO_5 JNB P1.5,TO_6 AJMP RECOUNTTO_2:LJMP TRUE1TO_3:LJMP TRUE2TO_4:LJMP TRUE3TO_5:LJMP TRUE4TO_6:LJMP TRUE5QUIT

22、: SETB P3.4SETB P3.5 CLR OK LJMP STARTOUIT2: JB OK, OUIT3 SETB P3.4 CLR P3.5 LCALL DISPLAY LCALL BARK LJMP OUIT2OUIT3: LJMP STT;* ;正常抢答处理程序TRUE1: MOV R7, #0CHLCALL GREEN ;抢答成功后绿灯亮 MOV A,R2 MOV R6,A; 抢答时间R2送R6 MOV R3,#01H CLR OK ;答题时不再查询抢答,锁定抢答标志位 LJMP COUNTTRUE2: MOV R7, #0CHLCALL GREEN MOV A,R2 MOV

23、 R6,A MOV R3,#02H CLR OK LJMP COUNTTRUE3:MOV R7, #0CHLCALL GREEN MOV A,R2 MOV R6,A MOV R3,#03H CLR OK LJMP COUNTTRUE4:MOV R7, #0CHLCALL GREEN MOV A,R2 MOV R6,A MOV R3,#04H CLR OK LJMP COUNTTRUE5: MOV R7, #0CHLCALL GREEN MOV A,R2 MOV R6,A MOV R3,#05H CLR OK LJMP COUNT TRUE6: MOV R7, #0CHLCALL GREEN MOV A,R2 MOV R6,A MOV R3,#06H CLR OK LJMP COUNT ;* ;非法抢答处理程序ERROR: SETB P3.4 ;亮红灯CLR P3.5 ;灭绿灯MOV R4, #00HMOV R5, #00HLCALL DISPLAY JNB P1.6, QUIT2 LJMP ERROR QUIT2:LJMP QUIT ;*;;显示子程序DISPLAY:MOV DPTR, #TAB1 MOV A,R3 ;R3:选手号 MOVC A,A+DPTR CLR P2.3 ;第一个数码管 (从左至右) MOV P0,A LC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论