还剩45页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基于单片机的步进电机控制器毕业论文
1.1 引言步进电动机又称脉冲电动机或阶跃电动机,国外一般称为Steppingmotor、Pulsemotor或Stepperservo,其应用发展已有约80年的历史步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比步进电机在结构上也是由定子和转子组成,可以对旋转角度和转动速度进行高精度控制当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向与定子的磁场方向一着该磁场旋转一个角度因此,控制电机转子旋转实际上就是以一定的规律控制定子绕组的电流来产生旋转的磁场每来一个脉冲电压,转子就旋转一个步距角,称为一步根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,在供给连续脉冲时,就能一步一步地连续转动,从而使电机旋转步进电机每转一周的步数相同,在不丢步的情况下运行,其步距误差不会长期积累在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,同时步进电机只有周期性的误差而无累积误差,精度高,步进电动机可以在宽广的频率范围内通过改变脉冲频率来实现调速、快速起停、正反转控制等,这是步进电动机最突出的优点
[1]正是由于步进电机具有突出的优点,所以成了机电一体化的关键产品之一,广泛应用在各种自动化控制系统中随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用
[2]比如在数控系统中就得到广泛的应用目前世界各国都在大力发展数控技术,我国的数控系统也取得了很大的发展,我国已经能够自行研制开发适合我国数控机床发展需要的各种档次的数控系统虽然与发达国家相比,我们我国的数控技术方面整体发展水平还比较低,但已经在我国占有非常重要的地位,并起了很大的作用除了在数控系统中得到广泛的应用,近年来由于微型计算机方面的快速发展,使步进电机的控制发生了革命性变革优点明显的步进电机被广泛应用在电子计算机的许多外围设备中,例如打印机,纸带输送机构,卡片阅读机,主动轮驱动机构和存储器存取机构等,步进电机也在军用仪器,通信和雷达设备,摄影系统,光电组合装置,阀门控制,数控机床,电子钟,医疗设备及自动绘图仪,数字控制系统,工具机控制,程序控制系统以及许多航天工业的系统中得到应用
[3]因而,对于步进电机控制的研究也就显得尤为重要了为了得到良好的控制性能,对步进电机的控制的研究就一直没有停止过,许多重大的技术得以实现上世纪80年代以后,由于微型计算机以多功能的姿态出现,步进电动机的控制方式变得更加灵活多样原来的步进电机控制系统采用分立元件的控制回路,或者集成电路,不仅调试安装复杂,要消耗大量元器件,而且一旦定型之后,要改变控制方案就一定要重新设计电路,不利于系统的改进升级基于微型单片机的控制系统则通过软件来控制步进电机,能够更好地发挥步进电机的潜力因此,用微型单片机控制步进电机己经成为了一种必然的趋势,也符合数字化的时代发展要求还比如为了适应一些领域中高精度定位和运行平稳性的要求,出现的步进电机细分驱动技术,就包括振荡器、环行分配器控制的细分驱动、基于单片机斩波恒流驱动、基于单片机的直流电压驱动三种常见驱动方式,除上述三种步进电机的驱动方案之外,目前报道的驱动方案还有根据汇编语言或C语言进行软件开发,通过串行或并行通行的方式实现pc机与步进电机控制器之间的数据通信,最终实现由PC机直接控制步进电机的方法但是在有些应用场合,并不需要高精度的控制,而是需要在满足一般工作要求的情况下,尽量使控制系统做到系统硬件结构简单,成本低;功能较为齐全;适应性强;电机各种运行状态指示一目了然,操作方便;系统抗干扰能力强,可靠性高等要求本论文就是采用这个思路进行设计一般步进电机控制器都用硬件实现,虽然电路可以做到了高集成度,可价格较贵,功能相对较单一,并且设计要求有所改变,就得改变整个硬件电路,比较麻烦而采用单片机的软件和硬件结合进行控制,运用其强大的可编程和运算功能,充分利用单片机的各种资源,能灵活的对步进电机进行控制,实现其不同模式、步数、正反转、转速等控制,如果需改变控制要求,一般只需改变软件就能适应新的环境,并且在本设计中利用动态扫描技术,把显示电路和键盘电路有机的结合起来,能做到一定的人机交换,而且为了抗干扰,提高可靠性,具有一定的应用价值
1.2 步进电机常见的控制方案与驱动技术简介
1.
2.1 常见的步进电机控制方案
1、基于电子电路的控制步进电机受电脉冲信号控制,电脉冲信号的产生、分配、放大全靠电子元器件的动作来实现由于脉冲控制信号的驱动能力一般都很弱,因此必须有功率放大驱动电路步进电机与控制电路、功率放大驱动电路组成一体,构成步进电机驱动系统此种控制电路设计简单,功能强大,可实现一般步进电机的细分任务这个系统由三部分组成脉冲信号产生电路、脉冲信号分配电路、功率放大驱动电路系统组成如图
1.1所示�脉冲控制器�功率放大驱动电路�环形分配器�步进电机�图
1.1 基于电子电路控制系统此种方案即可为开环控制,也可闭环控制开环时,其平稳性好,成本低,设计简单,但未能实现高精度细分采用闭环控制,即能实现高精度细分,实现无级调速闭环控制是不断直接或间接地检测转子的位置和速度,然后通过反馈和适当的处理,自动给出脉冲链,使步进电机每一步响应控制信号的命令,从而只要控制策略正确电机不可能轻易失步
[4]该方案多通过一些大规模集成电路来控制其脉冲输出频率和脉冲输出数,功能相对较单一,如需改变控制方案,必须需重新设计,因此灵活性不高
2、基于PLC的控制PLC也叫可编程控制器,是一种工业上用的计算机PLC作为新一代的工业控制器,由于具有通用性好、实用性强、硬件配套齐全、编程简单易学和可靠性高等优点而广泛应用于各行业的自动控制系统中步进电机控制系统有PLC、环形分配器和功率驱动电路组成控制系统采用PLC来产生控制脉冲通过PLC编程输出一定数量的方波脉冲,控制步进电机的转角进而控制伺服机构的进给量,同时通过编程控制脉冲频率来控制步进电机的转动速度,进而控制伺服机构的进给速度环形脉冲分配器将PLC输出的控制脉冲按步进电机的通电顺序分配到相应的绕组PLC控制的步进电机可以采用软件环形分配器,也可采用硬件环形分配器采用软件环形分配器占用PLC资源较多,特别是步进电机绕组相数大于4时,对于大型生产线应该予以考虑采用硬件环形分配器,虽然硬件结构稍微复杂些,但可以节省PLC资源,目前市场有多种专用芯片可以选用步进电机功率驱动电路将PLC输出的控制脉冲放大,达到比较大的驱动能力,来驱动步进电机采用软件来产生控制步进电机的环型脉冲信号,并用PLC中的定时器来产生速度脉冲信号,这样就可以省掉专用的步进电机驱动器,降低硬件成本但由于PLC的扫描周期一般为但由于PLC的扫描周期一般为几毫秒到几十毫秒,相应的频率只能达到几百赫兹,因此,受到PLC工作方式的限制及其扫描周期的影响,步进电机不能在高频下工作,无法实现高速控制并且在速度较高时,由于受到扫描周期的影响,相应的控制精度就降低了
3、基于单片机的控制采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法用软件代替环形分配器,达到了对步进电机的最佳控制系统中采用单片机接口线直接去控制步进电机各相驱动线路由于单片机的强大功能,还可设计大量的外围电路,键盘作为一个外部中断源,设置了步进电机正转、反转、档次、停止等功能,采用中断和查询相结合的方法来调用中断服务程序,完成对步进电机的最佳控制,显示器及时显示正转、反转速度等状态环形分配器其功能由单片机系统实现,采用软件编程的办法实现脉冲的分配本方案有以下优点1单片机软件编程可以使复杂的控制过程实现自动控制和精确控制,避免了失步、振荡等对控制精度的影响;2用软件代替环形分配器,通过对单片机的设定,用同一种电路实现了多相步进电机的控制和驱动,大大提高了接口电路的灵活性和通用性;3单片机的强大功能使显示电路、键盘电路、复位电路等外围电路有机的组合,大大提高系统的交互性
[5]基于以上优点,本次设计采用基于单片机的控制方案
1.
2.2 步进电机驱动技术步进电动机上个世纪就出现了,它的组成、工作原理和今天的反应式步进电动机没有什么本质区别,也是依靠气隙间的磁导变化来产生电磁转矩上世纪80年代以后,由于廉价的微型计算机以多功能的姿态出现,步进电动机的控制方式变得更加灵活多样步进电机驱动技术指的是用步进电机驱动器的驱动级来实现对步进电机各相绕组的通电和断电,同时也是对绕组承受的电压和电流进行控制的技术到目前为止,步进电机驱动技术通常分为单电压驱动、单电压串电阻驱动、高低压驱动、斩波恒流驱动、升频升压驱动和细分驱动等单电压驱动是通过改变电路的时间常数以提高电机的高频特性该驱动方式早在六十年代初期国外就已大量使用,它的优点是结构简单、成本低;缺点是串接电阻器的做法将产生大量的能量损耗,尤其是在高频工作时更加严重,因而它只适用于小功率或对性能指标要求不高的步进电机驱动单电压串电阻驱动是在单电压驱动技术的基础上为电枢绕组回路串入电阻,用以改善电路的时间常数以提高电机的高频特性它提高了步进电机的高频响应、减少了电动机的共振,也带来了损耗大、效率低的缺点这种驱动方式目前主要用于小功率或启动、运行频率要求不高的场合高低压驱动是指不论电动机的工作频率是多少,在导通相的前沿用高电压供电来提高电流的上升沿斜率,而在前沿过后采用低电压来维持绕组的电流,即采用加大绕组电流的注入量以提高出力,而不是通过改善电路的时间常数来使矩频性能得以提高但是使用这种驱动方式的电机,其绕组的电流波形在高压工作结束和低压工作开始的衔接处呈凹形,致使电机的输出力矩有所下降这种驱动方式目前在实际应用中还比较常见为了弥补高低压电路中电流波形的下凹,提高输出转矩,七十年代中期研制出斩波电路,该电路由于采用斩波技术,使绕组电流在额定值上下成锯齿形波动,流过绕组的有效电流相应增加,故电机的输出转矩增大,而且不需外接电阻,整个系统的功耗下降,效率较高,因而恒流斩波电路得到了广泛应用,本文正是应用恒流斩波技术实现了驱动控制为改善恒流驱动方式的低频特性,设计一个低速时低电压驱动,高速时高电压驱动的电路,使其成为一个由脉冲频率控制的可变输出电压的开关稳压驱动电源在低速运行时,电子控制器调节功率开关管的导通角,使线路输出的平均电压较低,电动机不会像在恒流斩波驱动下那样在低速容易出现过冲或共振现象,从而避免产生明显的振荡当运行速度逐渐变快时,平均电压渐渐提高以提供给绕组足够的电流调频调压线路性能优于恒电压和恒电流线路,但实际运行中需要针对不同参数的电机,相应调整其输出电压与输入频率的特性细分驱动是指在每次脉冲切换时,不是将绕组的全部电流通入或切除,而是只改变相应绕组中电流的一部分,电动机的合成磁势也只旋转步距角的一部分细分驱动时,绕组电流不是一个方波而是阶梯波,额定电流是台阶式的投入或切除比如电流分成n个台阶,转子则需要n次才转过一个步距角,即n细分细分驱动最主要的优点是步距角变小,分辨率提高,且提高了电机的定位精度、启动性能和高频输出转矩其次,减弱或消除了步进电机的低频振动,降低了步迸电机在共振区工作的几率可以说细分驱动技术是步进电动机驱动与控制技术的一个飞跃
[6]
1.3 本文研究的内容在一般的步进电机工作中,其电源均采用单极性直流电,通过对步进电机的各相绕组按恰当的时序方式通电,就可使其执行步进转动当某一相绕组通电时相应的两个磁极就分别形成N-S极产生磁场,并与转子形成磁路在磁场的作用下,转子将转动一定的角度,使转子齿与定子齿对其,从而使步进电机向前“走”一步转子的角位移大小及转速分别与输入的电脉冲数及频率成正比,并在时间上与输入的脉冲同步只要能正确控制输入的电脉冲数、频率以及电机各相绕组通电的相序,即可得到所需要的转角、转速及转向,通过单片机很容易实现对步进电机的数字控制本设计采用AT89S51单片机实现对两相步进电机的转速控制由单片机产生的脉冲信号经过脉冲分配器后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动本课题的研究目的之一就是设计一套硬件系统较简单、经济,但功能较为齐全,适应性强,操作方便,交互性强,可靠性高的步进电机控制系统第2章 步进电机概述
2.1 步进电机的分类步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型按结构特点电磁式步进电机可分为反应式VR、永磁式PM和混合式HB三大类;按相数分则可分为单相、两相和多相三种目前使用最为广泛的为反应式和混合式步进电机
[7]1反应式步进电机VariableReluctance,简称VR反应式步进电机的转子是由软磁材料制成的,转子中没有绕组它的结构简单,成本低,步距角可以做得很小,但动态性能较差反应式步进电机有单段式和多段式两种类型;2永磁式步进电机PermanentMagnet,简称PM永磁式步进电机的转子是用永磁材料制成的,转子本身就是一个磁源转子的极数和定子的极数相同,所以一般步距角比较大它输出转矩大,动态性能好,消耗功率小相比反应式,但启动运行频率较低,还需要正负脉冲供电;3混合式步进电机Hybrid,简称HB混合式步进电机综合了反应式和永磁式两者的优点混合式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪声低、低频振动小这种电动机最初是作为一种低速驱动用的交流同步机设计的,后来发现如果各相绕组通以脉冲电流,这种电动机也能做步进增量运动由于能够开环运行以及控制系统比较简单,因此这种电机在工业领域中得到广泛应用由于本设计的设计目的更注重整个系统的有机结合,所以只采用反应式步进电机
[7]
2.2 步进电机的工作原理
2.
2.1 结构及基本原理步进电机在结构上也是由定子和转子组成,可以对旋转角度和转动速度进行高精度控制当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向与定子的磁场方向一着该磁场旋转一个角度因此,控制电机转子旋转实际上就是以一定的规律控制定子绕组的电流来产生旋转的磁场每来一个脉冲电压,转子就旋转一个步距角,称为一步根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,在供给连续脉冲时,就能一步一步地连续转动,从而使电机旋转电机将电能转换成机械能,步进电机将电脉冲转换成特定的旋转运动每个脉冲所产生的运动是精确的,并可重复,这就是步进电机为什么在定位应用中如此有效的原因通过电磁感应定律我们很容易知道激励一个线圈绕组将产生一个电磁场,分为北极和南极,见图
2.1所示定子产生的磁场使转子转动到与定子磁场对直通过改变定子线圈的通电顺序可使电机转子产生连续的旋转运动图
2.1 激励线圈产生电磁场
2.
2.2 两相电机的步进顺序
1、两相电机的单相通电步进顺序在图
2.2中我们很清晰的展示了在单相通电时一个两相步进电机的典型的步进顺序在第1步中,两相定子的A相通电,因异性相吸,其磁场将转子固定在图示位置当A相关闭、B相通电时,转子顺时针旋转90°在第3步中,B相关闭、A相通电,但极性与第1步相反,这促使转子再次旋转90°在第4步中,A相关闭、B相通电,极性与第2步相反重复该顺序促使转子按90°的步距角顺时针旋转
[8]
[9]图
2.2 两相电机的单相通电步进顺序
2、两相电机的双相通电步进顺序图
2.2中显示的步进顺序称为“单相激励”步进更常用的步进方法是“双相激励”,其中电机的两相一直通电但是,一次只能转换一相的极性,见图
2.3所示在第1步中,两相定子的A相和B相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step1位置在第2步中,两相定子的A相关闭,而B和a相(此时的a相通电极性与第1步A相反)同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step2位置在第3步中,两相定子的a相和b相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step3位置在第4步中,两相定子的b相和A相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step4位置按照这样的通电方式电机就转过了一周
[8]
[9]两相步进时,转子与定子两相之间的轴线处对直由于两相一直通电,本方法比“单相通电”步进多提供了
41.1%的力矩,但输入功率却为2倍图
2.3 两相电机的双相通电步进顺序
3、步进电机的半步工作方式电机也可在转换相位之间插入一个关闭状态而走“半步”这将步进电机的整个步距角一分为二例如,一个90°的步进电机将每半步移动45°,见图
2.4但是,与“两相通电”相比,半步进通常导致15%~30%的力矩损失(取决于步进速率)在每交换半步的过程中,由于其中一个绕组没有通电,所以作用在转子上的电磁力要小,造成了力矩的净损失从原理图我们很容易看到半步工作方式其实就是将两相电机的单相通电工作方式和两相电机的双相通电工作方式相互结合起来两相步进电机的工作模式有两相四拍和两相八拍等两种,其中我们在图
2.2和图
2.3中展示的都叫做两相四拍工作模式,而下面的
2.4图展示的就是两相八拍工作模式
[8]
[9]图
2.4 两相电机的半步步进顺序第3章 系统的硬件设计
3.1 系统设计方案
3.
1.1 系统的方案简述与设计要求本设计采用单片机AT89S51来作为整个步进电机控制系统的运动控制核心部件,采用了电机驱动芯片L298及其外围电路构成了整个系统的驱动部分,再加上作为执行部件的步进电机来构成了一个基本的步进电机控制系统系统的具体功能和要求如下
1.单片机最小系统板的设计;
2.设计兼有两相两拍和两相四拍的脉冲分配器;
3.实现步进电机的启停、正转、反转控制;
4.驱动电路可提供电压为12V,电流为
0.3A的驱动信号;
5.能实现步进电机的转速调节,最低转速为25转/分,最高转速为100转/分;
6.步进电机的转速由数码管显示;
7.键盘扫描电路的设计
3.
1.2 系统的组成及其对应功能简述整个系统的组成包括单片机最小系统,电机驱动模块,串口下载模块,数码管显示模块,电机驱动电流检测模块,独立按键等模块组成具体框图如图
3.1所示�独立按键控制模块�计算机串口通信模块�单片机最小系统�电机驱动模块�步进电机�数码管显示模块�驱动电流检测模块图
3.1 系统总体框图单片机最小系统作为整个系统的控制核心,它主要负责产生控制步进电机转动的脉冲,通过单片机的软件编程代替环形脉冲分配器输出控制步进电机的脉冲信号,步进电机转动的角度大小与单片机输出的脉冲数成正比步进电机转动的速度与输出的脉冲频率成正比,而步进电机转动的的方向与输出的脉冲顺序有关同时单片机系统还负责处理来自电机驱动电流检测模块检测到的电流值与此同时,单片机将会把电机转速,电机的转动方向,以及电流检测模块检测到的电机驱动的电流通过数码管显示出来电机驱动模块负责将单片机发给步进电机的信号功率放大,从而驱动电机工作串口下载模块主要是负责实行计算机和单片机之间的通信,将在计算机里面编写好的程序下载到单片机芯片当中数码管显示模块就主要是显示电机转速,电机转向,和通过电机的电流等系统的实时信息电机驱动电流检测模块主要是检测通过电机驱动芯片的电流,然后通过运放将检测到的信号放大,最后将放大后的信号通过模数转换芯片ADC0804处理后送给单片机独立按键作为一个外部中断源,和单片机端口连接,通过它设置了电机的正转,反转,加速,减速,显示电机电流等功能采用了中断和查询相结合的方法来调用中断服务程序,完成了对步进电机的最佳的及时的控制本节主要是在第一章和第二章的基础上引出了本论文将要采用的设计方案,并详细的清楚的一条条列出了设计要实现的基本设计要求然后是基于我的设计方案,比较简单的但有条理的描述了系统的各个部分的组成以及其对应的基本功能通过这一章的内容,我们能对本设计有一个简单的总体的把握,既是能清楚的知道本题目的设计内容,设计方法,以及最终的预期目标
33.2 单片机最小系统
3.
2.1 AT89S51简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,功能强大
1、主要性能参数·与MCS-51产品指令系统完全兼容·4k字节在系统编程(ISP)Flash闪速存储器·1000次擦写周期·
4.0-
5.5V的工作电压范围·全静态工作模式0Hz-33MHz·三级程序加密锁·128×8字节内部RAM·32个可编程I/O口线·2个16位定时/计数器·6个中断源·全双工串行UART通道·低功耗空闲和掉电模式·中断可从空闲模唤醒系统·看门狗(WDT)及双数据指针·掉电标识和快速编程特性·灵活的在系统编程(ISP字节或页写模式)
2、功能特性概述AT89S51提供以下标准功能4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作掉电方式保存RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位
3、引脚功能说明
3.2 AT89S51该设计使用到的单片机芯片对应管脚名称位置等如图
3.2的引脚功能图详细说明·VCC电源电压·GND地·P0口P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用在和数据总线复用,在访问期间激活内部上拉电阻在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)·P1口Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)·P2口P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区P2寄存器的内容),在整个访问期间不改变Flash编程或校验时,P2亦接收高位地址和其它控制信号·P3口P3口是一组带有内部上拉电阻的8位双向I/O口P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号具体功能如表
2.1所示表
3.1 P3口的引脚及功能端口引脚第二功能P
3.0RXD(串行输入口)P
3.1TXD(串行输出口)P
3.2INT0(外部中断0)P
3.3INT1(外部中断1)P
3.4T0(定时/计数器0外部输入)P
3.5T1(定时/计数器1外部输入)P
3.6WR(外部数据存储器写选通)P
3.7RD(外部数据存储器读选通)·RST复位输入当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能DISRT0位缺为RESET输出高电平打开状态·ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)如必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作该位置位后,只一条M0VX和M0VC指令ALE才会被激活此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效·PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲当访问外部数据存储器,没有两次有效的PSEN信号·EA/VPP外部访问允许欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)需注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令F1ash存储器编程时,该引脚加上+12V的编程电压Vpp·XTALl振荡器反相放大器及内部时钟发生器的输入端·XTAL2振荡器反相放大器的输出端·存储器结构MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具64KB外部程序和数据的寻址空间·程序存储器如果EA引脚接地(GND),全部程序均执行外部存储器在AT89S51,假如EA接至Vcc(电源+),程序首先执行地址从0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器·数据存储器AT89S51的具128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间
4、晶体振荡器特性AT89S51一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路构成并联振荡电路对外接电容Cl、C2虽然没十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF用户也可以采用外部时钟这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求
5、Flash闪速存储器的并行编程AT89s51单片机内部4k字节的可快速编程的Flash存储阵列编程方法可通过传统的EPROM编程器使用高电压(+12V)和协调的控制信号进行编程AT89S51的代码是逐一字节进行编程的编程方法编程前,须设置好地址、数据及控制信号,AT89S51编程方法如下1.在地址线上加上要编程单元的地址信号2.在数据线上加上要写入的数据字节3.激活相应的控制信号4.将EA/Vpp端加上+12V编程电压5.每对Flash存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲每个字节写入周期是自身定时的,大多数约为50us改变编程单元的地址和写入的数据,重复1-5步骤,直到全部文件编程结束
3.
2.2 单片机最小系统设计采用AT89S51单片机构成了控制系统的核心,其基本模块就主要包括复位电路和晶体震荡电路在本设计当中,单片机的P0口、P1口、P2口、P3口全部参与系统工作,单片机最小系统的接线如图
3.3所示图
3.3 单片机最小系统图
3.
2.3 单片机端口分配及功能
1、其中P0口用于控制数码管的具体显示功能,既是数码管的段选
2、P1口主要用于控制电机驱动芯片L298的工作,以及ADC0804芯片的编程的读写控制
3、P2口主要用于控制数码管的公共端,既是数码管的位选与此同时还处理键盘扫描电路的
4、P3口主要用于负责处理ADC0804的模数转化芯片的工作
3.3 串口通信模块本设计采用串口通信,来实现计算机与单片机的通信其具体的电路图如图
3.4所示图
3.4 串口通信模块
3.4 数码管显示电路设计本设计的显示部分可以用液晶显示的方案可供选择,液晶显示和数码管显示的区别主要体现在以下几个方面数码管显示内容单一,而液晶显示器显示内容丰富,因为液晶一般都是七段八字的只能显示单一的内容,而液晶显示的内容就很丰富;数码管还比液晶显示耗电,而且使用液晶也比使用数码管显得美观但是控制液晶显示器的时候占用的系统资源多,编程更复杂,最关键的是液晶显示的成本是数码管的几十倍,所以考虑到应用价值,最终还是确定选用数码管实现本设计的显示部分功能
3.
4.1 共阳数码管简介四位共阳数码管的管脚分配如下图
3.5所示图
3.5 四位共阳数码管管脚定义数码管的管脚排列从数码管的正面观看,左下角的那个脚为1脚,从1脚开始,按照逆时针方向排列依次是1脚到12脚,其中
12、
9、
8、6为公共角,为位选信号输入端剩余的八个脚是段选信号输入端,其对应方式是A-
11、B-
7、C-
4、D-
2、E-
1、F-
10、G-
5、DP-3只有详细的了解了数码管的管脚定义,以及段选位选情况,我们才能通过编程对其正常的显示进行很好的控制在本设计当中采用了数码管动态扫描的方式进行显示,下面我们对数码管动态扫描显示作一详细介绍数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划abcdefgdp的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低
3..
4.2本设计选用了数码管显示设计,其段选的控制A、B、C、D、E、F、G、DP按照数码管的简介资料选用了P0口作为其控制端口,其位选部分由于单片机的控制端口输出的电压不足以直接点亮数码管,所以在单片机控制端口和数码管的位选控制端口加入了三极管,其具体的电路连接如图
3.6所示图
3.6 数码管显示电路
3.5 电机驱动模块设计在第一章的
1.
2.2中已经详细的介绍了目前的电机的驱动技术的基本类型,考虑要硬件设计驱动电路的方法会电路复杂,调试不方便,而且采用多个元器件搭接,成本高而直接采用集成的驱动芯片时电路稳定,成本低,易于控制,所以最终本设计是直接采用电机驱动芯片L298作为电机驱动部分的核心部件
3.
5.1 L298简介L298N为SGS-THOMSONMicroelectronics所出产的双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号L298N之接脚如图
3.7所示,Pin1和Pin15可与电流侦测用电阻连接来控制负载的电路;OUTl、OUT2和OUT
3、OUT4之间分别接2个步进电机;input1~input4输入控制电位来控制电机的正反转;Enable则控制电机停转图
3.7 L298管脚图引脚功能介绍
1、1;15脚(SenseA;SenseB)电流检测端,分别为两个H桥的电流反馈脚,不用时可以直接接地;
2、2;3脚(Output1;Output2)1Y
1、1Y2输出端;
3、4脚(VS)功率电源电压此引脚与地必须连接100nF电容器;
4、5;7脚(Input1;Input)1A
1、1A2输入端,TTL电平兼容;
5、6;11脚(EnableA;EnableB)TTL电平兼容输入1EN、2EN使能端,低电平禁止输出;
6、8脚(GND)GND接地端;
7、9脚(VSS)逻辑电源电压此引脚必须与地连接100nF电容器;
8、10;12脚(Input3;Input4)2A1,2A2输入端,TTL电平兼容;
9、13;14脚(Out3;Out4)2Y
1、2Y2输出端,监测引脚15;
3.
5.2 电机驱动电路设计如图
2.8所示,本设计的电机驱动部分是由驱动芯片L298及其外围电路构成,其中从L298的
2、3脚和
13、14脚(即芯片的输出端)依次按顺序连成一个插座,分别与步进电机的四根线相连而
5、
6、
7、
10、
11、12脚就依次与单片机的P1口的六个管脚相连通过这一连接实现了单片机与L298以及步进电机的串联控制图中很重要的部分是由四个二极管连成的保护电路,其作用是防止由于步进电机的转速提高而产生的自感电动势损坏芯片由于本设计使用的电机驱动电压是使用了9V也可以使用12V,所以二极管的负端接9V的参考电压如果驱动芯片的电压改变,那么这个参考电压也随之一起改变图
2.8 电机驱动电路图
3.6 驱动电流检测模块设计本设计的驱动芯片电流检测模块的实际应用意义在于,检测流过电机的电流值并及时显示,对于防止电机过流而损坏电机有一定的意义从上面的L298的芯片资料当中我们可以知道L298的Pin1和Pin15可与电流侦测电阻连接来侦测电机正常工作的情况下的工作电流一般检测电流的方法是通过检测电压值,然后通过欧姆定律换算电流值的方法测试电流,本设计也不例外设计采用的42BYG101反应式步进电机,其额定电流值
0.2安,在加上一般常用的电流侦测电阻都是1欧姆或
0.1欧姆,这样换算来检测到的电压值一般是在mV级,这样以来,要是直接将检测到的电压值送给ADC0804进行模数转换那么由于精度的原因势必会对检测结果的准确性造成很大的影响所以考虑到这一原因我们是先将检测到的电流值经过OP07作放大处理后再将信号送给模数转换芯片处理这样保证了检测值的可靠性ADC0804输出的数字信号再送给单片机的P3口,经过单片机处理后最后将检测到的数字信号通过数码管显示出来而在显示这一部分有这样一个问题,就是步进电机的工作电流不是一个恒定值,它是随着时间的变化,会在一个小范围内不停的波动为了使显示出来的电流数据更可靠,我们通过单片编程,采用了取一段时间的电流的平均值显示出来形象的展示这一模块的整个工作流程就是如下的图
3.9所示图
2.9电流检测框图
3.
6.1 OP07芯片简介
1、OP07功能介绍Op07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面
2、特点超低偏移150μV最大低输入偏置电流
1.8nA低失调电压漂移
0.5μV/℃超稳定时间2μV/month最大高电源电压范围±3V至±22V
3、芯片引脚功能说明1脚和8脚是偏置平衡(调零端)2脚为反相输入端3脚为同向输入端4脚和7脚分别为vcc-和vcc+5脚悬空6脚为输出端其引脚图如图
3.10图
2.10 OP07芯片及管脚图
3.
6.2 ADC0804芯片简介
1、芯片主要技术指标1分辨率8位0~2552存取时间135ms3转换时间100ms4总误差-1~+1LSB5工作温度ADC0804C为0度~70度;ADC0804L为-40度~85度6模拟输入电压范围0V~5V7参考电压
2.5V8工作电压5V
1、芯片引脚功能及说明接脚说明见下图ADC0804为一只具有20引脚8位CMOS连续近似的A/D转换器芯片具体引脚图如图
3.11所示图
2.11 ADC0804芯片及管脚图
1.PIN1CS ChipSelect,与RD、WR接脚的输入电压高低一起判断读取或写入与否,当其为低位准low时会active
2.PIN2RD Read当CS、RD皆为低位准low时,ADC0804会将转换后的数字讯号经由DB7~DB0输出至其它处理单元
3.PIN3WR启动转换的控制讯号当CS、WR皆为低位准low时ADC0804做清除的动作,系统重置当WR由0→1且CS=0时,ADC0804会开始转换信号,此时INTR设定为高位准high
4.PIN
4、PIN19CLKIN、CLKR频率输入/输出频率输入可连接处理单元的讯号频率范围为100kHz至800kHz而频率输出频率最大值无法大于640KHz,一般可选用外部或内部来提供频率若在CLKR及CLKIN加上电阻R及电容C,则可产生ADC工作所需的时序,其频率约为
1.1RC
5.PIN5INTR中断请求转换期间为高位准high,等到转换完毕时INTR会变为低位准low告知其它的处理单元已转换完成,可读取数字数据
6.PIN
6、PIN7VIN+、VIN-差动模拟讯号的输入端输入电压VIN=VIN+-VIN-,通常使用单端输入,而将VIN-接地
7.PIN8AGND:模拟电压的接地端
8.PIN9VREF/2:辅助参考电压输入端
2、ADC0804工作原理ADC0804是属于连续渐进式(SuccessiveApproximationMethod)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上以输出8位的ADC0804动作来说明“连续渐进式A/D转换器”的转换原理,动作步骤如下表示(原则上先从左侧最高位寻找起)第一次寻找结果10000000(若假设值≤输入值,则寻找位=假设位=1)第二次寻找结果11000000(若假设值≤输入值,则寻找位=假设位=1)第三次寻找结果11000000(若假设值输入值,则寻找位=该假设位=0)第四次寻找结果11010000(若假设值≤输入值,则寻找位=假设位=1)第五次寻找结果11010000(若假设值输入值,则寻找位=该假设位=0)第六次寻找结果11010100(若假设值≤输入值,则寻找位=假设位=1)第七次寻找结果11010110(若假设值≤输入值,则寻找位=假设位=1)第八次寻找结果11010110(若假设值输入值,则寻找位=该假设位=0)这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找,12位的A/D转换器只要12次寻找,就能完成转换的动作,其中的输入值代表图
4..10的模拟输入电压Vin对8位ADC0804而言,它的输出准位共有28=256种,即它的分辨率是1/256,假设输入信号Vin为0~5V电压范围,则它最小输出电压是5V/256=
0.01953V,这代表ADC0804所能转换的最小电压值
4、分辨率与内部转换频率的计算对8位ADC0804而言,它的输出准位共有28=256种,即它的分辨率是1/256,假设输入信号Vin为0~5V电压范围,则它最小输出电压是5V/256=
0.01953V,这代表ADC0804所能转换的最小电压值表
3.2列出的是8~12位A/D转换器的分辨率和最小电压转换值表
2.2 A/D转换器的分辨率和最小电压值位数目分辨率最小电压转换值81/
2560.01953V101/
10240.00488V121/
40960.00122V图
3.12是ADC0804与CPLDFPGA、8051单片机等典型连接图至于内部的转换频率fCK,是由图
3.12的CLKR(19脚)、CLKIN(4脚)所连接的R()、C值来决定图
3.12 ADC0804与CPLDFPGA、8051单片机等典型连接图频率计算方式是fCK=1/
1.1×R×C若以上图的R=10KΩ、C=150PF为例,则内部的转换频率是fCK=1/(
1.1×10KΩ×150PF)=606KHz更换不同的R、C值,会有不同的转换频率,而且频率愈高代表速度愈快但是需要注意R、C的组合,务必使频率范围是在100KHz~1460KHz之间
3.
6.3 电流检测模块电路图如图
3.13所示,OP07的3脚是反向输入端,4脚是同向输入端,6脚输出端按照如图所示的接法及对应电阻值的大小,我们很容易知道,此连接后的电压放大倍数是80倍,且为同向放大OP07放大的信号来源是L298的1脚测电流的小电阻分出来的电压,然后经OP07放大之后的信号送给0804处理图
3.13 电流检测模块电路图
3.7独立按键电路设计本设计一共设计了四个按键,其中一个是单片机复位电路按键,剩余三个按键是分别一端接P
2.1口,P
2.2口,P
2.3口另一端接地此时按键的工作原理是按下按键之后就相当于是把对应的端口的电势拉低在处理按键程序前就先去抖动,防止因按键时产生的机械抖动而错误的重复执行相应程序所有按键处理程序都是在等按下后执行的这些在软件编设计部分都会有说明第4章 系统的软件实现本系统的软件设计主要分为系统初始化、延时子程序、按键响应程序,数码管显示程序,读ADC0804子程序及控制脉冲输出几部分,事实上每一部分都是紧密相关的,每个功能模块对于整体设计都是非常重要,单片机AT89S51通过软件编程才能使系统真正的运行起来,软件设计的好坏也直接决定了系统的运行质量程序流程图的设计遵循自顶向下的原则,即从主体遂逐步细分到每一个模块的流程在流程图中把设计者的控制过程梳理清楚具体程序的讲解将在本章各节做详细讲解
4.1 系统软件主流程图当给系统供电以后,通过单片机复位电路对系统进行上电复位系统经过初始化以后,便开始执行按键查询等待相应的操作,当有按键按下的时候程序便调用并执行相应的子程序,其具体的主流程图
4.1如下所示
4.1 主程序图
4.2 系统初始化流程图对相应的系统参数进行初始化,包括系统上电默认运行参数设定,包括两相四拍的工作方式,初始速度档位是30转/分,系统中断设定,定时器设定,载入定时器初值和默认的工作参数等,具体流程图如图
4.2所示��开始�定时器中断允许�定时器0工作方式2�载入定时器初值�定时器0和定时器�载入默认工作参数�各个端口初始化�图
4.2 系统初始化流程图
3.3 按键子程序
1、延时子程序在本延时子程序当中每调用一次延时子程序延时时间是1毫秒
2、按键响应子函数在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低所以在编程的时候判断按键按下是低电平有效图
4.3画出的是电机增速和减速的子程序框图���程序入口�去抖动�结束速度档位加1�判断增速按键按下�再次判断判断是否是最高速�NYNYNY程序入口�去抖动�结束速度档位减1�判断减速按键按下�再次判断判断是否是最低速�YYNYNN图
3.3 增速减速子程序
3、读ADC0804和模式切换程序框图如下图
4.4所示,在本设计当中我的模式切换按键只有一个,负责电机的正反转控制,电流控制和电机启动和停止控制由于编程的时候设置的系统工作的默认状态是正转,转速30转/分所以通过连续按模式切换键依次实现的功能是电机反转并显示转速,显示电机电流,系统停止工作,系统正转并显示转速依次切换编程控制ADC0804工作就主要是负责读和写端口的电平来实现的���程序入口�读出的数据赋予addata�P1口全部置1准备�启动080�读转换后的数据�读数完毕返回初始化电机反转及显示系统停止工作按键判断�按键判断�检测电流及显示按键判断�NNNYYYY按键判断�N图
3.4 读ADC0804子程序及模式切换子程序
4、控制步进电机转动的脉冲输入方式两相四拍通电方式正转AB—aB—ab—Ab—AB反转AB—Ab—ab—aB—AB两相八拍通电方式正转AB—B—aB—a—ab—b—Ab—A—AB反转AB—A—Ab—b—ab—a—aB—B—AB以两相四拍正转为例其程序代码如下ifi==1{AL=1;BL=1;aL=0;bL=0;}elseifi==2{AL=0;BL=1;aL=1;bL=0;}elseifi==3{AL=0;BL=0;aL=1;bL=1;}elseifi==4{AL=1;BL=0;
二、系统组成
3.
4.1硬件设计如图是机械手微机控制系统硬件电路本系统选用MCS-51系列中的8031芯片,扩展了一片2732,以存放用户程序由于随机存储的数据不多,只利用片内RAM采用两位LED显示器和2×8键盘,P3.
5、P3.6和P3.7分别输出X、Y、和Z方向的控制脉冲,P1.6和P
1.7分别用来控制步进电机的正/反转和产生复位信号
③机械手动作机械手装升降盘上,如图所示图中A点固定,步进电机MZ带动B点,改变A、B间的较小距离,使得机械手移动较大距离
④货架货架分三层,每层有4个包位,共计12个包位图中数字为包位编码,编码的个位数表示X位置,十位数表示Y位置(层数),以供计算机查讯、判断之用本例采用SB-2A型步进电机,它工作于三相六拍的工作方式电机按顺时针方向旋转(即正转)时,各相脉冲顺序为→A=1→A=1,B=1→B=1→B,C=1→C=1→C=1,A=1电机按逆时针方向旋转(即反转)时,各相脉冲顺序为→A=1→A=1,C=1→C=1→C=1,B=1→B=1→B=1,A=
13.5程序设计系统软件包括主程序、取包程序、存包程序、货位判断程序、X、Y方向运动和机械手动作子程序等
(1)程序流程图限于篇幅,只给出主要流程图
2、脉冲序列的生成程序对于步进电机的控制,实际上是控制步进脉冲的个数和步进脉冲的间隔,而步进电机的间隔又可转化为某基准延时子程序的循环次数因此,可以很方便地用软件来控制步进电机的运行,达到各种控制目的主程序功能管理键盘和显示以及有关控制无键按下或执行有关命令后,显示提示符“--”
(2)程序清单ORG0000HAJMPMAINMAIN:MOVSP#60HSUN:SETBP
3.5SETBP
3.6SETBP
3.7CLRP
1.6CLRP
1.7MOVR0#40HMOVA#12H;字符“-”ML0:MOV@R0A;的编码INCR0CJNER0#42HML0SETBP
1.7;复位信号;键输入/显示/键判断F6H-特殊数据R3-键号暂存器ML1:ACALLDIRACALLKEYADDA,#0F6H;键号+F6用于数字/功能键的判断JCSUN1;功能键转移至SUN1MOV41H,40H;数字键号送显示缓冲区MOVR0,#40HMOVR3,AANLA,#0FH;保留低四位MOV@R0,AAJMPML1功能键处理程序(A、B、C键)SUN1MOVA,R3;CJNEA,#0AH,SUN2AJMPQBCXSUN2CJNEA,#0BH,SUN3AJMPCBCXSUN3CJNEA,#0CH,ML1AJMPSUN键盘子程序P1口-P
1.6正/反转P
1.7复位P3口-P
3.3P
3.4键盘行输入口R3-列扫描寄存器初值FEHR4-列号计数器SBUF-发送缓冲器发送列扫描信号KEY ACALLKS1JNZLK1NI ACALLDIRAJMPKEYLK1ACALLDIRACALLDIRACALLKS1JNZLK2AJMPNILK2:MOVP1,#00HMOVR6,#05H;延时等待发送DK6DJNZR6,DK6JBP3.3LONEMOVA,#00HAJMPLKPLONE JBP3.4,NEXTMOVA,#08HLKP ADDA,R4PUSHACCLK3ACALLDIR;仅做一次处理ACALLKS1JNZLK3POPACC;取键值于ACCRETMOVR3,#0FEHMOVR4,#00HLK4MOVSBUF,R3NEXT INCR4MOVA,R3JNBACC.7,KEDRLAMOVR3,AAJMPLK4KED AJMPKEY判断键盘有无键按下子程序——无键按下A=00HKS1MOVSBUF,#00HMOVR6,#05HDS6DJNZR6,DS6MOVA,P3CPLAANLA,#18HRET显示子程序P1口-LED位扫描输出口R2-位扫描寄存器初值为01HSBUF-LED段码发送缓冲器DIR PUSHPSWSETBPSW,4MOVR0,#40HMOVR2,#01HD1MOVP1,R2MOVA,@R0ADDA,#14HMOVCA,@A+PCMOVSBUF,AMOVR7,#02HD2MOVR6,#0FFHD3DJNZR6,D3DJNZR7,D2INCR0MOVA,R2RLAMOVR2,AJNBACC.2,D1POPPSWRETDB3FH,06H,5BH,4FH延时子程序YSH PUSHPSWSETBPSW.3MOVR0,#0FFHSH MOVR1,#0FFHSH0DJNZR1,#H0DJNZR0SHPOPPSWRETDB66H,60H,70H,07HDB7FH,6rH,77H,7CHDB39H,5EH,79H,71HDB31H,6EH,40H,23HDB00H延时子程序YSH PUSHPSWSETBPSW.3MOVR0,#0FFHSH MOVR1,#0FFHSH0DJNZR1,#H0DJNZR0SHPOPPSWRET机械手控制示意图取包子程序P
1.6-正/反转控制30H、31H步进脉冲暂存器(X方向)QBCX:SETBP
1.6;正转MOV30H,#04H;X0固定脉冲数MOV31H,#0D8HACALLXYXC;调用X方向运行子程序ACALLCSHC;调用测试子程序MOV30H,33H;X方向列脉冲数MOV31H34H;送30H、31H单元ACALLXYXC;调用X方向运行子程序MOV30H,35H;Y方向行脉冲数MOV31H,36H;送30H、31H单元ACALLYYXC;调用Y方向运行子程序ACALLQWZC;调用取物子程序CLRP
1.6;反转MOV30H35HMOV31H,36HACALLYYXC;调用Y方向运行子程序MOV30H,33HMOV31H34HACALLXYXC;调用X方向运行子程序MOV30H,#04H;X0固定脉冲数MOV31H#0D8HACALLXYXC;调用X方向运行子程序ACALLFWZC;调用放物子程序AJMPSUN存包子程序P.6-正/反转控制30H、31H步进脉冲暂存器(X方向)33H、34H-35H、36HCBCX:ACALLQWZCSETBP1.6MOV30H,#04H;X0固定脉冲数MOV31H,#0D8H;ACALLXYXCACALLCSHCMOV30H,33HMOV31H,34HACALLXYXCMOV30H,35HMOV30H,35HMOV31H,36HACALLYYXCMOV30H,33HMOV31H,34HACALLXYXCMOV31H,#04HMOV31H,#0D8HACALLXYXCAJMPSUNMOV31H,36HACALLYYXCACALLFWZCCLRP1.6MOV30H,35HMOV31H,36HACALLYYXCMOV30H,33HMOV31H,34HACALLXYXCMOV31H,#04HMOV31H,#0D8HACALLXYXCAJMPSUNX方向运行程序P3.5——脉冲信号输出线-控制MX电机XYXC PU3HPSWSETBPSW.4MOVR0,30HABC0MOVR1,31HABC1CLRP3.5ACALLYSHSETBP3.5ACALLYSHDJNZR1,ABC1 DJNZR1,ABC0POPPSWRETY方向运行程序P3.6——脉冲信号输出线-控制MY电机YYXC PUSHPSWSETBPSW.4MOVR030HADC2MOVR1,31HADC3CLRP3.6ACALLYSHSETBP3.6ACALLYSHDJNZR1,ADC3DJNZR0ADC2POPPSWRET取物子程序P
1.6——正/反转P3.6——Y方向脉冲输出(40H)P
3.7——Z方向脉冲输出(66H)QWZC PUSHPSWSETBPSW.4SETBP
1.6MOVR0#66HABC4CLRP
3.7ACALLYSHSETBP3.7ACALLYSHDJNZR0,ADC4MOVR0,#40HABC5CLRP3.6ACALLYSHSETBP
3.6ACALLYSHDJNZR0ABC5DJNZR0,ABC7POPPSWCLRP1.6MOVR0,#66HABC6CLRP3.7ACALLYSHSETBP3.7ACALLYSHDJNZR0ABC6MOVR0,#40HABC7CLRP3.6ACALLYSHSETBP3.6ACALLYSHRET放物子程序P
1.6——正/反转P3.6——Y方向脉冲输出(40H)P
3.7——Z方向脉冲输出(66H)FWZC PUSHPSWSETBPSW.4SETBP1.6MOVR0,#40HABC8CLRP3.6ACALLYSHSETBP3.6ACALLYSHDJNZR0ADC8MOVR0,#66HABC9CLRP3.7ACALLYSHDJNZR0,ABC9CLRP1.6MOVR0,#40HABC10CLRP3.6ACALLYSHSETBP3.6ACALLYSHDJNZR0,ADC10MOVR0#66HABC11CLRP3.7ACALLYSHSETBP3.7ACALLYSHDJNZR0,ADC11POPPSWRET测试子程序41H——货位列号暂存单元40H——货位层号暂存单元41H40H33H04H03H02H01H35H05H03H01H34HCDHB9H8AH01H36HBFH5BH5BHCSHC PUSHAMOVA,41HCJNEA,03H,MN0MOV33H,#04HMOV34H,#0CDHAJMPMN3MN0:CJNEA,#02H,MN1MOV33H,#03HMOV34H,#0B9HAJMPMN3MN1:CJNEA#01HMN2MOV33H,#02HMOV34H#8AHAJMPMN3MN2MOV33H,#01HMOV34H#01HMN3MOVA,40HCJNEA,#02H,MN4MOV35H,#05HMOV36H#0BFHAJMPMN6MN4:CJNEA,#01H,MN5MOV35H,#03HMOV36H,#5BHAJMPMN6MN5MOV35H,#01HMOV36H,#5BHMN6POPARET4使用说明本系统操作方便,而且在存包或取包过程中均有乐曲伴奏,机械手返回原处,音乐自动停止
一、键盘介绍键盘有数字键0~
9、功能键MON、Q、C键,余下3个扩充键
(1)数字键(0~9)向微机输入十进制数字,组成包位编码
(2)功能键·监控键(MON)使系统进入监控程序·取包键(Q)使系统完成取包操作·存包键(C)使系统完成存包操作
二、操作说明
(1)开启电源(+5V和+25V),两位数码管均应显示提示符“-”表示计算机系统正常否则关闭电源,检查故障
(2)预置包位编码先输入层号(十位数),后输入序号(个位数)例如,设包位编号为23,则依次按数字键2和3,显示23,表示置数成功
(3)启动功能键、完成有关操作,最后,显示提示符“一一”aL=0;bL=1;i=0;}当电机反转时,或者工作在两相八拍模式下可以按上面的代码类推第五章总结经过为期一学期的学习和努力,本次设计顺利完成,具体结论如下
1、采用单片机作为控制核心,利用其强大的功能,把键盘电路和数码管显示电路,电机驱动电路,电机电流检测电路有机的结合起来,组成一个操作方便,交互性强的简单系统
2、通过系统的设计实现了预期的设计目标,完成了全部的设计任务,具体功能如下完成了整个系统的硬件设计和软件编程,能通过键盘电路控制步进电机的转速控制,能实现启动、正转、反转、加速、减速控制,实现转速最低25转/分,最高转速180转/分;通过编程实现了通过单片机能输出两相四拍和两相八拍的脉冲控制序列驱动电路能提供12V,
0.3A的驱动信号;整个电机的转速,转动方向,检测到的电机电流的大小等都能通过数码管显示出来;整个的成果形式是最终以步进电机控制电路板的形式展示出来了
3、在本设计中作为电机正常工作比较重要的电机驱动模块,本设计中是采用驱动芯片L298及其外围电路来实现的,其特点是成本低,可靠性高,出现问题容易维护,实现相对容易等特点
4、在电机工作模式上本设计实现了电机的两相四拍和两相八拍两种脉冲控制方式后续工作
1、在本次设计中更多的是注重整体功能的实现,注重的是操作简单,所以本系统采用了开环控制的方式,电机也是选用的最常用的反应式步进电机通过在本设计中的学习和查阅资料,想要得到更高性能的控制,可以选用混合式步进电机,采用闭环的细分驱动电路
2、本系统在设计的过程中由于没有考虑到单片机的端口有限,所以在本设计中键盘扫描部分只用了四个按键,所以就出现了一个按键叠加很多功能的控制,比如有一个键能同事实现对电机工作模式,电机正反转,电机电流显示,电机停止等的控制,那么这样的情况在实际生产生活中操作起来略显不方便,所以建议以后有做类似设计任务的时候,预先考虑全面,争取一个键控制一个功能
3、本设计的硬件制作部分完全是实行的手工焊接,没有制作PCB板,这样的后果就是焊接完电路板之后容易出现问题,检查麻烦,而且要是在后期全部制作调试都完成后再中途出现问题了检查起来是相当的麻烦所以建议以后有做类似设计任务或者实际应用的时候,尽量采用PCB电路板的形式,这样最大的好处就是硬件的可靠性高,外观美观简洁,尤其是在大量设计的时候,采用PCB电路板成本也不高,值得采用1。