标题: 单片机控制的红外发射电路 急求助 [打印本页]

作者: HWX    时间: 2017-4-30 13:53
标题: 单片机控制的红外发射电路 急求助
用STC89C52作为红外遥控器的芯片,发射电路如下,要求一个输入时定时器产生38K方波,另一个是串口输出控制。而接收端的板子是STC89C52板子

20131226102424468.jpg (25.62 KB, 下载次数: 105)

20131226102424468.jpg

作者: HWX    时间: 2017-4-30 13:56
#include<reg52.h>  //52单片机头文件 #define uint unsigned int    //宏定义 #define uchar unsigned char  //宏定义 sbit P31=P3^1;  //串口输出 sbit P34=P3^4;        //方波输出 sbit P14=P1^4;  //按建设置 sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7;  void init();  char getkey() {           if(!P14)return 1;              if(!P15)return 2;              if(!P16)return 3;              if(!P17)return 4;              return 0; }  void UartSend(unsigned char buf) {             SBUF=buf;         while(!TI);                 TI  = 0;    }  void main()                    //主函数 {       char key;                                                                                   init();          do{              key=getkey();       if(key==1)UartSend(1);//0       if(key==2)UartSend(2);//exit       if(key==3)UartSend(3);//+       if(key==4)UartSend(4);//-    }         while(1); }  void timer0() interrupt 1 {         TH0=0xFF;         TL0=0xE6;         P34=~P34; }          void init() {         //方波产生             TMOD|=0x01;       //设置定时器0为工作方式1             TH0=0xFF;              //产生38k方波             TL0=0xE6;                 EA=1;             //全局中断允许                 ET0 = 1;              //打开定时器0中断             TR0=1;            //启动定时器0                       //串口设置               TMOD|=0x20;       //T1定时器工作方式2         TH1=0xfd;         //装初值         TL1=0xfd;         //装初值         TR1=1;            //启动定时器1                              SM0=0;            //设定串口工作方式1         SM1=1;            //同上                                      }
作者: HWX    时间: 2017-4-30 13:56
这是发送的自己写的代码
作者: 1074704199    时间: 2017-4-30 18:07
用 51单片机模一个红外发射吗?网上买一个逻辑分析仪,约 45元那种(8位,100M以下足够,便宜),测试准波形就可以了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1