基于单片机的多路PWM输出系统的设计_第1页
基于单片机的多路PWM输出系统的设计_第2页
基于单片机的多路PWM输出系统的设计_第3页
基于单片机的多路PWM输出系统的设计_第4页
基于单片机的多路PWM输出系统的设计_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

安康学院本科生毕业论文(设计)学 号分类号TN787.2本科生毕业论文(设计) 题目: 基于单片机的多路PWM 输出系统的设计 院 (系) 电子与信息工程系 专 业 电子信息工程 班 级 2009级1班 学 生 姓 名 张朋 指导教师(职称) 陈守满 提 交 时 间 二一三年五月 版权声明任何收存和保管本论文各种版本的单位和个人,未经本论文作者同意,不得将本论文转借他人,亦不得随意复制、抄录、拍照或以任何方式传播。否则,引起有碍作者著作权之问题,将可能承担法律责任。原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明,本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日摘要基于单片机的多路PWM 输出系统的设计张朋(安康学院电子与信息工程系,陕西安康,)摘 要 随着电力电子技术的迅速发展,PWM调制技术在电力驱动,电气控制等领域发挥着越来越大的作用。特别是照明技术中,PWM调制技术推动了LED照明的发展。LED照明已经大量普及到全球各地,也将是未来照明技术的一大趋势。本文针对LED照明技术,设计出一款基于微处理器的多路PWM发生器。该PWM发生器能同时控制6路LED照明,实现对6路LED灯的开关控制,亮度调节控制。点亮顺序控制等功能。本设计硬件电路结构简单,分为控制器模块,人机交互模块,LED驱动模块等三大电路模块,其中控制器选用8位微控制器STC89C52。人机交互模块选用LCD1602液晶显示器显示数据,独立键盘作为输入设备。通过硬件电路,和软件电路的设计,本文完成了样机设计和调试,通过系统测试,本设计样机满足系统设计要求。关键词 脉宽调制;LED驱动;STC89C52单片机AbstractDesign of Multi-channel PWM Output Based on MCUZHANG Peng(Department of Electronic and Information Engineering,Ankang universityAnkang,)Abstract With the rapidly development of power electronics technology, PWM technology plays an increasingly important role in the field of electric drive, electrical control. Especially lighting technology, PWM technique promotes the development of LED lighting. LED lighting has been widely used around the world, will be a major trend of the future lighting technology.Based on LED lighting technology, a multi-channel PWM generator is designed in this thesis. The PWM generator can simultaneously control 6-channel LED lighting. It can achieve the 6-way switch control, brightness adjustment control, lighting sequence control and other functions. The designs hardware circuit structure is simple. It includes the controller module, HCI module, LED driver modules, and other three circuit modules. The 8-bit microcontroller STC89C52 is as central controller, and HCI module LCD1602 used as displayer, the independent keyboard as an input device. This thesis has completed prototype design and debug. The testing shows that the system meets the system design requirements.Key words PWM; LED driver; STC89C52 MCU目录目 录第一章 绪 论11.1 引言11.1.1 研究背景与意义11.1.2 国内外研究现状及分析21.2 本文主要设计的内容2第二章 系统方案总体设计32.1 系统需求分析32.2系统总体设计32.3系统方案选择32.3.1 PWM方案比较32.3.2 显示器方案比较42.3.3 LED驱动电路方案比较4第三章 系统硬件设计63.1 控制单元模块63.2 人机交互模块63.2.1 按键设定电路63.2.2 LCD1602显示电路73.3电源电路设计93.4 LED驱动电路设计93.5单片机介绍103.5.1中断系统介绍133.5.2定时器介绍133.6系统元件清单14第四章 系统软件设计154.1软件开发环境介绍154.2 C语言介绍154.3 软件总体设计154.3.1 程序结构分析154.3.2 主程序设计154.3.3 中断程序设计174.3.4 液晶驱动程序设计18第五章 系统调试与结果分析195.1 系统仿真环境介绍195.2 调试结果与分析19第六章 总结与展望22参考文献23致 谢24附录A 系统电路原理图25附录B 系统电路仿真26附录C 系统PCB图27附录D 实物图28附录E 程序代码29第一章 绪论第一章 绪 论1.1 引言LED照明技术是当今世界照明技术的一大趋势,然而相对于传统照明灯具,LED具有亮度调节困难等缺点。在一些需要调光的场合,这一缺点限制了其发展。随着电力电子技术的发展,PWM制技术被大量应用于电力驱动和控制领域。同时,PWM调制技术也解决了LED调光的问题,从而推动了LED照明技术的发展。1.1.1 研究背景与意义当前,随着材料科学、计算机科学、现代电力电子技术等科学的进步和融合。LED照明技术得到了突飞猛进的发展。在很多家庭、机构、政府和工业应用中,高亮度(HB)白光LED(发光二极管)正在迅速取代白炽灯照明。近年来,白光LED灯在通用照明应用中已经超过了一半以上,并最终超越了以往大多由彩色照明的美感来驱动的彩色LED应用。白光LED照明增长的新驱动力相当简单:更低的能耗和低得多的电费。在很多情况下,LED更高的效率使功耗降低多达88%,从而也极大地降低了因发电产生的二氧化碳排放量。到2012年,高亮度(HB)白光LED通用照明市场预计将超过50亿美元,对应从2009年到2012年的年复合增长率(CAGR)为28%。这仅仅是开始,因为随着LED在商业上更具经济效益,它们的高发光效率只会进一步加速推进从白炽灯、荧光灯和高压钠灯向高亮度白光LED转变的好处。根据一些计算,从传统的白炽灯和荧光灯转换成LED照明可以使目前全球所需总电能节省高达10%。由于人们努力降低发电产生的总二氧化碳排放量,因此全球照明所需电能可能降低10%这一点促进了这种转变。LED产生光的效率比白炽灯、荧光灯、高压钠灯(HPS)高很多,因此极大地降低了提供所需光输出(以流明量度)需要的电能。随着LED的进一步发展,它们从电能产生光的效率将继续提高,预计在未来几年内将会翻翻。其次,今天的世界非常关注环境,而LED照明不需要像荧光灯那样处理或清除有毒水银蒸气,也没有泄露有毒水银蒸气的风险。今天用于大多数住宅附属装置的CCFL灯含有高达5mg的水银,而更大的灯含有更多的水银。第三,白炽灯每1000小时就需要更换,而荧光灯可持续使用1万小时,相比之下,LED的寿命超过10万小时。在大多数应用中,这允许LED永久性地嵌入到最终应用中,而无需装置设备。1.1.2 国内外研究现状及分析当前,国内外有很多科研机构和公司在做关于LED照明技术的研究,很多半导体公司成立了专门的LED驱动器、控制器的研发机构。生产出专一的LED驱动器和控制器集成IC,市场上应用较广的有凌特、TI、飞利浦、意法半导体等公司的芯片。国内很多高校公司和科研机构也做了很多关于LED驱动照明的研究。国内关于这方面做应用级的研究居多。有很多公司生产出了专门的LED驱动器设备等,用于工厂照明,商场,建筑照明的应用,以及舞台装潢等。由于集成LED控制器其性能单一。在很多场合,特别是舞台等场合需要多路照明灯具亮度协调调节,大型LED屏幕的色彩变化调节等,传统的集成LED驱动IC都难以实现协调调节。这些方面的应用推动了基于微控制器的数字LED驱动控制器的发展。1.2 本文主要设计的内容针对以上背景,本文设计基于微处理器的多路PWM发生器用于多路LED照明控制。该PWM发生器能同时控制6路LED照明,实现对6路LED灯的开关控制,光照调节控制和顺序点亮等功能。本设计硬件电路结构简单,分为控制器模块,人机交互模块,LED驱动模块等三大电路模块,其中控制器选用8位微控制器STC89C52。人机交互模块选用LCD1602液晶显示器显示数据,独立键盘作为输入设备。本文将详细阐述和分析该PWM发生器的原理和设计。论文的结构安排如下:第一部分,介绍本设计的背景,分析PWM控制器在LED照明中的实用意义,同时阐明本文的机构安排。第二部分,研究PWM发生器以及LED驱动的原理,完成基于微处理器的多路PWM发生器的设计总体方案设计。第三部分,完成整个系统的硬件电路设计。第四部分,完成系统的软件系统设计。第五部分,完成本设计的系统调试,并分析解决调试中遇到的问题。最后,对文章进行了总结与展望。1第二章 系统方案总体设计第二章 系统方案总体设计2.1 系统需求分析根据任务书要求:本文是设计出一款基于单片机的多路PWM 输出系统。用以驱动6路LED等以及对LED灯光进行调节。该系统技术指标为:(1)该发生器能产生多路PWM信号,各路PWM占空比可调。(2)该发生器具有LED驱动电路,能驱动LED灯。(3)实现控制对各路LED灯的开启和关闭,能进行各路LED灯的灯光调节。(4)人机界面友好。2.2系统总体设计基于上述的系统需求,本系统总体结构框图如图2.1所示。本设计硬件电路结构分为如下5大部分,分别是控制器、键盘、LCD1602液晶显示器、LED驱动电路、以及六路LED。其中控制器选用8位微控制器STC89C52。人机交互模块选用LCD1602液晶显示器显示数据,独立键盘作为输入设备。利用控制器STC89C52其内部自带的定时器单元,作为PWM的基频发生器。通过程序设计利用控制器的I/O端口作为PWM输出端实现多路PWM的实现。图2.1 系统结构框图2.3系统方案选择2.3.1 PWM方案比较方案一:集成PWM控制器,采用集成PWM控制器,如UC3824、TL494等芯片输出PWM。由于该类芯片内部自带比较电路,因此将该类芯片配合外部振荡电路和参考电压电路,即可实现PWM输出。由于此类芯片一般用于开关电源电机驱动等控制器,芯片还自带反馈和,脉冲锁定,死去电路等功能。但由于本设计中需要对六路LED分别进行独立的调节,该类芯片只能输出一路或两路互补/对偶输出PWM信号,要完成本设计的任务需求需要6路控制器。方案二:采用数字控制器通过软件设计生成输出PWM。目前很多微控制器都带有硬件定时器,在一些高档的控制器中,其内部集成了硬件PWM 单元可以直接输出PWM信号。即使不带PWM模块,也可以利用定时器通过程序设计模拟PWM输出1。该方案下,由于软件设计的灵活性,可以根据用户的需求,很方便的产生多路PWM信号。同时独立的对各路PWM信号进行控制。综合以上方案对比,本设计选用方案二作为PWM产生方案。利用宏晶公司生产的STC89C52微控制器作为控制器,利用其内部的定时器模拟输出PWM信号,实现多路可调PWM输出。2.3.2 显示器方案比较方案一:数码管显示。利用LED发光数码管分别显示当前各路LED驱动信号PWM的占空比,同时显示工作模式。该方案硬件设计简单,但由于数码管存在只能显示数字,不能显示字符的缺点,同时由于每个数码管需要8位控制端口控制,占用控制器I/O资源。若显示数据大,则需要另外的编码器进行设计。该方案需要占用大量的软件资源,同时人机交互界面不友好。方案二:LCD液晶屏显示。根据任务要求,采用LCD1602显示,1602为工业字符型液晶,能够同时显示32个字符。(1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。通过将LCD1602接口连接到控制器I/O端,控制器将需要显示的内容发送到液晶屏,液晶即可将数据显示出来,并保存当前显示状态。该方案硬件电路简单,同时显示更加人性化。2.3.3 LED驱动电路方案比较本设计需要驱动六路LED灯发光。由于LED对工作电流要求比较高,不同型号的LED其驱动电流大小也不同,当LED在额定电流下工作时,LED可保持长时间工作而不发热。当电流过大时LED半导体PN结结温就会升高,若温度不能散去,LED就会因为过热而烧毁2。所以LED驱动电路的合理性对LED是否正常工作很重要。根据本设计需求,LED驱动电路可以有如下几种方案。方案一:采用集成LED驱动芯片进行驱动。此类芯片自带LED限流保护等功能可同时驱动多路LED。该方案电路结构简单,但硬件成本较高。方案二:采用三级管放大电路驱动。利用三级管构成开关电路驱动LED,同时在LED到电源端串接一限流电阻用于限制LED的最大工作电流。综上所述,本设计采用方案二用于LED驱动电路。其电路结构简单,成本低廉,完全能满足本设计的任务需求。5 第三章 系统硬件设计第三章 系统硬件设计通过第二章,本文完成了系统的方案比较与整体结构设计。本章将完成整个系统的硬件电路设计。本章将分五大部分来介绍本系统硬件电路,分别为控制单元模块、人机交互模块、电源电路、LED驱动电路,最后对所用控制器做相应的介绍。3.1 控制单元模块如图3.1所示为控制单元模块,其中控制器采用STC89C52,按键S1为复位按键,Y1为晶振。控制器采用STC89C52,为普通8051的内核架构。电路中为了计时方便计算,本设计的晶振选用12MHz无源外部晶振。配合两个起振电容C2,C3。形成晶体谐振电路为单片机提供一个12MHz的稳定的时钟源。为了方便起振,起振电容选用22pF。图中3.1所示单片机P0口输出是做为LCD1602显示器的数据输出端。由于51单片机P0口输出为集电极开路门输出形式,对输出高电平需要增加上拉电阻将高电平上拉到VCC。由于宏晶公司生产的STC系列微控制器都支持串口下载程序,本设计中控制单元外扩出一串口端口做为程序下载口。图3.1 控制单元模块3.2 人机交互模块其中人机交互模块包括按键设定电路和LCD1602显示电路。3.2.1 按键设定电路如图3.2所示为按键设定电路,其中电阻R3R5为上拉电阻,大小为10K。本设计中每个按键一端接地,另一端通过一个上拉电阻接到VCC上。图3.2 按键设定电路按键设定电路使得系统更加的人性化,通过分析本设计的需求,通过4个按键即能完成本设计的设置需求。首先把按键输入单片机端口设置为输入模式,只需要读取单片机I/O口,就可以获得按键输入到单片机的电平。由于系统供电VCC为5V,当按键未按下时,单片机的输入端通过上拉电阻接到VCC,单片机输入端口的内阻极大,所以,单片机输入信号接近VCC电源电压,恒为高电平。当有按键按下时单片机的输入端迅速和地短接,输入电平迅速拉低为低电平。单片机通过实时扫描键盘的电平即能判断出是否有按键按下。通过读出按键的电平信号而执行相应的程序完成人机交互的目的。3.2.2 LCD1602显示电路图3.3 LCD1602液晶如图3.3所示为LCD1602液晶,此液晶属于工业字符型液晶,能够同时显示32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个57或者511等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)3。 1602是指显示的内容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。如图3.4所示为LCD1602液晶显示电路,因控制器单元STC89C52的P0端口带载比较差,需要外接上拉电阻。其中,电位器R1用来调节LCD1602的背光亮度,输入到LCD1602的V0端电压越大,LCD1602的背光越亮。图3.4 LCD1602液晶显示电路本设计中液晶主要用于显示系统设置信息和各路PWM占空比等信号。由于液晶显示以及程序设计灵活,可以省去数码管显示的繁琐操作4。同时液晶显示更加人性化,且现在液晶成本低廉,在本设计中是一个很好的选择。图中单片机的P0口作为液晶显示的数据端口。由于51单片机设计者为了满足多电平的兼容性。在设计时P0口作输出时,设计为集电极开路输出,因此本设计作为液晶的数据端口,P0口输出增加上拉电R2将P0口输出上拉至VCC。以保证单片机输出1时,液晶数据口接收到的信号为高电平。3.3电源电路设计本设计中电源部分采用线性电源,所接电源为220V交流市电。通过工频变压器将电压降压到9V后,整流滤波为直流电,然后再经过5V的三端稳压器将电压稳定为5V的直流电压输出整个系统供电。电源电路如图3.5所示。图3.5系统电源电路3.4 LED驱动电路设计由于LED是特性敏感的半导体元件,同时有负温度特性,所以在应用的过程对其需要进行工作状态稳定和保护。对于LED来说,其对驱动电路的要求十分的苛刻,LED不像普通的白炽灯泡,可以直接连接交流市电220V。LED必须是23V的低电压驱动,同时要设计出复杂变换电路,用途不同的LED灯,需配备不同电压等级的电源适配器。当前市场上国外客户对LED驱动电源的电源寿命、效率转换、恒流精度、有效功率、电磁兼容等要求都非常高,设计一款好的驱动电路必须要考虑这些综合因数。本设计中LED驱动电路如图3.6所示。为了观察方便,本设计中选用的LED为普通白光LED。该LED的额定驱动电流为20mA,当电流大于20mA后LED就会迅速发热从而损坏。为了保护LED的正常工作,本设计在LED驱动电路中增加了一个330的电阻限流。由于单片机端口输出驱动能力有限,所以LED不能直接加载到控制器输出端口,必须在LED和控制器之间增加一级缓冲。在此采用PNP三极管作为驱动缓冲放大器,三级管的基极通过限流1k限流电阻与控制器I/O相连接。当控制器输出低电平时,PNP三级管导通,LED通过限流电阻从VCC获取电流点亮。本设计中VCC采用5VDC电压。图3.6 LED驱动电路3.5单片机介绍单片机俗称片上控制系统,属于微型计算机,是计算机一个重要的分支,同时,它也是当前最具生命力的一类机。片上微型计算机简称单片机又名微处理器,它适用于控制领域,故又被称作为微控制器。通常,单片机是由单块集成电路芯片构成,内部除了集成有计算机的基本功能单元:中央处理器、存储器和I/O接口电路等以外。它还集成有定时器,外部比较器,数模,模数转换器等外设单元5。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机的片上控制系统。STC89C52是51系列单片机的典型产品,在单片机内部包含了程序存储器(ROM),CPU,数据随机存储器(RAM)、定时器/计数器,并行、串行接口和中断服务系统等几大单元及地址总线、数据总线、和控制总线三大总线系统。整个单片机的核心部件是中央处理器(CPU)单元,该处理器属于8位数据宽度的处理器,能并行处理8位二进制数据或代码,控制器中,CPU负责控制和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。片内包含两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。片上共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。STC89C52是一种带4K字节闪烁可编程可擦除只读(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。此芯片采用STC公司高密度非易失存储器技术制造,属于工业标准的MCS-51精简指令指令系统同时其端口互相兼容。STC的STC89C52属于业界的一种高效率的微控制器,它为很多嵌入式控制系统提供了一种灵活和高性价比的设计方案。如图3.7所示是常用的一种单片机,型号为STC89C52,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚第40脚。在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。图3.7 STC89C52管脚分布VCC:供电电压GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每pin可吸收来至8TTL门的灌电流。P0口的管脚在写1时,由于漏极的开路结构使其被定义为高阻输入。P0可被用于外部程序数据存储器端口,它可以被定义为地址/数据的第8bit。对FIASH编程时,P0作为原码输入口,对FIASH采取校验时,P0输出原码,此时P0必须在外部通过外加上拉电阻被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口。振荡器特性XTAL1和XTAL2分别作为反向放大器的输入端和输出端,通过外部晶振配合内部逻辑分频整形电路构成时钟电路。芯片擦除该芯片采用标准的电擦除法,对存储器中的数据进行擦除,增加了程序的下载速度。此外,STC89C52设有稳态逻辑,他能够在低到零频率的条件下保持静态逻辑,支持两种通过软件可选择的掉电保护模式。在闲置模式下,CPU终止工作。但是此时RAM,计数器,定时器,中断服务系统和串口等仍在工作。在掉电模式下,保存RAM的数据同时冻结振荡器,停止所用其他芯片的功能,直到出现下一个硬件复位为止。3.5.1中断系统介绍中断是处理器处理外部突发事件的一个重要技术。它能使处理器在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行处理器原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类6 。 外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。3.5.2定时器介绍51定时器的工作原理:单片机内有两个16位可编程的定时/计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。下面我们对它们的特性进行阐述。STC89C52单片机内部的定时/计数器的结构,定时器T0特性功能寄存器TL0(低8位)和 TH0(高8位)构成,定时器T1由特性功能寄存器TL1(低8位)和TH1(高8位)构成。特殊功能寄存器TMOD控制定时寄存器的工作方式,TCON 则用于控制定时器T0和T1的启动和停止计数,同时管理定时器T0和T1的溢出标志等。程序开始时需对TL0、TH0、TL1和TH1进行初始化编程,以定义它们的工作方式和控制T0和T1的计数。3.6系统元件清单本设计硬件电路元件清单如表3.1所示。表3.1 元件清单元件名元件参数数量电容10uF1电容22p2电容10uF1电容0.1uF2电容470uF1整流桥Bridge21白光LEDLED6液晶LCD 16X21端口Header 4H1端口电源端子1PNP三极管85506Tapped ResistorRes Tap1电位器1k1电阻10k4电阻10k1电阻3306电阻1k6开关SW-PB1按键SW-PB4双联开关SW-DPST1工频变压器9V/15W1单片机STC89C521稳压器LM78051晶振12M113第四章 系统软件设计第四章 系统软件设计4.1软件开发环境介绍本设计中选用德国KEIL公司推出的uVision4集成开发环境作为主机程序设计的编译器。该软件集成了业内最领先的技术。Keil software的8051开发工具提供以下程序,可以用它们来编译C程序代码,汇编源程序,连接和重定位目标文件和库文件,创建HEX文件以及调试目标程序。4.2 C语言介绍C语言是一种结构化的语言,它层次清晰,便于按模块化的方式组织程序,易于调试和维护,语言简洁,紧凑,使用方便灵活。其次,它丰富的运算和数据类型,便于实现各类复杂的数据解耦。第三,可以直接访问内存地址,能进行位操作的特点,使其能够胜任开发炒作系统的工作。第四,由于C语言可以对硬件进行编程操作,因此,它既有高级语言的功能,同时也有低级语言的优势。不仅可用于系统软件的开发,同时也适用于应用软件的开发。另外,C语言还有效率高的,可移植性强等特点7。4.3 软件总体设计4.3.1 程序结构分析本设计的软件需要完成的任务分为:产生6路PWM信号,以及实现六路PWM占空比调节。同时软件系统还需要完成液晶显示等任务。通过软件需求分析,本设计将程序设计分为主程序和定时器中断程序两大程序块设计完成。主程序主要负责LCD显示,系统设定等人机交互界面。定时器中断程序完成PWM输出。4.3.2 主程序设计根据上述程序结构分析可以知,主程序需要完成功能为首先完成系统的初始化,因此整个程序的构架在主程序中需要完成的设置任务是系统各部分初始化、进行人机交互。因此可以得到如下图所示的程序总流程图。主程序流程图如图4.1所示。系统上电后进入主程序,首先是系统初始化,初始化过程中主要完成的是PWM输出端口初始化,本设计中PWM输出端口为P1口。接下来是定时器初始化,本设计中定时器配置为工作方式2,定时器自动重装,定时器初始化完成定时器寄存器的赋值,本设计中PWM频率设置为100Hz,所图4.1 主程序流程图以定时器配置为100s的定时周期,具体定时器的配置原理和PWM的原理将在后续章节讲述。完成定时器配置后是液晶初始化,等一切初始化完成后系统开启全局中断。启动定时器输出PWM信号,顺序点亮6路LED,此时PWM的占空比为50%。然后软件延时1s钟后对重新设置PWM占空比。程序进入PWM自动调节程序段,此时各路输出的PWM都循环的自加,当各路PWM分别增加到100%时,即自动清零,重新开始以1%的步进自加。从而实现各路LED灯的亮度分别自动变化。同时系统实时扫描键盘,判断是否按下“设置键”,当按下设置键后,程序关闭6路PWM输出即熄灭LED灯。此时系统进入各路PWM占空比设置程序,在此装填下,用户可通过开关键,选择开启或关闭该路LED灯,在开启状态下,可通过按下“UP”“DOWN”键来增加或减小PWM占空比以调节LED灯光的亮度。通过按下设置键进行确认后继续调节下一个LED灯,当第6个LED灯设置完成后,系统开启PWM输出。若需要重新设置,只需再次按下设置键,即可重复设置各路PWM。4.3.3 中断程序设计在本系统设计中,定时器中断实现的功能是输出PWM。在主程序中有介绍,本设计中定时器设置为100s自动重装定时模式。通过查阅资料知,为了避免PWM调节带来的频闪影响人的视觉,LED驱动PWM频率一般设置位大于50Hz。但PWM的频率也不是越高越好。当PWM频率过高后,由于开关器件的自身寄生电容的影响,当PWM过高时其开关特性将下降,导致能量在器件上的开关损耗增加。所以综合考虑,本设计中PWM的频率选择100Hz。由于本设计中定时器工作于方式2,采用8位计时自动重装的方式。计时周期设为100s。在定时器初始化时,系统对定时器的16为计数寄存器赋初值,其初值分为高八位TH1,和低八位TL1,由于是工作在方式2下,高8位和低8位赋相同的参数。当启动定时器后TL1中的值将在每个时钟周期中自加1,当TL1溢出时发出中断。此时高8位TH1中的参数不变,将自动赋到TL1中,完成一次定时器自动重装。本系统为了方便计算时钟,外部晶振为12MHz。经12分频后,系统时钟周期为1s。所以要保证定时周期为100s需要对定时器采用如下赋值方法。计数器每加1为1s,则定时100s,定时器需要计满100次。由于方式2是采用8位计数器所以,定时器的初值为256-100。对应于定时器寄存器TH1和TL1,其初值为:TH1=TL1=256-100=156 (4-1)由于定时器每进一次中断其定时时间为100s,产生100Hz的PWM信号就需要系统连续进入定时器100次中断才能实现一个完整的PWM周期。所以需要在程序中增设一个PWM的周期计数器Period。当每进一次定时器中断时,Period自动加1,同时比较Period是否大于各路PWM输出预设的占空比变量。当Period小于该路PWM预设占空比变量时,对应该路PWM输出的端口输出为高电平,否则输出低电平,当Period加到100时,Period自动清0,同时各路PWM输出端口输出高电平,完成一个周期为10ms即频率为100Hz的PWM周期。当中断程序执行完成后,程序范围主程序。中断程序流程图如图4.2所示。图4.2定时器中断流程图4.3.4 液晶驱动程序设计液晶的显示部分采用带一款字符型液晶1602,此模块的程序结构较简单,难点也只是液晶读写的时序,本程序中只需要实时对液晶写入数据,便于人机交互,只要对液晶驱动了后写数据也就相应的简单了,通过查看液晶的时序图,如图4.3所示。然后再模拟时序编程别能驱动液晶了。液晶操作的命令码可以查询LCD1602官方给出的命令码表。图4.3时序图17第五章 系统调试与结果分析第五章 系统调试与结果分析通过第三章和第四章本文完成了本论文的硬件设计和软件设计。而本章节将对整个系统的软硬件调试工作和系统整机调试,通过仿真调试和实物测试完成系统调试。系统建模仿真采用电子仿真软件Proteus7.7仿真。通过系统仿真和实物测试证明所设计基于单片机的多路PWM 输出系统满足系统设计要求。5.1 系统仿真环境介绍Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。基于Proteus强大的仿真功能和多编译环境的兼容性。本文选用Proteus作为本系统的建模仿真环境。5.2 调试结果与分析在系统调试过程中遇到一些问题,首先在调试系统按键的过程中,在硬件电路调试的过程中一开始LED灯不能被驱动,通过检查电路发现,是三极管的基极电阻取的太大,导致基极电流太小从而使三极管不能工作在饱和放大区,导致LED驱动电流过小而不能驱动其点亮。最后将基极电阻更换为1k后LED驱动正常。在调试PWM时,开始无PWM波形输出,通过电路检查排除是硬件问题,经过反复检查无法查出问题后,我通过老师的指导和同学的帮助最后终于找出了问题的所在。是定时器的配置问题,在定时器初始化的过程中,未将定时器配置好,导致最后定时器无法正常启动,所以导致无法完成PWM输出。最后通过修改程序,解决了问题。在系统调试的过程中还遇到了一些其他问题,最后通过程序的反复修改和调试,最终解决了问题,完成了系统的调试。系统调试结果如图5.1-图5.5所示。从图5.1中可看出6路PWM输出中其中4路的PWM波形。由于每路设定的PWM占空比不同,所以其输出波形也各不相同。图5.2和5.3为实图5.1 PWM仿真波形际测试是示波器显示波形。从图中可以看出两路PWM的占空比不同。图5.3中设定的PWM占空比为75%,其实际输出波形为25%。图5.4为波形设置液晶显示界面。图5.5为实际运行时,设置3个灯关闭,三个灯输入不同PWM时亮度不同的效果。图5.2两路PWM实测波形图5.3占空比为75%的PWM波形图5.4 PWM设置界面图5.5 LED工作图21第六章 总结与展望经过一个学期的学习与实践,较好的完成了本次毕业设计的大部分功能要求。在完成毕业设计的过程中,我不仅巩固了电气控制、单片机以及电力电子等相关理论知识,而且通过不断的电路实验和与人交流积累了一定的实践经验,并对LED照明技术和电子设计方向有了进一步的了解和兴趣,这将对我以后的求学道路有很好的指导作用。在本毕业设计的过程中我收获了很多。加强了对专业性的工具软件的应用。同时锻炼了自己单片机编程的能力。这些对我以后的学习和工作都将带来很大的帮助。但在收获的同时,也让我发现了自身存在的许多不足,发现了很多问题。在以后的工作学习中我将努力改正,更加完善自己。(1)本文所完成工作本文完成了基于单片机的多路PWM 输出系统的设计。具体包括硬件电路的设计,软件系统的设计以及实物的制作。通过系统测试和结果分析验证了本设计是一个合格的基于单片机的多路PWM 输出系统。(2)下一步工作设想在设计过程中发现了许多的问题,在接下来的工作中将进一步优化软件系统,以实现系统的最优化,同时进一步提高PWM输出的精度,进一步降低占空比的步进量。进一步加强人机交互的人性化设计。23参考文献参考文献1 杨欣,莱诺克斯,王玉凤,刘湘黔.电子设计从零开始(第2版).北京清华大学出版社 , 2010-10-1.2 郭天祥. 新概念51单片机C语言教程. 北京:电子工业出版社,2009-1-1.3 美Stephen Prata. C Primer Plus(第五版)中文版 .北京:人民邮电出版社,2005-2-1.4 严蔚敏. 数据结构(C语言版). 北京:人民邮电出版社, 2011-2-1.5 张毅刚、彭喜元,单片机原理与应用设计,电力工业出版社,2008.4.6 先锋工作室,单片机程序设计实例.清华大学出版社,2002.7 稻叶.保. 模拟技术应用技巧101例. 北京:科学出版社,2010.8 求是科技. 单片机典型模块设计实例导航. 北京:人民邮电出版社,2004.9 张志良. 单片机原理与控制技术M北京:机械工业出版社,2001.10 谭浩强,张基温. C语言程序设计第二版,北京高等教育出版社,1998.11 于海生. 计算机控制技术.北京:机械工业出版社,2007.12 康华光. 电子技术基础-数字部分(第五版),高等教育出版,2006.13 伍时和. 数字电子技术基础,清华大学出版社,2009. 14 卢玉宇.用单片机产生脉宽调制(PWM)电压输出的方法J.福建农业大学学报, 2001.3.15 钟美鹏, 郑水英, 潘晓弘.直联式空压机PWM变占空比控制J.农业机械学报, 2009.5.16 何希才,虹敏. 传感器应用接口电路M机械工业出版社,1997:31-89.23致 谢随着这篇本科毕业论文的最后落笔,我四年的大学生活也即将划上一个圆满的句号。回忆这四年生活的点点滴滴,从入学时对大学生活的无限憧憬到课堂上对各位老师学术学识的深沉沉湎,从奔波于教室图书馆的来去匆匆到业余生活的五彩缤纷,一切中的一切都是历历在目,让人倍感留恋,倍感珍惜。四年的学习生活注定将成为我人生中的一段重要旅程。在整个毕业设计的过程中,我有过失败与成功,有过沮丧与喜悦。我首先要衷心感谢我的指导老师陈守满老师,陈守满老师严谨细致的治学作风,还有他实事求是的处世态度深深地影响着我,并将使我终生受益。在我整个毕业设计过程中正是陈守满老师悉心指导和热心教诲才使我能顺利完成此次设计。 此外,本文参考了大量杂志期刊和专业丛书,由于参考期刊太多,不能一一注明,敬请原谅并向所有作者和刊物致以诚挚的谢意!由于本人水平有限,纰漏之处在所难免,恳请各位老师不吝赐教。最后感谢我的父母,你们一直都默默的在我身后支持我,为我无私奉献,对我关怀备至。正是你们的关心和支持让我顺利完成学业,你们永远是我最亲的人。感谢陪伴我渡过大学生涯的09级电本一班的全体同学。在这即将毕

温馨提示

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

评论

0/150

提交评论