《2022年2022年镜片剪切自动化系统设计方案 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年镜片剪切自动化系统设计方案 .pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录摘要Abstract1 引言 3 1.1本设计的目的和意义 3 1.2本设计所要解决的问题及完成的主要内容 4 2 镜片剪切自动化系统总体方案及特点 4 3 镜片剪切自动化系统运动方案 5 4 镜片剪切自动化系统及设计 7 4.1.1电机的选择 7 4.1.2直流电机特性 8 4.1.3 判定机电传动系统能否稳定运行10 4.2 传感器的选择与布置 11 4.3 材料选择与结构设计 15 4.4 电机及传动机构的设计 15 4.5 电源支架设计 16 5 参考文献 17 附录一:主控电路原理图 18 附录二: PWM 直流电动机调速代码19名师资料总结 - - -精品资料欢迎下载 - -
2、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 摘要本剪片剪切自动化系统以机电一体化形式出现,它以钢为支架、 铅蓄电池为电源、直流电机为驱动、51 单片机为控制核心,加以传感器及各功能电路共同构成。系统由单片机控制剪切运动模式,用传感器识别物体, 用二自由度云台及传感器进行扫描定位,用小电机驱动剪切装置。关键词: 镜片剪切、自动化、机械系统Abstract The intelligent robot finally appears in the form of a macha
3、nics. It is base-frame is made of iron. And it takes lead-acid batteries as its power supply, is controled by 51 SCM .It also consists of tires and various functional circuits. The pattern of its movements is controled by the single-chip microcomputer .It is with two degrees of freedom and far-infra
4、red flame sensors-scanning and positioning the flame, furthermore, driving the fire-extinguished device.Key words: Intelligence, Automatic, Mechanical System 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 3 1 引言1.1 镜片剪切工作的现状被镜片主要应用于手机摄像头上
5、, 需要很高的光洁度,对磨损程度要求较高。而镜片生产过程中, 由于塑料模具结构限制无法避免的产生废料,而废料必须去除,且剪切镜片需要在剪钳有一定工作温度。这就需要在去除废料剪切镜片的过程中,既保证效率又要不能磨损破坏镜片。目前镜片剪切工作以人工为主。造成工作效率底下,容易磨损镜片的缺点。且由于剪钳需要一定的工作温度, 所以人工手工的工作无法满足镜片剪切效率与质量的要求。图- 废料形状1.2 本设计的目的和意义自动化系统是的机电一体化产品,具有良好的实用前景。 它主要应用在一些不适合或者是不需要人工工作的地方(如精密工厂、 生产流水线、 自动化生产车间、生产车间等),实现自动化检测和自动化工作并
6、及时调整工作状态。想达到这些目的, 就需要镜片剪切自动化系统应该具有以下功能:检测材料形状, 自动匹配工作温度,自动剪切工作等。该课题的主要设计目的是完成镜片剪切自动化系统实物的制作,实现从模型到实物的跨越。 我的主要任务是完成镜片剪切自动化系统方案设计,并结合镜片剪切自动化系统的软硬件系统进行综合调试,最终实现上述功能并完成设计说明书。1.3 本设计的研究内容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4 原来本设计课题
7、拟解决的关键问题有智能检测、定位、自动调节温度与自动剪切等功能模块设计与制作, 并综合机械系统、 硬件电路和软件程序进行整体功能调试。而这次课程设计中主要针对一体化课程设计,因此完成的主要内容有:1)工作机械结构有关方面的设计;2)电源安装与固定方案的设计;3)传感器的选择;4)底板的材料选择与结构设计;5)运动机构的设计;8)电源支架设计及螺栓校核。1.4 镜片剪切自动化系统的预期效果镜片剪切自动化系统以机电一体化的形式出现,体统在工作过程中有自动检测功能,识别废料形状,进行精确剪切;并在工作时自动调节剪钳的温度,并将剪切后的镜片与废料分离分装好。其中完成本次课程设计的部分为: 镜片剪切自动
8、化系统首要解决的是机电运转的问题,即实现镜片剪切自动化系统能够进行基本的剪切运动。图-人手工作设备名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 5 2 镜片剪切自动化系统控制系统总体方案及特点该镜片剪切自动化系统硬件部分主要由控制模块、电机驱动模块、检测模块开启装置电机模块及报警模块组成;其中控制模块以单片机为控制核心、电机驱动模块由左右两个型号一样的直流电机及其电路组成、检测由 4 个红外传感器及其电路组成。各个组成部分关
9、系具有如图2-1:图 2-1 开启电源后该镜片剪切自动化系统能够自动检测废料形状,按事先设定好的程序进行精确剪切。 并自动调控剪钳的温度, 以适合剪切镜片的工作要求。再将废料与镜片分离。实现高效率低磨损的工作。3 镜片剪切自动化系统运动方案机械形式方案选择根据镜片剪切自动化系统的基本功能对总体方案如下:方案 1:利用现成物品基本的机械支架。利用的组装完整的机械支架、如玩具内的电机及其驱动电路。但是一般的说来,具有如下缺点:首先,玩具由于装配紧凑,使得各种所需传感器的安装十分不方便。其次,一般都是机械部分都是按设计好的运转自由度,不能方便迅速的实现90 度甚至 180 度的运动操作,无法达到高精
10、度剪切的要求。再次,玩具的电机多为小转矩直流电机,力矩小,空单片机控制模块电源模块大电机模块检测模块机械运动模块温度模块小电机模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - - - 6 载转速快,负载性能差,不易调速。方案 2:自己制作机械及电路零部件。考虑到该机械外型及布置的关系,通过自己设计可以很明显的知道设计的合理性,也可以按照自己设计的意愿来控制机械体的尺寸, 电机也可以自己按照负载量和灵敏性来选择。但是这个方案量很大,风
11、险也相应增大。比较方案 1 和方案 2,可以知道方案1 比方案 2 简单,省时间,但是费用较高,灵活性不强, 有很大的局限性。综合两个方案的优缺点,决定采用方案2 对自动化机械体进行下一步的设计。4 智能灭火机器人控制系统方案及设计4.1.1电机的选择1)直流减速电机直流减速电机是以直流电作为电源。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生大扭力, 且通过脉宽调制可以较容易控制电机转动速度。一般而言同样的体积直流电机可以输出较大功率,而且直流电机转速不受电源频率限制可以制做出高速电机,速度控制也只要控制电压即
12、可,较简单容易。2)步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下, 电机的转速、 停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响, 即给电机加一个脉冲信号, 电机则转过一个步距角。 这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。但是步进电机的输出力矩随转速升高而下降,且在较高转速时会急剧下降,所以其最高工作转速一般在300600RPM,另外步进电机一般也不具有过载能力。3)伺服电机一般伺服电机采用交流电驱动,有电压和脉冲两种控制方式。它的控制过程最精确,也正因此
13、伺服电机的价格最高。综合比较以上3 种电机,虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、 交流电机那样在常规下使用, 它的应用条件相对比较复杂;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 7 而伺服电机大多采用交流电控制, 而且价格昂贵; 因此通过以上对比我们决定选用直流减速电机。4.1.2直流电机的机械特性分析:直流他励电动机的机械特性: 电枢回路中的电压平衡方程U=E+IaRa 以 E=Ken 代入上
14、式并略加整理后,得aaeeRUnIKK再以/ ()aeITK带入上式,即可得直流电机的机械特性的一般表达式:02aeetRUnTnnKK K当 T=0 时的转速0/()enUK成为理想空载转速。Ke与电机结构有关的常数;Kt与电机有关的常数,Kt=9.55 Ke固有机械特性固有特性又称为自然特性,它是指在额定条件下的( )nf T曲线。当NUU,N时 , 且 Ke、 Kt 、 Ra 都 为 常 数, 故( )nf T是一条直线。直流他励电动机正反转时的固有机械特性如图4-2 所示:图 4-1 直流电动机的机械特性图 4-2 直流电机正反转时的固有机械特性(4-2)(4-3)(4-1)名师资料总
15、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 8 改变电枢电压 U 时的人为机械特性:当N, 改变电枢电压 U (即NUU) 时, 理想空载转速0/()eNnUK要随 U 的变化而变化,但转速降n不变。所以在不同的电枢电压U 时,可得一族平行于固有机械特性曲线的人为机械特性曲线,如右图所示。由于电动机绝缘耐压强度的限制,电枢电压值只允许在其额定值以下调节,所以,不同 U 值时的人为机械特性曲线均在固有机械特性曲线之下。改变电枢电压 U
16、 时的人为机械特性曲线如图4-3 所示。直流他励电动机改变电枢电压U 时的调速特性改变电枢电压 U 可得到人为机械特性(如图 4-3)。然而改变电枢电压U 时,从图 4-4 中可看出,在一定负载转矩TL下, 加上不同的电压UN、 U1、 U2、 U3可以得到不同的转速na、nb、nc、nd即改变电枢电压可以达到调速的目的。现以电压由 U1突然升高至 UN 为例说明其升速的几点过程。电压为U1 时,电动机工作在 U1特性的点 b,稳定转速为 nb,当电压突然上升为UN 时的一瞬间,由于系统机械惯性的作用,转速n 不能突变,相应的反电动势 E=Ken 也不能突变,仍为nb 和 Eb。在不考虑电枢电
17、路的电感时,电枢电流将随 U 的突然上升由1bLaUEIR突然增至NbgaUEIR,则电动机的转 矩 也 由LtLTTKI突 然 增 至gtgTTKI,即在突增的一瞬间,电动机的工作点由 U1 特性的点过渡到 UN 特性的点(实际上平滑调节时,gI是不大的)。图 4-4 改变电枢电压U 时的调速特性图 4-3 改变电枢电压U 时的人为机械特性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 9 由于gLTT,所以系统开始加速,反
18、电动势也随转速的上升而增大,电枢电流则逐渐减小, 电动机转矩也相应减小, 电动机的工作点将沿UN 特性由点向点移动, 直到ann时又下降到LTT,此时电动机已工作在一个新的稳定转速 na。直流他励电动机的制动特性电动机的制动是与启动相对的一种工作状态,启动是从静止加速到某一稳定转速,而制动则是从某一稳定转速减速到停止或是限制位能负载下降速度的一种运转状态。在该设计中,电动机带动的是反抗性负载,它只具有惯性能量(动能),能耗制动的作用是消耗掉传动系统储存的动能,使电动机迅速停车, 其制动过程如右图所示。设电动机原来运行在点,转速为an,刚开始制动时an不变,但制动特性为曲线, 工作点由点转到点。
19、 这时电动机的转矩为负值 (因此时在电动势的作用下,电枢电流反向),是制动转矩,在制动转矩和负载转矩共同作用下,拖动系统减速。 电动机工作点沿特性曲线上的箭头方向变化,随着转速的下降,制动转矩也逐渐减小,直至0n时,电动机产生的制动转矩也下降到零,制动作用自行结束。镜片剪切自动化系统的负载特性镜片剪切自动化系统电机负载特性实际曲线如图4-6 所示,其负载特性满足恒功率型负载特性。当电机从 0 开始启动时负载转矩最高为Tmax,负载转矩随着转速的提高而降低。4.1.3判定机电传动系统能否稳定运行比较系统的负载特性曲线和电机的机械特性曲线(图 4-7)可知:电动机的机械特性曲线()Mnf T和系统
20、的负载特性曲线()Lnf T有交点(即拖动系统的平衡点) 。图 4-6 系统负载特性曲线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 22 页 - - - - - - - - - 10 转速大于平衡点所对应的转速时,MLTT。因此该机电传动系统满足系统稳定运行的两个充分必要条件,因此该机电传动系统满足系统稳定运行。综合比较分析以上内容可得直流电机符合该设计要求。4.2 传感器的选择及布置 1.传感器的类型1)电阻式传感器电阻式传感器是将被测量,如位移、形变、力、加速度、
21、湿度、温度等这些物理量转换式成电阻值这样的一种器件。2)称重传感器称重传感器是一种能够将重力转变为电信号的力-电转换装置,是电子衡器的一个关键部件。3)电阻应变式传感器该传感器中的电阻应变片具有金属的应变效应,即在力作用下产生机械形变, 从而使电阻值随之发生相应的变化。电阻应变片主要有金属和半导体两类,金属应变片有金属丝式、箔式、薄膜式之分。半导体应变片具有灵敏度高(通常是丝式、箔式的几十倍)、横向效应小等优点。4) 压阻式传感器是根据半导体材料的压阻效应在半导体材料的基片上经扩散电阻而制成的器件。 其基片可直接作为测量传感元件,扩散电阻在基片内接成电桥形式。 当基片受到外力作用而产生形变时,
22、各电阻值将发生变化, 电桥就会产生相应的不平衡输出。热电阻传感器热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。 热电阻大都由纯金属材料制成, 目前应用最多的是铂和铜,此外,现在已开始采用镍、锰和铑等材料制造热电阻。热电阻传感器主要是利用电阻值随温度变化而变化这一特性来测量温度及与温度有关的参数。在温度检测精度要求比较高的场合,这种传感器比较适用。目前较为广泛的热电阻材料为铂、铜、镍等,它们具有电阻温度系数大、 线性好、性能稳定、使用温度范围宽、加工容易等特点。用于测量-200+500范围内的温度。基于以上各种传感器分析, 结合本设计的具体要求, 检测模块的作用是使
23、系统能否检测到一定距离形状, 并且定位, 所以检测模块是非常重要的部分,它的准确性直接决定本次毕业设计的成功与否,所以基于这个模块的重要性, 我选择了红外传感器作为检测模块的传感器。图 4-7 电机拖动负载时的特性名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 11 红外传感器能够探测到波长在760纳米 1100 纳米范围内的红外光, 探测角度为 60,其中红外光波长在940 纳米附近时,其灵敏度达到最大。它的工作温度为-2
24、5 摄氏度 85 摄氏度。红外传感器探测角度为60,探头的检测范围内如图 4-8 所示:红外传感器将外界红外线的强弱变化转化为电流的变化,通过 A/D 转换器反映为 0255范围内数值的变化。外界的红外线越强,其数值越小;红外线越弱,其数值越大。这样,只要对A/D 值进行相应处理就可以判断出位置。为了减小误差,提高准确度我共用了4 个红外传感器,安装在前部正上方,分“十”字排列,这样可以消除放置的各种特殊情况,减少程序编写的量。 下面是该火焰传感器的接口图 4-9 和外形图 4-10 图 4-9 图 4-102.针对这个传感器的形状我也考虑了两种传感器的布置方式:第一种布置方式是比较紧凑,在竖
25、直方向的检测范围较小,这些都是优点,可是传感器布置完的整个装置在运行的过程当中存在线路很乱、外观难看等缺点。图 4-11 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 12 第二种布置方式是建立在第一种方式的基础上,合理的把第一种方式的缺点改善,但是就存在了加工难度复杂的缺点。图 4-12 红外传感器的电路如下图所示:图 4-13 4.3 底板的材料选择与结构设计底板作为所有零部件的载体, 需要具备一定的强度, 同时应尽量
26、减轻其质量,因此我们最初选定用铝合金板。 然而在和金工厂的师傅沟通后, 因金工厂没有现成的铝板,定做一块铝板最小尺寸是1mX2m ,所以从经济性的角度考量很浪费。为了既经济又满足强度要求, 我们决定用 2mm 的铁板,另外用角铁在适当位置布置框架作为加强筋。4.5 电机及传动机构的设计电机锁在电机固定架上, 同时用螺栓将固定架锁在底板上。在设计过程中为名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 22 页 - - - - - - - - - 13 尽可能缩短电机输出轴
27、到轮毂的距离,同时避免轮子与底板之间的摩擦,因此我们将电机固定螺栓孔的起始位置钻孔在离边缘10mm 的地方,其他螺栓孔钻孔位置按照电机固定座上螺栓孔位置相应布置。在该固定方案中因螺栓受力较大,因此需对螺栓强度进行安全校核,这里暂时没有进行校核。传动机构主要是将电机的输出动力传递给轮毂,为减小摆动, 因此传动装置越短越好。已知电机的输出轴直径为25mm ,键的型号为 GB/T 1096 键 5X5X25 ,轮毂的中心孔直径为40mm ,另外传动机构与电机输出轴以及轮毂均采用过盈配合,而且为了实现对轮子能起到轴向定位,传动机构的一段采用轴肩, 另一端采用端盖,在端盖的边缘内测做4 个小螺纹孔并用螺
28、栓将其与传动机构连接达到限制轮子的轴向窜动的目的。设计出来的传动机构最后的尺寸如下:4.6 电源支架设计电源有两个 12V.20A/h 的铅蓄电池组成,总质量,尺寸为 (=70mm ,=170mm ,=140mm ) 为了电源的固定牢固同时降低电源的重心减少电源突出底板的高度,我们决定在底板上开槽(槽尺寸大小为150mmX180mm ) 。图 4-14 传动轴名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 22 页 - - - - - - - - - 14 参考文献1
29、龚溎义,潘沛霖,陈秀,严国良. 机械设计课程设计图册 M.3 版. 北京:高等教育出版社, 2009;2 吴宗泽,罗圣国 . 机械设计课程设计手册 M.3 版. 北京:高等教育出版社,2009; 3 大连理工大学工程图学教研室. 机械制图 M.6 版. 北京:高等教育出版社,2007;4 邓星钟等 . 机电传动控制 M.4 版. 武汉:华中科技大学出版社,2009;5 张爱梅,巩琦,赵艳霞,李玉林.AutoCAD2007计算机绘图实用教程 M. 北京:高等教育出版社, 2007;6 西北工业大学机械原理及机械零件教研室. 机械设计 M.8 版. 北京:高等教育出版社, 2009;7 刘鸿文 .
30、 材料力学 IM.4版. 北京:高等教育出版社, 2004;8 哈尔滨工业大学理论力学教研室. 理论力学 I 、IIM.6版. 北京:高等教育出版社, 2007。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - - - 15 附录一:控制电机原理图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - -
31、 - - - - - - - 16 附录二: PMW 直流电动机调速代码/PMW直流电动机调速 */ #include #include #define BUSY 0 x80 /常量定义#define DATAPORT P0 #define TIME_CYLC 100 /12MHz ,定时器 10ms 中断一次 , 采用 1s 计算一次转速#define PLUS_PER 160 /码盘的孔数,即传感器检测到160个脉冲,为 1圈#define K 0 /校准系数#define KeyPort P1 /定义行列式按键口/= sbit P37=P36; /脉冲输出口sbit run1=P30;
32、/正反转sbit run2=P31; /正反转/= sbit LCM_RS=P25; /定义 1602 的端口sbit LCM_RW=P26; /定义 1602 的端口sbit LCM_EN=P27; /定义 1602 的端口/= #define uchar unsigned char; bit Flag_Fresh=0; / 刷新标志bit Flag_clac=0; /计算转速标志bit Flag_Err=0; /超量程标志/= unsigned int Tcounter = 0; /时间计数器unsigned char str016; unsigned int speed=0; unsig
33、ned int stepcount=100; unsigned int timercount; unsigned int keycount=100; /= void Delayms(unsigned int n); void Delay(unsigned int i); void ddelay(uint); void lcd_wait(void); void display(); void initLCM(); void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC); void STR(); void account(); /
34、= 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 22 页 - - - - - - - - - 17 unsigned char index=0; /rate数组下标定义unsigned char keyscan(void); /键盘扫描程序定义unsigned char keyset,keyget;/keyset是按键标志定义void delay10ms(void) ; / 延时子程序定义void keyprocess(void) ; /定义键值处理程序unsign
35、ed char code rateTH0=0 xF4, 0 x0EC,0 x0E4, 0 x0D8;/占 空 比0.3-0.5-0.7-1.0 unsigned char code rateTL0=0 x48, 0 x78,0 x0A8,0 x0F1; unsigned char KeyPro(void); /*主函数 */ void main() initLCM(); WriteCommandLCM(0 x01,1);/清显示屏 TMOD = 0 x51; /T0计数和 T1定时,都工作工作方式1 TH0 = 0 x0E0;TL0 = 0 x0C0; TH1 = 0 x00;TL1 = 0
36、x00; TH2 = 0 x0D8; /T2赋初值 , 定时 10ms周期 TL2 = 0 x0F0; EA = 1; T2CON=0X04;/开定时器 2 ET0 = 1; ET1 = 1;ET2 = 1; TR0 = 1; /同时启动 T0 T1 TR1 = 1;TR2 = 1; P37=1; /P37口赋初值 while(1) account(); display(); keyget=keyscan(); if (keyset=1) / 有键按下 keyset=0; keyprocess() ; /*T2中断子程序 */ void Int_time2()interrupt 5/产生基准
37、10 毫秒 TR2=0;/关中断 ctc2 TF2=0; TH2=0 xD8; TL2=0 xF0; P37=P37;/ 输出取反名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 22 页 - - - - - - - - - 18 Tcounter+; /时间计数器加一用于定时1s(与 TIME_CYLC=100 相比) if(TcounterTIME_CYLC) /Tcounter清零在计算转速后进行 Flag_clac=1; /1s周期到,计算转速标志位 =1,转去计
38、算转速了 TR2=1;/ 开中断 ctc2 TR0=1;/ 开中断 ctc1 /=T1 中断= void int_timer1() interrupt 3 using 1 TF1 = 0; /定时器 T1 用于单位时间内收到的脉冲数 Flag_Err = 1; /防止溢出 /*T0中断子程序 */ void Int_time0()interrupt 1 TR0=0; TH0=rateTH0index; TL0=rateTL0index; P37=P37; / 按键扫描函数返回键值unsigned char keyscan(void) if(P1!=0 xff) delay10ms(); if(
39、P1!=0 xff) keyset=1; switch(P1) case 0 xfe:return 0;break; case 0 xfd:return 1;break; case 0 xfb:return 2;break; case 0 xf7:return 3;break; case 0 xef:return 4;break; case 0 xdf:return 5;break; case 0 xbf:return 6;break; case 0 x7f:return 7;break; default: break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
40、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 19 /*键值处理程序 */ void keyprocess() switch(keyget) case 0 : /正转 run1=0;run2=1;break; case 1 : /反转run1=1;run2=0;break; case 2 : /占空比为 0.2 index=0; break; case 3 : /占空比为 0.5 index=1; break; case 4: /占空比为 0.8 index=2; break; case 5
41、: /占空比为 1 index=3; break; case 6 : /停止 run1=0;run2=0; break; default : break; /*延时子函数 */ void delay10ms(void) /误差 0us unsigned char a,b,c; for(c=1;c0;c-) for(b=38;b0;b-) for(a=130;a0;a-); /=void account() unsigned int PlusCounter; / CTC1计数值 if(Flag_clac=1) Flag_clac = 0; /计算转速标志清零 PlusCounter = TH1*
42、256 + TL1;/ CTC1计数值 if(PlusCounter4800) speed=60*(PlusCounter/PLUS_PER)-K;/校准系数,如速度不准,调节K的大小 / speed=speed*60; /码盘的孔数 PLUS_PER=160 Tcounter = 0; / T2重加用于 1s 标志 TH1=TL1 = 0 x00;/脉冲计数清零 if(Flag_Err) #define TIME_CYLC 70 /超量程处理缩短计算转速时名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
43、 - - - - 第 19 页,共 22 页 - - - - - - - - - 20 间 0.7s 计算一次/= void STR() str00=S; str01=P; str02=E; str03=E; str04=D; str05=:; str06=speed/10000+0 x30; str07=(speed/1000)%10+0 x30; str08=(speed/100)%10+0 x30; str09=(speed/10)%10+0 x30; str010=speed%10+0 x30; str011=r; str012=/; str013=m; str014=i; str01
44、5=n; /*写指令到 LCD子函数 */ void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC) if(BusyC)lcd_wait(); DATAPORT=WCLCM; LCM_RS=0; /* 选中指令寄存器 */ LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0; /* 写数据到 LCD子函数 */ void WriteDataLCM(unsigned char WDLCM) lcd_wait( ); /检测忙信号DATAPORT=WDLCM;
45、LCM_RS=1; /* 选中数据寄存器 */ LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 21 LCM_EN=0; /*lcd内部等待函数 */ void lcd_wait(void) DATAPORT=0 xff; / 读 LCD前若单片机输出低电平 , 而读出 LCD为高电平 , 则冲突,Proteus 仿真会
46、有显示逻辑黄色LCM_EN=1; LCM_RS=0; LCM_RW=1; _nop_(); _nop_(); _nop_(); while(DATAPORT&BUSY) LCM_EN=0; _nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); LCM_EN=0; /*LCD 初始化子函数 */ void initLCM( ) DATAPORT=0; ddelay(15); WriteCommandLCM(0 x38,0); /三次显示模式设置,不检测忙信号 ddelay(5); WriteCommandLCM(0 x38,0); ddelay(5); Wr
47、iteCommandLCM(0 x38,0); ddelay(5); WriteCommandLCM(0 x38,1); /8bit数据传送, 2 行显示, 5*7 字型,检测忙信号 WriteCommandLCM(0 x08,1); /关闭显示,检测忙信号 WriteCommandLCM(0 x01,1); /清屏,检测忙信号 WriteCommandLCM(0 x06,1); /显示光标右移设置,检测忙信号 WriteCommandLCM(0 x0c,1); /显示屏打开,光标不显示,不闪烁,检测忙信号 /* 显示指定坐标的一个字符子函数*/ void DisplayOneChar(uns
48、igned char X,unsigned char Y,unsigned char DData) Y&=1;X&=15; if(Y)X|=0 x40; /若 y 为 1(显示第二行),地址码 +0X40 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 22 X|=0 x80; /指令码为地址码 +0X80 WriteCommandLCM(X,0); WriteDataLCM(DData); /* 显示指定坐标的一串字符子函
49、数*/ void DisplayListChar(unsigned char X,unsigned char Y,unsigned char *DData) unsigned char ListLength=0; Y&=0 x01; X&=0 x0f; while(X16) DisplayOneChar(X,Y,DDataListLength); ListLength+; X+; /- void display() STR(); DisplayListChar(0,0,str0);/只显示一行 /= void ddelay(unsigned int n) unsigned int i,j; for(i=0;in;i+) for(j=0;j60;j+); /= void Delayms(unsigned int n)/延时 10*n 毫秒 unsigned int i,j; for(i=0;in;i+) for(j=0;j2000;j+); /= void Delay(unsigned int i)/延时while(-i); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 22 页 - - - - - - - - -
限制150内