![改变PWM输出波占空比程序_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/04c98a0a-8016-479e-96b6-d27eac25f80a/04c98a0a-8016-479e-96b6-d27eac25f80a1.gif)
![改变PWM输出波占空比程序_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/04c98a0a-8016-479e-96b6-d27eac25f80a/04c98a0a-8016-479e-96b6-d27eac25f80a2.gif)
![改变PWM输出波占空比程序_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/04c98a0a-8016-479e-96b6-d27eac25f80a/04c98a0a-8016-479e-96b6-d27eac25f80a3.gif)
![改变PWM输出波占空比程序_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/04c98a0a-8016-479e-96b6-d27eac25f80a/04c98a0a-8016-479e-96b6-d27eac25f80a4.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、;本例通过编程,使CCP1模块工作在脉宽调制PWM方式下从RC2 口上输出分辨率达10位的;PWM波形,波形的占空比可以通过键盘调节,当按下 K1键时,输出的PWM波形的占空比为25%, ;当按下K2键时,输出的PWM波形的占空比为50%,当按下K3键时,输出的PWM波形的占空;比为75%,当按下K4键时,输出的PWM波形的占空比为100%,默认输出波形的占空比为50% 为了强调编程技巧,键盘程序采用变位中断方式LIST P=18F458INCLUDE "P18F458.INC"DEYHEQU0X20DEYLEQUDEYH+1JIANREQUDEYH+2;存储键值用寄存器O
2、RG0X00GOTOMAIN;转向主程序ORG0X08GOTOINTSERVE;转向中断服务程序ORG0X30;* 初始化子程序 *INITIALCLRFINTCON;禁止总中断和外围中断BSFINTCON , RBIE;B 口变位中断允许BCFINTCON2 , 7;使弱上拉有效BSFINTCON2 , 1;B 口变位中断高优先级BSFRCON, 7;使能中断优先级MOVLW0XFFMOVWFPR2;设置PWM的工作周期MOVLW0X7FMOVWFCCPR1L;默认占空比为50%MOVLW0X3CMOVWFCCP1CON;设置CCP1模块为PWM工作方式,且其工作循;环的低2位为11,高8位
3、为01111111=7FMOVLW0X04MOVWFT2CON;打开TMR2,且使其前分频为1BCFTRISC, 2;设置CCP1引脚为输出方式BCFTRISB, 1BCFTRISA, 3BCFTRISE, 0BCFBSFTRISE,TRISB,14;设置与键盘有关的各口的输入输出方式BCFPORTB,1BCFPORTA3BCFPORTE0BCFPORTE1;K1 , K2, K3, K4四条列线置0,为电平变化;中断的产生创造初始条件MOVFPORTBW;读PORTB端口,建立变位中断的初始条件;(由高到低时中断)RETURN;*键盘去抖子程序(8ms的延时广*KEYDELA 丫MOVLW0
4、X0AMOVWFDEYHAGAIN2 MOVLW0XFFMOVWFDEYLAGAIN1 DECFSZDEYL1GOTOAGAIN1DECFSZDEYH1GOTOAGAIN2;具体程序t句参考3. 2节RETURN;* 键服务子程序 *KEYSERVEJIANZHI;确定键值的子程序BCFPORTB1BCFPORTA3MOVLW0X03MOVWFPORTE;K1 , K2置低电平,K3, K4置高电平NOPNOP;使引脚电平稳定BTFSSPORTB4GOTOK1K2;RB4为0,表示按键为K1 , K2中的一个GOTOK3K4;RB4为1,表示按键为K3, K4中的一个K1K2BCFPORTB1
5、BSFPORTA3;K1置低电平,K2置高电平NOPNOP使引脚电平稳定BTFSSGOTOPORTB,K1K24 RB4为0,表示按键为 RB4为1,表示按键为K1K2GOTOK3K4BCFPORTE0BSFPORTE1 K3置低电平,K4置高电平NOPNOP使引脚电平稳定BTFSSPORTB,4GOTOK3 RB4为0,表示按键为K3GOTOK4 RB4为1,表示按键为K4,以上对键盘进行扫描,来确定是哪一个键按下K1MOVLW0X01MOVWFJIANRGOTORETK2MOVLW0X02MOVWFJIANRBCFPORTA3GOTORETK3MOVLW0X03MOVWFJIANRGOTO
6、RETK4MOVLW0X04MOVWFJIANR以上根据按下的键把相应的值送给JIANRBCFPORTE1RETNOPRETURN * ;确定占空比为25%的子程序*PER25MOVLW0X3FMOVWFCCPR1LRETURN 确定占空比为50%的子程序*PER50MOVLW0X7FMOVWFCCPR1LRETURN 确定占空比为75%的子程序*PER75 MOVLW0XBFMOVWFCCPR1LRETURN;* 确定占空比为100%的子程序*PER100 MOVLW0XFFMOVWFCCPR1LRETURN;*中断服务子程序 *INTSERVENOPBCFINTCON , RBIF;清除中
7、断标志CALLKEYDELA Y;调用软件延时子程序消抖动MOVFPORTB, W;读PORTB的值,并同时改变中断发生的条件可;以屏蔽一次无用的中断,又可以防止按键时间;过长发生连续中断BTFSCPORTB, 4RETFIE;判断为干扰,则返回,并可以屏蔽一次无用的;中断CALLKEYSERVE;调用键服务子程序,确定键值BCFPORTB, 1BCFPORTA, 3BCFPORTE, 0BCFPORTE 1;送低电平至K1, K2, K3, K4,以防止键扫描;时改变K1, K2, K3, K4的电平,从而改变中 ;断条件BCFINTCON RBIF;键扫描时可能会产生"电平变化"而使RBIF ;置1,再清除一次RBIF以求避免额外中断MOVLW0X01;以下通过判断是哪个键按下从SUBWFJIANR 0;而选择PWM波形的不同占空比BTFSCSTATUS ZCALLPER25若是K1按下,则PWM占空比为25%;以下同理MOVLW0X02SUBWFJIANR 0BTFSCSTATUS ZCALLPER50MOVLW0X03SUBWFJIANR 0BTFSCSTATUS,ZCALLPER75
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同大写金额标准写法
- DB6103T 83-2025巨菌草栽培技术规范
- 产业园区综合服务与物业管理合同
- 2025年环保技术项目研发合同
- 上海居民住房租赁合同细则
- 专利许可使用权转让合同
- 2025年借款合同范本:生活资金周转专用
- 产权清楚的商业车位买卖合同
- 三方人才派遣合同模板
- 互联网众筹合作合同范本(修订)
- 如愿三声部合唱简谱
- 高三数学开学第一课
- 水生野生动物保护与管理
- 115个低风险组病种目录
- 系统解剖学考试重点笔记
- 暖通空调基础知识及识图课件
- 防渗墙工程施工用表及填写要求讲义
- 交通信号控制系统检验批质量验收记录表
- 校园信息化设备管理检查表
- 新版抗拔桩裂缝及强度验算计算表格(自动版)
- API SPEC 5DP-2020钻杆规范
评论
0/150
提交评论