基于单片机的步进电机控制器的设计论文.pdf
第 1 章 1.1 引言.1 1.2 步进电机常见的控制方案与驱动技术简介.2 1.2.1 常见的步进电机控制方案.2 1.2.2 步进电机驱动技术.4 1.3 本文研究的内容.6 第 2 章 步进电机概述 2.1 步进电机的分类.7 2.2 步进电机的工作原理.8 2.2.1 结构及基本原理.8 2.2.2 两相电机的步进顺序.9 2.3 步进电机的工作特点.12 第 3 章 系统的硬件设计 3.1 系统设计方案.14 3.1.1 系统的方案简述与设计要求.14 3.1.2 系统的组成及其对应功能简述.14 3.2 单片机最小系统.16 3.2.1 AT89C51 简介.16 3.2.2 单片机最小系统设计.22 3.2.3 单片机端口分配及功能.23 3.3 串口通信模块.24 3.4 数码管显示电路设计.24 3.4.1 共阳数码管简介.25 3.4.2 共阳数码管电路图.26 3.5 电机驱动模块设计.26 3.5.1 L298 简介.27 3.5.2 电机驱动电路设计.28 3.6 驱动电流检测模块设计.29 3.6.1 OP07 芯片简介.30 3.6.2 ADC0804 芯片简介.31 3.6.3 电流检测模块电路图.35 3.7 独立按键电路设计.36 第 4 章 系统的软件实现 4.1 显示子程序的设计.38 4.2 键盘子程序的设计.39 4.3 驱动程序流程的设计.40 4.4 正反转程序流程图.42 4.4.1 正反转程序流程图.42 4.4.2 转速快慢程序流程图.43 4.4.3 定时中断流程图.44 第 5 章 实验结果与分析 5.1 有关参数的计算与分析.45 5.2 理论与实际的分析.46 附 录 总 结 参考文献 致 谢 第 1 章 1.1 引言 动机又称脉冲电动机或阶跃电动机,国外一般称为 Steppingmotor、Pulse motor或Stepper servo,其应用发展已有约80年的历史。步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比。步进电机在结构上也是由定子和转子组成,可以对旋转角度和转动速度进行高精度控制。当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向与定子的磁场方向一着该磁场旋转一个角度。在有些应用场合,并不需要高精度的控制,而是需要在满足一般工作要求的情况下,尽量使控制系统做到:系统硬件结构简单,成本低;功能较为齐全;适应性强;电机各种运行状态指示一目了然,操作方便;系统抗干扰能力强,可靠性高等要求。本论文就是采用这个思路进行设计。一般步进电机控制器都用硬件实现,虽然电路可以做到了高集成度,可价格较贵,功能相对较单一,并且设计要求有所改变,就得改变整个硬件电路,比较麻烦。而采用单片机的软件和硬件结合进行控制,运用其强大的可编程和运算功能,充分利用单片机的各种资源,能灵活的对步进电机进行控制,实现其不同模式、步数、正反转、转速等控制,如果需改变控制要求,一般只需改变软件就能适应新的环境,并且在本设计中利用动态扫描技术,把显示电路和键盘电路有机的结合起来,能做到一定的人机交换,而且为了抗干扰,提高可靠性,具有一定的应用价值。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 极产生磁场,并与转子形成磁路。在磁场的作用下,转子将转动一定的角度,使转子齿与定子齿对其,从而使步进电机向前“走”一步。转子的角位移大小及转速分别与输入的电脉冲数及频率成正比,并在时间上与输入的脉冲同步。只要能正确控制输入的电脉冲数、频率以及电机各相绕组通电的相序,即可得到所需要的转角、转速及转向,通过单片机很容易实现对步进电机的数字控制。本设计采用 AT89C51 单片机实现对两相步进电机的转速控制。由单片机产生的脉冲信号经过脉冲分配器后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。本课题的研究目的之一就是设计一套硬件系统较简单、经济,但功能较为齐全,适应性强,操作方便,交互性强,可靠性高的步进电机控制系统。第 2 章 步进电机概述 2.1 步进电机的分类 步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。按结构特点电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。目前使用最为广泛的为反应式和混合式步进电机7。(1)反应式步进电机(Variable Reluctance,简称 VR)反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做得很小,但动态性能较差。反应式步进电机有单段式和多段式两种类型;(2)永磁式步进电机(Permanent Magnet,简称 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 两相电机的半步步进顺序 2.3 步进电机的工作特点 本设计选用了型号为 42BYG 型的感应子式步进电机,它与传统的反应式步进电机相比结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。就目前步进电机的应用情况来说,步进电机的自身特点具体归纳起来有:(1)电机必须加驱动才可以运转,驱动信号必须为脉冲信号,没有脉冲的时候步进电机静止,如果加入适当的脉冲信号,步进电机就会以一定的角度(称为步角)转动。转动的速度和脉冲的频率成正比。(2)步进电机具有瞬间启动和急速停止的优越特性。(3)改变驱动器输入脉冲的顺序,可以方便的改变电机的转动方向。(4)位移与输入脉冲信号数相对应,步距误差不长期积累,可以组成结构较为简单而又具有一定精度的开环控制系统,也可以要求更高精度时组成 闭环控制系。(5)电机停止转动的时候具有自锁功能。(6)步距角选择范围大,可在几十角分至 180 度大范围内选择。在小步距情况下,通常可以在越低速下以高转矩运行,因而可以不经减速器直接驱动负载工作。(7)步进电机不能使用普通的交流电源驱动。(8)一般步进电机的精度是步进角的3%5%,且步距误差不会长期积累。(9)步进电机的力矩会随转速的升高而下降:当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。(10)步进电机低速时可以正常运转,但若高于一定频率就无法启动,并伴有啸叫声.步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)第 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处理后送给单片机。独立按键作为一个外部中断源,和单片机端口连接,通过它设置了电机的正转,反转,加速,减速,显示电机电流等功能。采用了中断和查询相结 合的方法来调用中断服务程序,完成了对步进电机的最佳的及时的控制。本节主要是在第一章和第二章的基础上引出了本论文将要采用的设计方案,并详细的清楚的一条条列出了设计要实现的基本设计要求。然后是基于我的设计方案,比较简单的但有条理的描述了系统的各个部分的组成以及其对应的基本功能。通过这一章的内容,我们能对本设计有一个简单的总体的把握,既是能清楚的知道本题目的设计内容,设计方法,以及最终的预期目标。3.2 单片机最小系统 3.2.1 AT89C51 简介 AT89C51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集Flash 程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微处理器于单片芯片中,功能强大。1、主要性能参数 与 MCS-51 产品指令系统完全兼容 4k 字节在系统编程(ISP)Flash 闪速存储器 1000 次擦写周期 4.05.5V 的工作电压范围 全静态工作模式:0Hz33MHz 三级程序加密锁 1288 字节内部 RAM 32 个可编程 IO 口线 2 个 16 位定时计数器 6 个中断源 全双工串行 UART 通道 低功耗空闲和掉电模式 中断可从空闲模唤醒系统 看门狗(WDT)及双数据指针 掉电标识和快速编程特性 灵活的在系统编程(ISP 字节或页写模式)2、功能特性概述 AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I O 口线,看门狗(WDT),两个数据指针,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3、引脚功能说明 图3.2 AT89S51 该设计使用到的单片机芯片对应管脚名称位置等如图 3.2 的引脚功能图详细说明。VCC:电源电压 GND:地 P0 口:P 0 口是一组 8 位漏极开路型双向 I0 口,也即地址数据总线复用口。作为输出口用时,每位能驱动 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位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVXRi 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区 P2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的 I O口线外,更重要的用途是它的第二功能,如下表所示:P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。具体功能如表 3.1 所示 表 3.1 P3 口的引脚及功能 端口引脚 第二功能 P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断 0)P3.3 INT1(外部中断 1)P3.4 T0(定时/计数器 0 外部输入)P3.5 T1(定时/计数器 1 外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 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 仅访问外部程序存储器(地址为0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA 端状态。如 EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。F1ash 存储器编程时,该引脚加上+12V 的编程电压Vpp。XTALl:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。存储器结构:MCS-51 单片机内核采用程序存储器和数据存储器空间分开的结构,均具 64KB 外部程序和数据的寻址空间。程序存储器:如果 EA 引脚接地(GND),全部程序均执行外部存储器。在 AT89S51,假如 EA 接至 Vcc(电源+),程序首先执行地址从 0000H0FFFH (4KB)内部程序存储器,再执行地址为 1000HFFFFH(60KB)的外部程序存储器。数据存储器:AT89S51 的具 128 字节的内部 RAM,这 128 字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128 字节均可设置为堆栈区空间。4、晶体振荡器特性 AT89C51 一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容 Cl、C2 接在放大器的反馈回路 构成并联振荡电路。对外接电容 Cl、C2 虽然没 十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用 30pF10pF,而如使用陶瓷谐振器建议选择 40pF 10pF。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。5、Flash 闪速存储器的并行编程 AT89C51 单片机内部 4k 字节的可快速编程的 Flash 存储阵列。编程方法可通过传统的 EPROM 编程器使用高电压(+12V)和协调的控制信号进行编程。AT89C51 的代码是逐一字节进行编程的。编程方法:编程前,须设置好地址、数据及控制信号,AT89C51 编程方法如下:1在地址线上加上要编程单元的地址信号。2在数据线上加上要写入的数据字节。3激活相应的控制信号。4将 EA Vpp 端加上+12V 编程电压。5每对 Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个 ALE PROG 编程脉冲。每个字节写入周期是自身定时的,大多数约为50us。改变编程单元的地址和写入的数据,重复 15 步骤,直到全部文件编程结束。3.2.2 单片机最小系统设计 采用 AT89C51 单片机构成了控制系统的核心,其基本模块就主要包括复位电路和晶体震荡电路。在本设计当中,单片机的 P 0 口、P 1 口、P 2 口、P 3 口全部参与系统工作,单片机最小系统的接线如图3.3 所示:图3.3 单片机最小系统图 3.2.3 单片机端口分配及功能 1、其中 P 0 口用于控制数码管的具体显示功能,既是数码管的段选。2、P 1 口主要用于控制电机驱动芯片 L298 的工作,以及 ADC0804 芯片的编程的读写控制。3、P 2 口主要用于控制数码管的公共端,既是数码管的位选。与此同时还处理键盘扫描电路的。4、P 3 口主要用于负责处理 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个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极 COM 增加位元选通控制电路,位元选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通 COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个 LED 数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为 12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码 管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 口,而且功耗更低。3.4.2 共阳数码管电路图 本设计选用了数码管显示设计,其段选的控制 A、B、C、D、E、F、G、DP 按照数码管的简介资料选用了 P 0 口作为其控制端口,其位选部分由于单片机的控制端口输出的电压不足以直接点亮数码管,所以在单片机控制端口和数码管的位选控制端口加入了三极管,其具体的电路连接如图 3.6 所示。图 3.6 数码管显示电路 3.5 电机驱动模块设计 在第一章的 1.2.2 中已经详细的介绍了目前的电机的驱动技术的基本类 型,考虑要硬件设计驱动电路的方法会电路复杂,调试不方便,而且采用多个元器件搭接,成本高。而直接采用集成的驱动芯片时电路稳定,成本低,易于控制,所以最终本设计是直接采用电机驱动芯片 L298 作为电机驱动部分的核心部件。3.5.1 L298 简介 L298N 为 SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片,内部包含 4 信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准:TTL 逻辑准位信号,可驱动 46V、2A 以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的 IO 端口来提供模拟时序信号。L298N 之接脚如图 3.7 所示,Pin1 和 Pin15 可与电流侦测用电阻连接来控制负载的电路;OUTl、OUT2 和 OUT3、OUT4 之间分别接 2 个步进电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。图3.7 L298管脚图 引脚功能介绍:1、1;15 脚(Sense A;Sense B):电流检测端,分别为两个 H 桥的电流反馈脚,不用时可以直接接地;2、2;3 脚(Output1;Output2):1Y1、1Y2 输出端;3、4 脚(VS):功率电源电压,此引脚与地必须连接 100nF 电容器;4、5;7 脚(Input 1;Input):1A1、1A2 输入端,TTL 电平兼容;5、6;11 脚(Enable A;Enable B):TTL 电平兼容输入 1EN、2EN 使能端,低电平禁止输出;6、8 脚(GND):GND 接地端;7、9 脚(VSS):逻辑电源电压。此引脚必须与地连接 100n