欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年基于单片机控制的步进电机调速系统的设计-51单片机步进电机调速.docx

    • 资源ID:66237945       资源大小:25.48KB        全文页数:31页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年基于单片机控制的步进电机调速系统的设计-51单片机步进电机调速.docx

    2023年基于单片机控制的步进电机调速系统的设计|51单片机步进电机调速 前 言 步进电机最早是在1920年由英国人所开发。1950年后期晶体管的独创也渐渐应用在步进电机上,这对于数字化的限制变得更为简单。以后经过不断改良,使得今日步进电机已广泛运用在须要高定位精度、高分解性能、高响应性、信任性等敏捷限制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化限制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以干脆用数字信号驱动,运用特别便利。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过肯定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要限制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此特别适合于单片机限制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和沟通电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种限制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环限制。 第一章 步进电机概述 第一节 步进电机的特点 一般步进电机的特点有以下三个特点: 1) 一般步进电机的精度为步进角的3-5%,且不累积。 2)步进电机的力矩会随转速的上升而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。 3)步进电机低速时可以正常运转, 但若高于肯定速度就无法启动, 并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载状况下能够正常启动的脉冲频率,假如脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的状况下,启动频率应更低。假如要使电机达到高速转动,脉冲频率应当有加速过程,即启动频率较低,然后按肯定加速度升到所希望的高频(电机转速从低速升到高速)。 其次节 步进电机的工作原理 步进电机是一种用电脉冲进行限制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度. 脉冲的数量确定了旋转的总角度 ,脉冲的频率确定了电机运转的速度. 当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”) ,它的旋转是以固定的角度一步一步运行的。可以通过限制脉冲个数来限制角位移量,从而达到精确定位的目的;同时可以通过限制脉冲频率来限制电机转动的速度和加速度,从而达到调速的目的。 第三节 步进电机具体调速原理 步进电机的调速一般是变更输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过限制步进电机的一个脉冲到下一个脉冲的时间间隔来变更脉冲的频率,延时的长短来详细限制步进角来变更电机的转速,从而实现步进电的调速。详细的延时时间可以通过软件来实现。 这就须要采纳单片机对步进电机进行加减速限制, 事实上就是变更输出脉冲的时间间隔, 单片机限制步进电机加减法运转可实现的方法有软件和硬件两种 ,软件方法指的是依靠延时程序来变更脉冲输出的频率, 其中延时的长短是动态的, 软件法在电机限制中, 要不停地产生 限制脉冲, 占用了大量的CPU 时间, 使单片机无法同时进行其他工作; 硬件方法是依靠单片机内部的定时器来实现的, 在每次进入定时中断后, 变更定时常数, 从而升速时使脉冲频率渐渐增大, 减速时使脉冲频率渐渐减小, 这种方法占用CPU 时间较少, 在各种单片机中都能实现, 是一种比较好用的调速方法。 其次章 本次设计的基本要求 探讨步进电机的特性、工作原理、及其详细的调速原理。 第一节 基本要求 步进电机采纳三相步进电机,功率为1W 。 调速范围为0到1000r/min 最高转速时,精度2% 要基本上完成毕业设计,作到步进电机能精确的调速,正反转、并能在起动时不失步,基本上没有振荡。 第三章 硬件电路的设计 第一节 单片机的选择 本次设计以CPU 选用89C5l 作为步进电机的限制芯片89C51的结构简洁并可以在编程器上实现闪耀式的电擦写达几万次以上运用便利等优点,而且完全兼容MCS5l 系列单片机的全部功能。 单片机的引脚功能: 1)VCC (40):电源+5V。 2)VSS (20):接地,也就是GND 。 3)XTL1(19)和XTL2(18):振荡电路。 4)PSEN (29):片外ROM 选通信号,低电平有效。 5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。 6)RST/VPD(9):复位信号输入端/备用电源输入端。 7)EA/VPP(31):内/外部ROM 选择 端 8)P0口(39-32):双向I/O口。9P1口(1-8):准双向通用I/0口。 9)P2口(21-28):准双向I/0口。原理图如4-1所示: 图3-1 AT89C51的引脚图 其次节 驱动电路的选择 因从CPU 输出的脉冲信号特殊小,固应先经过PWM8713脉冲安排器对脉冲进行安排并经过放大然后再经过光耦驱动来驱动步进进电机。 PWM8713芯片介绍如下; 图3-2-1PWM8713的引脚图 PMM8713 功能介绍 PMM8713 是专用的步进电机的步进脉冲产生芯片, 它适用于三相和四相步进电机。如图3-2-1所示PMM8713 的引脚,Cu 为加脉冲输入端, 它使步进电机正转,Cp 为减脉冲输入端, 它使步进电机反转,Ck 为脉冲输入端, 当脉冲加入此引脚时,Cu 和Cp 应接地, 正反转由U/ D 的 电平限制,EA 和EB 用来选择励磁方式的, 可以选择的方式有一相励磁、二相励磁和一二相励磁, C 用来选择三、四相步进电机,Vss 为芯片工作地,R 为芯片复位端, 41 为四相步进 脉冲输出端, 31 为三相步进脉冲输出端,Em 为励磁监视端,Co 为输入脉冲监视端,VDD 为芯片的工作电源( + 4 + 18V).其详细的原理框图如3-2-2所示: 图3-2-2 驱动电路框图 第三节 显示电路与键盘的选择 显示电路的用8279芯片来驱动 8279芯片的详细介绍如下: 1) DB0DB7:双向数据总线。在CPU 于827数 据与吩咐的传送。 2) CLK:8279的系统时钟,100KHZ 为最佳选择。 3) RESET:复位输入线,高电平有效。当 RESET 输入端出现高电平常,8279被初始复位。 4) /CS:片选信号。低电平使能,使能时可将吩咐写入8279或读取8279的数据。 5) A0:用于区分信息的特性。当A0=1时,CPU 向8279写入吩咐或读取8279的状态;当 A0为0时,读写一数据。 6) /RD:读取限制线。/RD=0,8279会送数据至外部总线。 7) /WR:写入限制线。/WR=0,8279会从外部总线捕获数据。 8) IRQ :中断恳求输出线,高电平有效。当FIFO RAM 缓冲器中存有键盘上闭合键的键码 时,IRQ 线上升,向CPU 恳求中断,当CPU 将缓冲器中的输入键数的数据全部读取时,中断恳求线下降为低电平。 9) L0SL3:扫描输出线,用于对键盘显示器扫 描。可以是编码模式(16对1)或译 码模式(4对1)。 10) RL7:反馈输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。 11) FT、CNTL/STB :限制键输入线,由内部拉高电 阻拉成高电平,也可由外部限制按 键拉成低电平。 12) TB03、OUTA03:显示段数据输出线,可分别作为两个半字节输出,也可作为8 位段数据输出口,此时OUTB0为最低位, OUTA3位最高位。 13) 消隐输出线,低电平有效。当显示器切换时或运用消隐吩咐时,将显示消隐。 8279引脚图 第四章 软件的设计 第一节 显示子程序的设计 图4-1 显示程序流程图 其次节 键盘子程序的设计 图4-2键盘程序流程图 第三节 驱动程序流程的设计 图4-3主程序流程图 第四节 正反转程序流程图 (一) 正反转程序流程图 图4-4-1 正反转程序流程图 (二) 转速快慢程序流程图 4-4-2 转速快慢程序流程图 (三)定时中断流程图 图4-4-3 中断子程序流程图 第五章 试验结果与分析 第一节 有关参数的计算与分析 在单相三拍方式限制中,假如A 相电源通电,B 、C 两相都不通电,在磁场作用下,使转子齿和A 相的定子齿对齐。若此时为初始状态,并设与A 相磁极对齐的齿为0号齿,由于B 相齿与A 相齿相差120度。且 1209 =13 13 不为整数。所以此转子不能和B 号齿对齐,只有13 号小齿靠近B 相磁极的中心线,与中心线相差3度,假如此时变为B 相通电,万里A 、C 两相不通电,则B 相磁极迫使与13号齿对齐,整个齿就转了3度,称为一步。步进电机就是以这种方式作为动力而转动。 在单相三拍A-B-C-A 通电一周,转子转动了9度。固步距角可用公式5-1表示: Q S = 360NZ r (5-1) 其中Q S 为步距角,N 为运行的拍数,Z r 为转子的齿数。其中N =m c *c , m c 为限制的相绕阻,C 在三拍中为1,在六拍中为2。 步距角的速度的限制是通过变更脉冲的时间间隔来限制的。假如步进电机每转20圈要2秒。则每进一步所在的时间为:计算公式如5-2所示: 2000ms t = =100ms 3*1*40 =833s NZ r (5-2) 可见只要输出一个脉冲后延时833s 再输脉冲就可以达到自定的速度。本次设计在求的转速范围为0到1000m in ,最高转速时的精度为2%。功率为1W 。 得:步进脉冲之间的延迟时间为T 1-T 2。T 1=0。 =499. 8s 500s T 2=3*1*40 延迟时间在0到500S 。精度是由步进电机的性能 60000 r 确定的。 其次节 理论与实际的分析 从Q S = 360N Z r 的公式看到, 变更步进电动机步距的大小有三种方式: 1) 变更步进电动机的相数。步进电动机的相数越多、步距角就越小。 2) 与步进电动机的定、转齿数有关。 3) 与定子限制绕组的通电方式有关。要变更步进电机步距角的大小也只能通过这三种方式。设计中步进电机为三相,功率为1W 。因步进电机的转子上没有绕阻而是由40个小齿匀称地分布在圆周上。定子的齿也是固定不变的,通电方式是选取用三相单三拍方式。可见步进电机的一但选定,其步距角就不能再变更了。要变更转束也就只能通过脉冲之间的延时来变更。但对步进电动机的步距角的限制, 可以实现对步进电动机的转速精度限制。 但事实上步进电机在用行时是带有肯定量的负载,当运转时会存在很多误差,同时因为负载的存在可能引起失步和震荡。这就使步进电机不能按预定的规律运行,从而是很难达到转速精度的要求。为精确测量电机的转速稳定度, 须选用高精度测量仪器。光电编码器因光电式数字输出而更具抗干扰性强和处理简便的优势。增量式旋转编码器。其核心部件为光栅码盘, 玻璃盘表面的光栅道数确定了编码器的辨别率, 而后者制约了转速测量的精度。当编码器辨别率与系统误差相近时, 其影响将不复存在。 光电编码器的辨别率是确定着反馈的精确性与反馈的精度。也对步进电机的延时长短起到肯定的作用。可见实际与理论是有肯定的差别的。 第六章 总 结 蓦然回首,为期两个多月的毕业设计就要结束了,在这漫长而又短暂之中,通过自己不断地学习,不断地努力与拼搏、不断地对新学问的追求与索取、不断地自我发觉、感到自己的学问结构水平提出高了很多,对学问的驾驭程度也加深了很多,对学问之间的相互联系也有了更深的了解;通过不断地提高自己的相识水平与实力、不断地学习新方法、新思想、新的思维方式、不断地变更自己的人生观和方法论、感到自己不但成长且成熟了很多;通过不断地把课本学问应用于实际,不断地把查阅到的资料与文献中有用的东西应用于实现,不断地把所学的理论与方法应用于设计之中,从而提高了自己理论联系实际的实力。 通过这两个多月的毕业设计,把所学过的各种学问进行了一次全面而系统的综合,并融会贯穿,把所学到的各种理论与思想进行可一次合理的应用,把所查阅到的各种文献及与设计相关的资料进行了合理的提取与分析,并应用到实际。这不但增加了自己的学问结构,同时对所学过的各种理论学问与专业学问进行了一次全面的终结。由于不断的上机操作与实践,不但加强了自己动手实力,同时对一些计算机软件的应用有了肯定的驾驭与理解,并加强了网上学习和查阅资料的实力。 步进电机调速系统适用各种现场自动化限制,特殊应用于小功率负载的限制;具有成本底,性能稳定, 牢靠性高等优点。步进电机作为执行元件,在科技的进步中起到了特别重要的作用,而步进电机调速系统可便利地应用与各种自动化限制系统与领域。毕业设计是对高校所学课程的一个高度的综合。无论是基础学问还是专业学问都被设计统一起来,使零散的学问系统化,形成了一种实力,这也是毕业设计所要达到的目的。这也为我们走入社会打下一个良好的基础,为走入社会对学问与理论的应用做了一个好的铺垫。人生的路是漫长而曲折的,在这漫长而曲折的道路上须要自己的不断努力与拼搏。作为即将离校的学生,走出校门就站在另一个人生起点上,还有很长的路要走,这必需有足够的志气与自信去迎接挑战,克服困难,创建奇迹。特殊对将来要充溢期盼,充溢希望,要微笑着走人生的每一步。“路漫漫其修远兮,我将上下而求索”。 参考文献 1 张洪润, 蓝清华. 单片机应用技术教程M ,清华高校出版社,1997. 2 秦曾煌. 电工学M .高等教化出版社,1999. 3 常斗南, 等. 可编程序限制器原理、应用、试验M ,机械工业出版社,1998. 4 于海生, 等. 微型计算机限制技术M ,清华高校出版社,1999. 5 王福瑞, 等. 单片机微机测控系统设计大全M,北京航空航天高校出版社,1998. 6 陈理壁. 步进电机及其应用M, 上海科学技术出版社,1989. 7 刘保延, 等. 步进电机及其驱动限制系统M,哈尔滨工业高校出版社,1997. 8 季维发, 过润秋, 严武升等. 机电一体化技术M,电子工业出版社,1995. 9 郭敬枢, 庄继东, 孔峰. 微机限制技术M,重庆高校出版社,1994. 10 刘国荣. 单片微型计算机技术M,机械工业出版社,1996. 11 王福瑞. 单片微机测控系统设计大全M,北京航空航天高校出版社,1998. 12 何立民. 单片机应用技术选编M,北京航空航天高校出版社,1993. 附录 8279的初始化程序如下: INIT:MOV DPTR,#7FFFH ;置8279吩咐/状态口地址 MOV A,#0D1H ;置清显示吩咐字 MOVX DPTR,A ;送清显示吩咐 WEIT:MOVX A,DPTR ;读状态 JB ACC.7,WEIT ;等待清显示RAM 结束 MOV A,#34H ;置分频系数,晶振12MHz MOVX DPTR,A ;送分频系数 MOV A,#00H ;置键盘/显示吩咐 MOVX DPTR,A ;送键盘/显示吩咐 MOV IE,#84H ;允许8279中断 RET 显示子程序如下: DIS:MOV DPTR,#7FFFH ;置8279吩咐/状态口地址 MOV R0,#30H ;字段码首地址 MOV R7,#08H ;8位显示 MOV A,#90H ;置显示吩咐字 MOVX DPTR,A ;送显示吩咐 MOV DPTR,#7FFEH ;置数据口地址 LP:MOV A,R0 ;取显示数据 ADD A,#6 ;加偏移量 MOVC A,APC ;查表,取得数据的段码 MOVX DPTR,A ;送段码显示 INC R0 ;调整数据指针 DJNZ R7,LP ; RET SEG:DB 3FH,06H ,5BH ,4FH ,66H ,6DH ;字符0、1、2、3、4、5段码 DB 7DH,07H ,7EH ,6FH ,77H ,7CH ;字符6、7、8、9、A 、B 段码 DB 39H,5EH ,79H ,71H ,73H ,3EH ;字符C 、d 、E 、F 、P 、U 段码 DB 76H,38H ,40H ,6EH ,FFH ,00H ;字符H 、L 、-、Y 、“空”段码 键盘中断子程序如下: KEY:PUSH PSW PUSH DPL PUSH DPH PUSH ACC PUSH B SETB PSW.3 MOV DPTR,#7FFFH ;置状态口地址 MOVX A,DPTR ;读FIFO 状态 ANL A,#0FH ; JZ PKYR ; MOV A,#40H ;置读FIFO 吩咐 MOVX DPTR,A ;送读FIFO 吩咐 MOV DPTR,#7FFEH ;置数据口地址 MOVX A,DPTR ;读数据 LJMP KEY1 ;转键值处理程序 PKYR: POP B POP ACC POP DPH POP DPL POP PSW RETI ; KEY1: ;键值处理程序 键盘程序清单: KEY1: ACALL KS1 ; 有无键按下子程序 JNZ LK1 ;有键按下,转去抖延时 AJMP KEY1 ;无键按下,接着扫描 LK1: ACALL DELA12 ;12ms 延时程序调用 ACALL KS1 ;推断键是否真正按下 JNZ LK2 ;有键按下,转逐列扫描 AJMP KEY1 ;无键按下,接着扫描 ;设置首列扫描字 LK2: MOV R2,#0FEH MOV R4,#00H ;保存首列号 MOV DPTR,#7F01H;列扫描字送至PA 口 LK4: MOV A,R2 MOVX DPTR,A ;指向PC 口 INC DPTR INC DPTR MOVX A,DPTR ;读入行状态 ;第0行无键按下,转LONE JB ACC.0,LONE MOV A,#00H ;有键按下,设置行首键号 AJMP LKP ;转求键号 LONE: JB ACC.1,LTWO ;第1行无键按下,转LTWO MOV A,#08H ;有键按下,设置行首键号 AJMP LKP ;转求键号 LTWO: JB ACC.2,LTHR ;第2行无键按下,转LTHR LTHR: JB ACC.3,NEXT ;第3行无键按下,查下一列 MOV A,#18H ;有键按下,设置行首键 ADD A,R4 ;求键号,键号=行首键号+列号 MOV A,#10H ;有键按下,设置行首键? AJMP LKP ;转求键号 LKP: PUSH ACC ;爱护键号 LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;键未释放,接着等待 POP ACC ;键释放,键号送A AJMP OVER ;键扫描结束 NEXT: INC R4 ;列号加1,指向下一列 MOV A,R2 ;推断8列扫描完否 ;8列扫描完,接着 JNB ACC.7,KND RL A ;扫描字左移一位 ;送扫描字 MOV R2,A AJMP LK4 ;转下一列扫描 KEY1 KND: AJMP OVER: RET ;键扫描结束 KS1: MOV DPTR,#7F01H ;指向PA 口 MOV A,#00H ;设置扫描字 MOVX DPTR,A ;扫描字送PA 口 ;指向PC 口 INC DPTR INC DPTR MOVX A,DPTR ;读入PC 口状态 CPL ;以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位 RET 初始化程序如下: INIT:MOV DPTR,#7FFFH ;置8279吩咐/状态口地址 MOV A,#0D1H ;置清显示吩咐字 MOVX DPTR,A ;送清显示吩咐 WEIT:MOVX A,DPTR ;读状态 JB ACC.7,WEIT ;等待清显示RAM 结束 MOV A,#34H ;置分频系数,晶振12MHz MOVX DPTR,A ;送分频系数 MOV A,#00H ;置键盘/显示吩咐 MOVX DPTR,A ;送键盘/显示吩咐 MOV IE,#84H ;允许8279中断 RET 显示子程序如下: DIS:MOV DPTR,#7FFFH ;置8279吩咐/状态口地址 MOV R0,#30H ;字段码首地址 MOV R7,#08H ;8位显示 MOV A,#90H ;置显示吩咐字 MOVX DPTR,A ;送显示吩咐 MOV DPTR,#7FFEH ;置数据口地址 LP:MOV A,R0 ;取显示数据 ADD A,#6 ;加偏移量 MOVC A,APC ;查表,取得数据的段码 MOVX DPTR,A ;送段码显示 INC R0 ;调整数据指针 DJNZ R7,LP ; RET 键盘中断子程序如下: KEY:PUSH PSW PUSH DPL PUSH DPH PUSH ACC PUSH B SETB PSW.3 MOV DPTR,#7FFFH ;置状态口地址 MOVX A,DPTR ;读FIFO 状态 ANL A,#0FH ; JZ PKYR ; MOV A,#40H ;置读FIFO 吩咐 MOVX DPTR,A ;送读FIFO 吩咐 MOV DPTR,#7FFEH ;置数据口地址 MOVX A,DPTR ;读数据 LJMP KEY1 ;转键值处理程序 PKYR: POP B POP ACC POP DPH POP DPL POP PSW RETI ; 驱动电路子程序的设计 PUSH:MOV R3 , # NUM PUSH A PUSH PSW LOOP: SETB P1.0 ACALL DELAY1 CLR P1.0 ACALL DELAY2 DJNZ R3,LOOP POP PSW POP A RET 延时子程序的设计 MOV R2,#18H LCALL 7FEBH RET ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & .) L7FEB: PUSH 02H ;R2(复位后R2即为02H) 存放时间常数, 进栈爱护 L7FED: PUSH 02H ; R2进栈爱护 L7FEF: PUSH 02H ; 进栈 L7FF1: DJNZ R2,$ ;R2不为零等待 POP 02H ;出栈 DJNZ R2,L7FEF ; R2不为零转 POP 02H ; 出栈 DJNZ R2,L7FED ; R2不为零转 POP 02H ; 出栈 DJNZ R2,L7FEB ; R2不为零转 RET ;子程序返回 END 主程序如下: CON: MOV R3, # N MOV TMOD , # 10H MOV TL1 , # LOW MOV TH1 , # H IGH JNB FLAG ,LEFT MOV R0 , RM AJMP TIME - S LEFT: MOV R0 , LM TIME: SETB EA SETB ET1 SETB TR1 步进电机限制程序p3.2正转,p3.3反转,p3.4停止 步进电机接p1.0p1.1p1.2p1.3 org 00h stop: orl p1,#0ffh ; 步进电机停止 loop:jnB p3.2,for2 ; 假如p3.2按下正转 jnB p3.3,rev2 ; 假如p3.3按下反转 jnB p3.4,stop1 ; 假如p3.4按下停止 jmp loop ;反复监测键盘 for: mov r0,#00h ;正转到tAB 取码指针初值 for1:mov A,r0 ;取码 mov dptr,#tABle ; movC A,A+dptr jz for ;是否到了结束码00h Cpl A ;把ACC 反向 mov p1,A ; jnB p3.4,stop1 ; jnB p3.3,rev2 ; CAll delAy ; inC r0 ; jmp for1 ; rev:mov r0,#05h ; rev1:mov A,r0 mov dptr,#tABle ; movC A,A+tABle jz rev ; Cpl A ; mov p1,A ; jnB p3.4,stop1 ; jnB p3.3,rev2 ; CAll delAy ; inC r0 ; jmp rev1 ; stop1:CAll delAy ; jnB p3.4,$ ; p3.4 CAll delAy ; jmp stop for2:CAll delAy ; jnB p3.2,$ ; p3.2 输出到p1起先正转 假如p3.4按下停止 假如p3.3按下反转 转动的速度 取下一个码 接着正转 反转到tAB 取码指针初值 取码 是否到了结束码00h 把ACC 反向 输出到p1起先反转 假如p3.4按下停止 假如p3.3按下反转 转动的速度 取下一个码 接着反转 按p3.4的消退抖动 放开否? 放开消退抖动 按p3.2的消退抖动 放开否? CAll delAy ;放开消退抖动 jmp for rev2:CAll delAy ; 按p3.3的消退抖动 jnB p3.3,$ ; p3.3放开否? CAll delAy ;放开消退抖动 jmp rev delAy:mov r1,#40 ;步进电机的转速20ms d1:mov r2,#248 djnz r2,$ djnz r1,d1 ret tABle: dB 03h,09h,0Ch,06h ;正转表 dB 00 ;正转结束 dB 03h,06h,0Ch,09h ;反转 dB 00 ;反转结束 end 步进电机正反快慢程序 org 00h x1:mov r3,#48 ;一圈48步 stArt:mov r0,#00h ;正转取码初值 stArt1: mov p1,#0ffh ;先停止 mov A,r0 mov dptr,#tABle movC A,A+dptr jz stArt ;是否到了结束码00? Cpl A mov p1,A ;输出运转 CAll delAy ;调用慢速的延时转动 inC r0 ;取码指针加1取下一个码 djnz r3,stArt1 ;是否走了48步? mov r3,#48 ;是则重新设定48步 stArt2: mov p1,#0ffh mov r0,#05 ;逆转的取码初值 stArt3:mov A,r0 mov dptr,#tABle movC A,A+dptr jz stArt2 Cpl A mov p1,A CAll delAy2 inC r0 djnz r3,stArt3 jmp x1 ; 重复起先 DELAY: ; 延时程序 (慢速) MOV R7,#255 D1:MOV R6,#50 D2: DJNZ R6,D2 DJNZ R7,D1 RET DELAY2: ; 延时程序 (快速) MOV R5,#255 D3:MOV R2,#25 D4: DJNZ R2,D4 DJNZ R5,D3 RET tABle: dB 03h,09h,0Ch,06h ;正转表 dB 00 dB 06h,0Ch,09h,03h ;反转表 dB 00 end 中断服务程序如下: INTTO: PUSH A PUSH PSW MOV A , R0 MOV P1 ,A INC R0 MOV A , # 00H XRL A , R0 JNZ NEXT MOV A , R0 CLR C SUBB A , # 03H MOV R0 , A NEXT: DJNZ R3 , RETU CLR ET1 CLR EA RETU: POP PSW POP A RETI 利用软件形成脉冲序列的程序清单: PULSE_S: MOV R7,#NUM ;设定脉冲个数 PUSH A ;爱护现场 PUSH PSW LOOP: SETB P1.0 ;输出高电平 ACALL DELAY1 ;延时 CLR P1.0 ACALL DJNZ ;输出低电平 DELAY2 ;延时 R7,LOOP ;R70,接着输出脉冲 POP PSW ;复原现场 POP A RET 定时中断子程序 TIME0: CLR EA ;关中断 INC 30H MOV A,30H XRL A,#50H ;推断是否到8秒 JZ S_8 ;8秒定时到,转至S_8 AJMP RECOUN ;未到8秒,接着计时 P3.2 ;触发外部中断0 S_8: SETB NOP CLR P3.2 NOP RECOUN: MOV TH0,#3CH MOV TL0,#0B0H SETB RETI ;设定定时器初值 EA ;开中断 ;中断返回 中断子程序 T_CON: PUSH JNB FLAG,LEFT ;推断旋转方向 ;正转模型起始地址 PUSH A ;爱护现场 PSW ;设定限制步数 MOV R7,#N RIGHT: MOV R0,RM AJMP ROTATE LEFT: MOV R0,LM ROTATE: MOV A,R0 MOV P1,A ACALL ;取第一拍限制模型 ;输出第一拍限制模型 DELAY1 ;延时 INC R0 MOV A,R0 M

    注意事项

    本文(2023年基于单片机控制的步进电机调速系统的设计-51单片机步进电机调速.docx)为本站会员(ylj18****41534)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开