《单片机课程设计报告模板.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告模板.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机与嵌入式系统作品设计报告题目:十六路数字抢答器 11微电子班作者:郝星元 7马孝宇 7沈文理 9完成日期:2013 年 12 月 20 日目录1 设计任务31.1设计任务32 设计方案32.1任务分析32.2方案设计33 系统硬件设计33.1 AT89C51单片机硬件电路33.2晶振复位及开始抢答电路43.3选手抢答键(矩阵式键盘)43.4显示器与显示驱动电路43.5蜂鸣器音频输出电路74 系统软件设计64.1程序设计64.2 主程序设计7 4.3系统流程图. 75 仿真及性能分析95.1 仿真电路设计95.2 仿真测试106 心得体会12参考文献12附录1 系统原理图13附录2 原器件
2、清单13附录3 程序清单.141 设计任务1.1设计任务16名选手可以在主持人宣布“开始抢答”时可以进行抢答,先按到按键的显示选手编号,并蜂鸣。2设计方案2.1任务分析采用单片机最小系统,用查询式键盘进行抢答。采用动态显示组号。主持人按下开始抢答键才可以抢答。主持人没有按下开始抢答按纽(P3.2),有人抢答则抢答违规,报警并显示组号,主持人按下开始抢答开关重新抢答。主持人按下开始抢答按纽(P3.2),蜂鸣响声提示,且数码管10秒倒计时(10秒内抢答有效),有人在10秒抢答,蜂鸣器响声提示并显示他的组号,3秒开始20秒倒计时(20秒内必须回答完问题)。20秒后主持人按下复位开关为下一题的抢答做准
3、备。单片机最小系统、抢答按键模块(四位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、蜂鸣器音频输出模块。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理, 输出控制信号,单片机控制的智能抢答器。2.2方案设计 采用89C51、矩阵式键盘、晶振复位、数码管显示器、蜂鸣器等,配以合适的程序实现16位抢答器。3 系统硬件设计3.1 AT89C51单片机硬件电路单片机(SCM)是单片微型计算机(Single Chip Microcomputer)的简称。它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成
4、在一块芯片上,构成一个完整的微型计算机。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出适配器简单,功能较低2。目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的ROM,并且ROM可以直接用编程器来擦写,使用起来比较方便。本设计使用到的元器件包括:AT89C51芯片、数码LED显示器、七段LED数码管的译码。其中AT89C51是系统的核心,它主要负责控制各个部分的协调工作。在其外围接上复位电路,上拉电阻,数码管,按钮以及振荡器,p1.0-p1.7为抢答输入键接口,数码管段选P0口,
5、位选P2口,蜂鸣器输出为P3.0口。3.2晶振复位及开始抢答电路晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作,复位电路是单片机初始化,使单片机重新开始执行程序。当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。图3.1 复位及开始抢答电路3.3选手抢答键(矩阵式键盘)89C51的P1口做一个4*4的行列式键盘。P1.0至P1.3轮流输出低电平在软件查询P1.4至P1.7的电平变化来输入组号。给每一个选手编号1至16,当选手按下按钮时,电平变化从P1口输入,经单片机处理后从P0输出由数码管显示
6、抢答者编号。图3.2 选手抢答电路3.4显示器与显示驱动电路数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管。而数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划的同名端连在一起,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。本次设计电路包括显示和驱动,显示采用数码管,驱动用三极管PNP。数码管要显示抢答违规者编号
7、、抢答10秒倒计时、正常抢答者编号和回答问题时间20秒倒计时,数码管采用动态显示。驱动电路PNP发射极接+5V电压,当基极为低电平是集电极为高电平则能驱动数码管使其显示数字。因为PNP是模拟器件而数码管为数字器件,PNP的集电极如果不接一个较大的电阻显示就会出问题。所以在PNP的集电极接了一个10千欧的电阻。图3.3 显示器与显示驱动电路3.5蜂鸣器音频输出电路蜂鸣器是一种电子电路中常用的发声器件,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。提供蜂鸣器发声所需要较高的电流,单片机的I/O口驱动能力有限,而我们知道三极管有电流放大的作用,在这里就是利用三极管放大电流来使蜂鸣器获得足够的驱动电流。蜂鸣器
8、音频输出电路的功能是用来报警,当遇到报警信号时,发出蜂鸣声,以此来提醒操作者。本电路通过控制不同频率的矩形脉冲来控制蜂鸣器发声。此次课程设计中只需要一些简单的提示声音,如有抢答违规,开始抢答,抢答时间结束和回答问题时间到的提示声音。本课程设计从P3.0口输出一个矩形脉冲来控制驱动器PNP集电极的高低电平时间来控制蜂鸣器的声音。图3.4 蜂鸣器音频输出电路图4 系统软件设计4.1 程序设计程序设计是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。在单片机控制系统中,大体上可分为数据
9、处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出。为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。模块程序设计法的主要优点是:(1)单个模块比起一个完整的程序易编写、调试及修改。(2)程序的易读性好。(3)程序的修改可局部化。(4)模块可以共存
10、,一个模块可以被多个任务在不同条件下调用。(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序键盘子程序、显示驱动子程序构成。4.2 主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人按开始键发布抢答命令,若在主持人未按开始键之前,有选手提前答题,则为违规抢答,蜂鸣器会发出警告声,并在显示器上显示犯规的选手编号。当有选手抢答成功,则程序打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序,其他选手在此之后按键无效。当在
11、扫描到有人按下了抢答键,马上关闭T0、调用显示程序、封锁键盘。4.3系统流程图4.3.1硬件复位流程图开 始初始化读键盘是否有键按下调用显示抢答违规并报警子程序中断条件是否满足进入中断程序NNYY图4.1硬件复位流程图4.3.2系统程序流程图NY开中断并响声提示设定定时器初值并启动定时器10秒抢答倒计时开始显示调用读键子程序作为延时程序是否有按键按下10到时中断并返回调用抢答者获得回答的子程序 图 4.2 系统程序流程图4.3.3显示抢答违规流程图开始报警提示两次显示违者编号图4.3显示抢答违规流程图4.3.4抢答成功流程图开始响声提示设定定时器初值并启动显示抢答者且3秒后20秒倒计时20秒回
12、答问题时间到并响声提示RET图4.4抢答成功流程图5仿真与性能分析5.1 仿真电路设计将单片机最小系统、显示模块、抢答开关模块和音频输出模块进行PROTEUS设计。打开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所需要的元器件,放置元器件、放置电源和地,再点菜单栏工具下拉的电气规则检查,当规则检查出现:“NETLIST GENERATED OK NO ERC ERRORD FOUND”,表示通过检查,电路设计完成。5.2 仿真测试 5.2.1 开始抢答仿真主持人按开始按钮后,进入抢答10秒倒计时,仿真结果如图5.1。图5.1 10秒抢答倒计时开始5.2.2抢答犯规仿真 若在主
13、持人还未按开始按钮时,就抢答则为抢答犯规。4号选手在主持人未宣布开始时就抢答,从而造成犯规,犯规仿真如图5.2。图5.2 4号选手犯规抢答4.3.3抢答成功仿真主持人按开始按钮后,10秒内抢答则为成功抢答。仿真图为15号选手成功抢答,抢答后进入20秒倒计时答题时间,抢答成功仿真如图5.3。图5.3 15号选手成功抢答4.4 仿真结果分析通过对电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上可以很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。当仿真开始运行时,各个模块处于初始状态。此时显示器并无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下
14、抢答键,则蜂鸣器会发出报警声,并且在数码管上显示犯规的选手的编号。主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示10秒倒计时,同时蜂鸣器发出声音提醒选手抢答开始了。选手抢答成功,同时也进入到倒计时20秒答题时间。从仿真的测试结果来看,此设计还是能比较好的实现预期的目标。6心得体会我想说:为完成这次课程设计我们确实很辛苦,但苦中仍有乐,和同学们相互帮助,当蜂鸣器响了起来是对我这段日子以来最好的告慰。而且对于论文的总体构思也有了很多经验,相信自己经过这一次的训练与学习,对于今后的毕业论文会有更多帮助。这次课程设计让我充分理解了89C51芯片的工作原理,知道了抢答器的硬件和软件的实现过程
15、,并且通过自己动手编写程序来控制抢答器的工作,我感到非常有成就感,也锻炼了我的编程能力。在刚开始编程的时候,我感到很茫然,不知道怎么样下手,但是通过自己的仔细的分析和找资料,在认真分析了原来已有的代码后,和应有的硬件后,经过多次调试和测试终于成功参考文献1 郭天祥.新概念51单片机C语言教程-入门、提高、开发、拓展全攻略.电子工业出版社.2 李泉溪. 单片机原理与应用实例仿真.北京航天航空大学出版社 2009年3 江世明. 基于Proteus的单片机应用技术. 电子工业出版社 2008年4 喻宗泉. 单片机原理与应用技术.西安电子科技大学出版社 2005年5 万光毅. 单片机实验与实践教程.
16、北京航天航空大学出版社 2003年附录1 系统原理图系统电路图如下:附录2 系统PCB图附录3 程序清单#include#define unit unsigned 附录2 原器件清单AT89C51芯片一块11.0592晶振一个12864液晶显示屏一块蜂鸣器一个PNP三极管5个排阻1个500电阻5个10K电阻5个1K电阻2个1uF电容2个1uF电解电容一个按键18个附录3 程序清单ORG 0000H LJMP MAIN ORG 0013H LJMP ESS1 ORG 0100HMAIN:SETB EA SETB EX1 SETB IT1 ;外部中断1初始化 L16:MOV P1,#0FFH MO
17、V 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
18、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 CLR P1.3 INC R2 JB P1.4,L12 LCALL DE0 L12:INC R2 JB P1.5,L13 LCALL DE0 L13:INC R2 JB P1.6,L14 LCALL DE0 L14:INC R2 JB P1.7,L15 LCALL DE0 L15:LJMP L16 ;读行列式键盘
19、 ESS1:MOV 70H,#30D ;外部中断1 MOV R7,#0CH CLR P3.0 S2:LCALL DELAY DJNZ 70H,S2 SETB P3.0 ;蜂鸣器提示开始抢答 MOV TMOD,#B 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 LCALL DELAY1 SETB P2.4 MOV A,B MOVC A,A+DP
20、TR MOV 54H,A CLR P2.5 MOVC A,A+DPTR MOV 54H,A CLR P2.5 MOV P0,54H LCALL DELAY1 SETB P2.5 L18:JNB TF1,L18 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 ;抢答倒计时时间到声音提示
21、D5:RETI DE0:MOV DPTR,#TAB ;抢答违规报警并显示抢答违规组号 MOV A,R2 MOV B,#0A 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 DELAYDELAY1:MOV P1,#0FFH ;正常抢答读键 W0:INC R2 JB P1.5,W1 LCALL DE1 W1:INC R2
22、 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 L
23、CALL DE1 W10:INC R2 JB P1.7,W11 LCALL DE1 W11:SETB P1.2 CLR P1.3 INC R2 JB P1.4,W12 LCALL DE1 W12:INC R2 JB P1.5,W13 LCALL DE1 W13:INC R2 JB P1.6,W14 LCALL DE1 W14:INC R2 JB P1.7,W15 LCALL DE1 W15:DJNZ R4,W16 LJMP W18 W16:LJMP W17 W18:RET DE1:MOV P1,#0FFH ;抢答成功声音提示及回答问题时间20秒倒计时 MOV 70H,#20D CLR P3.0
24、 S3:LCALL DELAY DJNZ 70H,S3 SETB P3.0 SETB P2.0 SETB P2.1 MOV DPTR,#TAB MOV A,R2 MOV A,B MOVC A,A+DPTR MOV 57H,A MOV TMOD,#B 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 L
25、35L34: JC L35 LJMP L30L35: 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 RETDELAY:MOV 51H,#10D ;延时子程序 D0:MOV 52H,#248D D1:DJNZ 52H,D1 DJNZ 51H,D0 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82