




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计题目:基于单片机的SPWM控制系统设计学 院:信息科学与工程学院专 业:学 号:学生姓名:指导教师:日 期:武汉科技大学本科毕业论文摘 要论文主要目的建立基于单片的SPWM调控系统,即用单片机产生SPWM波,其中,脉冲的宽度按正弦规律变化而和正弦波等效的PWM波形称为SPWM波。本论文中主要是根据SPWM法的原理,即通过控制电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,并且在惯性环节上的效果基本相同,从而达到等效的效果。根据这个原理,先利用MATLAB计算出基波与载波的交点,计算出交点之间的持续时间,根据持续时间的值在单片机程序中建立一个数组,数组中的元素就是赋予定时器的初值,当定时器溢出时,输出电平自动翻转,继而查表,赋予下一个电平的持续时间,这样一直反复下去,就可以得到一个SPWM波形。最后在protues中仿真,在示波器中可以看到SPWM波的波形。关键词:单片机; Matlab; 查表; SPWM;仿真AbstractThe main purpose of the paper to establish a SPWM regulatory system based on single chip microcomputer , namely, Using a single chip microcomputer to generates SPWM wave,Among them, the pulse width changed by the law of sine is equal to the sine wave,this PWM wave calls SPWM wave.This paper is mainly based on the principle of SPWM law, namely, the switch-off device in the control circuit is on or off , So that the area of pulse voltage output and the area of the desired output sine wave in the corresponding sections are equal,And the effect on the inertia is substantially same, So as to achieve the equivalent effect, According to this principle, First using MATLAB to calculate the intersection of fundamental and carrier wave, Then calculating the duration between intersections, Based on the value of the duration ,Create an array in the microcontroller program, Elements in the array is initial value assigned to the timer, When the timer overflows, the output level will automatic reverse. Then look up table, Given the next duration of electrical level, Finally we simulate in protues ,then you can see the SPWM wave on the oscilloscope.Key words:Single chip microcomputer; MATLAB; Look-up table; SPWM; The simulation目 录1 绪论11.1 研究的背景及意义11.2 研究目的及内容22 主电路工作原理42.1 PWM控制的基本原理42.2 SPWM法的基本原理52.3 PWM控制方法52.3.1 计算法52.3.2 调制法62.4 同步调制和异步调制62.4.1 异步调制62.4.2 同步调制62.5 规则采样法73 单极性和双极性PWM控制逆变电路分析93.1 单相桥式PWM逆变电路93.1.1 原理图93.1.2 单极性PWM控制方式93.2 双极性PWM控制方式104 基于MATLAB的分析以及交点计算124.1 MATLAB简介124.2 查表产生SPWM波理论分析124.3 Matlab计算程序及仿真图形结果135 单片机程序设计195.1 AT89C52介绍195.2 程序设计流程图225.3 C语言实现程序235.3.1 程序运行软件Keil uVision2简介235.3.2 主程序245.3.3 中断程序255.4 仿真工具protues介绍255.5 仿真电路图265.6 仿真显示266 结论28参考文献29致 谢30311 绪论1.1 研究的背景及意义随着科技的飞速发展,逆变器的使用越来越广泛,逆变器能够将直流电源转换为具有所需输出电压和频率的交流电源。在换流器模式下,能够操作相位的转换器被称为线换向逆变器。但线路换向逆变器要求在输出端存在有用于换向的交流电源。这意味着线路换向逆变器不能用作隔离式AC电压源或变频发电机直流电源。因此,在整流逆变器的交流侧电压电平,频率和波形不能被改变。另一方面,换向力的逆变器提供了一个独立的电压可调和频率可调的交流输出电压,并因此更广泛的应用。逆变器的输入电源是从现有的供电网络,或从旋转交流发电机通过整流器或电池,燃料电池,或从光伏阵列或磁流体动力发生器获得的。滤波电容器通过逆变器的输入端来提供一个恒定的直流链路电压,因此,该逆变器是一个可调节频率的电压源。逆变器可大致分为两种类型,电压源和电流源逆变器。电压反相器(VFI)或电压源逆变器(VSI)是其中一种具有小的或可忽略不计阻抗的直流源的逆变器。其在输入端上的电压是恒定的,电流源逆变器(CSI)被从高阻抗直流源获得的可调节的电流反馈回来,因此还是一个恒定的直流调节电流。其中,PWM技术在逆变器电压源中起着至关重要的作用。PWM技术的发展使得对电动机转速或者说速度的控制更加容易,它可以通过控制PWM波的占空比,从而控制电动机的转速。由于几乎所有的逆变电路中都要通过用到PWM技术把直流电转化为交流电,所以在电力电子技术中,PWM技术是必须掌握的一门技术。脉宽调制技术是根据各个负载调制FET栅极或集体管理的基极偏置的变化是正向偏置或反向偏置和晶体管的开启时间,来控制模拟开关电源电路的输出控制模式,该模式可使电源电压的变化趋于稳定,其工作方式是利用单片机来离散控制的非常有效的输出技术。控制简单灵敏和动态响应好的的PWM技术在电力电子技术被广泛应用,并且被人们紧密关注,研究,也是大学电子学中必学的一部分。由于对具有控制电流是否导通功能的开关器件的研究越来越深入以及让对它们的使用更加广泛,PWM技术在电力电子技术行业,如:风力发电系统、电机调速系统、直流供电系统等领域也得到使用。目前已经提出并且被人们经常使用的PWM控制方案就超过数十种。起初,PWM控制方案就几种,但是在随着微处理器的研究发展,并且在应用于PWM技术之后,控制方案就开始日益增多,并且要求也越来越高。PWM控制技术发展逐渐完善。并且越来越多的控制方案被提出,研究氛围越来越浓厚。而且不少方法已经趋于成熟,有许多已经被人们应用于实际应用中。在通信领域,由于PWM控制有具有很强的抗干扰力,在输入端,人们一般先把模拟信号转换为脉宽宽度调制信号,然后在输出端再转换回来,并且通过低通滤波器滤掉高次谐波,这样可以大大延长通信距离。由于PWM不仅能够具有低通滤波器的特点能够滤除高频波,还能够实现交流和直流之间的相互转换,因此,它还应用于调速交流驱动器,感应加热,待机飞机电源,UPS(不间断电源)等等其他能量变换系统中。SPWM即正弦脉宽调制被广泛应用于电力电子,从而获得数字化电源 ,以致能够可以通过接通和断开电源开关来产生离散的电压脉冲信号.几十年内脉宽调制逆变器在电力电子方面作为主要选择而用于电源调控,由于其电路简单,坚固耐用并且容易控制 所以SPWM开关技术在工业应用中也被经常使用。SPWM技术的特征是恒定幅度的脉冲在每个周期中具有不同的占空比为。通过对脉冲的宽度进行调制,从而进行对逆变器输出电压控制,并减少它的谐波含量,正弦脉宽调制或SPWM是在电机控制和变频器应用大多使用的方法,在单极和双极PWM控制发展中SPWM电压调制型被选择,因为这种方法提供了有效地加倍逆变器电压的开关频率的优点,从而使输出滤波器更小,更便宜且更容易实现,以往,为了产生该信号,三角波作为载波信号与正弦波相比,且其频率为期望的频率。然而,国外对于SPWM控制的研究要远远领先于国内,它已经经历三了发展阶段,第一个发展阶段是采用晶闸管作为开关器件,然而由于晶闸管抗干扰性差,容易发生错误的导通,并且它的动态过度能力差,容易在预计关闭导通的地方继续导通,所以这个时代很快的就结束了。第二个阶段是采用自动关断器件作为开关器件,第三个阶段是采用实时反馈控制技术,使逆变电源的性能得到提高。近年来,由于单边机体积小,功能多,又便宜,集成度又高,所以人们对单片机的研究越来越深入,并且单片的应用范围也越来越广泛,使得人们看好两者之间的结合,于是开始对基于单片机的SPWM控制系统也开始进行研究。所以,基于单片机的SPWM控制系统的研究是非常必要的。1.2 研究目的及内容所谓PWM控制技术,是一种能够控制电压幅值、控制频率大小以及消除高次谐波的一门技术,它通过利用开关器件的开通和关断能把直流电压变成具有一定形状的电压脉冲序列1。长久以来,人们对自关断器件的研究已经发展到一定地步,其为PWM技术的发展铺平了道路,并且PWM技术可以改善输出波形,从而减小脉动、降低谐波损耗,同时使逆变器的结构变得更加简单,使调节速度变快,系统的动态响应性能更好。所以当代几乎所有的变频调速装置都是采用PWM技术。PWM技术可以通过对晶闸管,二极管,场效应管的控制不仅可以把直流电转换为交流,也可以把交流电转化为直流电,人们对PWM整流器的开发研究已经取得很大进展,利用PWM技术以实现把直流电流转化成正弦化的电流,且使其电网的有用功功率非常高。所以、PWM整流器被人们称为对电网控制无污染的“绿色”变流器。脉冲宽度调制技术是一种根据场效应管沟道内的载荷的变化来调制场效应管正偏或反偏,根据晶体管导通时间来决定输出电压的幅值,这样就不需要时时刻刻改变输入电压的幅值,仅仅只需要改变开关导通的时间,这样就可以稳定的调节输出电压,从而使对电压的调节更加方便,更加稳定。近年来,由于计算机控制技术的研究越来越深入,数字PWM控制技术已逐渐取代了模拟PWM控制技术,已成为电力电子设备中使用的主要技术。由于PWM技术的发展进步,使得交流电机调速性能不断提高的。其中,三个开发规则的叠加空间矢量PWM控制方法被广泛采用的准最优PWM控制方法的人采样PWM控制方式和电压谐波的基础上,和这两种控制方法可以很容易地控制,计算简单,易实现。脉宽调制技术是根据各个负载调制FET栅极或集体管理的基极偏置的变化是正向偏置或反向偏置晶体管的开启时间根据模拟开关电源电路的输出控制模式,该模式可使电源电压的变化输出电压时钟稳定的条件下,在工作方式改变是利用微处理器以离散模拟电路控制的非常有效的技术的数字输出。本次研究的目的就是利用单片机产生SPWM波。,2 主电路工作原理2.1 PWM控制的基本原理PWM控制的基本原理:形状不同当时波形随时间的积分即面积或者说是冲向相等的输入脉冲波形经过惯性环节可以或得获得的输出波形几乎一样,既输出环节的响应基本相同。如果把各输出波形在傅里叶变换后进行分析,则可以看出其低频段非常接近原有波形,仅在高频段略有不同1。如图2.1所示的三个波形不相同,电压随时间的积分大小为1个三个脉冲,当它们分别加在如图2.2 (a)所示的同一个R-L环节上时,则其输出响应波形基本相同。其中脉冲为冲激脉冲函数时,环节的响应即为(d)图的电路输出与输入之比的系统函数。它们的输出波形基本相同且如图2.2(b)所示。 (a) (b) (c) (d)图2.1 冲量相等、形状不同的窄脉冲(a) (b)图2.2 形状不同而冲量相同的各种窄脉冲及响应波形2.2 SPWM法的基本原理脉冲幅值相等并且脉冲宽度按正弦规律变化并与正弦波等效的PWM波称为SPWM(sinusoidal PWM)波形1。如图2.3所示,通过对如图的波形的截止频率除以一个确定数据后,如K,就可以分成K个等份,它可以被认为是由K个靠在一起的矩形脉冲所组成的波形,这些幅值不相等的脉冲波形的宽度个个都相等。如果把它用如图所示的幅值相等,而脉冲宽度个个不相等的矩形脉冲来代替这些脉冲序列,使矩形脉冲和正弦波部分的中点重合,并且使矩形脉冲和相应的正弦波部分面积相等,则可得到如图所示的矩形脉冲序列,这就是SPWM波形1。一般使用的PWM开关技术逆变器具有一个直流输入电压,它通常幅度恒定。逆变器的工作是控制该输入电压和输出交流的幅度和频率。有迹象表明,脉冲宽度调制可以被输出是交流电源的模型通过许多不同的方式实现。一种常用技术称为正弦脉宽调制技术。为了输出一个正弦波形在一个特定的频率下特定的正弦控制信号频率,一般需要与一个三角波形相比较。在使用SPWM波进行调制时,畸变系数和低次谐波被显著降低。图2.3 用PWM波来代替正弦半波2.3 PWM控制方法2.3.1 计算法 计算法就是在知道输出波形的频率,幅值,以及半个周期内的脉冲个数之后,计算出他们离散的宽度和间距的实际值,从而准确的控制开关的通断时间,来控制PWM波的占空比,得到所需要的波形1。2.3.2 调制法调制是以基波作为调制信号,把接收到的调制信号作为载体,通过调节基波以获得所需的输出波形。,由于对称的等腰三角形波有着线性关系的高度和宽度,所以可以在任何一个的基波与载波的交点,通过对电路接通和断开开关器件,来控制电平高低,以获得更平缓调制信号,并且到的脉冲宽度与信号振幅成正比,这正好符合PWM控制的要求,所以三角波用得较多。2.4 同步调制和异步调制所谓载波比,就把载波频率与调制信号频率之比 1,人们把PWM调制方式据基波与载波的变化情况是否一致分为载波比保持一致的调制方法和载波比不保持一致的两种调制方式,即同步调制和异步调制。虽然同步调试模式比异步调试复杂得多,但是使用电脑容易实现控制。2.4.1 异步调制所谓异步调制、就是调制信号和载波信号的波形变化不保持同步,即初相和相位可能不同的调制方式。在异步调试方式下,载波频率一般固定不变,所以当信号波频率 变化时,载波频率与基波频率的比是随着的变化而变化的。随之在信号波的2/T内, 波的脉冲个数以及相位也会发生变化,致使正负半周期以及半周期内前后1/4周期的脉冲个数和相位不对称。而当较低时,载波频率与基波频率的比值较大,致使脉冲数量较多,使得脉冲不对称对波形的输出影响不大,使得输出 波的效果与正弦波相似。同理,当变大时,载波频率与基波频率的比值减小,一个周期内的波数减小, 脉冲波形不能够保持对称,致使输出波形受到扰动,同时输出PWM波和基波相比,前面所提到的冲量(面积)明显不一致,并且对于三相PWM型逆变电路来说,其输出波形也收到严重影响,其对称性也被严重破坏。因此,在异步调制时,为了在高频响应时,载波和基波的频率之比能够很大,一般都使用较高频率的载波。2.4.2 同步调制所谓同步调试,就是载波比N等于常数,载波和基波的变化保持一致的方式。在基本的同步调试方式中,即使变化,载波比N也保持不变,即N是不变的,载波和基波的频率保持一致,所以,一个周期内的输出波形数量是保持不变的。在三相PWM逆变电路中,一般公用一个三角波作为载波,如本设计中就是如此,公用一个三角波载波,2个不同的基波。这样可以使三相输出波形严格对称,从而跟容易计算。为了使读者更加容易理解。这里给出了如图2.4所示,同步调制时N=9时的三相PWM波形。当电路输出频率很低时,由于在同步调试下载波频率与基波频率的比值应该保持一致,所以此时也很低,然而当过低时,容易产生不利的影响。相应的,同步调试的频率在当输出频率很高时也会变得非常高,这样,一般的开光器件不能在这么高的频率范围内工作,所以一般不能在高频率范围内使用。图2.4 同步调制三相PWM波形2.5 规则采样法规则采样法是一种与通过确定基波与载波的交点,开通和关断开关,控制电压的波形。如图2.5所示,当用三角波作为载波对在其顶点或低点的位置对正弦波进行采样时,脉宽就可以由阶梯波与三角波的交点来确定,由于在一个载波周期内交点的位置是对称的,这种方法称为对称规则采样1。 图2.5 规则采样法生成SPWM波的原理图假设三角波的幅值为1,正弦函数为 ,M为调制度且0M0,则和通,如 0,则和通,不管哪种情况都是.当时,和导通,和关断,这时如0,则和通,不管哪种情况都是。图3.3 双极性PWM控制方式波形4 基于MATLAB的分析以及交点计算4.1 MATLAB简介 MATLAB是美国mathworks公司开发的目前国际上应用最广泛,最受欢迎的商业工程计算软件,其数学运算能力强大,并集成了二维和三维图形功能,并提供了一种高级编程语言,因此可以用于矩阵运算、完成相应数据分析以及数值可视化的工作,主要包括Matlab和Simulink两大部分。Matlab是矩阵实验室(MatrixLaboratory)的简称,和并称为三大数学软件。由于我们可以用 画出各种图形,并且在一个界面画出多个图形,设定每个图形的颜色,画图线段的方式如实线,点画线,虚线,并且能够在旁边注解,除此以外,它还可以满足各种计算要求,图像处理功能强大,易于操作,对一些控制过程进行仿真,调控,优化等等一系列优点,所以 在系统的设计,分析以及仿真,和更多领域中都要用到。4.2 查表产生SPWM波理论分析当SPWM采用频率刚好是基波的整数倍时,可得到与基波效果近似的输出波形。查表法就是根据Matlab计算基波和载波的交点从而通过计算可以得到输出矩形波形的高电平和低电平的持续时间,即占空比,从而在c语言编程时用数组来表示高低电平持续时间,通过编写对应程序来查表进而在中断程序中赋予定时器初值,当中断溢出时,电平翻转从而就可以控制输出端口高低电平持续时间,从而产生SPWM波。如图4.1所示,本设计采用的双极性PWM控制方式。图4.1 查表法原理采用的双极性控制方式根据上叙对 Matlab的介绍,我们知道Matlab是一个处理图形,分析计算的非常强大的软件。在本次设计中就需要计算正弦波与三角波的交点,因此 控制通过使用 对交点的值,以及其持续时间进行计算,可以快速方便的得结果。在判断2个波形之间的交点时,可以借助数学领域上的知识来给定。所谓交点,就是在交点附近时刻两函数之差值的绝对值趋于0或许某一精度,而在交点附近的极小区域,离交点越远,差值的绝对值逐渐增大2。4.3 Matlab计算程序及仿真图形结果以下子程序为计算交点的 程序,多次选择精度后,当设置此精度prec时,效果最理想,载波数据。基波数据, 为交点时刻数据。f=50;step = 0.00000001;from = 0;to = 0.02;% plotx=from:step:to;L1=sawtooth(2*pi*10*f*(x+1/1000),0.5);%三角波载波L2 =3*sin(2*pi*f*x)/4;%正弦波基波L3 =4*sin(2*pi*f*x)/9;%正弦波基波plot(x,L1,blue,x,L2,red,x,L3,magenta);%画出基波和载波legend(L1,L2,L3,location,NorthWest);%注释放在左上方title(曲线交点图, L1=sawtooth(2*pi*10*f*(x+1/1000),0.5),L2=3*sin(2*pi*f*x)/4,L3 =4*sin(2*pi*f*x)/9);%标题xlabel(x);%x轴ylabel(y); %找交点mCount = 0;n=0;m=0;prec=0.00001; display(strcat(L1与L2曲线的交点:);for n=1:length(x) if(abs(L1(n)-L2(n) prec) %找2个波的交点 mCount = mCount + 1; m=m+1; t(m)=x(n); display(strcat(第,num2str(mCount),交点是:); if mCount=1 display(strcat(,num2str(x(n),num2str(L1(n),) else display(strcat(,num2str(x(n),num2str(L1(n),),第 ,num2str(mCount),与,num2str(mCount-1),交点电平持续时间:,num2str(t(m)-t(m-1),ms)%显示高或低电平持续时间 end lh = line(x(n) x(n),min(min(L1),min(L2) L1(n); %横坐标 set(lh,color,green); set(lh,LineStyle,-); text(x(n),L1(n),strcat(P_,num2str(mCount),(,num2str(x(n),num2str(L1(n),);%在交点处显示坐标 endend display(strcat(L1与L3曲线的交点:);jCount = 0;t=0;j=0;for i=1:length(x) if(abs(L1(i)-L3(i) prec) jCount = jCount + 1; j=j+1; t(j)=x(i); display(strcat(第,num2str(jCount),交点是:); if jCount=1 display(strcat(,num2str(x(i),num2str(L1(i),) else display(strcat(,num2str(x(i),num2str(L1(i),),第 ,num2str(jCount),与,num2str(jCount-1),交点电平持续时间:,num2str(t(j)-t(j-1),ms,); end lh = line(x(i) x(i),min(min(L1),min(L3) L1(i); %横坐标 set(lh,color,green); set(lh,LineStyle,-); text(x(i),L1(i),strcat(P_,num2str(jCount),(,num2str(x(i),num2str(L1(i),); end endMatlab运行出来的结果L1与L2曲线的交点:第1交点是:(0.00044746,0.10508)第2交点是:(0.0016899,0.37972),第2与1交点电平持续时间:0.0012424ms第3交点是:(0.0022559,0.48814),第3与2交点电平持续时间:0.00056607ms第4交点是:(0.0038508,0.70166),第4与3交点电平持续时间:0.0015949ms第5交点是:(0.0041386,0.7227),第5与4交点电平持续时间:0.00028782ms第6交点是:(0.0058614,0.7227),第6与5交点电平持续时间:0.0017227ms第7交点是:(0.0061492,0.70166),第7与6交点电平持续时间:0.00028782ms第8交点是:(0.0077441,0.48814),第8与7交点电平持续时间:0.0015949ms第9交点是:(0.0083101,0.37972),第9与8交点电平持续时间:0.00056607ms第10交点是:(0.0095525,0.10508),第10与9交点电平持续时间:0.0012424ms第11交点是:(0.010566,-0.13274),第11与10交点电平持续时间:0.0010138ms第12交点是:(0.011346,-0.3078),第12与11交点电平持续时间:0.00077973ms第13交点是:(0.012788,-0.57608),第13与12交点电平持续时间:0.0014419ms第14交点是:(0.013184,-0.63126),第14与13交点电平持续时间:0.00039633ms第15交点是:(0.014875,-0.74942),第15与14交点电平持续时间:0.0016903ms第16交点是:(0.015125,-0.74942),第16与15交点电平持续时间:0.00025058ms第17交点是:(0.016816,-0.63126),第17与16交点电平持续时间:0.0016903ms第18交点是:(0.017212,-0.57608),第18与17交点电平持续时间:0.00039633ms第19交点是:(0.018654,-0.3078),第19与18交点电平持续时间:0.0014419ms第20交点是:(0.019434,-0.13274),第20与19交点电平持续时间:0.00077973msL1与L3曲线的交点:第1交点是:(0.00046748,0.06504)第2交点是:(0.0016075,0.21504),第2与1交点电平持续时间:0.00114ms,第3交点是:(0.0023504,0.29916),第3与2交点电平持续时间:0.0007429ms,第4交点是:(0.0037041,0.40812),第4与3交点电平持续时间:0.0013536ms,第5交点是:(0.0042834,0.43322),第5与4交点电平持续时间:0.00057933ms,第6交点是:(0.0057166,0.43322),第6与5交点电平持续时间:0.0014332ms,第7交点是:(0.0062959,0.40812),第7与6交点电平持续时间:0.00057933ms,第8交点是:(0.0076496,0.29916),第8与7交点电平持续时间:0.0013536ms,第9交点是:(0.0083925,0.21504),第9与8交点电平持续时间:0.0007429ms,第10交点是:(0.0095325,0.06504),第10与9交点电平持续时间:0.00114ms,第11交点是:(0.010537,-0.07466),第11与10交点电平持续时间:0.0010048ms,第12交点是:(0.010537,-0.07468),第12与11交点电平持续时间:1e-008ms,第13交点是:(0.011405,-0.18988),第13与12交点电平持续时间:0.00086772ms,第14交点是:(0.012665,-0.33014),第14与13交点电平持续时间:0.00126ms,第15交点是:(0.013308,-0.38314),第15与14交点电平持续时间:0.00064336ms,第16交点是:(0.014721,-0.44274),第16与15交点电平持续时间:0.0014129ms,第17交点是:(0.015279,-0.44274),第17与16交点电平持续时间:0.00055726ms,第18交点是:(0.016692,-0.38314),第18与17交点电平持续时间:0.0014129ms,第19交点是:(0.017335,-0.33014),第19与18交点电平持续时间:0.00064336ms,第20交点是:(0.018595,-0.18988),第20与19交点电平持续时间:0.00126ms,第21交点是:(0.019463,-0.07468),第21与20交点电平持续时间:0.00086772ms,图4.5 Matlab运行结果图由MATLAB计算结果可以得出电平的时间间隔表如4.1表和4.2表所示:表4.1 L1与L2曲线交点电平持续时间十进制电平时间间隔表第N个交点与第N+1个交点第N个交点与第N+1个交点电平持续时间(us)112422056631594402875172760284715948055691242101013110799121441130396141690150250161690170396181441190779表4.2 L1与L3曲线交点电平持续时间十进制电平时间间隔表第N个交点与第N+1个交点第N个交点与第N+1个交点电平持续时间(us)1114020742313534057951433605797135380742911401010041110001208671312601406431514121605571714121806431912605 单片机程序设计5.1 AT89C52介绍芯片At89C52引脚结构如图5.1所示,。它是由美国ATMEL公司生产的内部结构包涵了如定时计数器CPU,ROM,RAM和可编程I/O口,可编程串口等作为微型计算机所必须的基本功能部件的一种低电压,高性能CMOS 8位单片机。1.AT89C52的主要性能参数它是与Mcg-51产品的指令和引脚完全适用的单片机,包涵6时钟/机器周期和12时钟/机器周期,我们可以任意选择,指令代码完全兼容传统8051。工作电压;5.5V-3.3V(5V单片机)/3.8V-2V(3V单片机)工作频率范围:0-40MHz。用户应用程序空间为8K字节片上集成256字节RAM通用I/O口(32)个,复位后;P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,当它作为总线扩展用时,不需要加上拉电阻,但是作为I/O口用时,则需加上上拉电阻。具有EEPROM功能和看门狗功能通用异步串行口(UART),还可以用定时器软件实现多个UART功能共有3个(16位)计数器和定时器。图5.1 AT89C52引脚图2.At89C52功能特性 本设计中只涉及到单片机的最小系统和其定时,中断,输出信号等功能,因此下面只简要介绍以下这些功能和端口。最小系统如图5.2所示图5.2 单片机最小系统其中,单片机最小系统主要由4个部分组成,分别为;(1)晶振,通过18与19管脚与2个电容并联使用,来提供振荡时间周期。(2)复位电路(用于复位)(3)电源(用于供电,一般用电脑的USB口供电)(4)用于向单片机注入程序的接口。3.中断AT89C52中断系统有共6个中断源:它由三个定时中断定时器0、1、2,两个外部中断(INT0和INT1)和一个串行中断组成5。当想要开启某个中断时,可以通过置位特殊寄存器IE中相应的中断允许控制位,同样也可以通过置0来关闭中断。IE还包括一个中断总控制位EA,通过置位或清零能够控制所有中断。如表5.1所示,通过表我们可以得知IE.6是不能够被使用的,一般不对它进行设。定时器2是一个16位的能在数据溢出时,自动赋予计数初值的定时器,它的功能比定时器0和1强大,它不仅可以用内部时钟,也可以在P1.0口输入外部时钟,但是一般对定时器的使用都较少。表 5.1 中断允许控制位符号位地址功能EAIE.7中断允许控制位,EA=0,中断总禁止;EA=1,各中断由各自的控制位设定-IE.6预留ET2IE.5定时器2中断允许控制位ESIE.4串行口中断允许控制位ET1IE.3定时器1中断允许控制位EX1IE.2外部中断1允许控制位ET0IE.1定时器0中断允许控制位EX0IE.0外部中断0允许控制位4.定时A.定时器0和定时器1在AT89C52中,通过对单片机内部的工作模式进行选择,一般在模式1下工作为16位计数器。通过对M1和M0位都置一,可以选择它工作在模式3下,此时定时器0的高8位和低8位可以分别作为计数器工作。B.计数功能对外部事件进行技术的即对脉冲计数的功能就是计数功能。一般,当输入脉冲的电位由0转变为电位1是,计数器的数值加一,因此计数功能的实质就是对脉冲由0电平到1电平进行计数。如图5所示,T0(P3.4)和T1(P3.5)这两个信号引脚就是MCS-51系列的芯片的计数信号输入端,当外部输入的脉冲在负跳变到正时,计数器加1。C.定时功能定时功能就是根据所需要设定的时间,给予定时器一个初值,其初值可以通过公式计算出来,由于一般晶振都为12Mhz,所以计算出数字上的1就代表时域上的1微妙,然后通过对内部寄存器的置位或清零,打开或关闭所需要的计数器,然后再通过对寄存器TR0或TR1开启计数器,此后每一微妙,计数器都自动加一,当计数器的数值达到65536时,计数器就会溢出,然后只要设定了外部中断允许,此时就可以产生中断,从而得到想要的定时功能,这样只要知道计数值计算出定时时间,或者计数器的预置值的其中一个就可以通过计算得到另一个数值。在本设计中,由于电平持续时间对比与1微秒来说太大,如果采用这个微秒级,就会超过计数范围,所以本设计中,是采用一定比例来计算持续时间的,当时这样并不影响最终不会让所得的波形失真。并且,这样不但可以根据计数值计算出。D. 定时器2定时器定时器2是一个能在数据溢出时,自动赋予计数初值的定时器定,同时它又具有计数功能。通过对寄存器C/T2的置位或清零,它可以工作在3钟模式下,当C=0,T2=1时,它能够在数据溢出时自动装载计数器的初值,当C=1,T2=0,他可以接入一个pwm信号,并且能够算出它的占空比,当C=1,T2=1时,它能够充当波特率的发生器。并且在定时方式下,它的低8位和高8位都在每个机器周期加一表 5.2 定时器2工作模式RCLK+TCLKCP/RL2TR2MODE00116位自动重载01116位捕捉11波特率发生器0不用表5.3 T2MOD-定时器2控制寄存器T2MOD地址:0C9H 复位值:00B-T2OEDCEN76543210符号功能无定义,预留扩展T2OE定时器2输出允许位DCEN置1后,定时器2可配置向上或向下计数5.2 程序设计流程图程序流程图如图5.3所示开始I/O端口初始化定时器0初始化,定时器1定时器0,定时器1赋予初值,并开启中中断定时器0溢出时,发生中断,查表,给予定时器另外一个初值,单片机引脚P1.0电平翻转,同时开始计数定时器1溢出时,发生中断,查表,给予定时器另外一个初值,单片机引脚P1.1电平翻转,同时开始计数图5,3 程序流程图5.3 C语言实现程序5.3.1 程序运行软件Keil uVision2简介Keil uVision2是一款可以用C语言编程的开发软件,特别是在对单片机编程时,经常使用到,它不经能够适用多款单片机,还能够提供调试功能,在调试时人们可以一步一步的程序的进行,以及数据的改变,这样,在程序出错或与自己的理想有出入时,可容易被发现,当它与protues一起使用时,通过把编好的程序的HEX文件注入单片机就可以开启仿真,同时由于C语言更加易于学习,编程效率高,使用较简单,大大提高了工作效率和缩短项目的开发周期,除此以外我们还可以在想要的关键地方嵌入汇编程序,使程序接近于用汇编程序5.3.2 主程序#include#include#define uint unsigned intint i=0,j=0;char flag1=0;char flag2=0;sbit P10=P10;sbit P11=P11;int a=12420,5660,15940,2870,17270,2840,15940,5660,12420,10130,7990,14410,3960,16900,2500,16900,3960,14410,7790;int b=11400,7420,13530,5790,14330,5790,13530,7420,11400,10040,10000,8670,12600,6430,14120,5570,14120,6430,12600,8670,1000;void main()P10=0;P11=0;EA=1;ET0=1;ET1=1;TMOD=0x11;TH0=(65536-ai)/256;TL0=(65536-ai)%256;TH1=(65536-bj)/256;TL1=(65536-bj)%256;TR0=1;TR1=1;while(1)if(flag1=1)flag1=0;P10=P10;if(flag2=1)flag2=0;P11=P11; 5.3.3 中断程序vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- cdfi技师上岗证考试模拟试题及答案
- 透析患者发生溶血反应的试题及答案
- 2025年建筑信息模型(BIM)在工程项目全过程管理中的项目管理创新与实践案例报告
- 押题宝典高校教师资格证之《高等教育法规》通关考试题库附参考答案详解(a卷)
- 2025至2030年中国美甲行业市场深度评估及投资策略咨询报告
- 2025至2030年中国酱料行业市场全景调研及投资规划建议报告
- 押题宝典执业药师资格证之《西药学专业二》考试题库附参考答案详解【典型题】
- 考点解析-湖北省松滋市7年级上册期末测试卷专项练习试题(解析版)
- 解析卷人教版8年级数学上册《轴对称》同步测评试题(含答案及解析)
- 2025年医药企业存货质押贷款合同模板
- 均值X-R极差分析控制图(自动测算表)
- 体力劳动工作管理程序
- GB/T 28181-2022公共安全视频监控联网系统信息传输、交换、控制技术要求
- GB/T 40549-2021焦炭堆积密度小容器测定方法
- GB/T 39616-2020卫星导航定位基准站网络实时动态测量(RTK)规范
- GB/T 3620.1-2007钛及钛合金牌号和化学成分
- GB/T 17395-2008无缝钢管尺寸、外形、重量及允许偏差
- 化学史课件讲课教案
- 产品合格证明证书模板
- 医务人员礼仪培训
- 心率与高血压培训课件
评论
0/150
提交评论