📄 pwm.c
字号:
#include <reg51.h>
#define OSC 12000000
#define C_40us (65536-OSC/(12000000/18))
#define uchar unsigned char
#define uint unsigned int
sbit pwm=P1^0;
sbit key_add=P1^1;
sbit key_dec=P1^2;
uchar cpwm=50;
uchar cpwm_x;
uint i;
//
void timer(cpwm_x)
{
TMOD=0x10;
TR1=1;
while(cpwm_x--)
{
TH1=C_40us/256;
TL1=C_40us%256;
while(!TF1);
TF1=0;
}
TR1=0;
}
//////////////////////
void pwm_add(void)
{
if(key_add==0)
{
cpwm+=10;
if(cpwm>=100)
cpwm=100;
}
while(key_add==0);
}
void pwm_dec(void)
{
if(key_dec==0)
{
cpwm-=10;
if(cpwm<=0)
cpwm=0;
}
while(key_dec==0);
}
void main(void)
{
while(1)
{
pwm_dec();
pwm_add();
pwm=1;
timer(cpwm);
pwm=0;
timer(100-cpwm);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -