正式论文

更新时间:2024-05-31 14:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目 录

引言 .......................................................................... 2 1 单片机概述及其直流调速现状分析 .............................................. 2

1.1 单片机的定义及其发展历程 .............................................. 2 1.2 单片机的发展趋势 ..................................................... 3 1.3 单片机的简述和应用应用领域 ............................................ 3

1.3.1 单片机的简述 ..................................................... 3 1.3.2 单片机应用领域 ................................................... 5 1.4 单片机直流调速现状分析 ................................................ 6 2 直流调速系统设计原理 ........................................................ 7

2.1 直流电机 .............................................................. 7 2.2 PWM调制原理 ........................................................... 7 2.3 桥式电路的设计 ........................................................ 8 2.4 采用PWM控制的调速方法 ................................................ 8 2.5 系统设计方案 .......................................................... 9

2.5.1 系统总体设计思想 ................................................. 9 2.5.2 闭环PID控制 .................................................... 10 2.5.3系统控制流程图设计 .............................................. 10

3 直流调速系统设计 ........................................................... 11

3.1 单片机最小系统电路设计 ............................................... 11 3.2 驱动电路部分 ......................................................... 11 3.3 78XX系列集成稳压器 ................................................... 13 3.4 电源部分 ............................................................. 13 3.5 测速电路设计 ......................................................... 13 3.6 MAX7219和LED显示转速 ................................................ 14 3.7系统电路总设计 ........................................................ 17 4 直流调速系统程序设计 ....................................................... 17 5 系统总电路图仿真 ........................................................... 21

5.1计算机仿真概述 ........................................................ 21

5.1.1 计算机仿真技术 .................................................. 21 5.1.2 Proteus仿真软件应用 ............................................ 21 5.1.3 Keil C51开发系统简述及应用 ..................................... 22 5.2系统总电路仿真图 ...................................................... 22 设计总结 ..................................................................... 24 致 谢 ....................................................................... 24 参考文献 ..................................................................... 25 附录 ......................................................................... 26

1

基于单片机的直流调速系统的设计

摘 要:随着计算机在控制领域以及高频率开关、全控型二代电力半导体器件的发展,脉宽调制(PWM)的直流调速系统在调速控制中得到很好的应用。为此,本文将主要介绍基于单片机直流PWM调速系统的工作原理,单片机输出信号控制和外部直流电路所组成的软硬件相结合的直流调速系统。并对其进行霍尔传感器测速,进而更好地对其进行精确数字化的闭环控制。仿真运行实验表明,系统工作稳定可靠,满足直流电动机的调速要求。 关键词:自动控制技术;PWM调速系统;单片机信号控制;理论研究

引言

近年来,随着科技的飞速发展,电力电子技术也取得了巨大的进步,直流电动机被越来越广泛的应用。直流具有优良的调速性能,调速曲线平滑,调速方便、范围广;过载能力大,能承受频繁调速带来的冲击负载,起动、制动、反转可实现无级调速。它能满足生产过程中自动化系统各种不同的特殊要求,从而实现对直流电动机的调速所提出的更高要求,刚开始改变电枢回路电阻和电枢电压的方法被逐渐淘汰,这时PWM方式控制直流电机的调速应运而生。

传统的调速主要具有以下缺陷:模拟电路容易随时间发生漂移,会产生不必要的损耗,以及对噪声敏感等。而运用PWM方式调速可以避免以上缺陷,实现数字方式控制模拟信号,以达到降低成本和损耗。另外,由于PWM调速系统的开关频率较高,仅通过对电枢电感滤波就可以获得平稳的直流电流,低速特性好;它还具有快速响应特性好、动态抗干扰能力强、可获得宽频带的优点。开关器件只工作在开关状态,主电路损耗小,效率高。PWM抗噪性,节约空间,经济效益好。

本文利用这种控制方式来改变电压的占空比以实现对直流电机的速度控制。文中采用了C语言编程对单片机的输入信号进行控制,产生PWM信号。并自动调节PWM信号的占空比。目前运动系统的数字控制大都是采用硬件与软件相结合的控制方式,其中软件控制方式一般是利用单片机实现的。

本文主要研究了利用与MCS-51兼容的AT89S51单片机,通过PWM闭环方式控制直流电机调速的方法。

1 单片机概述及其直流调速现状分析

1.1 单片机的定义及其发展历程

单片机是一种集成电路芯片,采用超大规模技术把具有数字处理能力的微处理器、随即存取数据存储器、程序存储器、输入输出电路,还可能包括定时计数器、串行通信口、显示驱动电路、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成了

2

