《课程设计论文基于AT89C51单片机的抢答器设计.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于AT89C51单片机的抢答器设计.doc(18页珍藏版)》请在三一办公上搜索。
1、广东第二师范学院抢答器课程设计报告 物理 系 09 级 BTEC 专业题目 抢答器课程设计 姓名 学号 指导教师 2011年 6月 23日 抢答器的设计31 引言32 设计任务和要求32.1 方案设计与论证42.2 单元电路设计与参数计算53总原理图及及主要模块的流程图83.1 总原理图及元器件清单103.2 主要流程图114 性能测试与分析115 结论与心得16参考文献16附录16致谢19抢答器的设计摘要:本设计中以AT89C51为基础,从而展开设计。AT89C51,按钮,蜂鸣器,数码管组合而成的抢答器,在设计中有一定的局部限制。关键字:AT89C5;按钮;数码管1 引言背景 AT89C51
2、是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本设计以AT89C51为处理器,外接,按钮,蜂鸣器,数码管组合而成抢答器。目的通过这次的课程设计,可以进一步提高同学的汇编语言的能力。提升同学对微机原理的了解。通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定的提高,同时也使学生通过动手进行硬件设计及程序设计从而提高解决实际问题的能力。2 设计任务和要求设计任务: 以AT89
3、C51为基础,实现达到抢答器的效果。设计要求:(1)设计中以AT89C51为处理芯片。(2)设计中出现按钮,数码管,蜂鸣器。(3)本设计可以在硬件仿真实现。(4) 实现抢答器效果(5)抢答器同时供3名选手比赛。(6)抢答器具有定时抢答功能,每一次抢答由主持人判断开始。2.1 方案设计与论证 方案一:利用数字电子电路的知识制作抢答器,电路采用6个数字集成电路,其中74LS573为D锁存器,74LS30为8输入的与非门,74LS00为两输入与非门,74LS147为10线-4线的编码器、CD4511为七段译码器、以及七段共阴数码管等组成。如图: 图2.11数字抢答器 方案二:基于AT89C51单片机
4、来制作抢答器,其最大的好处就是处理更快,准确度更高。所以根据课题要求为了得到更好的准确度,所以决定选择方案二作为本设计的方案。如图所示: 图2.12 3路抢答器 2.2 单元电路设计与参数计算(1) 按键单元 按键部分,我采用了防抖的功能。该功能实现,当发现有按键按下后,采用软件延时10ms,然后再进行扫描确认。电路图如下所示: 图2.21 按键当按下开始键:抢答正式开始。数码管会显示字型“-”。然后当按下一号键:数码管会显示数字“1”。当按下二号键:数码管会显示数字“2”。当按下三号键:数码管会显现数字“3”。(2) 显示单元 该单元,我采用了7SEG-MPX4-CA LED 数码管。该数码
5、管是共阳极的数码管。电路图如下: 图2.22 显示当按下开始键:抢答正式开始。数码管会显示字型“-”。然后当按下一号键:数码管会显示数字“1”。当按下二号键:数码管会显示数字“2”。当按下三号键:数码管会显现数字“3”。(3) 报警单元该单元,我直接用AT89C51驱动蜂鸣器。电路图如下: 图 2.23 蜂鸣器当按下开始键:抢答正式开始。数码管会显示字型“-”。蜂鸣器发出“嘟嘟”的声音。然后当按下一号键:数码管会显示数字“1”。蜂鸣器发出“嘟嘟”的声音。当按下二号键:数码管会显示数字“2”。蜂鸣器发出“嘟嘟”的声音。当按下三号键:数码管会显现数字“3”。蜂鸣器发出“嘟嘟”的声音。2.3 设计框
6、图、用户界面 图2.24 总原理框图3 总原理图及及主要模块的流程图硬件电路原理图如下 图3.1系统硬件原理图如图所示:该系统电路分为三个功能模块。分别为:按键模块,显示模块,报警模块。(1)按键模块采用4个BUTTON按键作为抢答器的选择按键,为独立式键盘。功能与作用:当按下开始键:抢答正式开始。然后抢答当按下一号键:选手一抢到回答权。当按下二号键:选手二抢到回答权。当按下三号键:选手三抢到回答权。(2)显示模块采用一个八段的数码管显示,它是共阳极型的由低电平点亮数码管显示器。显示由P0.0-P0.8口输出的数字代码,段码采用同相驱动,输入端加低电平,选中的数码段被点亮。功能与作用:当按下开
7、始键:抢答正式开始。数码管会显示字型“-” 然后抢答当按下一号键:数码管会显示数字“1”。当按下二号键:数码管会显示数字“2”。当按下三号键:数码管会显现数字“3”。显示模块流程图如下: 图3.2 数码管显示流程图(3)报警模块 80C51芯片外接有蜂鸣电路,用来发出报警声。功能与作用:当按下开始键:抢答正式开始。数码管会显示字型“-”。蜂鸣器发出“嘟嘟”的声音。然后抢答当按下一号键:数码管会显示数字“1”。蜂鸣器发出“嘟嘟”的声音。当按下二号键:数码管会显示数字“2”。蜂鸣器发出“嘟嘟”的声音。当按下三号键:数码管会显现数字“3”。蜂鸣器发出“嘟嘟”的声音。报警模块流程图如下: 图 3.3
8、报警流程图3.1 总原理图及元器件清单表 2.1 原器件清单名 称数 量备 注80C51芯片1数码管2共阳极八段LED灯8电阻18560电阻281K电阻34500蜂鸣器1RN11BUTTON按键开关43.2 主要流程图主要流程图: 图3.2 主要流程图4 性能测试与分析 在软件上仿真结果如下:(1)主持人开始:图4.1 主持人叫开始主持人叫开始时,蜂鸣器响起,显示管出现字型“”。(2)1号抢答:图4.2 1号抢答1号抢到回答权,蜂鸣器响起,显示管出现数字“1”。(3)2号抢答:图4.3 2号抢答2号抢到回答权,蜂鸣器响起,显示管出现数字“2”。(3)3号抢答图4.4 3号抢答3号抢到回答权,蜂
9、鸣器响起,显示管出现数字“3”。在硬件上仿真结果如下:(1) 主持人开始:图4.5 主持人开始(2)1号抢答图4.6 1 号抢答(3)2 号抢答图4.7 2号抢答(3) 3 号抢答图4.8 3号抢答5 结论与心得本次我设计的抢答器已经能够完成任务,达到了设计要求。这次的设计在键盘防抖上有一定的巧妙之处。虽然最后我设计的抢答器能完成任务,但仍存在很多的不足。例如,我所设计的抢答器统计选手的得分情况,因此还需多加改进。参考文献1 梁炳东.单片机原理与应用M.北京:人民邮电出版社,20092 李学礼. 基于Proteus的851单片机实例教程J .北京:电子工业出版社,2008附录ORG 00HST
10、ART: MOV R2, #100 MOV P2,#0FFH CLR P2.3 AN3:SETB P3.5JBP3.5, START ; P3.5=1表示按键K4没按下,转处理其他按键。 LCALLDELAY1; P3.5=0表示按键按下,延时10ms(消除抖动)SETBP3.5 JBP3.5, START ; 再测,P3.5=1是按键抖动,转处理其他按键。 LCALLKEY_SW4 ; K0键的处理子程序 LA3:SETBP3.5; 键释放处理。JNBP3.5, LA3 ; P3.5=0表示按键41没松开,转键释放处理。 LCALLDELAY1; P3.5=1表示按键松开,延时10ms(消除
11、抖动)SETBP3.5 JNBP3.5, LA3 ; 再测,P3.5=0是按键抖动,转键释放处理。LJMPMAINMAIN: MOV P0,#0FFHAN0:SETB P3.2JBP3.2, AN1 ; P3.2=1表示按键K1没按下,转处理其他按键。 LCALLDELAY1; P3.2=0表示按键按下,延时10ms(消除抖动)SETBP3.2 JBP3.2, AN1 ; 再测,P3.2=1是按键抖动,转处理其他按键。 LCALLKEY_SW1 ; K0键的处理子程序 LA:SETBP3.2; 键释放处理。JNBP3.2, LA ; P3.2=0表示按键K1没松开,转键释放处理。 LCALLD
12、ELAY1; P3.2=1表示按键松开,延时10ms(消除抖动)SETBP3.2 JNBP3.2, LA ; 再测,P3.2=0是按键抖动,转键释放处理。LJMPSTARTAN1:SETB P3.3JBP3.3, AN2 ; P3.3=1表示按键K2没按下,转处理其他按键。 LCALLDELAY1; P3.3=0表示按键按下,延时10ms(消除抖动)SETBP3.3 JBP3.3, AN2 ; 再测,P3.3=1是按键抖动,转处理其他按键。 LCALLKEY_SW2 ; K0键的处理子程序 LA1:SETBP3.3; 键释放处理。JNBP3.3, LA1 ; P3.3=0表示按键K2没松开,转
13、键释放处理。 LCALLDELAY1; P3.3=1表示按键松开,延时10ms(消除抖动)SETBP3.3 JNBP3.3, LA1 ; 再测,P3.3=0是按键抖动,转键释放处理。LJMPSTARTAN2:SETB P3.4JBP3.4, AN0 ; P3.4=1表示按键K3没按下,转处理其他按键。 LCALLDELAY1; P3.4=0表示按键按下,延时10ms(消除抖动)SETBP3.4 JBP3.4, AN0 ; 再测,P3.4=1是按键抖动,转处理其他按键。 LCALLKEY_SW3 ; K0键的处理子程序LA2:SETBP3.4; 键释放处理。JNBP3.4, LA2 ;P3.4=
14、0表示按键K3没松开,转键释放处理。 LCALLDELAY1; P3.4=1表示按键松开,延时10ms(消除抖动)SETBP3.4 JNBP3.4, LA2 ; 再测,P3.4=0是按键抖动,转键释放处理。LJMPSTART;=KEY_SW1: MOVP0,#0FFH MOVP2,#0FFH LCALL SPEAKE MOV P2,#0FH MOV P0,#0EBH LCALL DELAY2 LJMP STARTKEY_SW2 : MOVP0,#00H MOVP2,#0FFH LCALL SPEAKE MOV P2,#0FH MOV P0,#32H LCALL DELAY2 LJMP STAR
15、TKEY_SW3: MOVP0,#00H MOVP2,#0FFH LCALL SPEAKE MOV P2,#0FH MOV P0,#0A2H LCALL DELAY2 LJMP STARTKEY_SW4: MOVP0,#0FFH MOVP2,#0FFH LCALL SPEAKE MOV P2,#0FH MOV P0,#0F7H LCALL DELAY2 LJMP MAIN;=SPEAKE:B1000: CLR P2.3 LCALL DL0D5ms SETB P2.3 LCALL DL0D5ms DJNZ R2, B1000B500: CLR P2.3 LCALL DL0D5ms LCALL D
16、L0D5ms SETB P2.3 LCALL DL0D5ms LCALL DL0D5ms DJNZ R2, B500 RET;=DL0D5ms: MOV R7, #200DL: DJNZ R7, DL RET DELAY1: MOVR4,#2 RETDELAY2:MOV R5,#200 D11:MOVR6,#100; D21:MOVR7,#248;DJNZR7,$;DJNZR6,D21;DJNZR5,D11;RETEND致谢在这里我要感谢姚老师这段时间对我的悉心教诲,这段时间我确实学到了很多实用的知识,同时经过不断的实践操作,我也加深了对理论的理解。在学习和实践过程中我要感谢姚老师和同学对我提出的问题耐心的讲解,也很感谢他们对我的帮助!