51单片机脉冲调制(PWM)控制源程序
要用51产生PWM去控制LED,首先要确定PWM的周期T和占空比D,确定了这些以后,可以用定时器产生一个时间基准T,比如定时器溢出N次的时间是PWM的高电平的时间,则D*T=N*T,类似的可以求出PWM低电平时间需要多少个时间基准N。 Unsigned Char I, J; For(J = 100; J; J--) For(I = 255; I; I--) ; Bit Flag; TMOD = 0x01; TH0 = (65536 - 100) / 256; TL0 = (65536 - 100) % 256; IE = 0x82; TR0 = 1; CYCLE = 10; While(!Flag) { Delay(); PWM_ON++; If(PWM_ON == CYCLE) { Flag = 1; } } While(Flag) { Delay(); PWM_ON--; If(PWM_ON == 0) { Flag = 0; } } TH0 = (65536 - 100) / 256; TL0 = (65536 - 100) % 256; If(Count == PWM_ON) { P2 = 0xFF; } Count++; If(Count == CYCLE) { Count = 0; If(PWM_ON != 0) { P2 = 0; } }
#I Nclude
Unsigned Char CYCLE;
Unsigned Char Count = 0;
Unsigned Char PWM_ON;
Void Delay()
{
}
Void Main()
{
}
Void Time0_server() Interrupt 1 Using 1
{
}
关键词: 51单片机脉冲调制PW

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码