一个小而完善的计算机系统。从而使单片机中的这些电路在软件的控制下准确、高效、迅速地完成程序设计者规定的任务。所以,单片机可以独立完成现代化工业控制所要求的智能化控制功能。

单片机诞生于20世纪70年代,自1971年美国Intel公司制造出第一块4位微处理器以来,其发展十分迅速,至今大致可分为以下几个阶段。

(1)4位单片机(1971—1974); (2)低档8位单片机(1974—1978); (3)高档8位单片机(1978—1982); (4)16位单片机(1982—1990); (5)新一代单片机(90年代以来)。

1.2 单片机的发展趋势

单片机一路从8位、16位发展到32位,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

1、低功耗CMOS化; 2、微型单片化; 3、主流与多品种共存。

在单片机应用中,可靠性是扩大应用范围和领域的首要因素。近年来,单片机的生产厂家在设计中采用了各种提高可靠性的新技术,这些新技术表现在以下:

1、EFT技术;

2、低噪声布线技术及驱动技术; 3、采用低频时钟。

单片机在目前的发展形势下,表现出几大趋势:

可靠性及应用越来越多,和互联网连接已是一种明显的走向。集成部件越来越多;功耗越来越低和模拟电路结合越来越多。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最后单片机与微机系统之间的距离会越来越小,甚至难以辨认。

1.3 单片机的简述和应用应用领域 1.3.1 单片机的简述

MCS-51单片机是美国因特尔公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,已经被市场淘汰)、8051(芯片采用HMOS,已经被市场淘汰)和8751等通用产品,一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的

3

89S51、已经停产的89C51等),MCS-51单片机至今仍作为代表进行理论基础学习。

8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。

其他的公司的51单片机产品都是和MCS-51内核兼容的产品而已。不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须增加如ISP功能等新的功能才能更好延续MCS-51。从而89S51应运而生,现在,89S51目前已经成为了实际应用市场上新秀,作为市场占有率第一的ATMEL目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,在成本上降低,而且在功能上加快开发,增加了竞争力。89SXX可以向下兼容89CXX等51系列芯片。

AT89S51单片机是低功耗、具有4KB在线编程(ISP功能)Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。它将通用CPU和在线可编程Flash集成在一个芯片上,形成了相对功能强大、使用灵活和具有较高性能性价比的微控制器。

AT89S51具有如下特性:

--片内程序存储器为4KB的Flash存储器,支持在线编程,可擦写1000次; --片内数据存储器内含128字节RAM; --I/O口具有32根可编程功能I/O线; --具有两个16位I/O线;

--中断系统中具有6个中断源、5个终端矢量、2个中断优先级; --串行口是一个全双工的串行通信口; --具有两个数据指针DPTR0和DPTR1; --低功耗有节电模式和掉电模式; --包含3级程序锁定位;

--AT89S51的电源电压为4.0-5.5V; -振荡器频率0-33MHz(AT89S51); --具有片内看门狗定时器;

--灵活的在线片内编程模式(字节和页编程模式); --具有断电标志模式POF。

89S51相对于89C51增加的新功能包括:

--新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!

--ISP在线编程功能,该功能的优势在于改写单片机存储器内的程序时不需要把芯片从工作环境中单独拿出。是一个强大易用的功能。

--最高工作频率为33MHz,89C51的极限工作频率是24M,所以S51具有更高工作频率,从而使芯片计算速度更快。 --具有双工UART串行通道。

4

--内部有集成看门狗计时器,不再需要像89C51外接看门狗计时器单元电路。 --具有双数据指示器。 --具有电源关闭标识。

--具有全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,可以很好的保护用户资料。

--兼容性方面:向下完全兼容51全部子系列产品。 其封装图如下图1所示。

图1 51系列单片机的封装图

1.3.2 单片机应用领域

伴随着单片机的高速发展,其应用领域也越来越广泛,在智能仪器仪表、工业控制、家用电器、计算机网络和通信、医用设备等领域应用极为广泛。此外,在工商、金融、科研、教育、国防航空等领域也有它的身影。应用领域大致可分如下几个范畴: ①在智能仪器仪表上的应用

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

②在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。 ③在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

5

④在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 ⑤单片机在医用设备领域中的应用

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 ⑥在各种大型电器中的模块化应用

某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 ⑦单片机在汽车设备领域中的应用

单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。

1.4 单片机直流调速现状分析

