资源描述
课程设计(论文)课程设计名称 单片机原理及其在电气和测控学科中的应用题 目 名 称 基于单片机的四路抢答器设计 系 别 专 业 电气工程系、 姓 名 学 号 指 导 教 师 课程设计(论文)任务书年级专业学生姓名学 号题目名称四路抢答器设计设计时间2011年6月13日2011年6月23日课程名称单片机原理及在电气测控学科中的应用课程编号121200105设计地点数字控制与PLC实验室创新实验室(214)(305)一、 课程设计(论文)目的课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象. 单片机课程设计是继电子技术、和单片机原理与应用课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。二、 已知技术参数和条件1、利用89C51系列单片机2、KEIL 软件;Wave软件;3、THKSCM-1型单片机实验系统三、 任务和要求要求实现功能:将其中3个按键定义为1-4号,1个按键用做清除与开始,第1位数码管用于计时,第2位数码管用于显示当前抢答者。当开始后第2位数码管闪烁显示"-",计时开始,等待抢答。当抢答后,停止计时,第2位数码管显示抢答者对应编号,按清除键清除。1、 要求设计出电气原理图;2、 要求设计出程序流程图;3、 要求设计出程序;4、 在实验室做出产品或仿真调试。注:1此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2此表1式3份,学生、指导教师、教研室各1份。四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1、单片机课程设计指导,中南大学出版社,张一斌等2009年9月2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月3、THKSCM-1型单片机实验系统实验指导书、KEIL 软件,WAVE 软件4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。五、进度安排2011年6月13日:收集和课程设计有关的资料,熟悉课题任务和要求2011年6月14日-15日:总体方案设计2011年6月16日-17日:硬件电路设计2011年6月18日-19日:软件设计2011年6月20日-22日:系统调试改进2011年6月23日:整理书写设计说明书2011年6月24日:答辩并考核六、教研室审批意见教研室主任(签字): 年 月 日七|、主管教学主任意见 主管主任(签字): 年 月 日八、备注指导教师(签名): 学生(签名): 课程设计(论文)评阅表学生姓名 学 号 系 电气工程系 专业班级 电气测控类一班 题目名称 四路抢答器设计 课程名称 单片机原理及应用 一、学生自我总结回顾起此次单片机课程设计,我仍感慨颇多,的确,在接近两星期的日子里,可以说得是苦多于甜,但是可以学到很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的很重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而、同时提高自己的实际动手能力和独立思考的能力,才能真正为社会服务。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,把以前所学过的知识重新温故。这次课程设计终于顺利完成了,是大家共同努力的结果。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢! 学生签名: 2011年 6月 23 日二、指导教师评定评分项目平时成绩论文答辩综合成绩权 重304030单项成绩指导教师评语: 指导教师(签名): 年 月 日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。目 录········摘要········· 1第一章 抢答器总体设计··································21.1 设计任务与要求···································2 1.2 方案设计与论证···································2第二章 单片机应用系统简介·····························3 2.1 单片机结构········································3 2.2 单片机的封装形式,引脚定义及功能··············3第三章 硬件电路设计·····································4 3.1 抢答器的电路图····································5 3.2 单元电路设计······································5 3.3 复位电路设计······································6 3.4 报警电路设计······································6 3.5 显示电路···········································7第四章 软件设计···········································74.1 系统主程序设计····································8 4.2 主程序清单·········································9第五章 调试及性能分析···································23第六章 设计总结及心得···································24附录:参考文献 摘要随着现代娱乐节目及其它游戏环节的需要,也为了完善节目的紧张气氛和观众的互动,就出现了多路抢答器。它是人们常用于各种需要抢答比赛时用的电路器材,是一名公正的裁判员。抢答器的出现给人们带来极大的方便,他能准确无误的从若干名参赛中确定出最先抢答者,并且有显示,声效等功能。 DigestWith modern entertainment programs and other game loop, also need in order to improve the program of tension and the audience interaction, appeared more road vies to answer first device. It is often used in all kinds of people in the game to vies to answer first circuit equipment, is a fair judge. The emergence of the vies to answer first people brings great convenience, he can accurate from several of participating in the first vies to answer first determine the, and have a show, sound effects, and other functions. 第一章 抢答器的总体设计1.1设计任务与要求 要求实现功能:将其中3个按键定义为14号,第一位数码管用于计时,第二位数码管用于显示当前抢答着。当开始后第二位数码管闪烁显示“-”,计时开始后,等待抢答。抢答后,停止计时,第二位数码管显示抢答者对应编号,按清除键清除。1. 设计出电气原理图;2. 设计出程序流程图;3. 设计出程序;4. 在实验室做出产品或仿真调试。1.2 设计方案与论证 方案:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制,信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便,便于控制和实现。具有灵活的可编程性,能方便对系统功能的扩张和更改。警报电路 AT89C51主持人开关鉴别电路 选手开关显示电路 图1.2 抢答器原理图 第二章 单片机应用系统简介 2.1单片机结构定时器0定时器1震荡器CPU4KBRAM中断控制可编程全双工串行口I/O编口64KB总线扩张控制数据存储器256BRAMSFR (1)80C51单片机的功能结构 图2.1 单片机内部结构图 2.2 单片机的封装形式,引脚定义及功能。(1)80C51封装 80C51系列单片机具有双列直插式和方形两种封装。(2) 80C51系列单片机引脚功能 VCC-工作电源 +5V GND-电源接地 ALE/PROG访问外部存储器时作为低8位地址锁存控制信号。 PSEN-外部程序读选通信号。 EA/VPP-访问程序存储器控制信号。 RET-复位信号 XTAL1-片内震荡电路输入端。 XTAL2-片内震荡电路输出端。 P0-P3输入输出端口。 图2.2 80C51双列直插式引脚分布图第三章 硬件电路设计3.1 抢答器的电路图如图3.1所示为电路图,其工作原理为:接通电源后主持人将开关拨到“清零”状态,抢答器处于禁止状态,定时器设定时间,主持人将开关置“开始”,宣布抢答开始时,定时器倒计时,扬声器发出响声。选手要在规定时间内完成抢答;优先判断,编号锁存,扬声器提示。 图3.1 抢答器电路图3.2 单元电路设计 3.2.1 抢答选手开关电路 图3.2所示,该图为各个选手抢答信号的输入装置,在通过单片机,选择有效信号,同时封锁 图3.2.1 抢答器选手开关电路3.2.2复位电路设计 外部中断的内部中断并存,单片机硬件复位端。 图3.2.2 复位端电路图3.2.3报警电路设计报警电路用于报警,但遇到信号时,发出报警,图3.2.3就是报警电路。选手在设定时间内抢答时,实现优先判断编号锁存等提示。图3.2.3 报警器电路图3.2.4 显示电路 显示电路用于显示抢答时间以及抢答信号,同时对犯规抢答组进行闪烁显示。其显示电路如图3.2.4所示。 图3.2.4 显示电路图 第四章 软件设计4.1 主程序系统结构图 如图4-1所示为总体原理框图。其工作原理为:接通电源后,主持人将开光FW拨到“清零”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开光置“开始”状态,宣布“开始”抢答器工作。定时器开始倒计时。选手在规定的15s定时时间内抢答时,抢答器完成:优先判断、编号显示、扬声器提示,倒计时显示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。图4-1 总体原理框图4.2 系统主程序 为了能过达到抢答的公平,公正,合理,应该在主持人发布抢答命令之前必须设定抢答时间,因而设定时间程序很重要。下面是抢答器主程序流程图4.2 图4.2 抢答器主程序流程图4.3 主程序清单 OK EQU 20H ;抢答开始标志位 RING EQU 22H ;响铃标志位 DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 000BH AJMP T0INT ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#15 ;初设抢答时间为15s MOV R2,#45 ;初设答题时间为45s mov 38h,#60 ;启用锦囊时间从60s倒计时 MOV TMOD,#11H ;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 ;允许二个中断,T0/T1 CLR OK CLR RING SETB TR1 SETB TR0 ;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=;=查询程序=;=START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示FFF JNB P3.3,SELSUB0 JNB P3.4,TZ3 ;倒计时调整 JB P3.0,NEXT ACALL DELAY JB P3.0,NEXT ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询 SETB EX0 ;开放INT0 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,在使用锦囊时用作判断是抢答倒计时还是回答倒计时 MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,TZ1 JNB P1.3,TZ2 AJMP STARTTZ1: AJMP FALSE3TZ2: AJMP FALSE4TZ3: AJMP SELSUB1 AJMP START;=;=非法抢答处理程序=;=FALSE1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP ERRORFALSE3: MOV R3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERROR;=;=SELSUB0(抢答时间R1调整程序)=;=SELSUB0: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间LED上显示R1 JNB P3.5,INC0 ;P3.5为+1s键,如按下跳到INCO JNB P3.6,DEC0 ;P3.6为-1s键,如按下跳到DECO JNB P3.1,BACK0 ;P3.1为确定键,如按下跳到BACKO AJMP SELSUB0INC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP SELSUB0ADD0: INC R1 ACALL DELAY1 AJMP SELSUB0DEC0: MOV A,R1 JZ SETR1 ;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP SELSUB0SETR1: MOV R1,#63H ACALL DELAY1 AJMP SELSUB0BACK0: AJMP START;=;=SELSUB1(回答时间R2调整程序)=;=SELSUB1: MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.5,INC1 JNB P3.6,DEC1 JNB P3.1,BACK1 AJMP SELSUB1INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP SELSUB1ADD1: INC R2 ACALL DELAY1 AJMP SELSUB1DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP SELSUB1SETR2: MOV R2,#63H ACALL DELAY1 AJMP SELSUB1BACK1: AJMP START;=;=启用锦囊程序=;=REPEAT:MOV A,38h ;使用锦囊时重新计时 MOV R6,A CLR RING ;当倒计时进入最后5秒的时候,启用锦囊能消除蜂鸣;=;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=;=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 CHECKFULL: CJNE A,#14H,CHECK ;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MOV A,R6 JZ QUIT ;计时完毕 MOV R0,#00H DEC R6 ;一秒标志减1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK ;如果1s向下运行,否者跳到查"停/显示" DEC R6 ;计时一秒R6自动减1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTTCHECKK:JNB P3.0,REPEAT ;判断是否使用锦囊NEXTT: ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT:MOV A,DATA0 JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TZ7 JNB ACC.3,TZ8 AJMP RECOUNT TZ7: AJMP TRUE3 TZ8: AJMP TRUE4 AJMP RECOUNT QUIT: CLR OK ;如果按下了"停止键"执行的程序 CLR RING AJMP START;=;=正常抢答处理程序=;=TRUE1: ACALL BARK MOV A,R2 MOV R6,A ;抢答时间R2送R6 MOV R3,#01H CLR OK ;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE2:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT;=;=犯规抢答程序=;=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯规号数暂存与(34H)HERE: MOV A,R0 CJNE A,#06H,FLASH ;0.3s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三灯全灭 AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1 ;下面是0.8s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H ;取回号数 MOV R5,#0BH MOV R4,#0BH ;显示FF和号数 AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=;=显示程序=;=DISPLAY:MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY RETDAT1: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;第一个为零,其他与上相同,因为十位如果为零显示熄灭;=;=加减时间延时(起到不会按下就加N个数)=;=DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET;=;=延时(显示和去抖动用到)=;=DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET;=;=发声程序=;=BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING ;按键发声 RET;=;=TO溢出中断(响铃程序)=;=T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.7 ;RING标志位为1时候P3.7口不断取反使喇叭发出一定频率的声音OUT: RETI;=;=T1溢出中断(计时程序)=;=T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI;=;=INTT0中断服务程序=;=INTT0:MOV DATA0,P1 CLR EX0 RETI END 第5章 调试及性能分析 1、具有清零装置和抢答控制,可由主持人操纵,避免有人在主持人说“开始”前提前抢答违反规则。2、具有定时功能,在15秒内无人抢答表示所有参赛选手获参赛队对本题弃权。3、15秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。4、如果想调节抢答时间或答题时间,按"抢答时间调节"键或"答题时间调节" 键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"-1s"键,时间LED上会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。 5、主持人按"抢答开始"键,会有提示音,并立刻进入抢答倒计时(预设15s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设45s回答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。倒数时间到小于5s会每秒响一下提示音。 6、如倒计时期间,主持人想停止倒计时可以随时按"停止"按键,系统会自动进入准备状态,等待主持人按"抢答开始"进入下次抢答计时。 7、如果主持人未按"抢答开始"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FF和犯规号数并响个不停,直到按下"停止" 键为止。第6章 课程设计小结及心得经过将近两个星期的不停地检测和修改,终于把最终的电路图和成品完成了。经过了这次课程设计,大大地提高了我的动手能力以及分析问题的能力,在老师热心的指导下,解决了很多问题,从中也学到了很多书本上所没有学到的知识。这次课程设计,让我学到了很多有用的知识和能力,这对以后的学习和工作都将是非常有益的。下面是对本设计的思路总结:1. 数字抢答器由主体电路与扩展电路组成。2. 优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。3. 通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。4. 经过布线、调试等工作后数字抢答器成形。 课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等,掌握了焊接的方法和技术,通过查询资料,也了解了收音机的构造及原理。我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。 附录:参考文献151单片机原理与实践/高卫东,辛友顺,韩彦征编著.北京航空
展开阅读全文