登录
首页 单片机论坛
回帖 发帖
正文

主题:简单直观的-红外遥控控制单片机输出。

点击:1632 回复:2

#include  "config.h"   //头文件
/****************************************/
/**输出接口*********************/  
/********P2*********/
sbit Y4  = 0xA0;   //输出Y4
sbit Y5  = 0xA1;   //输出Y5
sbit Y6  = 0xA2;   //输出Y6
sbit Y7  = 0xA3;   //输出Y7
sbit Y0  = 0xA4;   //输出Y0
sbit Y1  = 0xA5;   //输出Y1
sbit Y2  = 0xA6;   //输出Y2
sbit Y3  = 0xA7;   //输出Y3
//P3.2 接红外遥控头 型号为HS0038B
void initFlag(void);   //输入输出初始化  
void IR_int(void);   //红外接受初始化
/******************************************/  
void IR_TASK(void )
{  
if(Key1!=0xFF)           //判断是否有遥控码
       {  
switch (Key1) //判断按键码
{
              case KEY_0 :
Y0=~Y0; //如果按下“0” 按键,Y0取反
break;
              case KEY_1 :
Y1=~Y1; //如果按下“1” 按键,Y1取反
break;
              case KEY_2 :
Y2=~Y2; //如果按下“2” 按键,Y2取反
break;
                  case KEY_3 :
Y3=~Y3; //如果按下“3” 按键,Y3取反
break;
                  case KEY_4 :
Y4=~Y4; //如果按下“4” 按键,Y4取反
break;
                case KEY_5 :  
Y5=~Y5; //如果按下“5” 按键,Y5取反
break;
                  case KEY_6 :
Y6=~Y6; //如果按下“6” 按键,Y6取反
break;
                  case KEY_7 :
Y7=~Y7;; //如果按下“7” 按键,Y7取反
break;  
case KEY_8 :
P2=0XFF; //如果按下“8” 按键,输出全灭
break;
case KEY_9 :
P2=0X00; //如果按下“9” 按键,输出全亮
break;  
                default:
                  break;
}            
Key1=0XFF;
}
}
//函数:主程序
void main(void)
{  
initFlag(); //输入输出初始化
IR_int(); //红外初始化
/****程序循环此间****************************/
while(1)IR_TASK();  //运行红外判断程序
}
/************END***********************************/
附件:
[本地下载]
附件
最后修改:2008-10-7 14:52:44
08-10-07 14:46
上面有程序,下载解压既可,运行环境:KEIL 3
keil软件下载:www.MCU123.COM.
上面软件功能:按下遥控器0-7按键,输出Y0-Y取反,就是原来灭的按下亮,再按又灭。
             按下遥控器8按键,输出全部灭,按下遥控器9按键,输出全部亮。
最后修改:2008-10-7 15:00:26
08-10-07 14:55
谢谢分享!
08-10-11 21:40

工控新闻

更多新闻资讯