由于直流电动机具有很好的运动性能和控制特性,尽管它在结构简单、价格便宜、制造方便、维护容易等方面不如交流电动机,但是长期以来,直流调速系统一直占据垄断地位。当然,近年来,随着计算机技术、电力电子技术和控制技术的发展,交流调速系统得到快速发展,直流调速系统在许多场合正逐渐被取代。但是就目前来看,直流调速系统仍然是自动调速系统的主要形式。在我国许多工业部门,如轧钢、矿山采掘、海洋钻探、金属加工、纺织、造纸以及高层建筑等需要高性能直流调速可控电力拖动系统。而且,直流调速系统在理论和实践上都比较成熟,从控制技术角度来看,它又是交流调速系统的基础。因此加强对直流调速系统的发展有利于更进一步发展交流调速系统,促进调速系统的进一步完善。

直流调速系统是一个从简单到复杂、开环到闭环、单环到多环、单向调速到可逆调速的不断丰富完善的过程。不仅存在从单一调速方式向多种调速方式的纵向发展过程,而且每一种调速系统本身也都在发展完善之中。如开环、闭环、单闭环、双闭环、三环、有环流可逆调速系统和无环流可逆调速系统都在不断的完善和发展之中。单闭环不仅是转速闭环一种,根据应用要求不同可以采用电压负反馈、电流补偿等替代措施。有环流可逆调速系统目前有两种,无环流可逆调速系统目前有三种,它们都在不断完善和发展之中。

其次,直流调速系统的产生与发展都与其他学科存在紧密联系。第一它与电机学有紧密地联系,因为对于调速来说,电机是控制对象,对控制对象的研究越深入控制效果才会越好。第二与半导体变流技术的发展密不可分,电力电子技术元器件的性能越好可供选择的种类越多,调速系统的性能才会越好。微型计算机的发展,尤其是微控制器的发展为直流调速系统

6

的进一步发展提供助力。微控制器的应用,改变了控制系统的结构,改变了传感元件的检测技术,并且使各种先进控制算法得以实现。任何设计都在随着其他科技的发展而不断完善。

2 直流调速系统设计原理

2.1 直流电机

直流电动机在自动控制系统中用作执行元件,把电信号转换成电动机轴上的角位移或角速度输出。其主要特点是,当信号电压为零时不转,转速随着转矩的增加而匀速下降。

定义:将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。

作用:可使控制速度位置精度非常准确。将电压信号转化为转矩和转速以驱动控制对象。 直流电机分为有刷电机和无刷电机。有刷电机成本低,结构简单,启动转矩大,调速范围宽,控制容易,维护方便,产生电磁干扰,对环境有要求。无刷电机体积小,重量轻,出力大,响应快,速度高,惯量小,转动平滑,力矩稳定。控制复杂,容易实现智能化,其电子换相方式灵活,可以方波换相或正弦波换相。电机免维护,效率很高,运行温度低,电磁辐射很小,长寿命。

2.2 PWM调制原理

在直流电机调速中,脉宽调速技术是利用数字输出对模拟电路进行控制尤其是在电机转速控制上的一种很有效的方法。它可以大大节省能量,PWM调制技术的基本原理为:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同(冲量既指窄脉冲的面积),使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。

控制直流电动机转速n的表示式为:

n?Ua?Ia?RaCe? (1)

上式中Ua——电枢供电电压(V); Ia——电枢电流(A); Ф——励磁磁通(Wb); Ra——电枢回路总电阻(Ω);

Ce——电势系数,p为电磁对数,a为电枢并联支路数,N为导体数。 直流电动机有三种基本调速方法:(1)改变电枢回路总电阻Ra;(2)改变电枢供电电压Ua;(3)改变励磁磁通Ф。

7

2.3 桥式电路的设计

桥式电路:控制晶体管V1、V4同时导通同时关断,V2、V3也是同时导通同时关断(V1与V2、V3与V4不允许同时导通,否则电源Ud直通短路)。设V1、V4先同时导通T1秒后同时关断,间隔一定时间(为避免电源直通短路。该间隔时间称为死区时间)之后,再使V2、V3同时导通T2秒后同时关断,如此反复,则电动机电枢端电压波形如图2b所示。

V1 Ud/2 V3 Ud Ua M -Ud Ud/2 V4 V2 Ua T1 T2 t

2a)原理图 2b)输出电压波形 图2.桥式PWM降压斩波器原理电路及输出电压波形

电动机电枢端电压的平均值为

Ua?T1?T2T1?T2Ud?(2T1T?1)Ud?(2??1)Ud (2)

由于0≤?≤1,Ua值的范围是-Ud~+Ud,因而电动机可以在正、反两个方向调速运转。

2.4 采用PWM控制的调速方法

下图为PWM降压斩波器的原理电路及输出电压波形。在图3a中,假定晶体管V1先导通T1秒(忽略V1的管压降,这期间电源电压Ud全部加到电枢上),然后关断T2秒(这期间电枢端电压为零)。如此反复,则电枢端电压波形如图3b中所示。电动机电枢端电压Ua为其平均值。

