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

📄 09_3_28_uart_红外遥控.c

📁 UART_红外遥控
💻 C
字号:
#include <reg52.h>
#include <hw.h>
//#include <UART.h>

sbit Led=P0^5;

sbit S1=P3^0;
sbit S2=P3^1;
sbit S3=P3^2;
sbit S4=P3^3;
sbit S5=P3^4;

extern void UART_Init(void);
extern void send(unsigned char mydata);	

void uart_send(unsigned char date)
{
    TI=0;                    ///清零发送完毕标志寄存器
    SBUF = date; // +0x30    ///0x30表示将字符转化为数字,0的ASIIC码为0x30
    while(!TI);              ///等待发送完毕寄存器置1
}


void main(void)
{unsigned int i;



P0 = 0x00;
P2 = 0x1f;
P0 = ~0x3f;
P2 = 0x0f;

 P1=0;    

WAY_0=1;     //输入首先写1
Infrared_ray_init();        ///定时器1初始化
//UART_Init();
P3=0xff;


	while(1)
	{
	   // if(S4==0)
		while(1)
		{
		     buffer=0;
		     irtype=0;
		     count=0;
		     end=0;
			TH0=(0xffff-381)/256;     ///381uS???
			TL0=(0xffff-381)%256;     ///381是什么意思?
		     while (WAY_0);//等待低电平,一帧的开始   ///等待接收端变为低电平、接收端在每次接收数据之前置1
		     TR0=1;        //开始定时,红外接收       ///注意这是开启定时器0
		     while(!end); //等一帧解码结束  ///end默认值为0,接收数组装满后变为1
			

			if(buf_s[2]%2==0) Led=0;
			else Led=1;

			uart_send(buf_s[2]);
		}
	}
}


/************************************************************
 经测试,串口返回数据;新宏电视机电子遥控器0~9的最后一个数依
 次为 0x30,0x31, 0x32,0x33, 0x34,0x35, 0x36,0x37, 0x38,0x39,
 音量+:0x40   音量- :0x41
 节目+:0x50   节目- :0x51
 存储 :0x59
 开关 :0x3c
 静音 :0x3d
 微调+:0x5b   微调- :0x5c
 屏显 :0x3f   这个可以用于选择显示频率或者万年历、或者温度
 单双 :0x3a
 搜索 :0x4e   这个可以用于自动搜索频率
08-12-16 张强记录
************************************************************/

⌨️ 快捷键说明

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