收藏 分销(赏)

飞思卡尔8位单片机MC9S0810程序PWM编程C语言例.doc

上传人:xrp****65 文档编号:7717759 上传时间:2025-01-13 格式:DOC 页数:2 大小:24KB 下载积分:10 金币
下载 相关 举报
飞思卡尔8位单片机MC9S0810程序PWM编程C语言例.doc_第1页
第1页 / 共2页
飞思卡尔8位单片机MC9S0810程序PWM编程C语言例.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
10.5.5 PWM编程C语言例 实例编号:C05_3 路径:\C\C05_3PWM脉冲信号输出(PWM.prj) /*-----------------------------------------------------* *工 程 名:PWM.prj * *硬件接线:PTD.4,即定时器1通道0(21脚)接指示灯或蜂鸣器 * *程序描述:通过对PWM占空比的调节实现现指示灯的渐亮的功能* * 当占空比为100%时再从0%逐渐增加 * *目 的:学习HC08系列定时器脉宽调制功能 * *---------《嵌入式应用技术基础教程》教学实例----------*/ /*[头文件]*/ #include "GP32C.H" //包含头文件 /*函数声明*/ void PWMInit(unsigned int ); //PWM初始化 void PWMconf(unsigned int); //PWM设置 extern void Delay_ms(unsigned char ); //延时 /*主程序*/ void main() { unsigned int Period; //PWM周期 unsigned int Duty; //PWM占空比 //[变量初始化] Period =0x0180; //PWM周期默认为10ms //[PWM初始化] PWMInit(Period); Duty = 0; //PWM占空比为0 //[主循环] while(1) { //[判断脉宽是否达到周期的长度(占空比为100%)] if(Duty<Period) Duty=Duty+1; //PWM占空比加1 else //占空比达到100%,设置占空比为0% Duty=0; T1SC|=(1<<5); //停止定时器1计数器计数 //[设置PWM脉宽] T1CH0H = (Duty>>8); //设置高字节 T1CH0L = Duty; //设置低字节 T1SC&=~(1<<5); //允许定时器1计数器计数 Delay_ms(10); //延时10ms } } /*PWMconf:PWM初始化设置--------------------------------* * 功 能:PWM脉冲周期、占空比的设置 * * 参 数:rate=脉宽时钟数,cyc=脉冲周期时钟数 * * 返 回:无 * *-----------------------------------------------------*/ void PWMInit(unsigned int Period) { unsigned int Temp=Period; //不允许溢出中断,不启动计数,分频因子=64,置位TSTOP,TRST T1SC = 0x36; //[设置PWM周期] T1MODH = (Temp>>8); T1MODL = Period; //[初始化设置PWM脉宽为0] T1CH0H = 0x00; T1CH0L = 0x00; //设为PWM模式,不允许输出比较中断,输出低电平,不带缓冲 T1SC0 = 0x1E; //允许定时器1计数寄存器计数 T1SC &= 0xDF; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服