8

V1 Ua UT2 M U

Ua 0 T1 t T 3a)原理图 3b)输出电压波形 图3 PWM降压斩波器原理电路及输出电压波形

所以电压与通电时间的关系式为:

Ua?T1T1?T2Ud?T1TUd??Ud (3)

式(3)中

??T1T1?T2?T1T (4)

式中?为一个周期T中,晶体管V1导通时间的比率,称为占空比。

2.5 系统设计方案 2.5.1 系统总体设计思想

PWM调速系统按有无反馈可以分成开环系统和闭环系统,闭环系统有着良好的速度性能,使控制信号与电机速度基本保持同步,它有自动修正偏差的能力。它控制的系统不仅有给定的电压进行控制,而且被控量也参与控制。或者说,是由给定量与被控量的反馈信号的差值进行控制。如当电动机的转速升高时,运用负反馈系统可以使电机电压适当降低,这样就可以使转速减低,达到稳定调速。所以本文使用闭环调速系统。

直流电机闭环控制电路关系图如图2所示:

信 号 速度控制环节 电机驱动电路 直流电动机 速度反馈 A

图2 驱动关系图

9

2.5.2 闭环PID控制

闭环速度调节器采用比例积分微分控制(简称PID控制),其输出是输入的比例、积分和微分的函数。PID调节器控制结构简单,参数容易整定,不必求出被控对象的数学模型,因此PID调节器得到了广泛的应用。

速度设定值和电机转速的获取:

为在单片机中实现PID调节,需要得到电机速度设定值和电机的实际转速,这需要通过精心的设计才能完成。直流电机的实际转速可通过测量转子位置传感器(霍尔传感器)信号得到,在电机转动过程中,通过霍尔传感器可以得到周期信号。PID计算表达式如式(5)。

nu(n)?Kpe(n)?Ki?e(k)?Kd(e(n)?e(n?1))k?0 (5)

式(5)中

Ki?KpTTi

Kd?KpTdT

u(n)——第k个采样时刻的控制;Kp——比例放大系数;

Ki——积分放大系数;Kd——微分放大系数;T——采样周期。

2.5.3系统控制流程图设计

以下是89S51单片机系统和7812,、7805稳压电源系统以及L298功率放大驱动器组成控制电动机占空比的电路,有霍尔传感器测速,并用MAX7219和LED显示转速。控制流程图如图3所示。

AT89S51单片机 7812和 7805稳压电源系统 L298功率放大驱动器 直流电 机 霍尔测速MAX7219 LED 显示转 速 PID转速反馈

图3 控制流程图

10

3 直流调速系统设计

3.1 单片机最小系统电路设计

本次设计中主要应用了89S51单片机,由最小单片机系统组成,并将单片机的P2.0、P2.1口作为输出口,输出占空比不同的矩形波,供给后续驱动电路部分,速度控制方面在单片机的外围扩展了两个按键,key1作为加速按键,key2作为减速按键,进行调速控制。

图4为89S51单片机控制系统的控制部分。

图4 单片机最小控制系统

3.2 驱动电路部分

由于单片机I/O口输出的电流太小,因此将电机直接接在单片机上无法起动,需要加以驱动电路提供电源,驱动电路有以下三种方案:

方案一:采用专用小型直流电机驱动芯片。这个方案的优点是驱动电路简单,添加稳压器可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全,价格也比较便宜。

方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。

11

方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。电路工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。

本文设计是针对小型电机进行直流调速,所以采用方案一的集成芯片,能够使电路简单,且工作稳定,本设计采用的是L298驱动芯片。L298的逻辑功能如表1所示。

表1 L298逻辑功能表

ENA(B) H H H L

L298芯片是目前市场上较容易买到的直流电机驱动芯片,是一个高电压、大电流全双桥驱动器,由标准的TTL电平控制。L298支持50V以内的电机控制电压,在直流运转条件下,可以通过高达2A的电流,因此它满足了一般小型电机的控制要求。其驱动电路图如图5,二极管的作用是消除电机的反向电动势,保护电路,因此采用整流二极管比较合适。PWM控制信号由in1、in2输入。如果in1为高电平,in2为低电平时电机为正向转速,反之in1为低电平,in2为高电平时,电机为反向转速。ENA引脚为芯片使能端,若为高电平,芯片工作,为低电平,芯片停止工作。本文使能端悬空,默认高电平。

IN1(IN3) H L 同IN2(IN4) X

IN2(IN4) L H 同IN1(IN3) X

电机运行状况 正转 反转 快速停止 停止

图5 电机驱动电路

12

3.3 78XX系列集成稳压器

