求高手 51单片机IO口输出2.57HZ方波占空比是40%程序

求高手 51单片机IO口输出2.57HZ方波占空比是40%程序,第1张

如果是12M晶振,257Hz,周期为389105us,40%占空比,高电平155642us,低电平233463us,程序如下:

#include<reg51h>

sbit pluse=P1^0;

unsigned char flag=0xff;

void t0isr() interrupt 1

{

flag=~flag;

if(flag)

{

TH0=(65536-155642)/256;

TL0=(65536-155642)%256;

pluse=1;

}

else

{

TH0=(65536-233463)/256;

TL0=(65536-233463)%256;

pluse=0;

}

}

main()

{

TMOD=0x01;

TH0=(65536-155642)/256;

TL0=(65536-155642)%256;

TR0=1;

ET0=1;

EA=1;

while(1);

}

51所能输出的PWM的最大频率

是由单片机的时钟周期决定的,

25Hz以上肉眼就基本看不出来了

占空比是可以0%~100%调整的,这个是由程序决定

#include

<REGX52H>

#define

uchar

unsigned

char

#define

uint

unsigned

int

sbit

PWM_OUT=P3^0;

//PWM输出

void

DelayMS(uint

ms)

{

uchar

i,j;

for(j=ms;j>0;j--)

for(i=0;i<40;i++);

}

void

main()

{

uint

Val;

改变Val值可以改变占空比

0--100

while(1)

{

ADOE=0;

if(Val==0)

//PWM

输出(占空比为0%)

{

PWM_OUT=0;

DelayMS(255);

continue;

}

if(Val==0xff)

//PWM输出(占空比为

100%)

{

PWM_OUT=1;

DelayMS(255);

continue;

}

PWM_OUT=1;

DelayMS(Val);

PWM_OUT=0;

DelayMS(255-Val);

}

}

首先编写一个10US的延时程序,然后根据频率,决定在一个周期内调用这个10US延时程序的总次数,再根据不同的空点比决定输出高电平时调用的次数,再算出低电平时调用次数,至于程序,你自己编呀

以上就是关于求高手 51单片机IO口输出2.57HZ方波占空比是40%程序全部的内容,包括:求高手 51单片机IO口输出2.57HZ方波占空比是40%程序、51单片机输出PWM的最高频率和占空比、怎样用51系列汇编语言产生可调占空比的pwm波等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9835830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存