毕业设计毕业论文:基于单片机的步进电机升降频控制内容摘要:
1. AT89C51 单片机的时钟 电路: AT89C51 单片机的时钟信通常用两种电路形式得到:内部振荡方式和外部振荡方式。 本设计由内部振荡方式产生。 如图 22 中所示,在引脚 XTAL1和 XTAL2 外接晶体振荡器 (简称晶振 ),就构成了内部振荡方式。 由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。 两个电容器起稳定振荡频率、快速起振的作用,其电容值一般在 530pF。 当晶振频率的值为 12MHZ 时内部振荡方式所得的时钟信号比较稳定,实用电路中应用较多。 2. 单片机复位电路: 当 MCS5l系列单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以 上的高电平时,单片机就执行复位操作。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。 上电后,由于电容的充电作用,使 RST 持续一段时间的高电平。 当单片机已在运行当中时,按下复位键后松开,也能使 RST 保持 一段时间的高电平,从而实现 通电时的自动复位操作,系统运行过程中的 开关复位操作。 167。 控制键电路 键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。 按键是一种常开型按钮开关。 由于按钮是机械触点,当机械触点断开、闭合时,会有抖动 , 这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的, 因为计算机处理的速度是在微秒级,而机械抖动的时间至 少是毫秒级 , 对计算机而言,这已是一个 “ 漫长 ” 的时间了。 毕业设计(论文) 12 为使 CPU 能正确地读出 输入口 的状态,对 每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。 单片机 系统 中常用软件法。 就是在单片机获得 P0 口为低的信息后,不是立即认定 按键 已被按下,而是延时 10 毫秒或更长一些时间后再次检测 P0 口,如果仍为低,说明 按键 的确按下了,这实际上是避开了按钮按下时的抖动时间。 按键 与控制系统 P0 口键连接,其连接如下表: 表 21 P0 口与控制键连接 控制键电路图如 图 23 所示: 图 23 控制键电 路图 167。 步进电机驱动电路 AT89C51 控制电机运行的各种工作状态。 但不能直接驱动步进电机,这需要由功率电路来扩展输出电流以满足被控元件的电流、电压。 ULN2020 达林顿晶体管阵列系列产品就属于这类可控大功率器件。 ULN2020 是高耐压、大电流、内部由七个硅 NPN 达林顿管成的驱动芯片。 它是一个 7 路反向器电路,即当输入端为高电平时, ULN2020 输出端为低电平,当输入端为低电平时 ULN2020 输出端为高电平。 ULN2020 的每一对达林顿都启动 升频 降频 停止 KW1 KW2 KW3 KW4 毕业设计(论文) 13 串联一个 的基极电阻,在 5V 的工作电压下它 能与 TTL 和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来 处理的数据。 ULN2020 芯片如 图 24 所示: 图 24 ULN2020 芯片 ULN2020 芯片输入端 与控制系统 P1口连接,其连接方式如 表 22 所示 : 表 22 ULN2020 芯片输入端 与控制系统 P1 口键连接 1B 2B 3B 4B ULN2020 芯片输出端 与步进电机连接,其连接如 表 23 所示 : 表 23 ULN2020 芯片输出端 与步进电机连 接 1C 2C 3C 4C A+ A B+ B 167。 步进电机控制系统硬件电路图 (见附录 1) 毕业设计(论文) 14 第 3 章 步进电机控制系统软件设计 167。 步进电机控制系统应用流程图 167。 主流程图(见附录 2) 167。 升频流程图 图 31 升频流程图 毕业设计(论文) 15 167。 降频流程图 图 32 降频流程图 本文以 35BY48S03 步进电机为例,首先根据步进电机的特性设计一个数据区,再编写程序对此数据的的数据进行调试。 设计的最小启动频率为100HZ,在升频过程中每按一次升频键,步进 电机升频后匀速运行,这样易于发现因数据区的数据不合理而导致电机出现失步的状况。 降频阶段可采用 毕业设计(论文) 16 升频区的数据进行反指数降频。 167。 走一步子程序流程图 图 33 走一步子程序流程图 167。 步进电机数据区设计 步进电机带负载时的运行频率低于起动频率时,步进电机能以运行频率直接起动,并以该频率连续运行。 需要停止的时候,可以从运行频率直接降到零速。 而当步进电机的运行频率为负载启动频率或负载过大时,易出现丢步或堵转的现象;停止时频率过高, 又 易出现过冲的现象,造成位置精度降低。 因此,需要对步进电机采用 升降频控制,以使电机从启动频率 中 或者低于启动频率的某个合适的值(此值与负载和步进驱动有关)开始 启动 ,逐渐加速升到运行频率然后进入匀速运行。 最后的降频可以看作是升频的逆过程。 采用 51 系列单片机进行升降频控制时,设单片机的晶振频率 12MHZ, 经过 升 频达到目标频率,在升频 的 第 n 个台阶 的频率为 F(n)。 设定 定时器工作设置 在方式 1。 为了达到精确定位的目的, 在 编程时,将频率 F(n)的保持时 毕业设计(论文) 17 间换算为步数,并对步数 Z(n)进行计数。 每次计满时,定时器重装下一频率的初值。 开始下一次升降频。 以 AT89C51 单片机,频率 100HZ 为例,进行数据区设计。 如图 34 所示,我们设频率最高升至 1000HZ,用时为 5S,依此确定纵坐标每一小格所对应的频率,横坐标每一小格对应的时间。 图 34 升频曲线 当频率为 100HZ 时,对应横坐标时间为: T=(10/60)*5= 两步之间定时时间 t0 (μ s)为: t0=f1=1001 =( s) =10000( μ s) 步数为: BC=T/ t0 =以此方法可以得到如表 31 所示的 升频数据区: 毕业设计(论文) 18 表 31 升频数据区 频率 步数 频率 步数 100 83 420 140 130 108 520 130 180 120 650 150 230 115 850 200 290 145 1000 100 350 145 以升频曲线的反指数曲线可以得到如表 32 所示的 降频数据区 表 32 降频数据区 频率 步数 频率 步数 1000 750 680 230 970 725 580 150 920 700 450 140 870 435 250 60 810 405 100 10 750 310 AT89C51 有两个定时 /计数器,本系统选用 T1 作为定时器使用。 T1 的模式存放在模式控制寄存器 TMOD 中( T1 作为 16 位定时器,为模式 1) 方式字为: 10H 模式 1中,定时器寄存器 TH1 和 TL1是以全 16 位参与操作,作为计数器使用,计数输入信号内部时钟脉冲,每个机器周期使寄存器值增 1,当计数值由全 1 再增 1 变为全 0 时,便 TF1 置 1 请求中断。 定时常数为: 计数器 方式 定时器方式 选通位 工作模式 控制位 毕业设计(论文) 19 t0(H)=65536[ t0/(t’ 0*C)]=60536 167。 程序源代码 系统详细设 计程序如下: 文件: include include define uint unsigned int define uchar unsigned char //引脚定义 sbit Start=P0^0。 sbit SpeedUp=P0^1。 sbit SpeedDown=P0^2。 sbit Stop=P0^3。 sbit AP=P1^0。 sbit AN=P1^1。 sbit BP=P1^2。 sbit BN=P1^3。 //定时器 T1 溢出延时 void T1_Delay(uint temp)。 //以指定频率运行 void MotRun(uint F)。 //停止电机 void MotStop(void)。 //_stepmot_h_ // 文件 //定时器 T1 溢出延时函数 void T1_delay(uint temp) { 毕业设计(论文) 20 uint t。 t=65536temp。 TMOD=0X20。 TH1=(uchar)(t8)。 TL1=tamp。 0xff。 TR1=1。 while(TF1!=1)。 TF1=0。 TR1=0。 return。 } //以指定频率运行函数 void MotRun(uint F) {uint t。 t=500000/F。 AP=1。 AN=0。 BP=0。 BN=0。 T1_delay(t)。 AP=0。 AN=1。 BP=0。 BN=0。 T1_delay(t)。 AP=0。 AN=0。 BP=1。 毕业设计(论文) 21 BN=0。 T1_delay(t)。 AP=0。 AN=0。 BP=0。 BN=1。 T1_delay(t)。 AP=0。 AN=0。 BP=0。 BN=0。 Return。 } //停止电机函数 void Motstop(void) { AP=0。 AN=0。 BP=0。 BN=0。 return。 } // 文件 uint F。 void InitIO() { Start=1。 SpeedUp=1。 毕业设计(论文) 22 SpeedDown=1。 Stop=1。 AP=0。 AN=0。 BP=0。 BN=0。 } void main() { InitIO()。 F=100。 while(1) { while(Start!=0amp。 Stop=0)。 MotRun(F)。 //升频 if((!SpeedUp)amp。 (F1000)) { uint i, j, bc, a[]={100, 130, 180, 230, 290, 350, 420, 520, 650, 850, 1000}, b[]={83, 108, 120, 115, 145, 145, 140, 130, 150, 200, 100}。 for(i=0。 i12。 i++) { F=a[i]。 bc=b[i]。 for(j=bc。 j0。 j) MotRun(F)。 } 毕业设计(论文) 23 } //降频 if((!SpeedDown)amp。 (F0)) { uint c[]={1000, 970, 920, 870, 810, 750, 680, 580, 450, 250, 100}, d[]={750, 725, 700, 425, 405, 310, 230, 150, 140, 60, 10}。 uint i, j, bc。 for(i=0。 i12。 i++) { F=c[i]。 bc=d[i]。 for(j=bc。 j0。 j) MotRun(F)。 } } //停止 if(!Stop) { while(F10) { F=100。 MotRun(F)。 } MotStop()。 } } } 毕业设计(论文) 24 结 论 本文主要论述了如何使用单片机实现步进电机的升降频控制。 硬件设计由于每个电机及负载的机械特性不同,所以它不能很好的与所有电机适配。 而且随着系统使用时间越来越长,元器件会发生变值。 本文采用程序的方法来实现升降频控制,克服了硬件设计那些不能灵活变动和元器件容易变值的缺点。 在系统设计中我们采用了 AT89C51 现在工业控制系统中广泛使用的芯片,整个控制电路设计简单易行,运行可靠,改动也很方便,而且可以降低运行成本。 在程序设计上,本文采用了指数曲线的控制方式控制电机的升降频。 程序可用于调试步进电机升降频的数据 区,在步进电机的性能检测、机械特性检测上都有一定的用途,也可为数控系统提供一些数据。 实践证明,在大功率步进电机控制中,采用指数曲线控制方法能有效的减少电机启动所用的时间,且能保证力矩最大,在很大程度提高了电机的工作效率。 由于本人经验尚浅,各方面的知识还不是。毕业设计毕业论文:基于单片机的步进电机升降频控制
相关推荐
1]第 27 页表 ,取值为 400 MPa; 卸P -卸料力, N; 顶P -顶件力 ,N; 卸K -卸料力系数,查 [1]第 52页表 ,取值为 ; 顶K -顶件力系数,查 [1]第 52 页表 ,取值为 ; 1P -冲裁工序所需力之和。 拉深工序 FqPQ = [π( 752352) /4] = kN; bdtKP kN; PPP Q kN。 式中:
一般选用石英晶体振荡器。 此电路在加电大约延 迟 10ms 后振荡器起振 , 在 XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号 , 其振荡频率主要由石英晶振的频率确定。 电路中两个电容 C2, C3 的作用有两个 : 一是帮助振荡器起振 ; 二是对振荡器的频率进行微调。 C2, C3 的典型值为 30PF。 单片机在工作时 , 由内部振荡器产 生或由外 部
........72 锚索制作与安装 ...............................................................................74 灌浆 ...............................................................................................
、 设计内容 对 工艺构筑物选型作说明; 主要处理设施(格栅 初沉池 生物接触氧化池 过滤池 二沉池)的工艺说明; 主要设备(初沉池 生物接触氧化池 过滤池 二沉池)的选择计算; 污水处理厂平面和高程布置。 XXXXX 9 第二节 基础资料 一 、 设计题目 某生活小区污水处理及中水回用工程设计 二 、 基础资料 污水水量与水质 污水处理水量: dm /2500 3 污水水质: lmgCOD
接与总线相连。 当三态允许控制端 OE 为低电平时, 为正常逻辑状态,可用来驱动负载或总线。 当 OE 为高电平时, 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时, O 随数据 D 而变。 当 LE 为低电平时, O 被锁存在已建立的数据电平。 当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV 图
考生之间的差别。 角色扮演法既是要求被试者扮演一个特定的管理角色来观察被试者扮演一个特定的管 理角色来观察被试者的多种表现,了解其心理素质和潜在能力的一种测评方法,又是通过情景模拟,要求其扮演指定行为角色,并对行为表现进行评定和反馈,以此来帮助其发展和提高行为技能最有效的一种培训方法。 它是一项参与性的活动,具有较高的灵活性。 角色扮演过程中,需要角色之间的配合、交流与沟通