
1、设计任务
1.1设计任务介绍及意义
(1)课程设计题目:机电传动单向数控平台设计
(2)主要设计内容:机械传动结构设计和电气控制系统
①电机驱动方式 步进电机、直流伺服电机、交流伺服电机
②机械传动方式 螺旋丝杠、滚珠丝杠、同步皮带、链传动等
③电气控制方式 单片微机控制、PLC控制
④功能控制要求 速度控制、位置控制
⑤主要设计参数
单向工作行程——1800、1500、1200 mm
移动负载质量——100、50 kg
负载移动阻力——100、50 N
移动速度控制——3、6 m/min
(3)课程设计意义: 通过课程设计,培养综合运用所学知识和能力,提高分析和解决实际问题的能力。专业课程设计是建立在专业基础课程和专业方向课的基础之上,根据所学课程进行工程基本训练。
1.2设计任务明细
(1)方案设计:根据课程设计任务的要求,在搜集、归纳、分析资料的基础上,明确系统的 主要功能,确定实现系统主要功能的原理方案,并对各种方案进行分析评价,进行方案选优;
(2)总体设计:针对具体的原理方案,通过对动力和总体参数的选择和计算,进行总体设计, 最后给出机械系统的控制原理图或主要部件图(A2 图纸一张);
(3)电气控制线路图:根据控制功能的要求,完成电气控制设计,给出电气控制电路原理图 (A2 图纸一张);
(4) 成果展示:课程设计的成果最后集中表现在课程设计说明书和所绘制的设计图纸上,应 保证完成课程设计说明书一份,字数为 3000 字以上,设计图纸不少于两张;
(5)绘图及说明书:用计算机绘图,打印说明书;
(6)设计分组:设计选题分组进行,每位同学采用不同方案(或参数)完成。
2、总体方案设计
2.1设计的基本依据
机电传动单向数控平台是机电一体化的典型产品,是集机床、计算机、电动机及拖动控制、检测等技术为一体的自动化设备。其基本组成包括机械传动系统、数控装置、伺服系统、反馈系统等。
机械传动系统的主传动在数控平台上一般采用丝杆螺母机构。它是将旋转运动变换为直线运动,也可以将直线运动变换为螺旋运动。丝杆螺母机构有滑动摩擦机构和滚动摩擦机构之分。滑动摩擦机构结构简单,加工方便,制造成本低,具有自锁功能,但其摩擦阻力打,传动效率低。滚珠丝杆机构虽然结构复杂,制造成本高,但最大优点是摩擦阻力小,传动效率高。
数控装置是数控平台的核心。其功能是接受输入装置输入的数控程序中的加工信息,经过数控装置的系统软件或逻辑电路进行译码、运算和逻辑处理后,发出相应的脉冲送给伺服系统,使伺服系统带动机床的各个运动部件按数控程序预定要求动作。一般由输入输出装置、控制器、运算器、各种接口电路、CRT显示器等硬件以及相应的软件组成。数控装置作为数控机床“指挥系统”,能完成信息的输入、存储、变换、插补运算以及实现各种控制功能。
伺服系统由伺服驱动电动机和伺服驱动装置组成,它是数控系统的执行部分。驱动机床执行机构运动的驱动部件,包括主轴驱动单元(主要是速度控制)、进给驱动单元(主要有速度控制和位置控制)、主轴电动机和进给电动机等。一般来说,数控平台的伺服驱动系统,要求有好的快速响应性能,以及能灵敏且准确地跟踪指令功能。数控机床的伺服系统有步进电动机伺服系统、直流伺服系统和交流伺服系统,现在常用的是后两者,都带有感应同步器、编码器等位置检测元件,而交流伺服系统正在取代直流伺服系统。
反馈装置是闭环(半闭环)数控机床的检测环节,该装置可以包括在伺服系统中,它由检测元件和相应的电路组成,其作用是检测数控机床坐标轴的实际移动速度和位移,并将信息反馈到数控装置或伺服驱动中,构成闭环控制系统。检测装置的安装、检测信号反馈的位置,决定于数控系统的结构形式。无测量反馈装置的系统称为开环系统。由于先进的伺服系统都采用了数字式伺服驱动技术(称为数字伺服),伺服驱动和数控装置间一般都采用总线进行连接。反馈信号在大多数场合都是与伺服驱动进行连接,并通过总线传送到数控装置,只有在少数场合或采用模拟量控制的伺服驱动(称为模拟伺服)时,反馈装置才需要直接和数控装置进行连接。伺服电动机内装式脉冲编码器、旋转变压器、感应同步器、测速机、光栅和磁尺
2.2可行性方案的比较
(1)电机驱动方式的选择
直流伺服电机主要靠脉冲来定位,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移,因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角度,都会发出对应数量的脉冲,这样,和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样,就能够很精确的控制电机的转动,从而实现精确的定位,可以达到0.001mm。
步进电机是开环控制,没输入一个脉冲,转过一个角度,精度较低,有时会发生丢步现象。启动较慢,不具备过载能力。
综上所述,电机选择直流伺服电机。
(2)机械传动方式选择
螺旋丝杆(本设计中选定为梯形丝杆)是将回转运动转化为直线运动,或将直线运动转化为回转运动的理想的产品。它的功能是将旋转运动转化成直线运动,效率低、速度低、精度也低,但刚性好、具有自锁功能,用于重载荷。
滚珠丝杠是工具机和精密机械上最常使用的传动元件,其主要功能是将旋转运动转换成线性运动,或将扭矩转换成轴向反覆作用力,同时兼具高精度、可逆性和高效率的特点。
由于本系统的负载阻力不是很高,同时考虑到经济的问题,选择螺旋丝杆。
(3)电气控制方式的选择
单片机是一种可编程的集成芯片,系统设计要从底层开发,设计较繁琐。应用系统广泛,开发成本低,开发周期短,可靠性高。
PLC(可编程逻辑控制器)实质是一种专用于工业控制的计算机,是单片机的特例,采用模块化设计,使用方便,编程简单,可靠性高,抗干扰能力强。
本例中采用单片机控制。
2.3总体方案的确定
(1)电机驱动方式 直流伺服电机
(2)机械传动方式 螺旋丝杠
(3)电气控制方式 单片微机控制
(4)功能控制要求 速度控制
(5)主要设计参数
①单向工作行程——1200 mm
②移动负载质量——150 kg
③负载移动阻力——50 N
④移动速度控制——3m/min
⑤寿命要求:每天开机8h,一年按300个工作日,寿命5年以上。
⑥定位精度——0.01mm
图2.1系统原理图
3、机械传动系统设计
3.1机械传动装置的组成及原理
机械传动装置主要包括螺旋丝杆,工作平台,直线导轨,联轴器,轴承等。其中电机与联轴器、丝杆与联轴器均为键联接。原理如下图:
图3.1机械传动原理图
3.2主要部件的结构设计计算
3.2.1、导轨的选择
表格 A
| 计算项目 | 设计计算过程 | 计算结果 |
| 已知条件 | 本设计采用螺旋丝杆,2根导轨,4个滑座数,工作平台和滑块的质量假定为50kg。 | |
| 1、额定工作时间寿命 | =h | |
| 2、额定行程长度寿命 | 2160h | |
| 3、额定动载荷 | 额定动载荷是指滚动直线导轨的额定长度寿命t=50km时,作用在滑座上大小的方向均不变化的载荷。其值可以按下式计算: 作用在滑块上的力 则单个滑座受力 K 寿命系数 K=50 硬度系数 =1 温度系数 =1 接触系数 =0.81 负荷系数 =1.5 则动载荷有 | =1730N |
| 4、选择导轨 | 由动载荷可以选择导轨:钢球间隔保持器型LM滚动导轨 微型 SRS型。型号:SRS12MC1+1340LHM。导轨长1340mm,4个滑块,基本额定动载荷,基本额定静载荷。 图3.2直线滚动导轨 |
(1)螺旋丝杆初选
表格 B
| 计算项目 | 设计计算过程 | 计算结果 |
| 1、工作载荷 | 通过查阅相关资料,工作载荷是指丝杆副在驱动工作台时承受的轴向力,也叫做进给牵引力,它包括丝杆的走刀方式与移动体重力作用在导轨上的其他切削分力相关的摩擦力,因为选择的导轨为矩形截面,所以计算公式如下: = 其中,、、分别为工作台进给方向载荷、垂直载荷和横向载荷;G为移动部件的重力;K和分别为考虑力矩影响的试验参数和导轨的摩擦系数,取K=1.1,=0.15. 则 | =202N |
| 2、计算螺旋丝杆的动载荷 | 动载荷计算公式为 其中,L为丝杆的寿命系数,单位为转,L=60nT/ T为使用寿命时间,本设计中取T=12000h n为丝杆转速:n=v/p=600r/min 得 为载荷系数,取=1.1 计算可得动载荷为
| |
| 3、选择螺旋类型 | 螺旋副的螺纹种类主要有梯形螺纹、锯齿形螺纹、圆螺纹、矩形螺纹、三角形螺纹。结合受力情况和使用场合等多种因素考虑,选用梯形螺纹。 | 选用梯形螺纹 |
表格 C
| 计算项目 | 设计计算过程 | 计算结果 |
| 1、耐磨性 | (1)螺纹中径(mm) 为轴向载荷, 螺纹副许用压强,螺纹副的材料取钢对耐磨铸铁,得 =4.3MPa 为螺母长度L与螺杆中径,选整体式螺母,故=1.5 故 (2)公称直径d和螺距P 根据上式计算出的按螺纹的标准基本尺寸系列选取相应的d和P,经查表可以选出:公称直径:d=20mm;螺距:p=4mm,取 材料选择:丝杆材料40CrMn,轴颈处可局部热传动螺母采用ZCuSn10Zn2 (3)导程S 选取线数Z=1,因为螺距P=4mm,故导程S=ZP=4mm (4)螺母高度H H==1.518=27mm (5)旋合圈数m m=H/P=27/4=6.75 (6)螺纹的工作高度 (7)工作压强 | 12.44mm =8,说明校核合格,设计正确。 |
| 2、验算自锁 | (1)螺旋升角 (2)当量摩擦角 通过查表,滑动摩擦系数(定期润滑):=0.10 牙型角= 故 | " ,满足自锁条件 |
| 3、螺杆强度 | (1)螺杆传动的转矩T (2)当量应力 其中 故 (3)强度条件 螺杆材料为:45钢调质,查表得: 材料的屈服极限为,选278; 则螺杆的许用应力为 故< | <,校核合格,符合强度条件 |
| 4、螺纹牙强度 | (1)螺纹牙底宽度 因为是梯形螺纹,故 (2)螺杆和螺母的抗剪强度 螺杆剪切应力为: 螺母剪切应力为: 螺杆许用剪切应力 螺母许用剪切应力 可见,校核通过。 (3)螺杆和螺母的抗弯强度 螺杆的弯曲应力: 螺母的弯曲应力: 螺杆许用弯曲应力 螺母许用弯曲应力 可见,校核通过。 综上所述,螺纹牙强度足够。 | 说明螺纹牙强度足够。 |
| 5、螺杆的稳定性 | (1)柔度 , 其中长度系数(两端固定),工作行程 =1200mm, 故>90 (2)临界载荷 ,其中E为螺杆材料的弹性模量,取 ,螺杆危险截面的轴惯性矩 , 故 (3)稳定性判定 说明稳定性合格. | >4,证明稳定性合格. |
| 6.螺杆的刚度 | (1)轴向载荷使导程产生的变形 (2)转矩使导程产生的变形 (3)导程的总变形量 ,轴向载荷与运动方向相反时取正号。 则 (4)单位长度变形量 在本设计中,取精度等级为7级, 故可知,螺杆刚度合格。 | ,螺杆刚度合格 |
| 7、螺杆的横向振动 | (1)临界转速 ,其中为螺杆两支承间的距离,取=1200mm;为支承系数,取=4.730(两端固定); 则 (2)工作转速的校核 按=1500计算, 满足要求,合格。 | ,满足转速要求。 |
| 8、效率 | 0.395 | |
| 9、螺旋丝杆选型 | 通过螺纹外径和螺距选择30度梯形丝杠(两端台阶型),型号为MTSBLW20-1200-F25-V15-S25-Q15 图3.3 螺旋丝杆 |
已知参数:
工作台重量
工作台与导轨间的摩擦系数
工作台行进时动载荷
螺旋丝杆导程
螺旋丝杆节圆直径
螺旋丝杆总长
螺旋丝杆传动效率
表格 D
| 计算项目 | 设计计算过程 | 计算结果 |
| 1、动作模式的决定 | 其中,工作平台移动速度 工作行程 行程时间 加减速时间 定位精度 | |
| 2、等效负载转矩 | 电机与螺旋丝杆间的传动比i,为使结构简单,提高精度,取i=1. (1)空载时的摩擦转矩 (2)车削加工时的负载转矩 | |
| 3、等效转动惯量 | (1)螺旋丝杆转动惯量 (2)工作台的转动惯量 (3)联轴器的转动惯量 根据螺旋丝杆和电机输出轴直径,选择 MCSLCWK40-12-15联轴器(两端带键槽),转动惯量为 图3.4联轴器 (4)换算到电机轴上的等效转动惯量为 | |
| 4、转速计算 | 电机转速 | |
| 根据车削时负载转矩,电机等效转动惯量和电机转速1500,初步选定为巨风牌稀土永磁直流伺服电机,型号为85SZD,额定转速为=1500,额定转矩为=1.6,峰值转矩为=10,转动惯量为=80.6。 图3.5直流伺服电机 为了使电机具有良好的起动能力和较快的响应速度,应有: | ||
| 6、加减速转矩 | 加减速转矩 | |
| 7、瞬时最大转矩及有效转矩 | (1)必要的瞬时最大转矩 故== (2)有效转矩 图3.6电机动作模式及合成转矩 | |
| 8、电机其它参数校验 | (1)有效转矩 =1.41<=1.6 (2)瞬时最大转矩 =<=10 (3)编码器分辨率R 所要求的编码器分辨率为 即所选编码器分辨率必须大于。 |
根据工作情况以及滚珠丝杆的受力,初选轴承为角接触球轴承,其,采用面对面安装,其轴向载荷分析如下:
图3.7 轴承轴向载荷分析图
表格 E
| 计算项目 | 设计计算过程 | 计算结果 |
| 1、径向外载荷 | 980 | |
| 2、轴向外载荷 | 202 | |
| 3、轴承支反力 | 490 | |
| 4、轴承派生轴向力 | 343 | |
| 5、轴承所受的轴向载荷 | 因为,则 轴承1受力为 轴承2受力为 | 343 545 |
| 6、轴承所受当量动载荷 | 因为轴承工作时有中等冲击,查表得载荷系数 因为有>=0.68,>=0.68,且<, 故当量动载荷为 | 922 |
| 7、基本额定动载荷 | 其中为轴承预期计算寿命,取=15000h 为寿命系数,取=3 为温度系数,取=1.00 则 | 101 |
| 8、选用轴承 | 根据额定动载荷,查表,选用7302AW,d=15mm,D=42mm,B=13mm,基本额定动载荷为 C=13400N,基本额定静载荷为7100N | 型号7302AW,d=15mm, D=42mm, B=13mm, C=13400N |
| 9、计算寿命 | 34120 符合寿命要求 轴承合格 |
表格 F
| 计算项目 | 设计计算过程 | 计算结果 |
| 1、电机与联轴器上键的校核 | (1)选择A型普通平键。 根据轴径d=12mm,确定b=5mm,h=5mm,L=14mm。 (2)键的强度校核 验算其挤压强度,查表得 键的工作长度 则 < 符合强度要求。 | 键514 |
| 2、联轴器与螺旋丝杆上键的校核 | (1)选择A型普通平键 根据轴径d=15mm,确定b=5mm,h=5mm,L=14mm。 (2)键的强度校核 验算其挤压强度,查表得 键的工作长度 则 < 符合强度要求。 | 键514 |
4.1控制系统基本组成
4.1.1总体方案确定
本系统设计的控制系统的工作过程为:系统开机,电机正转,工作平台正向移动,默认速度3m/min,完成工作行程之后,触碰右限位开关,电机反转,工作平台返回,依此循环。
速度控制采用PWM调节,有3m/min和6m/min两个设定速度。传感器检测的速度在LCD上显示。
4.1.2电器控制系统原理及组成
(1)控制系统原理图如下:
图4.1电器控制系统原理图
(2)控制流程图如下:
图4.2主程序流程图
图4.3 PWM流程图
图4.4 显示程序
4.2电器元件的选型计算
4.2.1控制芯片选择
C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的C51是一种高效微控制器,C2051是它的一种精简版本。C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图4.5 C51管脚图
4.2.2电机驱动芯片选择
由于单片机P3口输出的电压最高才有5V,难以直接驱动直流电机。所以我们需要使用恒压恒流桥式2A驱动芯片L298N来驱动电机。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本系统我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。ENA,ENB接控制使能端,控制电机的停转。同时需要加四个二极管在电机的两端,防止电机反转的时候产生强大的冲击电流烧坏电机。
图4.6 L298管脚图
4.2.3旋转式编码器选择
(1)增量式或绝对式选择
增量式只能记住自己走的步数,开机后会回到原点;而绝对式上电后就能知道所处的位置,但其需要更多的线数,成本更高,不如增量式经济。
综上所述,选择增量式编码器。
(2)分辨率精度
根据电机选型时确定的最小分辨率400,保证编码器分辨率不小于400.
(3)容许最大旋转数
由上可知,电机的额定转速为1500r/min,保证容许最大旋转数不低于此值。
(4)最高响应频率数
最大响应频率=(旋转数/60)×分辨率=(1500/60)×600=15kHz
根据以上参数,选择欧姆龙生产的增量式旋转式编码器E6C2-C。
图4.7旋转式编码器
4.2.4显示器选择
图4.8 LCD1602
显示器选择LCD1602,可显示16*2个字符,芯片工作电压为4.5~5.5V,工作电流为2.0mA(5.0V时)。接口说明信号如下:
4.3电气控制电路的设计
4.3.1单片机最小系统
单片机最小系统:所谓最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机,晶振电路和复位电路。
(1)晶振电路设计
高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.0MHz无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。
图4.9 晶振电路
(2)复位电路
复位电路通常分为两种:上电复位和手动复位,如下图所示。
图4.10 上电复位 图4.11手动复位
有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。
图4.12 复位电路
4.3.2直流电机驱动电路设计
由单片机转换成PWM信号,并由P3.0、P3.1输出,经驱动电路输出给电机,从而控制电机得电与失电。P3.0为高电平实现电机正转,P3.1为高电平时实现电机反转。通过调节脉冲的占空比,实现速度的调节。
电路设计如下:
图4.13驱动电路
4.3.3显示电路设计
图4.14显示电路
4.3.4键盘电路设计
图4.15键盘电路
4.4控制程序的设计及说明
4.4.1PWM基本原理
(1)PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。如图1所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。
图4.16 PWM控制原理
设电机始终接通电源时,电机转速最大为,占空比为,则电机的平均速度为
式中,——电机的平均速度;
——电机全通电时的速度(最大);
——占空比。
由公式(2)可见,当我们改变占空比时,就可以得到不同的电机平均速度,从而达到调速的目的。严格地讲,平均速度与占空比并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。一般可以采用定宽调频、调宽调频、定频调宽三种方法改变占空比的值,但是前两种方法在调速时改变了控制脉宽的周期,当控制脉冲的频率与系统的固有频率接近时将会引起振荡,因此常采用定频调宽法改变占空比的值,从而改变直流电动机电枢两端电压。定频调宽法的频率一般在800HZ-1000HZ之间比较合适。
(2)实现方法
PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍采用定频调宽法来利用51单片机产生PWM信号的软件实现方法。
MCS-51系列典型产品805l具有两个定时器T0和T1。通过控制定时器初值,从而可以实现从8051的任意输出口输出不同占空比的脉冲波形。由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为f,定时器/计数器为n位,则定时器初值与定时时间的关系为:
式中,表示定时时间;
表示定时器的位数;
表示定时器的计数初值;
表示单片机一个机器周期需要时钟数,8051需要12个时钟;
表示单片机晶振频率。
随着机型的不同而不同。在应用中,应根据具体的机型给出相应的值。这样,我们可以通过设定不同的定时初值,从而改变占空比D,进而达到控制电机转速的目的。
4.4.2速度反馈原理
速度编码器通过编码,输出的是标准脉冲,由其分辨率为600P/R可知,每一个脉冲可以使电机轴转1/600转。通过计算1s的输出脉冲值,乘以1/600,就可以得到电机轴的实际转速,通过与额定转速(25r/s)比较,得出差值,再进行调速,即可完成速度的反馈控制。
4.4.3单片机I/O口分配
P0.0~P0.7:LCD1602数据I/O口
P1.0:电机急停开关
P1.1:电机正转开关(接左限位开关)
P1.2:电机反转开关(接右限位开关)
P1.3:电机速度调节开关(3m/min)
P1.4:电机速度调节开关(6m/min)
P2.0:LCD1602数据/命令选择端
P2.1:LCD1602读/写选择端
P2.2:LCD1602使能信号端
P2.7:传感器读数据端
P3.0:直流伺服电机接入端
P3.1:直流伺服电机接入端
P3.7:L298n使能端
4.4.4程序设计
#include #include #define uchar unsigned char #define uint unsigned int sbit TX=P2^6; sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚 sbit RW=P2^1; //读写选择位,将RW位定义为P2.1引脚 sbit E=P2^2; //使能信号位,将E位定义为P2.2引脚 //初使化显示数组定义 uchar dis1[]={"Speed "}; uchar dis2[]={" mm/s"}; uchar code ASCII[]={'0','1','2','3','4','5','6','7','8','9','.','-','M'}; uint count; void lcdshow(); //显示程序 void keyscan(); //键盘扫描程序 void delay();//延时程序 void forward();//电机前进程序 void backward();//电机后退程序 void stop();//电机急停程序 void speed1();//速度3m/min void speed2();//速度6m/min float count(float s);//计算传感器1s输出的脉冲数 void speedcontrol();//速度反馈控制 void delay() { unsigned char i,j; for(i=20;i>0;i--) { for(j=248;j>0;j--); } }//延时10ms void keyscan() { uchar temp=0; P1=0xff; if((P1&0x1f)!=0x1f) { delay(); if((P1&0x1f)!=0x1f) { temp=P1&0x1f; switch(temp) { case 0x1e; stop();break; case 0x1d; forward();break; case 0x1b; backward();break; case 0x17; speed1();break; case 0x0f; speed2();break; } } } while((P1&0x1f)!=0x1f); } float count(s) { s=count/600; shi=(s/10)+48; ge=(s%10)+48; return s; } uchar lcd_busy() { bit result; RS=0; RW=1; E=1; _nop_(); _nop_(); _nop_(); _nop_(); result=(bit)(P0&0x80); E=0; return result; } void lcd_wcmd(uchar cmd) { while(lcd_busy()); RS=0; RW=0; E=0; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; } void lcd_pos(uchar pos) { lcd_wcmd(pos|0x80); } void lcd_wdat(uchar dat) { while(lcd_busy()); RS=1; RW=0; E=0; P0=dat; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; } void lcd_init() { void delay(); lcd_wcmd(0x38); void delay(); lcd_wcmd(0x38); void delay(); lcd_wcmd(0x38); void delay(); lcd_wcmd(0x0c); void delay(); lcd_wcmd(0x06); void delay(); lcd_wcmd(0x01); void delay(); } void lcdshow() { int i=0; lcd_init(); lcd_pos(0x02); while(dis1[i]!='/0') { lcd_wdat(dis1[i]); i++; }; lcd_pos(0x40); i=0; while(dis2[i]!='/0') { lcd_wdat(dis2[i]); i++; }; while(1) { count(s); lcd_pos( 0x4A); lcd_wdat(shi); lcd_pos(0x4B); lcd_wdat(ge); //反馈速度显示 } } void forward() { P3_0=1; P3_1=0; } void backward() { P3_0=0; P3_1=1; } void stop() { P3_0=0; P3_1=0; } void speed1() { TMOD=0x01; TH0=(65536-40000)/256; TL0=(65536-40000)%256; EA=1; ET0=1; TR0=1; P3_0=0; } void speed2() { TMOD=0x01; TH0=(65536-40000)/256; TL0=(65536-40000)%256; EA=0; ET0=0; TR0=0; P3_0=1; } void speedcontrol() { if(s<25) { s++; } if(s>25) { s--; } } void main() { P3_0=1; P3_1=0; TMOD=0x01;//计时器T0方式1 TH0=(65536-40000)/256; TL0=(65536-40000)%256; TMOD=0x10;//计时器T1方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; ET1=1; TR1=1; while(1) { lcdshow(); keyscan(); } } void timer0()interrupt 0 { if(P3_0==1) { TH0=(65536-40000)/256; TL0=(65536-40000)%256; P3_0=0; } else { TH0=(65536-40000)/256; TL0=(65536-40000)%256; P3_0=1; } } void timer1()interrupt 1 { count++; if(count==100) { count(); count=0; } } 5、结论 综上所述,最后的系统元件选型为: 导轨:钢球间隔保持器型LM滚动导轨 微型 SRS型 丝杆:30度梯形丝杠(两端台阶型) 联轴器:MCSLCWK40-12-15联轴器(两端带键槽) 电机:巨风牌稀土永磁直流伺服电机,型号为85SZD 轴承:角接触轴承7302AW 单片机:C51 驱动芯片:L298n 显示器:LCD1602 速度传感器:欧姆龙增量式旋转式编码器E6C2-C。 参考书目 1、张建民 机电一体化系统设计 北京理工大学出版社,2010 2、高安邦 机电一体化系统设计实例精解 机械工业出版社,2008 3、机械设计手册委员会 机械设计手册(单行本)—机架、箱体及导轨 机械工业出版社,2007 4、机械设计手册委员会 机械设计手册(单行本)—滚动轴承 机械工业出版社,2007 5、机械设计手册委员会 机械设计手册(单行本)—弹簧、摩擦轮及螺旋传动轴 机械工业出版社,2007 6、李朝青 单片机原理及接口技术(第三版) 北京航空航天大学出版社 7、侯玉宝,陈忠平 基于Proteus51系列单片机设计与仿真 电子工业出版社,2008