78XX系列集成稳压器的典型应用电路如图6所示,这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,R为负载电阻。其中5V电压是由220V交流电压经过降压至36V,再经过一个桥式电路整流,接到7812集成稳压器,变成12V直流电压,最后经过7805变成5V直流电压。

图6 稳压电路

3.4 电源部分

电源部分采用的是三端稳压器7812和7805,输入由变压器和桥式电路整流提供+12V直流电,经7805稳压,由电容滤波,输出+5V电压,为单片机、霍尔传感器和LED数码管提供工作电源。L298驱动电路需要12V和5V直流电压同时供电。图7为电路中电源部分。

图7 电源电路

3.5 测速电路设计

霍尔开关集成电路中的信号放大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压UH,放大后经信号变换器、驱动器进行整行、放大后输出复制相等、频率变化的方波信号。信号输出端每输出一个周期的方波,代表转过了一个齿。单位时间内输出的脉冲数N,因此

13

可求出单位时间内的速度V=NT。

系统中按照要求加入了测速电路,目的是为了监控电机是否运转正常。测速电路采用了霍尔传感器,其外形图如图8(a)、8(c)所示,其测速示意图如图8(b)所示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,传感器便输出一个脉冲,让其和单片机的INT0口相连,每一个脉冲触发一次中断,记一次数,在规定的时间内读出脉冲数,计算出电机转速。脉冲电路不需要再加滤波电路,因为芯片内部已集成了,当没信号产生时,可以换一下磁钢的方向,其对磁钢的方向是有要求的,磁钢和传感器的距离要小于5mm,一个码盘上磁钢数量以3~6个为好。

本设计中电机转速信号的采集元件选用开关集成霍尔传感器,由于它是OC门,故输出端与电源之间必须接一个电阻。霍尔元件输出的脉冲信号经过三极管放大,再送到单片机P3.2脚。此芯片只是本设计的一小部分,在此不做具体介绍。霍尔元器件用三个引脚的方框代替,仿真时用方波代替。 其外形和电路原理图如下图所示。

图8(a) 图8(b) 图8(c)

图9 霍尔传感器接线图

3.6 MAX7219和LED显示转速

闭环速度控制中传感器选用霍尔传感器,转轴每转一周输出一个脉冲信号。转速脉冲信号整形后,输入到89S51单片机的INTO中断口P3.2端口上。软件设置INTO为下降沿中断,

14

+5V霍尔 元件 R=+5V 10K out

进入中断服务程序后开启定时/计数器O进行定时,测出每转的周期,输出PWM波占空比的控制数。由八位驱码驱动器带动LED数码管进行显示。

MAX7219芯片为MAXIM公司推出的串行输入/输出共阴极显示驱动器,是用一个芯片实现以往用软件完成的动态显示电路扫描工作的器件。每片可控制显示8个七段LED数码管,控制字简单,可与各种微机接口。前四位显示当前运行速度,后四位显示预置速度,本文中使用四位。MAX7219串行口工作频率最高10MHz,八位LED显示,通过对译码模式寄存编程,可控制各位显示方式(BCD码或非译码),显示是片内动态扫描模式,通过一个电阻和编程可控制亮度。MAX7219的数据输入端DIN、时钟端CLK、数据锁定端L分别与89S51单片机的P1.6、P1.5、P1.7端口相接。改变电阻R的阻值可调整显示亮度,R取值在3.9~10k?之间。使用MAX7219不仅可减少硬件电路,由于是片内动态扫描显示,并可降低功耗和简化软件设计。

引脚功能和工作原理

MAX7219采用24脚双列直插式封装,其引脚如图10所示。SEGA~SEGG和DP分别为LED七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流。

图10 MAX7219引脚图

其中D15~D12位不用,D11~D8位为内部5个控制寄存器和8个LED显示数据寄存器的地址,D7~D0位为5个控制寄存器和8个LED数码管待显示的数据,因为控制寄存器与显示数据寄存器独立编址,所以可以通过程序对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,每16位为一组,从高位地址字节最高位开始送,直到低位数据字节最后一位。MAX7219内部有14个可寻址的控制字寄存器,各寄存器的功能及地址如表2所示。

15

表2 串行数据格式

D15~D12 D11~D18 D7~D0

? ? ? ?4位寄存器地址 8位控制命令或待显示数据

MAX7219的控制字寄存器

功 能

D15~D12

?地 址

D11 0 0 0 0 0 0 0 0 1 1 1 1 1 1

D10 0 0 0 0 1 1 1 1 0 0 0 0 1 1

D9 0 0 1 1 0 0 1 1 0 0 1 1 0 1

