用 51单片机模一个红外发射吗?网上买一个逻辑分析仪,约 45元那种(8位,100M以下足够,便宜),测试准波形就可以了 |
这是发送的自己写的代码 |
#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; //同上 } |