⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm调制程序.c

📁 AT89S52单片机程序50例(00-50)
💻 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 + -