欢迎来到天天文库
浏览记录
ID:47608658
大小:48.45 KB
页数:19页
时间:2019-09-29
《直流电机PWM调速大典》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数**设定为C=10,即0.0
2、1MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样**可以设定占空比可从1-100变化。即0.01ms*100=1ms *******************************************************************************/#include#defineucharunsignedchar /*******************************
3、***********************************************TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256; **TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器**工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时**间为1ms*65536=65.536ms
4、 *******************************************************************************/#defineV_TH0 0XFF #defineV_TL0 0XF6 #defineV_TMOD0X01 voidinit_sys(void); /*系统初始化函数*/voidDelay5Ms(void);unsignedcharZ
5、KB1,ZKB2;voidmain(void){init_sys(); ZKB1=40; /*占空比初始值设定*/ ZKB2=70; /*占空比初始值设定*/ while(1) { if(!P1_1)//如果按了+键,增加占空比 { Delay5Ms(); if(!P1_1) { ZKB1++; ZKB2=100-ZKB1; } } if(!P1_2)//如果按了-键,减少
6、占空比 { Delay5Ms(); if(!P1_2) { ZKB1--; ZKB2=100-ZKB1; } }/*对占空比值限定范围*/if(ZKB1>99)ZKB1=1;if(ZKB1<1)ZKB1=99; }}/*******************************************************函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/voidinit_sys(void)
7、 /*系统初始化函数*/{ /*定时器初始化*/ TMOD="V"_TMOD; TH0=V_TH0; TL0=V_TL0; TR0=1; ET0=1; EA="1";}//延时voidDelay5Ms(void){unsignedintTempCyc=1000;while(TempCyc--);}/*中断函数*/voidtimer0(void)interrupt1using2{staticucharclick="0"; /*中断次数计数器变量*/TH0=V_TH0;
8、 /*恢复定时器初始值*/TL0=V_TL0;++click;if(click>=100)click="0";if(click<=ZKB1) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ P1_3=0;else P1_
此文档下载收益归作者所有