📄 pwm调制程序.c
字号:
//实验名称 PWM调制程序
//实验说明 key(接于P0.0)用来控制脉宽的高电平时间,可以在P2.0引脚接一个LED做测试。控制灯的亮度。
#include <reg52.h> //相应单片机头文件
#define CIRCLE 10 //CIRCLE=10
void pwmkey(void); //声明函数pwmkey
unsigned char count=1,last;
sbit LED=P1^0;
sbit KEY=P3^0;
//主程序
void main(void)
{
EA=1; //CPU开中断
ET0=1; //开T0溢出中断
TH0=(65536-1000)/256; //TH0=252
TL0=(65536-1000)%256; //TL0=24
TR0=1; //启动T0工作
count=1; //初始化count
last=1; //初始化last
while(1)
{
pwmkey();
}
}
//pwmkey函数定义
void pwmkey(void)
{
char old=0 ,new=0;
while(1)
{
new=KEY;
if(new&&!old) //new=1且old=0时,last加1
last++;
if(last>CIRCLE) //new=0且old=0(或者new=1),last>CIRCLE时,last=1
last=1;
old=new; //否则,old=new
}
}
//T0中断服务子程序
void into(void) interrupt 1
{
count++;
if(count>CIRCLE)
{
count=1;
}
if(count<=last)
LED=0;
else
LED=1;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -