电动机综合控制系统
滨江学院
毕业论文
题 目 电动机综合控制系统
院 系 信息工程 专 业学生姓名 叶 甜 学 号指导教师 张宏群 职 称
二O一一 年 五 月 十 日
目录
1 绪论 ........................................................... 3
1.1 应用发展 . ............................................................. 3
1.1.1国内发展 ............................................................. 3 1.1.2国外发展 ............................................................. 3
1.2 研究目的及意义 . ....................................................... 4 1.3 设计任务 . .............................................................. 4
2 设计思想 ................................................................. 5
2.1 功能分析 . .............................................................. 5 2.2 各模块分析 . ............................................................ 5
2.2.1 定时时间设定 . ................................................................. 5 2.2.2 倒计时控制 . ................................................................... 5 2.2.3 调速控制模块分析 ...................................................... 5 2.2.4 电机测速模块分析 ...................................................... 7
3 电路原理 ....................................................... 8
3.1 硬件设计 . .............................................................. 8
3.1.1 单片机外围电路 . ....................................................... 8 3.1.2 时间系统部分 ........................................................ 10 3.1.3 显示部分 ............................................................ 10 3.1.4 调速电路 ............................................................ 11 3.1.5 测速电路 ............................................................ 12
3.2 软件设计 . ............................................................. 13
3.2.1 流程图 . ............................................................. 13
4 仿真测试结果 ........................................................... 14
4.1 仿真软件 . ............................................................. 14 4.2 仿真结果 . ............................................................. 15
5 小结 .................................................................... 18
附录 ............................................................ 20
电动机综合控制系统
叶甜
南京信息工程大学电子信息专业,南京 210044
摘要
本文设计了一个基于AT89S52单片机的直流电机综合控制系统,具有设定定时时间、倒计时控制、电机正转、反转等功能,还利用L293D 脉冲宽度调制原理对电机进行调速控制,通过槽型光耦GK105进行速度测量,最终能显示出电机转速和时间的控制。
关键词:电机控制、89s52、PWM 调速、光耦测速、定时控制
1 绪论
1.1 应用发展
1.1.1国内发展
在现代化工业生产中,电动机作为电能转换的主要传动装置被广泛应用于工业生产、机械制造、现代加工等大小型部门中,随着对生产工艺、流程和产品质量的要求不断提高,越来越多的生产工艺流程中要求能实现自动调速。
随着电子综合应用技术越来越广泛,涉及领域也不再局限,基本包含了微电子技术、电力电子技术、传感器技术、自动控制技术和微机应用技术。正是这些技术的不断发展和创新,直流调速系统也跟着发生了巨大的变化。电机的控制部分已右早前的模拟控制逐渐被以单片机为主的微处理器控制而取代,形成数字与模拟的混合控制系统和纯数字控制系统,并正向全数字控制方向快速发展。电动机中的驱动元器件也经历了几次改革。目前开关速度更快、控制更容易的全控型功率器件MOSFET 和IGBT 成为主流。对于控制功率器件条件的变化和微电子技术的大力应用也是推动新型电动机控制方法产生的主要动力,如今,脉宽调制控制方法在直流调速中获得了广泛的应用和发展。
1.1.2国外发展
随着各种微处理器的不断升级和功能扩充,国外对直流电机速度控制系统的研究也在不断发展和完善,尤其是在80年代,对电机综合控制系统的研究达到顶峰。目前大型直流电机的调速系统一般采用晶闸管整流来实现,为了提高调速系统的性能,研究工作者对晶闸管触发脉冲的控制算法作了大量研究,提出了内模控制算法、I-P 控制器取代PI 调节器的方法、自适应和模糊PID 算法等等。
目前,国外主要的电气公司均已开发出数字式直流调速装置,已经生产出成熟的系列化、标准化、模版化的应用产品。近来推出的SIMOREG-K 6RA24 系列整流装置为三相交流电源直接供电的全数字控制装置,其设计简洁,结构紧凑,用于直流电机电枢和励磁供电,可以很好完成调速任务。设计电流范围为
15A 至1200A ,并可通过并联可控硅单元进行功能扩展。根据不同的应用场合,可选择单象限或四象限运行的装置,装置本身带有参数设定器件,不需要加载其它任何硬件设备便可以完成参数设定。所有控制调节监控及附加功能都由微处理器来实现,还可以可选择给定值与反馈值为数字量还是模拟量,方便调试与驱动设备。
1.2 研究目的及意义
在可调速传动系统中,按照电动机的类型可分为直流调速系统和交流调速系统。交流电动机具有结构简单、价格低廉、维修简便、转动惯量小等优点,但主要缺点为调速较为困难。相比之下,直流电动机虽然存在结构复杂、价格较高、维修麻烦等缺点,但由于具有较大的起动转矩和良好的起、制动性能以及易于在宽范围内实现平滑调速,因此直流调速系统至今仍是自动调速系统的主要形式。如今大规模集成电路微处理器技术日趋成熟和发达,体积小、重量轻、耗电少、成本低、响应快、功能强、稳定性高已经成为电机控制过程中一个崭新的阶段,以微处理器为核心的数字控制技术成为现代电气传动系统控制器的主要形式。其中,在直流电机的速度控制中,PWM 技术常常取代数模转换用于电压输出控制,通常采用桥式驱动电路与脉宽调制技术可以方便实现直流电机调速,电路简单,且调速范围大。
直流电动机不仅是最早出现的电动机,而且是最早实现调速的电动机。利用其优良的调速特性,简单的直流控制,较高的工作效率和优异的即时可控性使直流电动机一直占据着调速控制的统治地位。经过多次技术革新与电气革命,直流电机仍是大多数调速控制电动机的最佳选择。因此研究直流电机的速度控制,有着非常重要的意义。
1.3 设计任务
本设计基于单片机AT89S52对直流电机进行综合控制,主要实现功能包括: (1) 对倒计时进行时间设定,可以精确到秒,最大定时时间为59分59秒 (2) 完成倒计时时间设定后,按下开始键就开始倒计时,时间为0后电机停止转动 (3) 利用单片机AT89S52产生脉冲波形,结合L293d 对电机实现速度控制 (4) 通过程序,按键改变L293dd 输入信号对电机实现正向、反向控制 (5) 利用单片机接受光耦开光计数脉冲数实现测速功能 (6) 数码管显示倒计时时间和电机转速与正反符号
2 设计思想
2.1 功能分析
各模块功能介绍
图1 模块功能图
显示模块显示内容主要可以分为两部分:一是时间设定以及定时功能的显示,有分钟和秒钟设置,二是电机速度测量显示和电机的运转方向,逆方向显示为负号,显示模块采用2个4位共阳数码管可以完成显示要求。当有时间设定,正反控制,加速或减速按钮按下时,由AT89S52单片机控制对应信号显示在数码管相应位置上。调速电路用于控制电机转速,电机与测速模块相连,将电信号送至单片机处理进行显示。
2.2 各模块分析
2.2.1 定时时间设定
定时时间设定包括分设定与秒设定,分秒都有加减控制,由四个按键接入单片机P1口进行控制。
2.2.2 倒计时控制
通过单片机内部中断设定初始值,以中断循环二十次作为一秒,对定时时间倒计时。当开始按键按下时,倒计时开始,倒计时为零后,电机停止,设定时间初始化,需要暂停时,再次按下开始键就可以了。
2.2.3 调速控制模块分析
目前,电机调速控制模块主要有以下三种:
(1) 从电机的端电压考虑,改变端电压来改变电机转速,可以采用电阻网络调整直流电机的分压,其实质是利用电阻阻值大小不同进行串并联,但是电阻网络只能实现有级调速,对于精度较高的电路不适用,而且分压会降低电机的工作效率;
(2) 采用继电器对直流电机的开关进行控制,就是间断性的对电机供电,通过开关的切换对电机的速度进行调整,其电路结构简单,但是继电器控制响应速度慢,不能满足现在对电机的即时控制;
(3) 采用H 桥驱动电路,用单片机控制使能端使之工作在占空比可调的开关状态,占空比高时电机平均电压高,转速加快,占空比降低时,电机两端平均电压降低,电机减速,从而调整电动机转速,市面上有很多封装好的H 桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。
图2 H 桥电路示意图
图2所示为一个简化的H 桥直流电机控制示意图,H 桥式电机驱动电路包括四个三极管和一个电机。要使电机运转,必须使电流顺利流过电机,如图只要满足对角线上的一对三极管导通,便可以实现。通过改变不同三极管对的导通情况,电流就会从左至右或从右至左流过电机,从而控制电机的转向。
当Q3管和Q2管导通时,电流就从电源正极经Q3从左至右穿过电机,然后再经Q2回到电源负极。该流向的电流将驱动电机正向转动。当三极管Q4和Q1导通时,电流将从左至右流过电机,从而驱动电机反方向转动。
综合考虑到调节精度,响应速度和调节范围多方面因素,采用第三种方法,使用集成电路L293D ,不仅能用脉冲宽度调制调节L293D 使能端占空比改变电机转速,而且通过改变输入信号还能控制电机转动方向。
调节使能端占空比是脉冲宽度调制PWM —— Pulse Width Modulation的一种方法,简称脉宽调制。它是利用对单片机的数字控制输出进行模拟电路控制的一种非常有效的技术,广泛应用于速度调节,功率变
换控制与其他变换等许多领域。由于它是一种模拟控制方式,可以根据相应载荷的变化来调制晶体管栅极或基极的电压,实现开关稳压,这种方式能使电源的输出电压在工作条件发生变化时保持恒定,对要求工作稳定的电路很有效。
设计中要用到PWM 信号,产生PWM 控制信号的方法有4种,分别为:
(1) 分立电子元件组成的PWM 信号发生器
这种方法是用具体的元器件对高低电平进行控制组成产生PWM 信号电路。它是最早期的方式,现在已经被淘汰了。
(2) 软件模拟法
利用单片机的一个I/O引脚,通过软件对该引脚不断地输出高低电平来实现所需的PWM 信号。 (3) 专用PWM 集成电路
在脉冲宽度调制控制技术发展之时,便产生了专用的PWM 集成电路芯片,这些芯片除了由PWM 信号发生功能外,还有“死区”调节功能、保护功能等。在单片机控制直流电动机系统中,使用专用PWM 集成电路可以减轻单片机负担,工作也更可靠。
(4) 单片机PWM 口
新一代的单片机包括PWM 功能,单片机只要通过自身初始化设置,使其能自动地发出PWM 脉冲波,期间单片机都不予干预,只有在改变占空比时CPU 才进行干预。
使用的单片机89s52不包含PWM 功能,用软件来实现很方便,缺点是单片机压力较大但是易于控制和调节占空比来改变电机转速。
PWM 控制技术以其控制简单, 灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式, 也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限, 结合现代控制理论思想或实现无谐振软开关技术将会成为PWM 控制技术发展的主要方向之一。
2.2.4 电机测速模块分析 (1)霍尔传感器
开关型霍尔效应传感器是磁敏式传感器,具有应用灵活、工作电压宽范围和采样频率高等特点,是一种可靠性高无接触清洁型传感器,在位置传感、旋转测量等方面得到了广泛应用。当芯片面朝向磁体时利用霍尔效应实现磁电转换。即磁体被固定在待测旋转轴上,当转轴转动时,磁体跟随转动起来,磁场不断发生变化,芯片接受到磁场的变化,通过电路转换为所用的电信号进行处理。具有灵敏度高,线性度好,稳定性高、体积小和耐高温等特点,对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。
(2)光电码盘
光电码盘(见图3)是由光学玻璃制成的,在上面刻有许多同心码道,每个码道上都有一定顺序排列的透光和不透光部分。工作时,光投射在码盘上,码盘随测试物体一起旋转,透过亮区的光由光敏元件接受,产生对应光敏元件的排列与码道一一对应,对于亮区的光敏元件输出高电平而暗区的光敏元件输出低电平,,当码盘旋转在不同位置时,光敏元件输出信号的组合反映出一定规律的数字量,代表了码盘轴的角位移。使用于小角度测量,但其使用较麻烦,准确度与反应速度不高。
图3 光电码盘
(3)槽型光耦
槽型光耦一般由一个发光二极管和一个光敏三极管组成,光敏三极管和普通三极管相似,也有电流放大作用,只是它的集电极电流不只是受基极电路和电流控制,同时也受光辐射的控制。通常基极不引出,但一些光敏三极管的基极有引出,用于温度补偿和附加控制等作用。
当具有光敏特性的PN 结受到光辐射时,形成光电流,由此产生的光生电流由基极进入发射极,从而在集电极回路中得到一个放大的信号电流。当没有光照射时,光敏三极管截止,信号电流消失。运用这种原理通过改变发光二极管能否照射到光敏三极管而产生一个方波序列,方波的频率便是电机的转速。
由测量技术的持续性,实际电路的运行容错性,选择简单可靠的GK105槽型光耦作为计数器件。
3 电路原理
3.1 硬件设计
3.1.1 单片机外围电路
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
单片机工作电源电路和下载程序的电路见图4,下载口用于将程序下载到单片机,是电路正常工作的前提。电源部分经过了高频滤波,低频滤波,消除电源对系统的干扰。最后接入二极管,实际下载过程中目标板电压过高,程序出现无法烧录情况,串入二极管后问题解决。
图4 单片机下载电路与电源电路
图5 单片机最小系统
3.1.2
计时状态,当时间减为零后,电动机停止转动。在倒计时过程中,通过再次按下开始键实现暂停和开始功能。电机停止转动后,复位按键可以重新设定时间,并初始化电机状态。
3.1.3 显示部分
显示部件见图7
图7 数码管显示电路
单片机P0口驱动段码,外部电阻上拉,P2口控制片选,前两片为分钟显示,最高到59分钟,上限变为零,三四片为秒钟显示,五六七片显示电机每秒转速即圈数,最后一片显示电机转动方向,反方向显示为负号,三极管驱动放大电流,动态显示时间,电机转速与转动状态。
3.1.4 调速电路
L293D 采用16引脚DIP 封装,其内部集成了双极型H-桥电路。通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整。另外,L293D 将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号。
图8 L293D 连线电路图
其中IN1,IN2和EN1构成了一组输入信号,当IN1为高电平,IN2为低电平电机正转,当IN1为低电平,IN2为高电平电机反转,EN1是使能端,高电平有效,接受来自单片机产生的可调节占空比的方波,Vs 为驱动电压即输出的基本电压值。
(1)高低电平时间相当 (2)高电平时间长 (3)低电平时间长
选用一路PWM 连接EN1引脚,当按下加速按钮时方波信号高电平时间增加,加在电机的驱动电压有效值增大,有效电流增加,转速变快,见示意图(2)当按下减速按钮时方波信号高电平时间减少,加在电机的驱动电压有效值减小,有效电流减小,转速变慢,见示意图(3)这是加速与减速原理以及程序实现的控制。
3.1.5 测速电路
测速原理可以归纳为测量一定时间内转动的次数即测量频率以及电机转动一周的时间即测量周期。考虑到电机转速较快,周期短,测量计算误差较大,故采用测量频率的方法。
图9 光耦测速电路
具体实现为电机转盘上开缺口,由GK105的通断特性,当电机旋转时,转盘上的缺口会不断经过发光二极管,缺口为透光部分,光敏三极管能被照射到,其他部分则不透光,这样槽型光耦将会输出高低电平即所需要的脉冲,通过单片机外部终端对脉冲计数,每一个脉冲代表电机旋转一周,再计算好产生脉冲的时间,就可以算出电机的转速,显示在数码管上。
3.2 软件设计
3.2.1 流程图 程序流程如图10
图10 程序流程
程序循环检测按键是否按下,当有时间设定按键按下,时间变量做相应加减,开始计时后调用时间中断函数进行倒计时,判断时间变量是否为零,不为零继续倒计时,为零时,计时停,电机停。
速度调节中设定了上下限即高电平时间不能一直大,也不能太小,否则会出现电机停转现象,当过大过小时,程序会自动修正。
单片机资源分配表(见表1)
表1 单片机资源分配表
4 仿真测试结果
4.1 仿真软件
设计中涉及到了编程程序Keil uVision 和仿真软件Proteus ,仿真过程中使用了单片机,它要调用Hex 格式的程序文件,是电路正常工作。Keil uVision 可以将程序转换并生产Hex 文件,这两个文件联合使用也是非常方便,一边调试程序,一边进行仿真。
仿真是为了检查电路基本的硬件关系是否正确,程序是否存在错误,程序能否完成设定的功能,实际电路中,总会存在一些问题,如电压不够,按键抖动问题,数码管扫描频率等。
仿真过程和结果会十分有用,省去了挑选、焊接元器件,测试结果更是一目了然,关键是调试过程,逻辑电源、接地、元件显示方便修改,它还提供了四通道示波器,直流和交流电流表以及电压表,这样出现问题的电路和元件会很快发现,对于模拟电路基础差的学生,这是一款很好的学习软件。
4.2 仿真结果
到实验目的。
图12 直流电机运转仿真
图12显示了直流电机的转速,通过按键,电路和单片机可以完成时间分、秒设置,时间定时设置,还原定时状态以及电机正反控制和加速、减速控制。电机转速仿真结果符合实际情况。
图13 加速减速时输出方波
图13分别显示了电机开始转动时加的脉宽电压,加速时的脉宽电压和减速后的脉宽电压。仿真结果满足设计要求,结果精度也较为满意,得到了预期结果,达到了设计目的。
实物图见图14
图 13
左半面为单片机工作和控制电路,包括电源电路,复位电路,按键和数码管的驱动电路,右半部分是数码管结果显示,电机硬件控制电路和计数脉冲发射电路。
5 小结
通过此次的毕业设计,更加巩固了模拟电路与数字电路相结合的应用和理解,我通过自己的努力学会了分析实际电路,设计电路,编写、调试程序以及对于编程程序Keil uVision 和PROTEUS 仿真软件的联合使用等。
集成元器件L293D 综合了数字与模拟控制,使能端由高低电平控制,高电平有效输出端才会有电压,另外两路输入信号为一个高电平和一个低电平,分别代表输出时电压正反方向,逻辑电源和驱动电源是分开的,这取决于被驱动电器的工作电压。
槽型光耦利用光敏元件原理,通过有光照射与无光照射呈现出不同的状态,利用电机转动产生电信号,这也是传感技术一个小小的应用吧。
软件中没有电机转动,发光二极管的光会一直照射到光敏三极管,为了完成同样效果的测试,让发光二极管不工作,光线就消失了,相当于电机挡住了光线,如此反复,也能产生同样的电信号。故发光二极管加的是脉冲电压模拟电机转动的效果。
实际电路中电机的驱动电压较大,按照理论的占空比无法驱动电机,在程序调试阶段,初始占空比便不能太小,减速时也不能减得过小,否则电机不会工作,于是我加入了速度控制程序部分,这样一来,问题就得到解决。
为了证实设计的可行性,运用了PROTEUS 仿真软件进行仿真,完成了需要实现的功能。这次设计中巩固了平常的知识,锻炼了电路分析能力,通过查资料了解不熟悉元件的运用,更学习到了新的技术与知识,我想这才是设计的目的吧。
参考文献
[1] 林立. 张俊亮. 曹旭东. 刘德军. 《单片机原理及应用基于Proteus 和Keil C》. 电子工业出版社. [2] 王庆有. 《光电技术》. 电子工业出版社.
[3] 周雪. 《模拟电子技术》. 西安电子科技大学出版社,2005.7.
[4] 周景润、张丽娜、刘映群. 《PROTEUS 入门使用教程》. 机械工业出版社,2001. [5] 载文进. 徐龙权. 《电机学》. 清华大学出版社,2008.2.
[6] 蓝和慧. 宁武闫. 晓金. 《单片机应用技能》. 电子工业出版社.2009.4.
The system of Motor comprehensive controlling
Ye Tian
Nanjing University of Information Science and Technology
ABSTRACT
The design is a system of a motor comprehensive controlling with 89s52. The system has time controlling, anticlockwise controlling, clockwise controlling and other functions. And it could control the speed of the motor with Pulse Width Modulation. The design could measure the speed through GK105 light switch and show the result of the motor speed and time controlling. Key word: motor controlling, 89s52, PWM controlling, time controlling
附录
电路原理图
L293D 管脚图
程序 #include #define uint unsigned int #define uchar unsigned char
void init(); //声明初始化函数 void delay(uint); //声明延迟函数 void display(); // 声明显示函数
sbit P10 = P1^0;// 开始/暂停电动机定时时间 sbit P11 = P1^1;// 电动机定时时间加一秒 sbit P12 = P1^2;// 电动机定时时间减一秒 sbit P13 = P1^3;// 电动机正转/反转 sbit P14 = P1^4; // 重新计时并开动电动机 sbit P15 = P1^5; // 电动机定时时间加一分 sbit P16 = P1^6; // 电动机定时时间减一分 sbit P17 = P1^7; //输出可调占空比方波 sbit P32 = P3^2; // 外中断脉冲计数 sbit P36 = P3^6; // 电动机减速 sbit P37 = P3^7; // 电动机加速
sbit PWMOUT = P3^7; // 方波使能控制
sbit PWMIN1 = P3^0; // P3^0,P3^1分别为 10时顺时针转动 sbit PWMIN2 = P3^1; // 为01时逆时针转动
uint a=0,b=300,i=0,j=0,h=75,t=0,x,c=59;// a 为计数脉冲 b 为初始定时秒数
//i,j是延迟变量
h 是矩形脉冲高电平时间变量
//t是电动机运行时间 x 是电动机转速
uchar SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}; //八位共阳段码 void main() {
init();//初始化程序
while(1) {
P17=1; //生成方波 h 为高电平可调占空比变量
delay(h); P17=0;
if(!P14)//还原按键检测 { }
if(h0) h=49; if(h>=100) h=92;
if(b>3600) b=59; if(b
//定时时间过大、过小控制
//电动机转速过大、过小控制
a=0;
TR0=1; //开始计时 h=75; //电动机运行
if (!P36) //电动机减速 delay(20); if(!P36) { }
h-=2; a=0; t=0;
if (!P37) //电动机加速 delay(20); if (!P37) {
h+=2; a=0; t=0;
}
if(!P11) //电动机定时秒加一 delay(10); if(!P11) b++;
if(!P12) // 电动机定时秒减一 delay(10); if(!P12) b--;
if(!P15) // 电动机定时分加一 delay(10); if(!P15) b+=60;
if(!P16)// 电动机定时分减一 delay(10); if(!P16) b-=60;
if(!P13)//电动机反相 delay(20);
if(!P13)
{ PWMIN1 = !PWMIN1; PWMIN2 = !PWMIN2;
}
display(); //显示结果
}
}
/******初始化函数***********/ void init() {
}
TMOD=0x01; //选择定时工作方式 TH0=0x3c; // 初始化时间 TL0=0xb0; // EA=1; //开总中断
ET0 = 1; //开定时器0中断允许 TR0=1; //开启定时 IT0 = 1; //中断方式为跳变 EX0 = 1; //打开外部中断0 PWMOUT = 1; PWMIN1 = 1; PWMIN2 = 0;
//开启电动机并设置为顺时针运转
/******中断函数0**************/ void T0_time()interrupt 1 {
TH1=0x3c; TL1=0xb0;
if(++i==20) //总运行时间计数 { }
if(!P10) //开始后 定时器倒计时 {
if(++j==20) { }
if(b==0) //时间为零 {
TR0=0;
h=0; //电动机停止
t++; i=0;
b--; j=0;
}
}
}
b=300; //时间重新设定 a=0; //脉冲清零 t=0; //时间清零
/*****显示子函数************/ void display() {
x=a/t; // 转速=光耦产生的计数脉冲/运行时间
P2=0x01;
P0=SEG[b/600]; //定时器分位 delay(10);
P2=0x02;
P0=SEG[b/60%10]; //定时器分位 delay(10);
P2=0x04;
P0=SEG[b%60/10]; //定时器秒位 delay(10); P2=0x08;
P0=SEG[b%60%10]; //定时器秒位 delay(10);
P2=0x10; P0=SEG[x/100]; // delay(10);
P2=0x20;
P0=SEG[x/10%10]; // 电动机转速十位 delay(10);
电动机转速百位
P2=0x40;
P0=SEG[x%10]; // 电动机转速个位 delay(10);
P2=0x80; // 电动机正反转标志显示 P0=0xff;
if(PWMIN1==0) //反转显示负号 P0=0xbf; delay(10);
}
/******延迟函数************/ void delay(uint xms) { uint i,j;
for(i=xms;i>0;i--) for(j=110;j>0;j--);
}
/****** 脉冲计数 ******/ void count() interrupt 0 {
if (!P32)a++;
}