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

📄 uart.h

📁 一个51单片机的shell调试命令
💻 H
字号:
#include <REG52.h>

#define uint unsigned int
#define uchar unsigned char  

static bit flag_uart; //串口接收完数据
char uart_buf[10];
uchar *p;

/*****************************************************************************
;函 数 名:void Clear_UBuf(void)
;功    能:串口缓存清除
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.20
;修改日期:2007.6.20
*****************************************************************************/
void Clear_UBuf(void)
{
	uchar i;
	for(i=0;i<10;i++)
		uart_buf[i]=0;
}

/*****************************************************************************
;函 数 名:void Delay_Nms(uint n)
;功    能:延时
;说    明:无
;入口参数:延时值
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.19
;修改日期:2007.6.19
*****************************************************************************/
void Delay_Nms(uint n)
{
	while(n--);
}

/*****************************************************************************
;函 数 名:void Init_Uart(void)
;功    能:初始化串口程序
;说    明:晶振11.0592M 波特率4800
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.19
;修改日期:2007.6.19
******************************************************************************/
void Init_Uart(void)
{

    SCON = 0x50;        // 0101,0000 8 位数据位, 无奇偶校验
    TMOD |= 0x20;  
	PCON |= 0x80;       //SMOD=1;10000000b  
    TH1 = 0x0FA; 		// 时钟11.0592MHz, 9600 波特率
	IE |= 0x90;			// 允许串口中断 
	TR1 = 1;    		//;启动定时器T1
}					


/*****************************************************************************
;函 数 名:void Send_Data(uchar OutData)
;功    能: 串口发送程序
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.19
;修改日期:2007.6.19
******************************************************************************/
void Send_Data(uchar OutData)  
{
	SBUF = OutData; //输出字符
	while(!TI); 	//空语句判断字符是否发完
  	TI = 0;     	//清TI
}

/*****************************************************************************
;函 数 名:void Uart_Rev() interrupt 4 using 3
;功    能: 串口接收程序
;说    明:中断方式
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.19
;修改日期:2007.6.19
******************************************************************************/
void Uart_Rev() interrupt 4 using 3
{ 
      if(RI)
      {    
	  	   RI = 0;
		   (*p) = SBUF;
		   Send_Data(*p);
		   p++;
      }
	  if(*(p-1)==13)   //接收完字符串后置标志位	   
	  {	   
	  	   flag_uart=1;
		   *(p-1) = '\0';  //给串口命令接受缓冲区加字符串尾  
	  }
	    
}

/*****************************************************************************
;函 数 名:void Send_String(uchar *temp)
;功    能: 串口发送字符串程序
;说    明:无
;入口参数:无
;返 回 值:无
;创 建 人: 何  呈
;创建日期:2007.6.19
;修改日期:2007.6.19
******************************************************************************/
void Send_String(uchar *temp)
{	 
	while((*temp)!='\0')
   {
  	  Send_Data(*temp);
      temp++;
   }
}

⌨️ 快捷键说明

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