D8 0 1 0 1 0 1 0 1 0 1 0 1 0 1

16进制码

空操作 位0 位1 位2 位3 位4 位5 位6 位7 译码模式 显示亮度 扫表界限 停机 显示测试

?0 1 2 3 4 5 6 7 8 9 A B C F

??????????????????????? ?

?? 16

3.7系统电路总设计

本文直流调速采用定频调宽法:T1+T2保持一定(即保持周期固定),使T1在0~T范围内变化来改变a的值从而达到调控电压的目的。以89S51单片机系统和7812、7805稳压电源系统以及组L298功率放大驱动器构成直流电机占空比控制部分。由键盘key1和key2指令控制,单片机处理后发出矩形波,通过占空比的调节达到电机调速的目的。当按下key1按键时,占空比增大,电枢电压增大,电机转速增大;当按下key2按键时,占空比减小,电枢电压减小,电机转速减小。从而通过单片机达到简单调速的目的。

图11为系统的总电路设计图。

图11 总体电路原理图

4 直流调速系统程序设计 程序设计思想:

当按key1键时,电压升高,转速上升,当按key2键时,电压下降,转速下降;定时器1中断用来产生周期为1ms的脉宽信号,定时器每次中断后改变下一次的定时设置,设置值由按键决定,按key1,高脉宽定时时间加大,按key2,低脉宽定时时间增大,每次变化10us。

下图为电机调速(在附录详细介绍程序)、MAX7219控制子程序和PID数字控制流程图。

17

开始 初始化,周期T=20ms,高电平T0=10ms N 判断是否有按 键 按 下 Y T0增加或减少10us,改变占空比 图12 电机调速流程图

电机PWM调速和键盘扫描程序

main( ) {sbit speed; sbit speed1; display[3]=spead/1000; spead1=[spead/1000]; spead=spead1; display[2]=spead/100; spead=spead2; display[1]=spead/10; spead=spead3;

sbit P0^0=key1; //加速 sbit P0^1=key2; //减速 key() {

if(key1==1) //加速 {

while (key1==1); t++; } if(t>=5) t=5;

if(key2==1) //减速

18

开 始 定义变量 初 始 化 设置显示区首址 传送数据 显 示 返 回 13 MAX7219控制子程序流程图

图 }

{

while(key2==1); t--; } if(t<1) t=1;

}

for(i=0;i<4;i++)

{ Write_Max7219(i,1); delay(1000); } }

控制MAX7219子程序

#define DECODE_MODE 0x09 #define INTENSITY 0x0A #define SCAN_LIMIT 0x0B #define SHUT_DOWN 0x0C #define DISPLAY_TEST 0x0F //pin defined

/***********************************************************************/ //change this part at different board

sbit LOAD=P1^7; //MAX7219 Load-Data Input: rising edge pin 12 sbit DIN=P1^6; //MAX7219 Serial-Data Input: rising edge pin 1

sbit CLK=P1^5; //MAX7219 Serial-Clock Input: maximum 10MHz pin 13 //function define

void delay(unsigned int time) {

while(time--); }

/***********************************************************************/ void Write_Max7219_byte(unsigned char temp)//write max7219 a byte {

unsigned char i;

for (i=0;i<8;i++) { CLK=0; DIN=(bit)(temp&0x80); delay(200); temp<<=1; CLK=1; } }

19

始化kp,ki,kd, e(k-1)=0,e(k-2)=0 本次采样输入c(k),k 本次偏差e(k)=r(k)-c(k) 对e(k)判断分段 kp,ki,kd比例项u(p)=k(p)*[e(k)-c(k-1)] 积分项u(i)=k(i)* 微分项u(d)=k(d)*[e(k)-2e(k-1)+e(k-2)] 无刷电机 输出控制量为PWM u(k)=[u(p)+u(i)+u(d)]+u(k-1) e(k-2)=e(k-1),e(k-1)=e(k-2) u(k-1)=u(k) PWM 采样时间?定时中断 中 断 返 回 图14 PID数字控制流程图 PID计算部分

Main Program 主程序

/***********************************************************************/ double sensor (void) // Dummy Sensor Function { return 100; }

void actuator(double rDelta) // Dummy Actuator Function {}

