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

📄 串口通信.txt

📁 简单的51单片机与PC机通过串口实现的串行通信.
💻 TXT
字号:
#include <reg52.h>

#define uint  unsigned int
#define uchar unsigned char

/**************************************************************/
//串口测试程序,采用11.0592M晶振
//使用定时器1 
//Write by CW    
//要接收须置位EA=1
/**************************************************************/   
//初值设定:
  /****300*****
     RCAP2H=0xFb;		  //波特率设定  :300
     RCAP2L=0x80;
 /***600*****
     RCAP2H=0xFD;		  //波特率设定  :600
     RCAP2L=0xC0;
  ***1200******/
 /***************
     RCAP2H=0xFE;		  //波特率设定  :1200
     RCAP2L=0xE0;
 *****************/
  /****2400*****
     RCAP2H=0xFF;		  //波特率设定  :2400
     RCAP2L=0x70;
 *****************/
  /****4800******
     RCAP2H=0xFF;		  //波特率设定  :4800
     RCAP2L=0xB8;  
 *****************/
  /****9600******
     RCAP2H=0xFF;		  //波特率设定  :9600
     RCAP2L=0xDC;
  *****************/
  /****19200******
     RCAP2H=0xFF;		  //波特率设定  :19200
     RCAP2L=0xEE;
	 *****************/
  /****38400******
     RCAP2H=0xFF;		  //波特率设定  :38400
     RCAP2L=0xF7;
  *****************/
  /****57600******
     RCAP2H=0xFF;		   //波特率设定  :57600
     RCAP2L=0xFA;
 *****************/
uchar data   t0_count, t0_cntbuff, set_dotps, set_dotpsbefore, cnt_data;
bit   bdata  flag_ready, rx_ready;
uint  temp;

/******************声明*******************/
void initInt0(void);	
void initTimer(void);
void initUart(void);
void txdata(uchar tt);

/****************************************/
void initUart(void)		  //串口初始化
{
 	TMOD|=0x20;				//计数方式2
 	SCON=0x50;				//8(10)位串口波特率方式1
 	TH1=0xfd;				//波特率设定  :600
 	TL1=0xfd;
 	TR1=1;					//开定时计数器1
}

void txdata(uchar tt)   /*Uart发送一字节*/
{
  	ES=0;				//禁止串口中断
  	SBUF=tt;			//发送接收缓冲器
  	while(!TI) ;		//发送中断标志位,只能由程序清零
  	TI=0;
  	ES=1;  
}							  

   
void SCON_int (void) interrupt 4
{   
    	ES=0;   
    	if(RI)			////接收中断标志位,只能由程序清零
     	{    
        	RI=0;
		txdata(0x55);
		txdata(SBUF);
	}
     	ES=1;
}

/*************************************************/
void main(void)
{
	initUart();	
	txdata(0x12);
	txdata(0x13);
	txdata(0x14);
    	EA=1;
	while(1);
} 

⌨️ 快捷键说明

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