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

📄 pwm.c

📁 单片机红外解码及无线解码的应用
💻 C
字号:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define POWER_MIN 60  ////39 ===135V慢速  28===183V中速
#define ms_waiteAA  1
#define ms_waite55  2
#define ms_waiteA5	3
#define ms_waiteD1	4
#define ms_waiteD2	5
sbit pwm1=P1^7;
sbit pwm2=P1^6;
sbit pwm3=P1^5;
sbit pwm4=P1^4;
uchar power1;
uchar power2;
uchar message=0;
void delay(uchar count)//延时
{
uchar i,k;
i=0;
k=0;
for (k=0;k<count;k++)
for (i=0;i<30;i++);
}




void Initial(void)
{
IT0=1;
IT1=1;
IE0=0;
IE1=0;
EX0=1;
EX1=1;
SCON=0X50;
TMOD=0x20;
TH1=0xF3;//0xF3;2400
TL1=0xF3;
TR1=1;
ES=1;
PS=1;
EA=1;
power1=71;//0~80
power2=71;//0~80
message=ms_waiteAA;
}

void pwm(void)
{
uchar k=0;
while(k<=POWER_MIN)
{
if (power1<POWER_MIN)
if (k>=power1)
pwm1=0;
if (power2<POWER_MIN)
if (k>=power2)
pwm2=0;
delay(1);
k++;
}
//for (k=0;k<50;k++);
delay(1);
pwm1=1;
pwm2=1;
}

void int0 (void)interrupt 0 
{
pwm();
}

void int1 (void)interrupt 2 
{
pwm();
}

void receive (void) interrupt 4
{
uchar d;
if (TI==1)
{
TI=0;
}
if (RI==1)

RI=0;
d=SBUF;
	switch (message)
			{	
			case ms_waiteAA:
								if (d==0xAA)
		 						message=ms_waite55;
								else
								message=ms_waiteAA;
								break;
			case ms_waite55:
								if (d==0x55)
		 						message=ms_waiteA5;
								else
								message=ms_waiteAA;
								break;
			
		   case ms_waiteA5:
								if (d==0xA5)
		 						message=ms_waiteD1;
								else
								message=ms_waiteAA;
								break;
			case ms_waiteD1:
								if (d==0x01)
									{
									power2=39;								
									}

								else
								if (d==0x02)
									{								
									power2=28;
									}						
		 						else
								if (d==0x04)
									{
									power2=15;									
									}

								else
								if (d==0x08)
									{								
									power2=71;
									}
						
		 						message=ms_waiteAA;
								break;

			default :			message=ms_waiteAA;
								break;
			}


  }

main()
{
Initial();
while(1);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -