课设论文——基于单片机PWM信号输出课设论文_第1页
课设论文——基于单片机PWM信号输出课设论文_第2页
课设论文——基于单片机PWM信号输出课设论文_第3页
课设论文——基于单片机PWM信号输出课设论文_第4页
课设论文——基于单片机PWM信号输出课设论文_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 桂林电子科技大学课程设计(论文)报告用纸 第 29 页 共 29 页摘 要随着电力电子技术的飞速发展,PWM技术应用越来越广泛。同时PWM技术本身也发展迅速,各种新理论层出不穷。PWM技术结合了电力电子技术、计算机技术、现代控制理论,具有抗干扰性强、效率高、可靠性好等显著优点,已经在交流逆变、开关电源等领域得到广泛应用。本文在研究PWM技术当前发展状况基础上,设计了一种基于单片机的PWM信号输出系统。本系统以STC89C52单片机为核心,用扩展按键中断方式输入有关控制信号及参数,可以实现频率、占空比、输出时间可调的直流斩波PWM信号,完成了总体设计后又设计了硬件电路模块,然后采用C语言编程实

2、现了系统功能,完成设计目标。关键词:电子电力技术;单片机;PWM;信号ABSTARCTAs the developing of power electronic technology, PWM technology has applying to more and more field. At the same time, PWM technology itself has taken a great progress, lots of new theory has emerged. PWM technology takes advantages of power electronic, co

3、mputer technology, and modern control theory, has strong ability of anti-interference, and is more efficiency, reliable. It has applied to vast field ,such as AC converter, DC chopper.This paper firstly, analysis the situation of PWM technology development, then, designed a PWM signal output system

4、based on SCM. The system is based on STC89C52. It use buttons to input parameters. It can output single polar PWM signals. The signals frequency, duty-cycle, output time can be changed. We also designed the system structure. Following , hardware and software is designed. Every hardware module is des

5、igned with the computer, and the software is written in C language. Index terms: power electronic technology; SCM; PWM;signal 目 录引言5第一章 系统总体设计.51.1系统实现的主要功能.51.2系统工作原理.51.3总体构成.61.3.1总体设计框图.6第二章 系统的硬件设计.72.1关于单片机的最小系统.72.2关于蜂鸣器.92.3关于PWM.9第三章 系统的软件设计.113.1总体程序框架流程图.113.2程序设计及简析.113.21关于串口初始化.113.22关

6、于主函数.123.23关于定时器的中断服务程序.133.24关于蜂鸣器的子程序143.3程序的测试.16第四章 调试过程和注意问题.184.1keil编程软件的使用方法.184.2关于STC_ISP_V483软件.184.3关于程序测试18结 论.19谢 辞.20参考文献.21附录. 22引 言随着社会电子工业发展的步伐越来越快的节奏,我认为作为一名电子类专业的大学生,在校学的专业理论知识固然重要,但是,课程设计也是必不可少的,因为将来我们出到社会工作以后多少都有可能会面向关于电子类的程序设计,因此课程设计重要性也就体现出来了。我相信通过这次课程设计,我们可以会学到很多实用性的东西,因为它的性

7、质是由专业理论知识到实践操作转变的一个过程,也就是让我们把在大学从书本上收获的理论知识通过实际操作转化为我们生活中实用的电子类产品。课程设计不仅是对我们的专业理论知识是否掌握的一个考察,更是对我们实践动手能力的一个考验。第一章 系统总体设计1.1 系统实现的主要功能 本系统的主要功能是利用单片机STC89C52最小系统产生PWM(脉冲宽度调制)信号通过蜂鸣器和LED显示其信号占空比以及频率的变化。而PWM信号的占空比以及频率变化是由按键控制的,在本系统中,信号的频率变化由蜂鸣器声音强弱的变化体现出来,而信号的占空比变化是由LED灯亮度强弱的变化体现。1.2 系统的工作原理脉宽调制(PWM)基本

8、原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。例如,把正弦半波波形分成N等份,就可把正弦半波看成由N个彼此相连的脉冲所组成的波形。这些脉冲宽度相等,都等于 /n ,但幅值不等,且脉冲顶部不是水平直线,而是曲线,各脉冲的幅值按正弦规律变化。如果把上述脉冲序列用同样数量的等幅而不等宽的矩形脉冲序列代替,使矩形脉冲的中点和相应正弦等分的中

9、点重合,且使矩形脉冲和相应正弦部分面积(即冲量)相等,就得到一组脉冲序列,这就是PWM波形。可以看出,各脉冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理,PWM波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到PWM波形。在PWM波形中,各脉冲的幅值是相等的,要改变等效输出正弦波的幅值时,只要按同一比例系数改变各脉冲的宽度即可,因此在交直交变频器中,整流电路采用不可控的二极管电路即可,PWM逆变电路输出的脉冲电压就是直流侧电压的幅值。根据上述原理,在给出了正弦波频率,幅值和半个周期内的脉冲数后,PWM波形各脉冲的宽度和间隔就可以准确计算出来。按照计算结果控制电路中各开关器件

10、的通断,就可以得到所需要的PWM波形。1.3系统总体构成1.3.1 总体设计框图 系统总体设计框图如图1.1所示。按键控制模块P20P23 P37,P25STC89C52RC单片机BELL 蜂鸣器LED灯图1.1: 系统总体设计框图第二章 系统的硬件设计 2.1 关于单片机最小系统单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机

11、相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。而对于这次课程设计,我只用到的是单片机最小系统,所用的单片机芯片型号是STC89C52,它是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计

12、数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。本次课设的最小系统所用到的主要原件清单包括:单片机STC89C52一

13、个,按键五个,LED灯两个,无缘蜂鸣器一个,晶振一个,10K电阻两个,2K电阻一个,9015C三极管一个,30pF电容两个,10uF电容一个,开关一个。单片机最小系统的实物图如图2.1所示:图2.1 单片机最小系统实物图图2.2 单片机芯片管脚图2.2 关于蜂鸣器由于单片机包含了温度传感器、红外接头、时钟芯片、储存芯片、数码管、LED灯、蜂鸣器等等。而本次课设主要涉及到利用蜂鸣器发出信号的强弱来对PWM信号频率高低作出判断,故应对蜂鸣器做出介绍:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机等电子产品中作发生器件。

14、其工作原理是通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,当输出高电平时,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。图2.3 蜂鸣器原理图2.3 关于PWM(脉冲宽度调制) 随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周

15、期、PWM的占空比而达到控制充电电流的目的。模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。9V电池就是一种模拟器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实数值。与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在0V,5V这一集合中取值。模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的电流值,使音量相应变大或

16、变小。与收音机一样,模拟电路的输出与输入成线性比例。尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形.PW

17、M控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。下图是PWM信号波形图: 图2.4 PWM信号波形图第三章 系统的软件设计3.1 总体程序框架流程图软件设计流程框图如图3.1所示开始初始化定时器0,1产生PWM通过按键K1,K2,K3,K4改变频率,占空比单片机通过检测管脚电压是否改变来判断频率、占空比是否变化蜂鸣器声音强弱变化判断频率高低变化LED亮度强弱变化判断占空比大小变化返回一个结果到单片机

18、 图3.1:软件设计流程框图3.2 程序设计及简析3.2.1 关于串口初始化:#include < reg51.h >#include < intrins.h >sbit K1 =P20 ; /调频率选择键sbit K2 =P21 ; /调占空比选择键sbit K3 =P22 ; /增加键sbit K4 =P23 ; /减少键sbit BEEP =P37 ; /蜂鸣器sbit led=P25;unsigned int ZKB=0 ; /赋初值unsigned int PL=5000 ; /赋初值unsigned char led_f=0;unsigned char be

19、ep_f=0;unsigned char zidong_f=1;void Beep();void delayms(unsigned char ms);void delay(unsigned char t);将控制频率的按键K1接口接在P20,控制占空比的按键K2接口接在P21;控制改变频率和占空比的按键K3,K4分别接在P22,P23;蜂鸣器BEEP接口接在P37,LED灯接口接在P25,同时对占空比赋初值0,频率赋初值5000 。3.2.2 关于主函数:void main() P1=0xff; /初始化P1口,全设为1 TMOD=0x21 ; TH0=(65536-PL)/256; /1ms

