📄 send.c
字号:
/*********************************************************************/
// send.c
// 遥控发射器
// LRM 2004.10.22
/*********************************************************************/
//使用AT89C52单片机,12MHZ晶振,
//
//#pragma src(E:\remote.asm)
#include "reg51.h"
#include "intrins.h" //_nop_();延时函数用
//
#define uchar unsigned char
#define uint unsigned int
//
sbit remoteout=P3^5; // 遥控输出口
sbit deng=P0^0;
sbit DingYou=P2^5;
sbit QianJin=P2^6;
sbit DingZuo=P2^7;
sbit TinZhi=P0^3;
sbit HouTui=P0^4;
//
//
uchar m,n,i,j;
//
////
/*********1毫秒延时程序**********/
delay1ms(uchar t)
{
for(i=0;i<t;i++)
for(j=0;j<120;j++)
;
}
//
//
/***********初始化函数**********/
clearmen()
{
remoteout=0; //关遥控输出
IE=0x00;
IP=0x01;
TMOD=0x22; //8位自动重装模式
TH1=0xf3; //40KHZ初值
TL1=0xf3;
EA=1; //开总中断
}
//
//
//
/**********发射函数************/
sed()
{
ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=1;//40KHZ发3毫秒
for(m=n;m>0;m--)
{
delay1ms(1); //停1毫秒
ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=1;//40KHZ发1毫秒
}
delay1ms(10);
}
//
//
//
/**********键功能函数************/
//
//
/***********主函数***************/
main()
{
clearmen();
P0=0xfd; //初始化
P2=0xff;
while(1)
{
if(DingZuo==0)
{delay1ms(20);
if(DingZuo==0)
{n=0;sed();}
}
if(QianJin==0)
{delay1ms(20);
if(QianJin==0)
{n=1;sed();}
}
if(DingYou==0)
{delay1ms(20);
if(DingYou==0)
{n=2;sed();}
}
if(HouTui==0)
{delay1ms(20);
if(HouTui==0)
{n=3;sed();}
}
if(TinZhi==0)
{delay1ms(20);
if(TinZhi==0)
{n=4;sed();}
}
//delay1ms(10);
deng=0;
/*n=0;
sed(); //按键扫描
delay1ms(1000);
n=1;
sed(); //按键扫描
delay1ms(1000);
n=2;
sed(); //按键扫描
delay1ms(1000);
n=3;
sed(); //按键扫描
delay1ms(1000);
*/
}
}
//
//
/*********40KHZ发生器***********/
//定时中断T1
void time_intt1(void) interrupt 3
{
remoteout=~remoteout;
}
//
//
//*********************结束**************************//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -