




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院毕业设计说明书(论文)PAGEPAGE1第页课程设计(论文)题目名称简易四路抢答器设计课程名称学生姓名 学号系专业指导教师年7月1日学生姓名学号系别专业班级题目名称简易四路抢答器课程名称一、学生自我总结回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近四星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在杨波师的辛勤指导下,终于游逆而解。同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!学生签名:目录摘要 4一,设计任务与要求 4二,方案设计与论证 4三,硬件电路设计 5四,软件设计 8五,器件选型方案 21六,调试: 22七,结论与心得 22八,参考文献 23单片机四路抢答器设计摘要抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率较低,且有的要么制作复杂,要么可靠性低。作为一个单位,如果专门购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展,因此设计了本抢答器。本设计是以四路抢答为基本理念。考虑到依需设定限时回答的功能,利用AT49C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。一,设计任务与要求1、抢答器同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。2、设置一个系统清除和抢答控制开关S,该开关由主持人控制。3、抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。4、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号并保持到主持人将系统清除为止。二,方案设计与论证
方案:该系统采用51系列单片机AT49C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下:
<1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
<3>控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。其原理框图如下:选手开关选手开关触发锁存电路主持人开关抢答鉴别电路显示电路时间脉冲源三,硬件电路设计1、抢答器的电路框图
如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作"开始、停止"状态开关。抢答器框图图11.2抢答电路的接口电路如图11、1所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置,“开始”状态,宣布“开始”抢答器工作。扬声器给出声响提示。抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答。如果再次抢答必须由主持人再次操作“开始、停止”状态开关。2、单元电路设计(1)抢答器电路
参考电路如图11.2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将S开关重新置,“清除”然后再进行下一次抢答。(2)时序控制电路设计时序控制电路是抢答器设计的关键,它要完成以下功能:
a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路进人正常抢答工作状态。
b.当参赛选手按动抢答键时,扬声器发声,抢答电路停止工作。(3)复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图示:2.3.3外部震荡电路外部震荡电路单片机必须在AT49C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如下图。2.3.4报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性
图11.4报警电路图。4951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。
选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答。如果再次抢答必须由主持人再次*作"清除"和"开始"状态开关。图面是数字抢答器的报警电路图。
其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。四,软件设计1、系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,主持人发布抢答命令按下P1.7按键,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。(1)主程序流程图?2、主程序清单ORG0000HLJMPSTARTUP1ORG000BHLJMPdingshiORG001BHLJMPfengmingqiORG0400H main:LCALLinitSETBTR0MOVTH0,#0x3CMOVTL0,#P3MOV0x0E,#0x00MOV0x0F,#0x01MOV0x10,#0x00MOV0x11,#0x01MOVR3,#0x01MOVR2,#0x00a12:JBP0.0,a1MOV0x0E,#0x00MOV0x0F,#0x01MOV0x10,#0x00MOV0x11,#0x01MOVR2,#0x00MOVR3,#0x01CLR0x20.0CLRAMOV0x09,ASETBTR0MOVTH0,#0x3CMOVTL0,#P3CLRTR1MOV0x0A,AMOV0x0C,AMOV0x0D,AMOVDPTR,#0x0B4CMOVCA,@A+DPTRMOVP3,AMOVDPTR,#shumaCLRAMOVCA,@A+DPTRMOV0xA0,Aa1:MOVA,0x0FORLA,0x0EJNZa2LJMPa3a2:MOVA,R3ORLA,R2JNZa4LJMPa3a4:MOVA,0x11ORLA,0x10JNZa5LJMPa3a5:MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,BMOVA,R7RLCASUBBA,ACCMOVR6,AMOVA,#0x45ADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOV0xA0,A;a4:MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,BCLRCMOVA,R7XRLA,#P0SUBBA,#SPJCa7MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,ARLCASUBBA,ACCMOVR6,AMOVA,R7ADDA,#0x04MOVR7,ACLRAADDCA,R6MOVR6,AMOVA,R7XRLA,#0x0AORLA,R6JZa4MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,ARLCASUBBA,ACCMOVR6,AMOVA,#0x4DADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOVP3,Aa4:MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,ARLCASUBBA,ACCMOVR6,AMOVA,R7ADDA,#0x04MOVR7,ACLRAADDCA,R6MOVR6,AMOVA,R7XRLA,#0x0AORLA,R6JNZa9MOVDPTR,#shumaSJMPa10a7:MOVA,0x09MOVB,#0x0ALCALLa6MOVR7,ARLCASUBBA,ACCMOVR6,AMOVA,#0x4CADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAa10:MOVCA,@A+DPTRMOVP3,Aa9:JNB0x20.0,a3CLRAMOVR2,AMOVR3,ACLR0x20.0MOVDPTR,#0x0B4CMOVCA,@A+DPTRMOVP3,AMOVDPTR,#shumaCLRAMOVCA,@A+DPTRMOV0xA0,ACLRTR0a3:MOVA,0x11ORLA,0x10JNZa11LJMPa12a11:MOVA,0x0FORLA,0x0EJNZa13LJMPa12a13:MOVA,P1ANLA,#0x0FMOVR1,ACLRAMOVR4,AMOVR5,Aa17:CLRCMOVA,R5SUBBA,#0x04MOVA,R4XRLA,#P0SUBBA,#P0JCa14LJMPa12a14:MOVA,#0x4FADDA,R5MOVDPL,AMOVA,#0x0BADDCA,R4MOVDPH,ACLRAMOVCA,@A+DPTRXRLA,R1JNZa15LCALLdelayMOVA,#0x4FADDA,R5MOVDPL,AMOVA,#0x0BADDCA,R4MOVDPH,ACLRAMOVCA,@A+DPTRXRLA,R1JNZa15MOVA,R3ORLA,R2JNZa16CLRCMOVA,#0x09SUBBA,R5MOVR7,ACLRASUBBA,R4MOVR6,AMOVA,#0x45ADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOV0xA0,AMOVP3,#0xFFCLRAMOV0x10,AMOV0x11,AORLP1,#BSJMPa15a16:SETBTR1MOVTH1,#0xFFMOVTL1,#0xFFCLRTR0CLRAMOV0x0E,AMOV0x0F,ACLRCMOVA,#0x09SUBBA,R5MOVR7,ACLRASUBBA,R4MOVR6,AMOVA,#0x45ADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOV0xA0,ACLRCMOVA,#0x09SUBBA,R5MOV0x0A,AMOVP3,#0xFFLJMPa12a15:INCR5CJNER5,#0x00,a14INCR4a14:LJMPa17a6:CLRF0JNB0xF0.7,a19CPLF0XRLB,#0xFFINCBa19:JNB0xE0.7,a20CPLF0CPLAINCADIVABXRLB,#0xFFINCBSJMPa21a20:DIVABa21:JNBF0,a22CPLAINCAa22:RETa40:CLRF0MOVA,R4JNB0xE0.7,a23CPLF0CLRACLRCSUBBA,R5MOVR5,ACLRASUBBA,R4MOVR4,Aa23:MOVA,R6JNB0xE0.7,a24CPLF0CLRACLRCSUBBA,R7MOVR7,ACLRASUBBA,R6MOVR6,ALCALLa25CLRCCLRASUBBA,R5MOVR5,ACLRASUBBA,R4MOVR4,ASJMPa26a24:LCALLa25a26:JNBF0,a27CLRCCLRASUBBA,R7MOVR7,ACLRASUBBA,R6MOVR6,Aa27:RETa25:CJNER4,#0x00,a24CJNER6,#0x00,a29MOVA,R7MOVB,R5DIVABMOVR7,AMOVR5,BRETa24:CLRAXCHA,R4MOVR0,AMOVB,#0x04a31:MOVA,R7ADDA,R7MOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R4RLCAMOVR4,AMOVA,R6SUBBA,R5MOVA,R4SUBBA,R0JCa30MOVR4,AMOVA,R6SUBBA,R5MOVR6,AINCR7a30:DJNZB,a31CLRAXCHA,R6MOVR5,ARETa29:MOVA,R5MOVR0,AMOVB,AMOVA,R6DIVABJBOV,a32MOVR6,AMOVR5,BMOVB,#0x04a35:MOVA,R7ADDA,R7MOVR7,AMOVA,R5RLCAMOVR5,AJCa33SUBBA,R0JNCa34DJNZB,a35RETa33:CLRCSUBBA,R0a34:MOVR5,AINCR7DJNZB,a35a32:RETfengmingqi:PUSHACCPUSHBPUSHDPHPUSHDPLPUSHPSWMOVPSW,#0x00PUSH0x00PUSH0x04PUSH0x05PUSH0x06PUSH0x07MOVTH1,#0x3CMOVTL1,#P3INC0x0DMOVA,0x0DJNZa36INC0x0Ca36:CPLAORLA,0x0CJNZa37MOV0x0C,AMOV0x0D,#0x0Ba37:SETBCMOVA,0x0DSUBBA,#0x0AMOVA,0x0CXRLA,#P0SUBBA,#P0JNCa34CPL0xB0.7SJMPa39a34:SETB0xB0.7a39:MOVR6,0x0CMOVR7,0x0DMOVR4,#0x00MOVR5,#0x0ALCALLa40MOVA,R5ORLA,R4JNZa41MOVA,0x04JNZa42MOV0x04,#0x01MOV0xA0,#0xFFSJMPa41a42:MOV0x04,#0x00MOVR7,0x0AMOVA,R7RLCASUBBA,ACCMOVR6,AMOVA,#0x45ADDA,R7MOVDPL,AMOVA,#0x0BADDCA,R6MOVDPH,ACLRAMOVCA,@A+DPTRMOV0xA0,Aa41:POP0x07POP0x06POP0x05POP0x04POP0x00POPPSWPOPDPLPOPDPHPOPBPOPACCRETIdingshi:PUSHACCPUSHPSWMOVTH0,#0x3CMOVTL0,#P3INC0x0BMOVA,0x0BCJNEA,#0x14,a43INC0x09MOV0x0B,#0x00a43:MOVA,0x09CJNEA,#0x1E,a44MOV0x09,#0x00SETB0x20.0CLRTR0a44:POPPSWPOPACCRETIinit:MOVTMOD,#0x11SETBET0SETBET1CLRTR0CLRTR1SETBEAANLP1,#0x0FRETdelay:CLRAMOVR7,AMOVR6,Aa46:INCR7CJNER7,#0x00,a45INCR6a45:MOVA,R7XRLA,#0x0Ca47:ORLA,R6JNZa46RETshuma:PUSHP1SJMPa47ANLC,0x90.2SUBBA,R1ANLC,/0xA0.4MOVR1,AKeyBoard:INCR6INCR5INCR3INC@R1STARTUP1:MOVR0,#0x7FCLRAIDATALOOP:MOV@R0,ADJNZR0,IDATALOOPMOVSP,#0x20LJMPmainEND五,器件选型方案表1器件选型方案的详细清单器件名称规格型号数量微处理器AT49C511极性电容10uF1电阻3WTT10K9电容20PF3晶振12MHZ1按钮15共阴4位7段数码管SMGSM410561K1扬声器1六,调试:(1)开机
按电源开关,显示屏左边的"抢答"指示灯亮,数码管显示。(2)测试各组抢答按键
试按一下各组的抢答按钮,应立即显示该组的组别数字,同时机内喇叭发出"叮咚"的提示音,按"取消"键,返回"0"闪烁状态。。(3)违规抢答
当主持人读题过程中,而未宣布抢答开始时按下抢答按钮。主显示屏将显示该违规组号,及发出提示音。及该组的红灯亮起。七,结论与心得这次课程设计老师给我们安排了一个星期的时间,可以说是比较充裕的。虽然如此,我还是很用心的做设计,利用了周六周日两天的时间在宿舍思考本次的课程设计,拿到题目,感觉太繁杂了,不知怎么下手,虽然这些知识以前都有接触过,但也只是分部分来接触,而这次的设计是要对前面几次实验的一个综合,真的很难。也翻阅了一些资料,并自己事先编写好了程序,到了周一去到机房时候,把自己写的程序烧进去芯片里面,发现不行,那些数字闪动得非常厉害,自己检查了好久好久,但还是发现不了问题,之后问了同学,才知是我把段码搞错了,我用的是共阳位选,但数据表的段码我却用了共阴的段码,所以不能在数码管上正常显示。通过运用单片机设计四路抢答器程设计,发现自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。特别是Proteus仿真软件的使用,不知是由于电脑的问题还是怎么,这个软件的安装就花了我很长的时间,好不容易安装好了,又对软件的使用一点都不熟悉,要从头开始学起,对着老师发给我们的芯片原理进行仿真画图,刚刚开始时候真的很难下手,因为是英文版的软件,很多东西都看不太明白,都是通过自己一个个来慢慢琢磨,才把仿真图画了出来,然后把写好的程序导入芯片,进行仿真,当看到程序正常运行的那一刻,心中真是有几分的喜悦。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然这只是一次的较简单的课程制作(四路抢答器),可是平心而论,也耗费了我不少的心血。
对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆。八,参考文献[1]51单片机原理与实践/高卫东,辛友顺,韩彦征编著.北京航空航天大学出版社,2004.1[2]刘红玲、邵晓根,《微机原理与接口技术》,中国电力出版社,2006年第一版[3]冯博琴,《微型计算机原理及接口技术》,清华大学出版社[4]艾德才,《微型计算机原理与接口技术》,高等教育出版社[5]沈美明,《IBM-PC汇编语言程序设计》,清华大学出版社[6]任致程,《经典集成电路400例》机械工业出版社,2002[7]薛栋梁,《单片机原理及应用》,中国水利水电出版社,2001[4]谢筑森,张辉等,《单片机开发与典型应用设计》,中国科学技术大学出版社,目录前言 1第一章概述 21.1单片机控制直流调速系统的设计方案 21.2单片机控制直流调速系统工作原理概述 2第二章单片机控制系统的硬件设计 42.1单片机系统的地址分配 42.2数据存储器6264的扩展 52.3ADC0809与8051单片机的接口电路设计 72.3.1给定速度的设计 72.3.2反馈速度采样电路设计 82.4DAC0832与8051单片机的接口电路设计 92.5LED数码显示电路设计 112.6单片机控制直流调速系统中的其它设计 132.7PCB板图的设计 14第三章单片机控制系统的软件设计 163.1主程序的设计 163.2采样子程序 193.2.1ADC0809的采样程序 193.2.2中值滤波算法子程序 213.3数字PID控制算法子程序 233.4DAC0832的转换 253.5程序中的代码的转换 263.6给定速度显示与实际速度显示子程序 293.6.1给定速度显示程序设计 293.6.2实际速度显示子程序 313.7程序的调试 31第四章总结 33致谢 35参考文献 36附录一软件程序清单 37前言自电动机成为第二次工业革命开始的标志以来,其在工业生产制造、交通运输、家用电器等领域发挥重要作用,电动机的应用无处不在。电机的控制系统随着计算机的发展而不断的改进。在很长一段时间内,在较高控制性能的传动系统中,直流电机一直占据主导地位,主要原因在于其控制简单、调速平滑、性能良好。随着电力电子技术的发展,直流电机拖动将有逐步被交流电机拖动所取代的趋势。但在中、小功率的场合,采用永磁直流电动机,对其转速控制相对比较简单,只需对电枢回路进行控制。直流调速系统中应用最广泛的一种调速方法是调节电动机的电枢电压。为了获得可调的直流电压,利用电力电子器件的完全可控性,采用脉宽调制(PulseWidthModulation)技术,将恒定的直流电压调制成大小、极性可变的直流电压作为电动机的电枢电压,实现系统的平滑调速,这种调速系统就称为直流脉宽调速系统。它越来越广泛地应用于各种功率的调速系统中。微处理器使电机运动控制技术再次发生巨大变革,使用微处理器实现数字化控制不仅可以简化控制硬件,而且可以加入人工智能对运动系统进行诊断,这对电机运动控制系统的发展影响重大。单片机用做微处理器的调速系统应用尤为广泛。单片机结构相对比较简单,通过学习一些专业基础知识以后依靠自己的技术力量,也能够开发出自己所希望的单片机应用系统。为了在比较简单的运动控制系统中实现智能控制,因此设计了单片机控制直流调速系统。单片机是应用于直流调速系统的最基本处理器,就其组成和结构而言,大大缩小控制器的体积,增加了功能,而且可以通过串行通信和计算机相连接,实现集中控制。第一章概述1.1单片机控制直流调速系统的设计方案本次设计的任务是单片机控制的直流调速系统,该系统通过单片机对直流电动机的速度进行控制,同时对速度进行检测采样,并显示给定速度和实际速度。控制系统设计总体结构框图如下:单片机单片机A/D转换给定转速A/D转换测速电机直流电机速度显示示示示D/A转换PWM波形发生器PWM驱动图1-1系统结构框图1.2单片机控制直流调速系统工作原理概述整个系统的工作原理:首先是人为给定电动机转速的电压信号,然后将这个电压信号通过A/D转换器转换成数字信号后传送给单片机(8051)。单片机通过中断通信方式将接收到数据先保存起来。然后再对此数据进行处理:要将此二进制数进行转换,先将(00H~FFH)转换成对应的实际数值,接着启动ADC0809开始采样直流电动机的实际速度值,因为用到了中值滤波算法,所以需要连续采集三次数据,作比较之后取中间值,这个值即为直流电动机速度的实际值。然后用给定值与这个实际值作比较,再通过PID控制算法,得到一个输出信号值,再通过DAC0832转换器将这个数字信号转换成相应的模拟电压控制信号,经过PWM波形发生器来驱动直流电动机;接着继续采样,又通过PID控制算法,同样又输出一个电压控制信号来驱动直流电动机,其实这是一个不断地循环往复的过程,作比较直至差值为零,即实际速度等于给定速度。并在这个循环往复的过程中,将采集到的不断变化的速度值,通过LED数码管显示出直流电动机的给定速度值和实际速度值。整个系统设计包括了四个大的部分:A/D转换电路部分、D/A转换电路部分、存储器的扩展部分、转速数字显示部分。(1)A/D转换电路的设计:从毕业设计任务书中给的原始数据知道,测速发电机的输出电压范围为(0~12V),直流电动机的额定转速值是1500转/分。选用了一块ADC0809芯片,对测速发电机发出的电压进行转换,转换成相应的数字信号。但是ADC0809芯片只能接受(0~5V)的电压范围,需要外加一个转换电路,将测速发电机发出的电压进行转换,达到ADC0809芯片能接受要求范围。(2)D/A转换电路的设计:毕业设计任务要求单片机控制系统部分能够输出(0~5V)电压控制信号。这里选用DAC0832芯片,因为它具有数据锁存器、片选、读、写控制信号线,故可以与MCS-51扩展总线直接相连。但是DAC0832的输出是电流,使用运算放大器可以将DAC0832的电流输出线性的转换成电压输出。(3)存储器的扩展电路设计:MCS-51系列单片机内具有128B或256B的数据存储器RAM,但在大多数的实时控制系统中,肯定会要求采集大量的数据信息,而这些信息又比较珍贵,为此需要将这些大量宝贵的数据保存下来,唯一可行的办法就是扩展控制系统的存储容量,因此外接一块6264芯片。(4)速度显示电路设计:从毕业设计任务书中给的原始数据知道,直流电动机的额定转速为1500转/分。LED显示电路设计的目的就是为了显示给定转速和实际速度值,而转速值又只能是整数,也就是说LED显示的是一个4位的整数值。因此选用8个LED显示器,可分别显示出给定速度值和实际速度值。第二章单片机控制系统的硬件设计单片机控制直流调速系统接口电路集中了MCS-51系列单片机的功能芯片,包括数据存储器扩展芯片6264,I/O口扩展芯片8255,AD转换芯片ADC0809及DA转换芯片DAC0832,另外还有3-8译码器74LS138,地址锁存器74LS373等。下面将分别介绍各个芯片的功能和设计电路图。2.1单片机系统的地址分配单片机与74LS138译码器的设计如图所示:图2-18051与74LS138的连接图单片机控制直流调速系统的接口电路属于RAM和I/O容量较大的应用系统,单片机共有四个外围及接口芯片,需要四个片选信号,我们采用全地址译码方法。这种译码方法将低位地址作为片内地址,而用译码器74LS138对高位地址线进行译码,译码器输出的地址选择线用作片选线。本系统采用的3-8译码器74LS138,输入端占用3根最高位地址线,取A(P2.5),A(P2.6),A(P2.7)作为74LS138译码器的输入信号依次接至74LS138的A口、B口、C口,剩余的13根低位可作为片内地址线。因此,译码器的8根输出线分别对应8个8K字节地址空间。74LS138的控制端,接地,G1接+5V,否则译码器的8个输出端全为高阻状态。逻辑功能表如下:CBA(CS3)(CS2)(CS1)(CS0)10000011111110(接6264)1000011111110(接8255)1100010111110(接0809)1110001111110(接0832)11110010011101111100101110111111001101011111110011101111111其它状态11111111表2-174LS138逻辑功能表根据上表中地址线的连接方法可知各个芯片全部地址译码如下表所示:表2-2地址译码元器件地址选择线片内地址单元数地址编码62640008K0000H~1FFFH82550011111111111143FFCH~3FFFH0832010111111111111115FFFH0809011111111111187FF8H~7FFFH2.2数据存储器6264的扩展数据存储器即随机存取存储器,简称RAM,用于存放可随时修改的数据信息,对RAM可进行读、写操作。数据存储器用于存储现场采集的原始数据、运算结果等,所以外部数据存储器应能够随机读/写,通常采用半导体随机存储器RAM电路。RAM为易失性存储器,断电后所存储的信息会立即丢失。因为设计的系统中需要采集大量的数据并要保存下来,因此使用一片6264扩展单片机的数据存储器,6264与单片机的电路设计如下图所示:图2-28051与数据存储器6264的接口电路图因6264是8K字节的RAM,故需要13根低位地址线(A0~A12)进行片内寻址,6264有两个片选信号(CS2、),只有当CS2=1,=0时,芯片才被选中工作。否则就不工作,在实际应用中,往往只用其中一个,而另一个接成常有效。本系统将74LS138的片选信号CS0接至6264的,6264的CS2接+5V电源。6264数据线D0~D7依次接到8051单片机的P0口,地址线A0~A7依次接到74LS373的输出端,高五位地址线(A8~A12)依次接到8051单片机的(P2.0~P2.4口)。、的信号分别接到8051单片机的和端口。6264在此系统中的工作原理,当6264的CS2=1,=0,=0,=1时从6264读出数据到D7~D0;当6264的CS2=1,=0,=1,=0时把D7~D0数据写入6264。具体工作方式见下表:表2-36264的工作方式选择表工作方式CS2功能禁止1000不允许同时为低电平读出1001从6264读出数据到D7~D0写入1010把D7~D0数据写入6264选通1011输出高阻未选通11输出高阻由于8051单片机的P0口是分时复用的地址/数据总线,因此在进行数据存储器扩展时,必须利用地址锁存器将地址信号从地址/数据总线中分离开来。这里使用了带三态缓冲输出的8D锁存器74LS373,当74LS373用作地址锁存器时,三态门的使能信号应该为低电平。当C输入端为高电平时,锁存器输出(1Q~8Q)状态和输入端(1D~8D)状态相同;当C端从高电平返回到低电平(下降沿)时,输入端(1D~8D)的数据锁入(1Q~8Q)的8位锁存器中。MCS-51单片机外部数据操作简单,只有累加器A和外部数据存储器的数据传送操,它可以通过下面两类指令实现:MOVX@Ri,A;累加器A中数据送片外数据存储器MOVXA,@Ri;片外数据存储器中数据送累加器A中这类指令中,片外数据存储器低8位地址由Ri(i=0,1)间接寻址,而高8位地址则隐含为程序指令地址的高8位。MOVXDPTR,A;累加器A中数据送片外数据存储器MOVXA,@DPTR;片外数据存储器中数据送累加器A这类指令中,片外数据存储器由16位数据指针DPTR间接寻址。2.3ADC0809与8051单片机的接口电路设计2.3.1给定速度的设计给定转速电路设计如下图所示:图2-3给定模拟电压与ADC0809的连接已知直流电动机的额定转速为1500转/分,为简化设计电路,给定转速由一个旋转电位器给定一个0~5V可变模拟电压,通过ADC0809模数转换器将这一给定0~5V电压转换成对应的数字信号,将这个数字信号作为控制直流电动机转速的给定速度值。旋转电位器R4的一端接+5V直流电压,另一端接地,可变输出端接ADC0809模拟量输入通道IN0。当电位器输出电压为0V时即给定转速为0转/分,当电位器输出电压为+5V时即给定转速为1500转/分。这样当给定电压在0~5V之间变化时,其转换后的数字信号相当于0~1500转/分。2.3.2反馈速度采样电路设计反馈速度采样电路设计如下图所示:图2-4ADC0809和8051的连接电路图在设计中首先要将给定直流电动机转速的模拟电压转换成数字信号,同时还要对测速发电机进行采样并转化成数字信号,因此需要一片A/D芯片。A/D的种类很多,根据转换原理可以分为双积分式(优点是转换精度高,抗干扰性好,价格便宜,但转换速度慢)、逐次逼近式(转换精度、速度、价格适中)、并行式(速度快,但价格昂贵)和计数器式。其中逐次逼近式A/D转换器应用比较普遍,也能满足设计要求,因此选用了一片ADC0809芯片。ADC0809是8路8位逐次逼近式A/D,由多路模拟开关、通道地址所存、译码器、8位A/D转换器及三态输出数据锁存器组成。本次设计中,由于ADC0809片内无时钟,因此利用8051单片机的ALE提供,而8051单片机的晶振频率为12MHz,则其ALE脚输出的频率为2MHz,再将8051单片机的ALE经过触发器74LS74四分频后为500KHz。ADC0809的CLK典型值为640KHz,超过640KHz时会使转换精度降低,因此经过四分频后8051单片机的ALE连接到ADC0809的CLK能够满足系统的设计要求。ADC0809具有输出三态锁存器,其8位数据输出线D0~D7可直接与8051单片机的P0口相连。ADC0809的ADDA、ADDB、ADDC分别与8051单片机的地址总线D0、D1、D2经过74LS373相连后A0、A1、A2连接,以选中IN0~IN7的某一路,但是实际上只需要两个转换通道就行了(IN0给定转速电压通道;IN1测速发电机反馈电压通道)。而将74LS138的CS3()作为片选信号,由8051单片机的写信号控制ADC0809的地址锁存和转换启动。由于ADC0809的ALE和START连在一起,故在锁存通道的同时,启动并进行转换,输出允许信号ENABLE由8051单片机的读信号RD与74LS138的CS3()组合产生。显然CS3()应为低电平。A/D转换是否完成的判断。因为只有确认数据转换完成后,才能把数据传送给8051单片机做处理。通常有三种方式:定时传送方式、查询方式、中断方式。从ADC0809和8051单片机的连接电路图中可知ADC0809的EOC经过74F04反向器后再和8051单片机的INT0相连接,所以采用的是中断方式进行数据传送。由于采用的是中值滤波算法,所以需要采集三次。当检测到EOC为高电平时,即A/D转换完成,单片机将数据读入并做相应的处理。ADC0809和8051单片机的连接电路图中主要涉及到三个问题:第一个是ADC0809的8路模拟信号的通道选择(上文中已经做出说明),第二个就是A/D转换完后转换数据的传送,第三个就是ADC0809的8路模拟信号的通道所能承受的电压为0~5V,而测速发电机输出电压为0~12V,因此需要加一个转换电路将测速发电机的输出电压转换成能够满足ADC0809的模拟量输入通道的要求,通常将测速发电机的输出电压接到一个电位器上,调整电位器使输出电压变成0~5V的直流电压。A/D转换后得到的是数字量,传送给单片机进行处理。2.4DAC0832与8051单片机的接口电路设计DAC0832与单片机连接电路如图所示:图2-5DAC0832和8051接口电路图数/模转换器是一种将数字信号转换成模拟信号的器件。设计中需要将给定转速与实际速度的差值经过数字PID算法后再转换成(0~5V)电压输出,故选择一片DAC0832实现设计要求。DAC0832是8位D/A,片内带数据锁存器,电流输出,输出电流稳定时间为1µs,+5~+15V单电源供电,功耗为20mW。从DAC0832和8051单片机的接口电路图可以看到:DAC0832的DI0~DI7这八个引脚和8051单片机的P0口依次相连,用于输入CPU送来的待转换的数字量,DI7为最高位。DAC0832的CS和74LS138的CS2相连,当DAC0832的CS为低电平时,此芯片被选中工作;当CS为高电平时,此芯片不被选中工作。DAC0832的Iout1和Iout2是两条模拟电流输出线。Iout1+Iout2为一常数;若输入数字量为全“1”,则Iout1为最大,Iout2为最小;若输入数字量为全“0”,则Iout1最小,Iout2最大。为了保证额定负载下输出电流的线性度,Iout1和Iout2引脚线上的电位必须尽量接近低电平。单片机控制直流调速系统中要求用0~5V模拟电压来控制PWM,因此DAC0832的电流输出必须转换成电压输出,方法就是在DAC0832的Iout1和Iout2的输出端接运算放大器,本设计中选用的是LM339作为运算放大器。DAC0832的WR1、WR2为两条写命令输入线。WR1用于控制数字量输入到输入寄存器:若ILE为“1”,CS为“0”和WR1为“0”同时满足,则与门M1输出高电平,“8位输入寄存器”接收信号;若上述条件中有一个不满足,则M1输出由高到低,“8位输入寄存器”锁存DI7~DI0上的输入数据。WR2用于控制D/A转换的时间:若Xfer和WR2同时为低电平,则M3输出高电平,“8位DAC寄存器”输出跟随输入;DAC0832的CS和Xfer共同构成片选线,接到74LS138根据对DAC0832的数据锁存器和DAC寄存器的不同控制方法,DA0832有三种工作方式。单缓冲方式、双缓冲方式、直通方式。本次设计采用的是单缓冲方式。此方式适用于只有一路模拟量输出或几路模拟量非同步输出的场合,方法是控制数据锁存器和DAC寄存器同时接收数据,或者只用数据锁存器而把DAC寄存器接成直通方式。DAC0832的输出是电流,有两个电流输出端(Iout1和Iout2),它们的和为常数。使用运算放大器可以将DAC0832的Iout1和Iout2电流输出线性的转换成电压输出。根据运算放大器和DAC0832的连接方法,运算放大器的输出可以分为单极性和双极性两种,这次设计使用的是单极性的连接方法。输出电压Vo与对应输入数字量的关系为:式子中:;/256为一常数。显然,Vo和B成正比关系。输入数字量B为00H时,Vo也为0,输入数字量为FFH时,由于=-5V,Vo为正的最大值5V,输出电压为正的单极性。2.5LED数码显示电路设计数码显示电路设计如图所示:图2-68255与8051的连接电路图本次设计中要将给定的转速电压转换成数字量的转速,并用LED(LightEmittingDiode)数码管显示这一给定转速,同时还要显示直流电机实际转速。已知给定电机的转速为0~1500转/分,因此需要两个四位的LED数码管才能满足设计要求。LED显示器是由发光二极管够成的字段组成的显示器,有8段和16段管两大类,本次设计采用的是8段数码管。显示器有静态显示和动态显示两种方式。动态显示控制的基本原理是,单片机依次发出段选控制字和对应哪一位LED显示器的位选控制信号,显示器逐个循环点亮。适当选择扫描速度,利用人眼睛的“留光”效应,使得看上去好像几位显示器同时在显示一样,而在动态扫描显示控制中,同一时刻实际上只要一位LED显示器被点亮。单片机控制系统的接口电路中的LED数码显示器使用的是共阴极接法。共阴极接法的原理:将所有发光二极管的阴极互相连接后接地,每个发光二极管的阳极通过电阻与输入端相连,当阳极端输入高电平时,段发光二极管就导通点亮,当阳极端输入低电平时,段发光二极管就不点亮。设计中采用动态显示,单片机控制系统采用动态扫描显示。动态显示采用软件法把将要显示的十六进制数(或BCD码)转化为相应字型码,所以需要在RAM区中建立一个显示缓冲区。显示缓冲区内包含的存储单元个数需和系统中的LED显示器的个数相等。而显示缓冲区的起始地址很重要,它决定了显示缓冲区在RAM中的位置。显示缓冲区的每个存储单元用于存放相应LED显示管将要显示字符的字型码地址偏移量,所以CPU可以根据这个地址偏移量通过查字型码表找出所显示字符的字型码,以便送到字型口显示。为了显示字符,要为LED显示器提供显示段选码(或称字型码)。采用共阴极接法的8段LED数码显示器字型码表如下:表2-38段LED数码显示器字型码表所显字符0123456789共阴极字型码3FH06H5BH4FH66H6DH7DH07H7FH6FH2.6单片机控制直流调速系统中的其它设计单片机控制直流调速系统中除上述电路设计之外,还有8051单片机的复位电路设计,本次设计中采用手动复位,当用手按一下按钮S1时就可以对8051单片机进行复位。除此之外原理图中还具备测速发电机接口卡J3,用来将测速发电机的电压信号接入系统。基准电源输入和模拟电压输出接口卡J2,为单片机系统引入+5V的基准电压,还有将0~5V的模拟电压输出的接口卡J1。前面已经分别介绍了系统中各个部分的设计,现在将系统整体的原理图设计如下:图2-7单片机控制系统原理图2.7PCB板图的设计单片机控制直流调速系统的硬件电路设计基本完成,接下来是使用Protel软件画出上述设计的电路原理图,绘图时要注意元器件的布局合理,按照绘制原理图规则绘制。然后是对绘制的原理图进行电气规则检查和标注。下一步是对元器件的封装,有时有些元器件的封装在封装库中是找不到的。在封装按钮时就没有找到其封装,因此只有自己画封装图。接下来是生成网络表,网络表是描述电路元器件的编号、封装和元器件管脚之间的连接关系的列表。最后就是生成PCB板。在布线时分为人工布线和自动布两种,为了节省时间采用了自动布线。布线的原则:线长——铜膜线应该尽可能的短;线宽——铜膜线的宽应满足电气性能要求而又便于生产为准则,它的最小值取决于流过它的电流;线间宽——相邻铜膜线之间的间距应满足电气安全要求,最小间距要能承受所加电压的峰值;屏蔽与接地——铜膜线的公共地线应尽可能放在电路板的边缘。自动布线后可以对其进行手工改动,使布线更加完善。此次设计的PCB板图如下:图2-8PCB板图第三章单片机控制系统的软件设计为实现单片机对直流电机的控制,满足设计的要求,系统的工作过程是靠软件来实现的。因此软件的设计和编写很重要,程序的编写采用汇编语言。3.1主程序的设计主程序的内容一般包括:主程序的起始地址、中断服务程序的起始地址、设置堆栈指针、相关存储单元和元器件的初始化以及一些子程序的调用等。(1)主程序的起始地址:MCS-51系列单片机经复位后,(PC)=0000H,而0003H~0023H为各中断源的入口地址,所以在编程的时候应在0000H处写一跳转指令(一般写长跳转指令),CPU在执行指令时,直接从0000H跳过各中断服务程序的入口地址,直接到0300H执行主程序(本程序设置的MAIN从0300H开始)。在设计的系统中,使用了两个中断,即T0,INT0。其中在T0中断程序中必须要对电机的转速进行定时采样,所以T0中断必须允许嵌套外部中断0的中断申请,所以在主程序初始化中置外部中断0为高优先级中断,在T0中断服务程序中必须要开外部中断0中断。T0定时器的工作参数确定后,在主程序初始化部分,对T0定时器进行设定,并且启动T0定时器(SETBTR0),开始工作,定时器T0和CPU并行工作。当定时1ms到,T0定时器向CPU提出中断请求,程序中设置软计数器,当一定的时间到,执行相应的中断程序。T0定时器中断服务程序的功能:15ms执行一次A/D转换、数据采集、PID算法、D/A转换,结束后进行显示,1ms显示一位。INT0中断主要的功能是完成数据的采集,采集完一次数据后向CPU发送中断请求。(2)中断服务程序的起始地址:当CPU接收到中断请求信号并给予响应后,CPU把当前接收到的内容进行堆栈保护,然后转入相应的中断服务程序入口地址处开始执行。INT0的中断入口地址为0003H。(3)设置堆栈指针:在CPU经复位后,SP中的内容为07H,和工作寄存器区中的内容重复了,所以将SP中的内容改为70H。(4)主程序的初始化:所谓的初始化,就是对将要用到的MCS-51系列单片机的内部单元和扩展的芯片进行初始化工作状态的设定。MCS-51系列单片机复位后,特殊功能寄存器IE、IP的内容为00H,所以应对IE、IP进行初始化编程,以开CPU总中断,允许某些中断源中断,并设置中断优先级等。主程序流程图和T0中断流程图设计如下:T0中断服务程序开始设置数据、显示缓冲区地址T0中断服务程序开始设置数据、显示缓冲区地址设置时间初值(1ms)等待T0中断主程序设置各中断服务程序的入口地址设置堆栈指针相关寄存器清零设置定时器0工作方式设置中断优先级T0定时中断判断15ms到否判断15ms到否?N NYYINT0开中断,上一时刻数据进行采集INT0开中断,上一时刻数据进行采集A/D转换A/D转换PID算法PID算法D/A转换D/A转换转换为压缩BCD码后显示转换为压缩BCD码后显示显示显示中断返回中断返回图3-1主程序流程图图3-2T0中断服务流程图程序如下:ORG0000HLJMPMAIN;转主程序ORG0003H;外部中断INT0的入口地址LJMPINTA;转外部中断INT0服务程序ORG000BH;T0中断的入口地址LJMPT0-SEV;转T0中断服务程序ORG0300HDATABUFEQU50H;数据缓冲区的首地址DISBUF1EQU60H;给定速度显示缓冲区的首地址DISBUF2EQU64H;实际速度显示缓冲区的首地址SAMP-D1EQU0000H;保存给定速度采样数据的首地址SAMP-D2EQU0500H;保存实际速度采样数据的首地址MAIN:MOVSP,#70H;设置堆栈指针MOVR0,#7FH;相关寄存器清零MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加盟羽毛球分校合作协议
- 模具设计师资格考试的指导思想试题及答案
- 深入理解农业植保员考试的关键试题及答案
- 裁判员在众多比赛中的经验积累与分享试题及答案
- 裁判员与媒体的良好关系试题及答案
- 模具设计的新动向与发展趋势试题及答案
- 无人机训练计划制定试题与答案
- 常见模具材料及其特性试题及答案
- 2024年种子繁育员考试的错误率分析试题及答案
- 磨练技能裁判员试题及答案
- 2025年武汉二调数学试题及答案
- 2025年保安证考试答题技巧与试题答案
- 2025年食品安全员试题及答案
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学
- 第19课《十里长街送总理》 统编版语文(五四学制)六年级上册
- (完整版)四级短对话真题里的虚拟语气
- 2025 ACC-AHA急性冠脉综合征患者管理指南解读课件
- 《强化危险化学品“一件事”全链条安全管理措施》知识培训
- 智慧树知到《形势与政策(北京大学)》2025春期末答案
- 2025年中国尼龙注塑件市场调查研究报告
- 《智慧能源体系》课程教学大纲
评论
0/150
提交评论