20、延时常数 TL0=(65536-PL)%256; /频率调节 TH1=ZKB ; /脉宽调节 TL1=0 ; EA=1; /开总中断 ET0=1; /定时器0中断 ET1=1; /定时器1中断 TR0=1 ; /启动定时器开始计数 while(1) if(zidong_f=1)ZKB+=10;delayms(10);if(ZKB>250)ZKB=0; if(K1=0)delayms(10);if(K1=0)zidong_f=0;beep_f=1;led_f=0;if(K2=0)delayms(10);if(K2=0)zidong_f=0;beep_f=0;led_f=1; if(beep

21、_f=1)if(K3=0)delayms(10);if(K3=0)ZKB+=10;if(ZKB>240)ZKB=0;while(!K3); if(K4=0)delayms(10);if(K4=0)ZKB-=10;if(ZKB<10)ZKB=250;while(!K4); if(led_f=1) if(K3=0)delayms(10);if(K3=0)PL+=5000;while(!K3); if(K4=0)delayms(10);if(K4=0)PL-=5000;while(!K4); 在主程序中,对定时器赋初值,启动定时器开始计数,同时由定时计数器0,定时计数器1进行循环中断产生

22、PWM信号,并通过if语句定义K1、K2分别为频率和占空比的选择键,K3、K4分别控制PWM信号的频率和占空比的增加及减少。3.2.3 关于定时器0、定时器1中断服务程序:void timer0() interrupt 1 TR1=0 ; TH0=(65536-PL)/256; /1ms延时常数 TL0=(65536-PL)%256; TH1=ZKB ; TR1=1; P1=0x00 ; /启动输出BEEP=0;void timer1() interrupt 3 TR1=0 ; P1=0xff ; /结束输出BEEP=1;两个定时器中断服务程序的作用通过循环定时计数中断分别产生高、低电平脉冲,

23、即是PWM信号的输出。3.2.4 关于蜂鸣器子程序:void Beep() unsigned char i ; for (i=0 ;i<100 ;i+) delay(100) ; BEEP=!BEEP ; /Beep取反 BEEP=1 ; /关闭蜂鸣器 delayms(100);因为我们所用的蜂鸣器一个无源的蜂鸣器,因此需要自己设计一个脉冲信号,来使蜂鸣器发声,而程序中的for循环就是为了让蜂鸣器鸣叫所设计的。3.3 程序的调试首先,把单片机开发板连接好串口或者usb转串口至电脑,打开电源 打开串口调试程序,将波特率设置为9600,无奇偶校验, 晶振11.0592MHz,发送和接收使用的

24、格式相同,下载该程序到单片机STC89C52芯片中,再把单片机芯片插到验收板单片机上如图3.1所示:将完成设计的程序在keil软件下编译,编译成功下载至单片机后,对单片机最小系统验收板上电复位,如果首先显示的是自动调节,即为LED灯亮度自动变化,按K1键,蜂鸣器响,通过按K3、K4键可以控制蜂鸣器声音强弱变化,即为对PWM信号频率的控制成功;按K2键蜂鸣器停止,按K3、K4键可以控制LED灯亮度强弱变化,即为对PWM信号占空比的控制成功,综上所示说明系统设计成功。第四章 调试过程和注意问题4.1 keil编程软件的使用方法由于以前对编写C程序软件使用的局限性,并且接触keil不多,导致走了不少

25、弯路。通过上网熟悉keil软件的详细操作之后,在完成程序的过程中慢慢地对其编辑、编译、链接、调试等基本操作熟悉掌握了。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。它在这次实践过程中,主要是运用C程序通过单片机开发板和各种功能模块板子实现链接,调试,仿真等功能。通过这次课程设计,我相信自己以后会继续摸索这款软件的功能,希望能对其的各种操作更加熟悉了解。

26、4.2 关于STC_ISP_V483软件当编写好程序后,则需要STC_ISP_V483软件进行烧录工作,即把编译成功后的程序烧入中单片机中执行。其中需要注意的有3点,第一点是,需要在MCU Type中选择相应的单片机芯片型号;第二点是,需要在波特率中需选择好程序编程中所使用的波特率;第三点是,要在COM中选择单片机接入的对应的COM口。在设置好各个参数后,点击Download便可进行下载,并观察右边的空白处,看看是否达到了预期的效果。4.3 关于验收板调试遇到的问题在程序调试过程中,遇到了不少的细节上的问题,首先是STC-ISP V35软件上的芯片型号与单片机开发板芯片不匹配,这个问题不难,下

27、载了一个版本比较新的STC-ISP V35软件就有匹配的型号了。然后就是烧好程序后,给验收板上电复位只显示电源灯亮而通过按键却无法控制PWM信号的频率和占空比,通过对程序和实物板的检查,发现按键失灵的原因是实物板按键所连单片机接口与程序所定义的接口不符合,然后根据实物板按键所连单片机接口在程序中改为相应接口后再对程序编译、下载即可把按键对PWM信号频率和占空比控制失灵问题解决了。总 结 在这次课程设计过程中,首先得感谢老师的指引,还有其他同学帮忙指导才得以顺利完成本次课程设计。通过这次的课设实践,我感觉收获颇多,比如,学会了由理论知识向实践的转变;学会了使用程序编写软件,如用keil软件编程;

28、对单片机模块有了更深一层的了解熟悉,以及用STC-ISP V35软件对程序的调试;学会整理与编辑关于程序设计报告的文档等; 总而言之,课程设计就是大学生走向社会前的一次小小的实践,我认为这是能为以后出去工作在能力上起到奠定基础的作用。谢 辞 因为接触课程设计实践不多,由于各方面的专业理论基础知识不扎实,和对软硬件的掌握不够熟悉,才导致在程序设计和程序测试处处碰壁,特别是在我手足无措的时候,在老师的指导下,通过上网搜集各种资料和寻求其他同学的帮助才得以顺利完成任务。在此,我对指导老师和参与本次课设的同学致以真诚的谢意,谢谢! 参考文献1 郭天祥, 51单片机C语言教程,北京 电子工业出版社,20

29、082 李凤霞.C语言程序设计教程 北京:北京理工大学出版社,20103 李群芳.单片机微型计算机与接口技术 北京:电子工业出版社,20104 康华光。电子技术基础(数字部分) 北京:高等教育出版社,20115 杨素行 模拟电子技术基础 北京:高等教育出版社,20106 巧媛 单片机原理及应用 北京:电子工业出版社,20037 胡汉才 单片机原理及系统 北京:清华大学出版社,20028 余发山 单片机原理及应用技术 北京:中国矿业大学出版社,20049 Guiyun Tian Foumdation and Application pf Microcontroller 高等教育出版社10 LLH

30、.-Programming.Microcontrollers.C.(Embedded.Technology.Serise)附 录硬件原理图:主控模块如图5.1所示图5.1 主控制模块原理图蜂鸣器相关原理图如图5.2所示图5.2 蜂鸣器相关原理图硬件实物图:整体硬件实物如图5.3所示图5.3 整体硬件实物图验收实物图如5.4图所示图5.4 验收实物图程序清单:/ PWM 控制 LED 灯渐亮渐灭程序/ 晶振为11.0592M/ 利用定时器控制产生占空比可变的 PWM 波/ 按K1,PWM值增加,则占空比减小,LED 灯渐暗。/ 按K2,PWM值减小,则占空比增加,LED 灯渐亮。/*/#incl

31、ude < reg51.h >#include < intrins.h >sbit K1 =P20 ; /调频率选择键sbit K2 =P21 ; /调占空比选择键sbit K3 =P22 ; /增加键sbit K4 =P23 ; /减少键sbit BEEP =P37 ; /蜂鸣器sbit led=P25;unsigned int ZKB=0 ; /赋初值unsigned int PL=5000 ; /赋初值unsigned char led_f=0;unsigned char beep_f=0;unsigned char zidong_f=1;void Beep();void delayms(unsigned char ms);void delay(unsigned char t);/*/void main() P1=0xff; TMOD=0x21 ; TH0=(65536-PL)/256; /1ms延时常数 TL0=(65536-PL)%256; /频率调节 TH1=ZKB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论