2
收藏
微博
微信
复制链接

我想学下简单的红外线遥控,利用单片机、PH302和PH302,简单控制一个LED的亮灭,应该怎样写发射和接收程序,求一个简单的程序学习下

提问于
2022-08-08 10:57

我想学下简单的红外线遥控,利用单片机、PH302和PH302,简单控制一个LED的亮灭,应该怎样写发射和接收程序,求一个简单的程序学习下

收藏 529 0 2
粉丝
0
关注
0
主题
5

我这样做了,通过发送字符,然后接收字符,接收的是什么字符,就令一个IO口为高低电平,这样控制LED的亮灭,那又怎样实现调光呢
#include // 接收  试试
#define uchar unsigned char
sbit   led1=P3^2;     //  接收 a , P3.2 输出低电平, P3.3  输出高电平。
sbit   led2=P3^3;     //   接收 a , P3.2 输出高电平, P3.3   输出低电平。
bit  t,s;
uchar  k;
void main (void)
  {
  SCON = 0x50;      
  TMOD = 0x21;     
  PCON = 0x80;      
  TH1 = 0xF4;      
  TL1 = 0xF4;  
  TH0=(65536-54253)/256;  // 50 mS
  TL0=(65536-54253)%256;
  TR1  = 1;  
  ES   = 1;        // 开串口中断
  EA   = 1;        // 开总中断
  ET0=1;
  TR0=1;
  s=1;
  while(1)
    {    }}
void chuankou(void) interrupt 4
  {
  if(RI==1)
    {
    RI = 0;
    TI = 0; if(t==1)
    {
   if(SBUF=='z') {led1=0;led2=1; }
   if(SBUF=='a') {led1=1;led2=0; }
   s=1; t=0;
   }
if(SBUF=='a' && s==1) { t=1;s=0;}
    }
}
void T0_time()interrupt 1
{
    TH0=(65536-54253)/256;  // 50 mS
    TL0=(65536-54253)%256;
    k++;
    if(k==10)  
  {
    k=0;
    led1=1;
    led2=1;
    }
  }
0

回答于 · 2022-08-08 11:52

粉丝
0
关注
0
主题
5
论坛有这样的帖子 你搜索一下 红外 这2个字就可以找到
0

回答于 · 2022-08-08 17:36