- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Pwm程序流程图讲解
Pwm程序流程图
首先我们要确定频率和占空比,我们选用12MHZ晶振,让PWM 输出频率为1KHZ, 让定时中断次数为C=100,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设定占空比可从1-100 变化,即0.01ms*100=1ms。 TH0 和TL0 是计数器0 的高8 位和低8 位计数器,计算方法:TL0=(65536-C)%256;TH0=(65536-C)/256,其中C 为所要计数的次数;TMOD 是计数工作模式选择,TMOD=0X01表示选用模式1,它有16 位计数器,最大计数脉冲为65536,最长时间为65.536ms。
开始
是
否
#includeREGX51.H
#define uchar unsigned?char
#define V_TH0 0XFF
#define V_TL0 0XF6
#define V_TMOD 0X01
void init_sys(void);/*系统初始化函数*/
void Delay5Ms(void);
unsigned char click,ZKB1,ZKB2;
void main(void)
{
init_sys();
ZKB1=40;/*占空比初始值设定*/
ZKB2=70;/*占空比初始值设定*/
while(1)
{
if(!P1^0)/*如果按了+键,增加占空比*/
{
Delay5Ms();
if(!P1^0)
{
ZKB1++;
ZKB2=100-ZKB1;
}
}
if(!P1^1)/*如果按了-键,减少占空比*/
{
Delay5Ms();
if(!P1^1)
{
ZKB1--;
ZKB2=100-ZKB1; } } /*对占空比值限定范围*/
if (ZKB199) ZKB1=1;
if (ZKB11) ZKB1=99; } }
/*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/
void init_sys(void) /*系统初始化函数*/
{ /*定时器初始化*/
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
TR0=1;
ET0=1;
EA=1; } /*延时*/
void Delay5Ms(void)
{
unsigned int TempCyc = 1000;
while(TempCyc--); }
/*中断函数*/
void timer0(void) interrupt 1 using 2 {
TH0=V_TH0; /*恢复定时器初始值*/
TL0=V_TL0;
++click;
if (click=100) click=0;
if (click=ZKB1) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
P2=0xff;
else P2=0x00;
}
正反转
void zhengzhuan()/*正转函数*/
{ p0.0=HA; p0.1=HB; p0.2=HC; {switch(hall)
{case 0X05:p1=21H ;break
pwm();
while(p0.2) case 0X04:p1= 22H ;break
do{p0.4=1;p0.5=1; } case 0X06:p1= 0AH ;break
while(p1.1) case 0X02:p1= 0BH ;break
do{p0.2=1;p0.3=1; } case 0X03:p1= 14H ;break
while(p1.1;p1.2) case 0X01:p1= 11H ;break}}
do{p0.3=1;p0.4=1; }
while(p1.0)
do{p0.0=1;p0.1=1; }
while(p1.0;p1.2)
do{p0.0=1;p0.5=1; }
while(p1.0;p1.1)
do{p0.1=1;p0.2=1; }
PWM=PHASEpwm();
}
void fanzhuan()/*反转函数*/
{ p1.0=HA; p1.1=HB; p1.2=HC;
pwm();
while(p1.2)
do{p0
您可能关注的文档
- protel20046讲解.ppt
- ProtelDXP2004(第六章)讲解.ppt
- proe教学演示讲解.ppt
- 学习任务20悬架解读.ppt
- 学习传统文化问答解读.doc
- Proteus使用入门教程讲解.ppt
- PSA制氢装置开车试运行方案讲解.doc
- 学习信息安全产品设计--架构设计-详细设计解读.doc
- PSO标准算法讲解.docx
- PSO算法讲解.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)