版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的步进电机转速控制设计详解(附程序)步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速,本文主要介绍基于单片机的步进电机转速控制设计详解,文章最后附上程序。基于单片机的步进电机转速控制设计详解本次设计以CPU选用89C5l作为步进电机的控制芯片.89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上.使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FAlshProgrAmmABleAndErAsABleReAdOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。显示电路的用8279芯片来驱动,8279芯片分别接两排显示器,每排为4位显示,分别用来显示步进电机的实际转速与给定转速。8279与CPU的连接框图如4-11所示:8279芯片的具体介绍如下;1)DB0~DB7:双向数据总线。在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:中断请求输出线,高电平有效。当FIFORAM缓冲器中存有键盘上闭合键的键码时,IRQ线升高,向CPU请求中断,当CPU将缓冲器中的输入键数的数据全部读取时,中断请求线下降为低电平。9)L0~SL3:扫描输出线,用于对键盘显示器扫描。可以是编码模式(16对1)或译码模式(4对1)。10)~RL7:反馈输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。11)FT、CNTL/STB:控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平。12)TB0~3、OUTA0~3:显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3位最高位。13)消隐输出线,低电平有效。当显示器切换时或使用消隐命令时,将显示消隐。8279的初始化程序如下:INIT:MOVDPTR,#7FFFH;置8279命令/状态口地址MOVA,#0D1H;置清显示命令字MOVX@DPTR,A;送清显示命令WEIT:MOVXA,@DPTR;读状态JBACC.7,WEIT;等待清显示RAM结束MOVA,#34H;置分频系数,晶振12MHzMOVX@DPTR,A;送分频系数MOVA,#00H;置键盘/显示命令MOVX@DPTR,A;送键盘/显示命令MOVIE,#84H;允许8279中断RET显示子程序如下:DIS:MOVDPTR,#7FFFH;置8279命令/状态口地址MOVR0,#30H;字段码首地址MOVR7,#08H;8位显示MOVA,#90H;置显示命令字MOVX@DPTR,A;送显示命令MOVDPTR,#7FFEH;置数据口地址LP:MOVA,@R0;取显示数据ADDA,#6;加偏移量MOVCA,@A+PC;查表,取得数据的段码MOVX@DPTR,A;送段码显示INCR0;调整数据指针DJNZR7,LP;RETSEG:DB3FH,06H,5BH,4FH,66H,6DH;字符0、1、2、3、4、5段码DB7DH,07H,7EH,6FH,77H,7CH;字符6、7、8、9、A、B段码DB39H,5EH,79H,71H,73H,3EH;字符C、d、E、F、P、U段码DB76H,38H,40H,6EH,FFH,00H;字符H、L、-、Y、“空”段码键盘中断子程序如下:KEY:PUSHPSWPUSHDPLPUSHDPHPUSHACCPUSHBSETBPSW.3MOVDPTR,#7FFFH;置状态口地址MOVXA,@DPTR;读FIFO状态ANLA,#0FH;JZPKYR;MOVA,#40H;置读FIFO命令MOVX@DPTR,A;送读FIFO命令MOVDPTR,#7FFEH;置数据口地址MOVXA,@DPTR;读数据LJMPKEY1;转键值处理程序PKYR:POPBPOPACCPOPDPHPOPDPLPOPPSWRETI;KEY1:……;键值处理程序键盘程序清单:KEY1:ACALLKS1;有无键按下子程序JNZLK1;有键按下,转去抖延时AJMPKEY1;无键按下,继续扫描LK1:ACALLDELA12;12ms延时程序调用ACALLKS1;判断键是否真正按下JNZLK2;有键按下,转逐列扫描AJMPKEY1;无键按下,继续扫描LK2:MOVR2,#0FEH;设置首列扫描字MOVR4,#00H;保存首列号LK4:MOVDPTR,#7F01H;列扫描字送至PA口MOVA,R2MOVX@DPTR,AINCDPTR;指向PC口INCDPTRMOVXA,@DPTR;读入行状态JBACC.0,LONE;第0行无键按下,转LONEMOVA,#00H;有键按下,设置行首键号AJMPLKP;转求键号LONE:JBACC.1,LTWO;第1行无键按下,转LTWOMOVA,#08H;有键按下,设置行首键号AJMPLKP;转求键号LTWO:JBACC.2,LTHR;第2行无键按下,转LTHRMOVA,#10H;有键按下,设置行首键?AJMPLKP;转求键号LTHR:JBACC.3,NEXT;第3行无键按下,查下一列MOVA,#18H;有键按下,设置行首键LKP:ADDA,R4;求键号,键号=行首键号+列号PUSHACC;保护键号LK3:ACALLKS1;等待键释放JNZLK3;键未释放,继续等待POPACC;键释放,键号送AAJMPOVER;键扫描结束NEXT:INCR4;列号加1,指向下一列MOVA,R2;判断8列扫描完否JNBACC.7,KND;8列扫描完,继续RLA;扫描字左移一位MOVR2,A;送扫描字AJMPLK4;转下一列扫描KND:AJMPKEY1OVER:RET;键扫描结束KS1:MOVDPTR,#7F01H;指向PA口MOVA,#00H;设置扫描字MOVX@DPTR,A;扫描字送PA口INCDPTR;指向PC口INCDPTRMOVXA,@DPTR;读入PC口状态CPL;以高电平表示有键按下ANLA,#0FH;屏蔽高4位RET初始化程序如下:INIT:MOVDPTR,#7FFFH;置8279命令/状态口地址MOVA,#0D1H;置清显示命令字MOVX@DPTR,A;送清显示命令WEIT:MOVXA,@DPTR;读状态JBACC.7,WEIT;等待清显示RAM结束MOVA,#34H;置分频系数,晶振12MHzMOVX@DPTR,A;送分频系数MOVA,#00H;置键盘/显示命令MOVX@DPTR,A;送键盘/显示命令MOVIE,#84H;允许8279中断RET显示子程序如下:DIS:MOVDPTR,#7FFFH;置8279命令/状态口地址MOVR0,#30H;字段码首地址MOVR7,#08H;8位显示MOVA,#90H;置显示命令字MOVX@DPTR,A;送显示命令MOVDPTR,#7FFEH;置数据口地址LP:MOVA,@R0;取显示数据ADDA,#6;加偏移量MOVCA,@A+PC;查表,取得数据的段码MOVX@DPTR,A;送段码显示INCR0;调整数据指针DJNZR7,LP;RET键盘中断子程序如下:KEY:PUSHPSWPUSHDPLPUSHDPHPUSHACCPUSHBSETBPSW.3MOVDPTR,#7FFFH;置状态口地址MOVXA,@DPTR;读FIFO状态ANLA,#0FH;JZPKYR;MOVA,#40H;置读FIFO命令MOVX@DPTR,A;送读FIFO命令MOVDPTR,#7FFEH;置数据口地址MOVXA,@DPTR;读数据LJMPKEY1;转键值处理程序PKYR:POPBPOPACCPOPDPHPOPDPLPOPPSWRETI;驱动电路子程序的设计PUSH:MOVR3,#NUMPUSHAPUSHPSWLOOP:SETBP1.0ACALLDELAY1CLRP1.0ACALLDELAY2DJNZR3,LOOPPOPPSWPOPARET延时子程序的设计MOVR2,#18HLCALL7FEBHRETORG7FEBH;通用延时子程序(07EBH&0FEBH&。。。)L7FEB:PUSH02H;R2(复位后R2即为02H)存放时间常数,进栈保护L7FED:PUSH02H;R2进栈保护L7FEF:PUSH02H;进栈L7FF1:DJNZR2,$;R2不为零等待POP02H;出栈DJNZR2,L7FEF;R2不为零转POP02H;出栈DJNZR2,L7FED;R2不为零转POP02H;出栈DJNZR2,L7FEB;R2不为零转RET;子程序返回END图6-4-1主程序流程图主程序如下:CON:MOVR3,#NMOVTMOD,#10HMOVTL1,#LOWMOVTH1,#HIGHJNBFLAG,LEFTMOVR0,RMAJMPTIME-SLEFT:MOVR0,LMTIME:SETBEASETBET1SETBTR1步进电机控制程序p3.2正转,p3.3反转,p3.4停止步进电机接00hstop:orlp1,#0ffh;步进电机停止loop:jnBp3.2,for2;如果p3.2按下正转jnBp3.3,rev2;如果p3.3按下反转jnBp3.4,stop1;如果p3.4按下停止jmploop;反复监测键盘for:movr0,#00h;正转到tAB取码指针初值for1:movA,r0;取码movdptr,#tABle;movCA,@A+dptrjzfor;是否到了结束码00hCplA;把ACC反向movp1,A;输出到p1开始正转jnBp3.4,stop1;如果p3.4按下停止jnBp3.3,rev2;如果p3.3按下反转CAlldelAy;转动的速度inCr0;取下一个码jmpfor1;继续正转rev:movr0,#05h;反转到tAB取码指针初值rev1:movA,r0movdptr,#tABle;取码movCA,@A+tABlejzrev;是否到了结束码00hCplA;把ACC反向movp1,A;输出到p1开始反转jnBp3.4,stop1;如果p3.4按下停止jnBp3.3,rev2;如果p3.3按下反转CAlldelAy;转动的速度inCr0;取下一个码jmprev1;继续反转stop1:CAlldelAy;按p3.4的消除抖动jnBp3.4,$;p3.4放开否?CAlldelAy;放开消除抖动jmpstopfor2:CAlldelAy;按p3.2的消除抖动jnBp3.2,$;p3.2放开否?CAlldelAy;放开消除抖动jmpforrev2:CAlldelAy;按p3.3的消除抖动jnBp3.3,$;p3.3放开否?CAlldelAy;放开消除抖动jmprevdelAy:movr1,#40;步进电机的转速20msd1:movr2,#248djnzr2,$djnzr1,d1rettABle:dB03h,09h,0Ch,06h;正转表dB00;正转结束dB03h,06h,0Ch,09h;反转dB00;反转结束end步进电机正反快慢程序org00hx1:movr3,#48;一圈48步stArt:movr0,#00h;正转取码初值stArt1:movp1,#0ffh;先停止movA,r0movdptr,#tABlemovCA,@A+dptrjzstArt;是否到了结束码00?CplAmovp1,A;输出运转CAlldelAy;调用慢速的延时转动inCr0;取码指针加1取下一个码djnzr3,stArt1;是否走了48步?movr3,#48;是则重新设定48步stArt2:movp1,#0ffhmovr0,#05;逆转的取码初值stArt3:movA,r0movdptr,#tABlemovCA,@A+dptrjzstArt2CplAmovp1,ACAlldelAy2inCr0djnzr3,stArt3jmpx1;重复开始DELAY:;延时程序(慢速)MOVR7,#255D1:MOVR6,#50D2:DJNZR6,D2DJNZR7,D1RETDELAY2:;延时程序(快速)MOVR5,#255D3:MOVR2,#25D4:DJNZR2,D4DJNZR5,D3RETtABle:dB03h,09h,0Ch,06h;正转表dB00dB06h,0Ch,09h,03h;反转表dB00end中断服务程序如下:INTTO:PUSHAPUSHPSWMOVA,@R0MOVP1,AINCR0MOVA,#00HXRLA,@R0JNZNEXTMOVA,R0CLRCSUBBA,#03HMOVR0,ANEXT:DJNZR3,RETUCLRET1CLREARETU:POPPSWPOPARETI利用软件形成脉冲序列的程序清单:PULSE_S:MOVR7,#N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年家政服务服务调整协议
- 2025年度木材行业绿色认证及产品检测服务合同范本4篇
- 2025年婚礼广告合作协议
- 二零二五年度房地产项目纳税担保及贷款担保合同2篇
- 2025年度美容院养生产品研发与品牌孵化合同4篇
- 河南省二零二五年度事业单位劳动合同范本修订解读3篇
- 中英对照专业离婚合同格式(2024年修订版)一
- 2025年度智能速记设备采购协议1分钟速记单词protocol企业采购合同3篇
- 2025年度民办学校教师学生心理健康教育与辅导聘用合同4篇
- 二零二五年度XX地区集体劳动合同履行监督与评价
- 2024年安全教育培训试题附完整答案(夺冠系列)
- 神农架研学课程设计
- 文化资本与民族认同建构-洞察分析
- 2025新译林版英语七年级下单词默写表
- 小学语文阅读教学落实学生核心素养方法的研究-中期报告
- 眼内炎患者护理查房课件
- 唯物史观课件
- 2021-2022学年四川省成都市武侯区部编版四年级上册期末考试语文试卷(解析版)
- 中国传统文化服饰文化
- 大气污染控制工程 第四版
- 浅析商务英语中模糊语言的语用功能
评论
0/150
提交评论