⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 短距离无线通信.txt

📁 ptr2000的短距离无线通信程序
💻 TXT
字号:
文件头:




#include "wireless.h"



/* 定时器0中断服务子程序 */

void timer() interrupt 1 using 2

{   

    Flag_Delay5ms = 0;

    TH0 = -5000/256;

    TL0 = -5000%256;	

}



void main(void)

{

    ClearT_buf();

    ClearR_buf();

    TXEN = 0;                   //初始为接收状态

    PWR = 1;                	//正常工作模式

    CS = 0;                 	//选择频道0

    EA=0;

    	

    /* 11.0592MHz下,设置串行口9600波特率,工作方式1

        8位数据位,1位停止位,无奇偶校验,*/

    TMOD = 0x21;                //定时器1工作模式1,定时器0工作模式2	

    SCON = 0x50;                //串行口工作方式1,REN=1

    PCON = 0x00;            	//SMOD=0



    TL1 = 0xfd;

    TH1 = 0xfd;	

    TR1=1;                      //定时器1开始计时	

    

    PT0 = 1;                    //定时器0高优先级

    TH0 = -5000/256;        	//5ms

    TL0 = -5000%256;

    	

    IE = 0x90;                  //EA=1,ES=1:打开串口中断

    

    while (1) 

    {

        if (Flag_ReqSend)       //收到“请求发送
void Send(void)

{

    uchar xdata j = 0;

    uchar xdata len = 0;

    uchar xdata CheckSum = 0 ;

    t_buf[0]=0x24;          	//起始位

    t_buf[1]=0x07;              //7个数据字节

    len=t_buf[1];

    CheckSum = CheckSum + len;

    for ( j=0;j++;j<len)

    {

        t_buf[j+2] = Data[j];

        CheckSum = CheckSum + t_buf[j+2];

    }

    t_buf[9] = CheckSum;        //校验和字节

    t_buf[10] = 0x2A;           //停止位

    

    for (j=0;j++;j<11)

    {

        TI =0 ;

        SBUF = t_buf[j];	

        while ( TI ==0 );

        TI =0 ;	

    }

}



//通知PC机端发送结束函数

void SendOver(void)

{

    TI =0 ;

    SBUF = 0x24;	

    while ( TI ==0 );

    TI =0 ;			

    SBUF = 0x01;	

    while ( TI ==0 );

    TI =0 ;	

    SBUF = SEND_OVER;           //通知PC机端“发送结束”	

    while ( TI ==0 );

    TI =0 ;	

    SBUF = 0x99;                //校验和字节	

    while ( TI ==0 );

    TI =0 ;		

    SBUF = 0x2A;	

    while ( TI ==0 );

    TI =0 ;		

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -