改变pwm输出波占空比程序

改变pwm输出波占空比程序

ID:8793264

大小:171.50 KB

页数:6页

时间:2018-04-07

改变pwm输出波占空比程序_第1页
改变pwm输出波占空比程序_第2页
改变pwm输出波占空比程序_第3页
改变pwm输出波占空比程序_第4页
改变pwm输出波占空比程序_第5页
资源描述:

《改变pwm输出波占空比程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、;本例通过编程,使CCP1模块工作在脉宽调制PWM方式下从RC2口上输出分辨率达10位的;PWM波形,波形的占空比可以通过键盘调节,当按下K1键时,输出的PWM波形的占空比为25%,;当按下K2键时,输出的PWM波形的占空比为50%,当按下K3键时,输出的PWM波形的占空;比为75%,当按下K4键时,输出的PWM波形的占空比为100%,默认输出波形的占空比为50%;为了强调编程技巧,键盘程序采用变位中断方式LISTP=18F458INCLUDE"P18F458.INC"DEYHEQU0X20DEYLEQUDEYH+1JIANREQUDEYH+2;存储键值用寄存器ORG0X00GOTOMA

2、IN;转向主程序ORG0X08GOTOINTSERVE;转向中断服务程序ORG0X30;***************初始化子程序******************INITIALCLRFINTCON;禁止总中断和外围中断BSFINTCON,RBIE;B口变位中断允许BCFINTCON2,7;使弱上拉有效BSFINTCON2,1;B口变位中断高优先级BSFRCON,7;使能中断优先级MOVLW0XFFMOVWFPR2;设置PWM的工作周期MOVLW0X7FMOVWFCCPR1L;默认占空比为50%MOVLW0X3CMOVWFCCP1CON;设置CCP1模块为PWM工作方式,且其工作循;环

3、的低2位为11,高8位为=7FMOVLW0X04MOVWFT2CON;打开TMR2,且使其前分频为1BCFTRISC,2;设置CCP1引脚为输出方式BCFTRISB,1BCFTRISA,3BCFTRISE,0BCFTRISE,1BSFTRISB,4;设置与键盘有关的各口的输入输出方式BCFPORTB,1BCFPORTA,3BCFPORTE,0BCFPORTE,1;K1,K2,K3,K4四条列线置0,为电平变化;中断的产生创造初始条件MOVFPORTB,W;读PORTB端口,建立变位中断的初始条件;(由高到低时中断)RETURN;*********键盘去抖子程序(8ms的延时)******

4、************KEYDELAYMOVLW0X0AMOVWFDEYHAGAIN2MOVLW0XFFMOVWFDEYLAGAIN1DECFSZDEYL,1GOTOAGAIN1DECFSZDEYH,1GOTOAGAIN2;具体程序语句参考3.2节RETURN;***************键服务子程序******************KEYSERVEJIANZHI;确定键值的子程序BCFPORTB,1BCFPORTA,3MOVLW0X03MOVWFPORTE;K1,K2置低电平,K3,K4置高电平NOPNOP;使引脚电平稳定BTFSSPORTB,4GOTOK1K2;RB4为0,表示

5、按键为K1,K2中的一个GOTOK3K4;RB4为1,表示按键为K3,K4中的一个K1K2BCFPORTB,1BSFPORTA,3;K1置低电平,K2置高电平NOPNOP;使引脚电平稳定BTFSSPORTB,4GOTOK1;RB4为0,表示按键为K1GOTOK2;RB4为1,表示按键为K2K3K4BCFPORTE,0BSFPORTE,1;K3置低电平,K4置高电平NOPNOP;使引脚电平稳定BTFSSPORTB,4GOTOK3;RB4为0,表示按键为K3GOTOK4;RB4为1,表示按键为K4,以上对键盘进行扫;描,来确定是哪一个键按下K1MOVLW0X01MOVWFJIANRGOTOR

6、ETK2MOVLW0X02MOVWFJIANRBCFPORTA,3GOTORETK3MOVLW0X03MOVWFJIANRGOTORETK4MOVLW0X04MOVWFJIANR;以上根据按下的键把相应的值送给JIANRBCFPORTE,1RETNOPRETURN;**********确定占空比为25%的子程序*********PER25MOVLW0X3FMOVWFCCPR1LRETURN;**********确定占空比为50%的子程序*********PER50MOVLW0X7FMOVWFCCPR1LRETURN;**********确定占空比为75%的子程序*********PER7

7、5MOVLW0XBFMOVWFCCPR1LRETURN;**********确定占空比为100%的子程序*********PER100MOVLW0XFFMOVWFCCPR1LRETURN;**************中断服务子程序***************INTSERVENOPBCFINTCON,RBIF;清除中断标志CALLKEYDELAY;调用软件延时子程序消抖动MOVFPORTB,W;读PORTB的值,并同时改变中断发生的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。