51单片机控制直流电机并用软件仿真课程设计.doc_第1页
51单片机控制直流电机并用软件仿真课程设计.doc_第2页
51单片机控制直流电机并用软件仿真课程设计.doc_第3页
51单片机控制直流电机并用软件仿真课程设计.doc_第4页
51单片机控制直流电机并用软件仿真课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

沈阳航空工业学院北方科技学院论文摘 要本次课程设计是利用天皇教仪三合一实验箱。对直流电动机进行调节控制并检测其旋转速度,使用液晶显示器型号为ocmj48c(奥可拉中文集成模块)显示旋转速度。本次课程设计的目的是更加熟练单片机的工作原理以及实践运用。以此同时更深一步理解ocmj48c工作原理。为了提高软件调试的快速性及成功率,本次课设还特地使用protues进行理论上的仿真。关键字 :单片机 ;ocmj48c-lcd ;直流电动机;转速; 第 21页目录1前言12 整体方案设计23 硬件电路设计23.1硬件说明33.2 外形尺寸图43.3 模块引脚说明43.4 资料传输与接口时序53.4.1串行接口与串行传输资料53.4.2 串行接口时序图63.4.3串行接口特性63.5显示步骤73.6直流电机的组成结构及工作原理83.7 光电耦合器的组成及工作原理94 软件程序设计104.1系统调试114.1.1速度转换公式114.1.2 数字测速m法124.1.3 数字测速t法124.1.4数字测速m/t法125 调试中的问题并解决13课设总结14参考文献15附录151 前言显示器的出现大大改变了人们的视野,它能够重新显示过的历史也能创想未来的蓝图。现在人们所接触的显示器主要有液晶显示器lcd、led及数码管等。而最近几十年显示器的发展速度更加迅速和完善。以至于很多的电子显示设备也发生的巨大变化。例如:由原来的“大脑袋”显示器变成薄而宽的直板型显示器,由起初厚重不够清晰的电视机变为轻便高清晰的宽屏电视机等等。单片机则有着独特的综合计算处理功能。它是一种廉价实用的微型计算机处理器件,并且它所使用的范围非常地广泛能够运用到人们生活的每个角落。它的廉价、使用、稳定、高速运算及强抗干扰能力为人们所亲睐。为了进一步掌握单片机的运用,本次研究的课题是用汇编或keilc51进行编写程序。首先从现有的硬件出发,此次课设所用元器件较少。再根据硬件设计能够通过软件的编程调试实现所需课设要求。2 整体方案设计面对新的课题要有自己解决问题的思路和方法。所以在整体设计时有了自己的构思和方法,在解决问题的过程时我就可以如图2.1所示一步一步实现。 分析问题选择元器件根据现有的硬件选用软件编写相关程序是否符合要求结束调试程序ny图2.1整体思路3 硬件电路设计在构思设计的同时也要考虑硬件的最大利用率,本次课设可以先在电脑上进行模拟仿真这样就能提高设计的效率以及电路的可行性。而且在仿真的过程中非常方便进行电路修改又可以达到很好的效果。因此通过使用protues对硬件电路精心设计并对该电路进行仿真调试,设计出最好的电路图如图3.1所示的整体设计电路图。用脉冲形式代替光电耦合管测取转速。 图3.1硬件电路图3.1硬件说明lcd系列中文模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口(ocmj416a/b无串行接口)。所有的功能,包含显示ram,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2m-位中文字型rom (cgrom) 总共提供8192 个中文字型(1616 点阵),16k-位半宽字型rom (hcgrom) 总共提供126 个符号字型(168 点阵),64 16-位字型产生ram (cgram),另外绘图显示画面提供一个64256点的绘图区域(gdram),可以和文字画面混和显示。提供多功能指令:画面清除(display clear)、光标归位(return home)、显示打开/关闭(display on/off)、光标显示/隐藏(cursor on/off)、显示字符闪烁(display character blink)、光标移位(cursor shift)、显示移位(displayshift)、垂直画面卷动(vertical line scroll)、反白显示(by_line reverse display)、待命模式(standbymode)。本次课设所用ocmj48c的功能有显示中文字型、数字符号。主要参数:1、工作电压(vdd):4.55.5v2、逻辑电平:2.75.5v3、lcd 驱动电压(vo):07v4、工作温度(ta):055(常温)/-2075(宽温) 保存温度(tstg):-1065(常温)/-3085(宽温)。3.2 外形尺寸图为了更好的了解显示器ocmj48c外形图,我们可以对其进行图形表示如图3.2所示。 图3.2 ocmj48c外形尺寸图3.3 模块引脚说明便于使用 ocmj48c(12864)引脚,做了如表1所示说明。表1各引脚说明引脚名称方向说明引脚名称方向说明1vss-gnd(0v)11db4i/o数据42vdd-supply voltage for logic (+5v)12db5i/o数据53vo-supply voltage for lcd (悬空)13db6i/o数据64rs(cs)ih:data l: instruction code14db7i/o数据75r/w(std)ih: read l: write15psbih: parallel mode l: serial mode6e(sclk)ienable signal,高电平有效16nc-空脚7db0i/o数据017/rstireset signal,低电平有效8db1i/o数据118nc-空脚9db2i/o数据219leda-背光源正极(+5v)10db3i/o数据320ledk-背光源负极(ov)注:ocmj48c_3/_6为减少背光电源对模块的干扰作了特别处理,背光电源焊盘(20、21 脚)与17 脚间留了2 个焊盘(18、19 脚)位置但并无焊盘和引脚引出;背光电源的2 条走线与其他走线间的间隔距离至少保留了2mm的爬电间隔。3.4 资料传输与接口时序3.4.1串行接口与串行传输资料当psb脚接低电位时,模块将进入串行模式。从一个完整的串行传输流程来看,一开始先传输启始字节,它需先接收到五个连续的“1”(同步位字符串),在启始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(rw)及寄存器选择位(rs),最后第八的位则为“0”。在接收到同步位及rw和rs资料的启始字节后,每一个八位的指令将被分为两个字节接收到:较高4位(db7db4)的指令资料将会被放在第一个字节的lsb部分,而较低4位(db3db0)的指令资料则会被放在第二个字节的lsb部分,至于相关的另四位则都为0。3.4.2 串行接口时序图mpu写资料到模块如图2-3所示。图3.3 串行接口时序图3.4.3串行接口特性为了更好的了解lcd的工作特性我们可以从如图3.4所示。 图3.4 串行接口特性3.5显示步骤3.5.1显示资料ram(ddram)显示数据ram 提供642 个字节的空间,最多可以控制4 行16 字(64 个字)的中文字型显示,当写入显示资料ram时,可以分别显示cgrom,hcgrom 与cgram 的字型;本系列模块可以显示三种字型,分别是半宽的hcgrom 字型、cgram 字型及中文cgrom 字型,三种字型的选择,由在ddram 中写入的编码选择,在0000h0006h 的编码中将选择cgram 的自定字型,02h7fh 的编码中将选择半宽英数字的字型,至于a1 以上的编码将自动的结合下一个字节,组成两个字节的编码达成中文字型的编码big5(a140d75f) gb(a1a0f7ff),详细各种字型编码如下:1. 显示半宽字型:将8 位资料写入ddram 中,范围为02h7fh 的编码。2. 显示cgram 字型:将16 位资料写入ddram 中,总共有0000h,0002h,0004h,0006h 四种编码。3. 显示中文字形:将16 位资料写入ddram 中,范围为a140hd75fh 的编码(big5) , a1a0hf7ffh 的编码(gb)。将16 位资料写入ddram 方式为透过连续写入两个字节的资料来完成,先写入高字节(d15d8)再写入低字节(d7d0)。3.5.2 显示器引脚与单片机连接 本次课程设计只用到了串行方式进行转速显示。但是在与单片机相连接线的时候依然把其他的数据引脚连接在单片机的p1端口,具体的接线法可以在p2端口体现如图3.5所示。仿真的接线法在仿真软件中能够很好的模拟出来,而课设所用的实验箱却是天皇教仪内部已经有固定的焊接点。对系统进行调试时只有接p1口就行具体接法为引脚cs连接 p1.0、引脚std连接单片机的p 1.1、引脚sclk连接p1.2、引脚psb连接p1.3、引脚res 连接p1.4。图3.5显示器引脚与单片机连接3.6直流电机的组成结构及工作原理直流电动机的结构是由直流电源、直流电机、控制开关和调速器组成。直流电机的工作原理不外乎就是用直流电源作为能量来驱动电机旋转。通过对三极管的截止与导通进行控制,使其起到开、关和调速的作用。具体的操作为当直流电动机接上直流电源时,使用电位器旋转按钮控制三极管集极的电压。1、当三极管的集极电压小于死区电压时三极管截止,则电动机不转动;2、当集极电压大于死区电压而小于饱和电压时三极管处于放大状态,随着集极电压改变,从而改变了直流电动机两端的压降也就改变了电机的转速。具体原理为集极的电压大小不一样,三极管的电压放大倍数也不一样从而起到调速作用改变直流电动机的旋转速度。在选择控制三极管集电极与发射极之间电压放大倍数时,我也进过两种方案的比较。第一种方案是用电位器直接对三极管进行控制;第二种方案是通过pwm(脉冲宽度调制)进行控制集极电压值,进而对三极管两端集电极与发射极电压的导通时间与截止时间进行控制,属于间断性控制。但后一种方案对直流电机有损害,缩短电机使用寿命。综合比较后,选择直接用电位器控制电机的转速。如图3.5所示电路图。图3.5 直流电机电路图3.7 光电耦合器的组成及工作原理光电耦合器的组成是用一个发光二极管和一个光敏三极管构成。光电耦合器的工作原理就是使发光二极管导通与截止状态进行发射红外线与不发射,让光敏三极管导通与截止。具体过程为当发光二极管的两端电压大于死区电压时二极管发射出红外线同时光敏三极管栅极有驱动三极管导通的电压,使得三极管的源级电压降低由原来的高电平变为低电平,进而产生一个脉冲的形式转送给单片机。通过单片机的外部中断进行计数脉冲个数从而得到直流电动机的旋转速度。光电耦合器的电路图为图3.6所示。图3.6光电测速电路3.8 光电耦合器与电机连接 在改变电机转速的同时影响到发光二极管导通与截止。只有这样才能产生脉冲的形式发送给光敏二极管,进而改变了外部中断p3.5口高低电位。则单片机内部进行计数就可以获取转速。具体接线如图3.7所示。图3.7光电耦合器与电机连接4 软件程序设计在单片机的设计过程中,只有知道现有的硬件连接才能进行软件设计与调试。没有硬件的程序是毫无意义的。因此为了达到课程设计所需的要求,又根据硬件的条件及接线法进行了如图4.1 所示的编写程序步骤。初始化用电位器控制转速光电耦合测取速度lcd显示速度设定时间是否到nybcd码转换速度换算 图4.1 软件设计流程图4.1系统调试在本次课设所用程序中需要使用到速度测取和计算问题。因此为了能更加准确测得直流电动机的旋转速度,特意运用了我们所了解数字测速法来换算速度。在此对在这几种测速方法进行比较。这样就可以得到此次课程设计所要选择的最佳方案。4.1.1速度转换公式在电力拖动自动控制系统运动控制系统中我们学习过如何测取直流电动机的旋转速度。可以采用旋转编码器的数字测速方法来解决这个问题。数字测速方法目前有比较常用的三种:m法、t法和法。4.1.2 数字测速m法m法的测速原理为在一定时间t内测取旋转编码器输出的脉冲个数m,用以计算这段时间内的平均转速。把m除以t就可得到旋转编码器输出脉冲的频率,所以又叫频率法。电动机每转一圈共产生z个脉冲(z=倍频系数编码器光栅数),把f除以z就得到电动机的转速。在习惯上,时间t以秒为单位,而转速是以每分钟的转速r/min为单位,则电动机的转速为 (1)在上式中,z和t均为常值,因此转速n正比于脉冲个数m。高速时m大,量化误差小,随着转速的降低误差增大,转速过低时m将小于1,测速装置便不能正常工作。所以m法测速只适用于高速段。4.1.3 数字测速t法t法的测速原理为在编码器两个相邻输出脉冲的间隔时间内,用一个计数器对已知频率为f的高频脉冲进行计数,并由此来计算转速。在这里,测速时间缘于编码器输出脉冲的周期,所以又称周期法。在t法测速中,准确的测速时间t是用所得的高频时钟脉冲个数m计算出来的,即,则电动机转速为.(2)高速时m小,量化误差大,随着转速的降低误差减小,所以t法测速适用于低速段与m法恰好相反。4.1.4数字测速m/t法把m法和t法结合起来,既检测t时间内旋转编码器输出的脉冲个数m,又检测同一时间间隔的高频时钟脉冲个数m,用来计算转速,称作法测速。设高频时钟脉冲的频率为f,则准确的测速时间,而电动机转速为.(3)采用法测速时,应保证高频时钟脉冲计数器与旋转编码器输出脉冲计数器同时开启与关闭,以减小误差,只有等到编码器输出脉冲前沿到达时,两个计数器才同时允许开始或停止计数。由于法的计数值m1和m2都随着转速的变化而变化,高速时,相当于m法测速,最低速时,m1=1,自动进入t法测速,因此,法测速能适用的转速范围明显大于前两种,是目前广泛应用的一种测速方法。通过这几种方案的对比,我们可以很好的得出我们想要的最佳方案。由于直流电动机的旋转速度很快,所以我们选用的方案是用m法进行测取电机的旋转速度。5 调试中的问题并解决任何事情都不太可能风雨无阻,我也不例外在此次课程设计中同样遇到了很多的困难。第一就是硬件的工作原理不知道,只能通过自己去查阅相关的资料,只有充分理解硬件是怎么工作才能进行编写相关的程序。起初对控制直流电动机的器件选取不是很清楚,刚看实验箱第一反应就觉得不可能进行对电机的控制作用。而老师跟我说能控制,要我自己去摸索实验箱内部电路的具体接线。本着老师能控制我也能控制的想法,经过一番自己的勘察,恍然大悟发现还真能进行控制转速。原因在于自己当初并没有仔细分析各个元器件的工作原理。比如电位器控制三极管的作用。刚开始只想到它的开关作用,后来再回去查了查资料才发现自己少想了它还有放大的作用,通过改变集极的电压就可以改变集电极与发射极电压的放大倍数进而改变直流电动机的旋转速度。对于如何进行lcd的初始化,更不清楚怎么用了。起初我想问老师怎么用,可老师就是不告诉我,就让我憋着要我自己去读懂相关的资料自己去解决。实在是没办法我就硬着头皮自己去查找相关的资料慢慢研读并运用到编程里面。经历几番推敲程序之后才明白怎么使用。比如:汉字的摆放位置规律;工作控制指令方式;传送数据指令先后顺序;哪些位置的数据需要根据电位器的旋转变化而变化;哪些位置的数据显示不变等。当我告诉老师我知道怎么用时她也很高兴。为此我也很欣慰。添加了一份自信。在调试过程中我还遇到bcd码的转换问题,刚开始只能显示十六进制,后来向同学请教之后才发现自己对汇编程序中的一个指令字没理解透addc。起初只考虑到加法没想到其还有带进位位相加的作用,又经过几个几番自己的推敲才知道怎么回事了。真是太大意啊!但能自己解决问题是最关键的。 课设总结经历本次课程设计之后我有很多的收获:首先我明白有理论基础也不见得会很好的用在实践上,只有通过自己反复的琢磨进一步的理解并加于运用才是事实。就像我所知道的我自己感觉学习还不错,但真正用到实验当中时却不是那么灵活。其次就是当遇到困能时还要靠自己去解决去探索。因为未来不再像学校那样有老师指点,而只有你才能去完成。老师给我答案就是想锻炼我的独立自学的能力在将来的工作中有非常重要作用。再次当你知道有解决的方案时最好问问自己还有没有其他方案可行,或许这种方案更加理想更加能满足要求。得到的结果往往会最好。只有比较了才会有差距才可能有最好的方案。最后想解决问题就必须要有耐心、细心、专心及谦虚等综合素质。参考文献1 陈伯时、 电力拖动自动控制系统-运动控制系统(第三版). 机械工业出版社,2008 2 王兆安、黄俊.电力电子技术.机械工业出版社,20083 张毅刚、彭喜元.新编mcs-51单片机应用设计(第三版).哈尔滨工业大学出版,20084 马淑华、王凤文.单片机原理与接口技术.北京邮电大学出版社,20075 张俊谟、单片机中级教程-原理与应用.北京航空航天大学出版社,1999附录用单片机控制lcd显示直流电机转速编写程序如下:cs bit p1.0 ;定义单片机与lcd的连接方法std bit p1.1sclk bit p1.2psb bit p1.3res bit p1.4dwei equ 20h ;脉冲数的低四位存放地址dgao equ 21h ;脉冲数的高四位存放地址start equ 30h com equ 31hhdata equ 32hldata equ 33hasc equ 34h org 0000h ljmp main org 000bh ljmp init0 org 0100hmain: mov sp, #60h clr res setb res clr psb lcall lcdreset ; 对lcd进行初始化 lcall hzkdis ; 固定汉字小模块main1: lcall bcd ;调用bcd码转换 mov a , r5 mov dwei, a mov a, r4 mov dzhong, a mov a, r3 mov dgao, a lcall erxing lcall hzkdis2 mov tl0, #00h mov th0, #4ch mov th1 ,#0 mov tl1 ,#0 mov tmod,#51h ;定时/计数工作方式 setb et0 setb tr0 setb tr1 setb ea lcall clear ;调用清屏程序 jmp main1clear: mov a, #00h retlcdreset: lcall dl1ms mov start, #0f8h ;选择传送地址方式 mov com, #30h lcall lcdwrite ;调用发送写入程序 mov com, #0ch lcall lcdwrite mov com,#01h lcall lcdwrite lcall dl1ms mov com,#06h lcall lcdwrite retlcdwrite: mov a, com anl a, #0f0h mov hdata,a mov a,com swap a anl a, #0f0h mov ldata, a mov a, start lcall sendbit lcall dl1ms mov a ,hdata lcall sendbit lcall dl1ms mov a,ldata lcall sendbit lcall dl1ms rethzkdis: ;显示对应位置的汉字部分模块 mov start, #0f8h ;地址控制方式 mov com, #80h lcall lcdwrite mov dptr, #tab mov a, #00hdis_1: mov r6, #6 ;显示“直流电机转速”6个字dis_2: mov start, #0fah ;数据控制方式 clr a movc a,a+dptr ;查表指令 mov com, a lcall lcdwrite inc dptr clr a movc a, a+dptr mov com, a lcall lcdwrite inc dptr lcall dl40ms djnz r6,dis_2 retbcd: 开始bcd码转换 mov a, dwei mov r7, a mov a, dgaotobcd: clr a ;bcd码初始化 mov r3, a mov r4, a mov r5, a mov r2, #10h;转换双字节十六进制整数hb3: mova, r7;从高端移出待转换数的一位到cy中rlcamovr7, amova, r6rlcamovr6, amova, r5;bcd码带进位自身相加,相当于乘2addc a, r5da a;十进制调整movr5, amova, r4addc a, r4da amovr4, amova, r3addc a, r3movr3, a;双字节十六进制数的万位数不超过6,不用调整djnz r2, hb3;处理完16bit retering: mov start, #0f8h mov com, #93h lcall lcdwrite mov start, #0fah mov dptr, #tab2 mov a,dwei movc a,a+dptr mov com, a lcall lcdwrite lcall dl1ms mov start, #0f8h mov com, #92h lcall lcdwrite mov start, #0fah mov dptr, #tab2 mov a, dzhong movc a, a+dptr mov com, a lcall lcdwrite lcall dl1ms mov start, #0f8h mov com,#91h lcall lcdwrite mov

温馨提示

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

评论

0/150

提交评论