void main(void) {

PID sPID; // PID Control Structure double rOut; // PID Response (Output) double rIn; // PID Feedback (Input) PIDInit ( &sPID ); // Initialize Structure

20

sPID.Proportion = 5/10; // Set PID Coefficients sPID.Integral = 5/10; sPID.Derivative = 0;

sPID.SetPoint = 100; // Set PID Setpoint for (;;) { // Mock Up of PID Processing rIn = sensor (); // Read Input

rOut = PIDCalc ( &sPID,rIn ); // Perform PID Interation actuator ( rOut ); // Effect Needed Changes }

/***********************************************************************/

5 系统总电路图仿真

5.1计算机仿真概述 5.1.1 计算机仿真技术

计算机仿真不仅在没有具体硬件环境的条件下模拟出具体硬件环境,以判断系统的可行性,而且在设计的系统出错时,不至于损害具体硬件环境。因此,采用系统仿真是非常必要的。当前能够用于计算机仿真学习单片机的软件也已日趋成熟,而各种集成开发环境更是层出不穷,极大地方便了学生通过计算机仿真学习单片机。

利用计算机仿真技术,在计算机网络平台上,学习电路分析、模拟电路、数字电路、嵌入式系统、微机原理与接口技术等课程,并进行电路设计、仿真、调试等通常在相应实验室完成的实验。一个计算机网络硬件平台(或一台计算机)、一套电子仿真软件,再加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,即为虚拟实验室的本质。本文中应用Proteus软件对电路进行仿真。 5.1.2 Proteus仿真软件应用

Proteus嵌入式系统仿真与开发平台是由英国Labcenter公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。它是一种可视化的支持多种型号单片机(如51、PIC、AVR、Motorola hcll等),并且支持与当前应用很广泛的单片机开发环境(Keil、MPLAB、IAR)连接调试的软硬件仿真系统。Proteus除了具有和其他EDA一样的原理图、PCB自动或人工布线及电路仿真功能外,针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真也做到了一体化和互动效果,是目前广泛使用的工具,是电子线路设计与仿真软件Protel和Multisim功能的联合和进一步扩展。

Proteus软件已有近20年的历史,是目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具,真正实现了在没有目标原型时就可对系统进行设计、测试与验证。由于Proteus软件包括逼真的协同仿真功能,得到了众多大学用户作为电子学或嵌入式系统的课程教学、实验和水平考试平台。目前,Proteus在单片机开发设计应用中已开始普及,有很多开发者已经开始用此开发环境进行仿真。

21

Proteus是一种功能强大的电子设计自动化软件,提供智能原理图设计系统、SPICE模拟电路、数字电路及MCU器件混合仿真系统和PCB设计系统功能。其不仅可以仿真传统的电路分析实验、模拟电子线路实验、数字电路实验等,而且可以仿真嵌入式系统的实验,其最大的特色在于可以提供嵌入式系统的仿真实验,这也是其它任何仿真软件无力所及的。

5.1.3 Keil C51开发系统简述及应用

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

Keil C51软件在应用中能提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。编译后生成汇编代码,Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

Keil Vision2是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言。在Keil中新建项目,选好89S51单片机,编写C程序。设置编译输出后缀为HEX的文件。编译成功后,在相应文件夹下找到后缀为HEX的文件相应文件导入到Proteus的工程中。然后在Proteus下运行,便可得到仿真结果。观察L298输出波形可用虚拟仪表,经过简单的调试后就能在虚拟仪表中看到占空比可变的PWM波形。 5.2系统总电路仿真图

原理图的设计主要的问题是一些器件的选用,其中以LED的选用最为繁琐,因为对很多器件不是十分熟悉,接硬件电路的时候会遇到很多的小问题,一般是向指导老师请教,或者是上网查找后不断地尝试,尝试每个接口应该怎样接,结合平时的经验以及器件的一些共同点。硬件原理图如图15。仿真时电源部分用12V和5V直流电源代替。

22

仿真原理图15

23

设计总结

本论文是一项比较繁琐且要求比较高的课程设计。在之前都没有做过这么复杂的设计,可能是感觉单片机的应用范围比较大,做起来比较认真,希望从该设计中学到很多有用的东西。本设计是我自己查阅资料上网以及翻阅以前学过的相关知识总结出来的一个比较实际有用的设计,期间有指导老师的耐心指导,讲解原理,提供资料,期间也投入了比较多的时间,但感觉很值得。从这次设计中也学到了很多东西,对单片机的了解更深入了,对Protel、Proteus软件的使用也更熟练了。本次设计是对这一学期来微型计算机控制技术的学习的一次总体应用,可以体现出对单片机控制的掌握程度,尤其是编程方面。本次设计的实用性很强,设计成果只需稍作完善就可以在生活实际中应用,当然社会上这方面的技术已经很成熟,对PWM调速方面技术的提高并没太大价值。本设计使我获益良多,对以后把单片机在实际中的应用提供了很好的实践经验。

致 谢

本论文是在老师的悉心指导下设计完成的。作为一位本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一些绘图功底好的同学们的支持,想要完成这个设计是很困难的。在这里首先要感谢我的指导老师权老师。权老师平日里课程不少,还要指导其他同学。但在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期检查,后期详细设计,装配草图等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是权老师仍然细心地纠正设计中的错误。除了敬佩权老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次要感谢我的同学对我无私的帮助,特别是在绘图和软件编程的使用方面,正因为如此我才能顺利的完成设计,我要感谢我的母校,是母校给我们提供了优良的学习环境;另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知识。在此,我再说一次谢谢,谢谢大家!

24

参考文献

[1]周美娟、肖来胜.《单片机技术及系统设计》[M].清华大学出版社.2007. [2]潘新民、王燕芳.《微型计算机控制技术》[M].电子工业出版社.2010.

[3]李青 .电路与电子技术基础——数字电子技术基础 [M].浙江科学技术出版社 .2003 [4]电路电子实验指导书 [J].中国计量学院电工电子实验中心.2006. [5]朱朝霞 .机电工程训练教程——电子技术实训[M].清华大学出版社. 2005

[6] 戴佳,戴卫恒,刘博文.51单片机C语言应用程序设计实例精讲.[J].北京:电子工业出版社,2008.30-45.

[7] 李学礼.基于Proteus的8051单片机实例教程[M].北京:电子工业出版社,2008.42-60. [8] 蒋辉平,周国雄.基于PROTEUS的单片机系统设计与仿真实例[J].北京:机械工业出版社,2009.123-133.

[9] 余发山,单片机原理与应用技术[M].徐州:中国矿业大学出版社,2003.76-94.

[10] 周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.100-120.

另外从互联网下载了部分图片及资料

Based on single chip microcomputer dc speed control system design

Abtract:Along with the computer in the control areas and high frequency switch, all control the second generation of the development of the electric power semiconductor devices, pulse width modulation (PWM) dc speed control system of speed regulation control in get a good application. Therefore, this article mainly introduces the dc speed control system based on single chip PWM the working principle of the single chip microcomputer control and external dc output signal of hardware and software of the way of combining the dc speed control system. And the hall sensors, speed, and better on the digital accurate closed-loop control. The simulation experiment shows that operation, stable and reliable system, and meet the requirements for dc speed control.

Keywords: automatic control technology; PWM control system; SCM signal control; Theory research

25

附录

以下为电机PWM调速程序详细代码

#include #include

unsigned char Bright_Level[8]={0,40,80,120,150,180,210,240}; unsigned char counter=0;

unsigned char code a[8]={0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81}; unsigned char code b[8]={0xc3,0x66,0x3c,0x18,0x18,0x3c,0x66,0xc3}; unsigned char code c[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned char j=0x01;

/****初始化******************** Timer 0 定时中断处理

**************************/ //timer init void initTimer0(void) {

TMOD=0x51; TH0=0xff; TL0=0xff-46; TH1=0x00; TL1=0x00; TR0=1; ET0=1; IT0=0; EA=1;

} //timer0/counter0 interrupt

void main() { /*int i,j;

unsigned char temp;

for(j=0;j<5;j++) {

temp=0x01; for(i=0;i<8;i++)

26

{

temp<<=1; P1=~temp; delay(20000); }*/

unsigned char i; initTimer0();

Init_Max7219(); while(1)

{//for(i=0;i<8;i++)

// 计算转速;

/*提取转速的位值;

speed; speed1;

display[3]=spead/1000; spead1=[spead/1000]; spead=spead1; display[2]=spead/100; spead=spead2; display[1]=spead/10; spead=spead3;

for(i=0;i<4;i++)

{ Write_Max7219(i,1);

delay(1000); } } }

////////////////////////////////////////////中断程序////////////////// void timer0(void) interrupt 3 {

unsigned char i;

static unsigned char counter; static unsigned int counter1;

27

TH0=0xff; TL0=0xff-46; counter++; counter1++;

if(counter>=80) P2=0; else

P2=1;

if (counter>100) counter=0; if(counter1==2) {启动定时器 1; }

if(counter1>=1002) {停止定时器 1;

x=TH1*256+TL1;//x为全局变量

TH1=0x00; TL1=0x00;

counter1=0; } TF0=0; } }

/****************按键扫描**************/

sbit P0^0=key1; //加速

x=TH1*256+TL1; //t1方式1计数,读入计数值 TH1=0x00; TL1=0x00; x++; display(); }

sbit P0^1=key2; //减速 key() {

28

if(key1==1) //加速 {

while (key1==1); t++; } if(t>=5) t=5; if(key2==1) //减速 {

while(key2==1); t--; } if(t<1)

t=1;

}

TR0=0;//清中断 }

29

本文来源:https://www.bwwdw.com/article/r806.html

Top