#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)
2025-6-20 18:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|