#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "IR.h"
#include "beep.h"
sbit key1=P3^1;
unsigned char LEDNum; //如果不赋初值,结果也是0。放在这里是全局变量,其实它函数都可以调用。
unsigned char Address;
unsigned char Command;
void main()
{
IR_Init();
P2=~0x01;
while(1)
{
if(IR_GetDataFlag() || IR_GetRepeatFlag()) //如果收到数据帧或者收到连发帧
{
Address=IR_GetAddress(); //获取遥控器地址码
Command=IR_GetCommand(); //获取遥控器命令码
if(Command==0x43)
{
Command=0;//检测松手
beep_alarm(1000,10);
LEDNum++;//LEDNum自增位移
if(LEDNum>=8)//限制LEDNum自增范围
LEDNum=0;//位移超过8位重新
P2=~(0x01<<LEDNum);//LED的第LEDNum位点亮
}
}
if( key1==0)//判断第一次按下按键引脚的电平
{
delay(20);
while(key1==1);//检测松手
delay(20);
beep_alarm(1000,10);
LEDNum++;//LEDNum自增位移
if(LEDNum>=8)//限制LEDNum自增范围
LEDNum=0;//位移超过8位重新
P2=~(0x01<<LEDNum);//LED的第LEDNum位点亮
}
}
}
原理图: 无
仿真: 无
代码:
LED遥控长按.7z
(29.46 KB, 下载次数: 0)
|