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

📄 uart.c

📁 本程序是基于单片机C8051F020上使用SL811 USB 总线接口实现检测U 盘的功能。插上U 盘
💻 C
字号:

// 引用外部头文件

#include "c8051F020.h"
#include "uart.h"


/***********************************************************************************
* 函数名称:Uart0_Init;
*
* 函数功能描述:Uart0初始化;
*              
* 输入参数:unsigned char类型,发送数据波特率;
*
* 返回数据:none;
*
* 注意:    none;
************************************************************************************/

void Uart0_Init(unsigned char BaudRate) //Uart0初始化        
{                                    
   	
	TR1=0;                              // 关闭定时器Timer1
	ET1=0;                              // 关闭定时器Timer1中断 
	PT1=0;                              // 关闭定时器Timer1中断优先权
	TMOD&= 0x0f;                        // TMOD: 定时器1, 模式2, 8位重载 
	TMOD|= 0x20;                        // TMOD: 定时器1, 模式2, 8位重载 

    SCON0  = 0x50;                      // SCON0: 模式1, 8位UART, 使能RX
    PCON  |= 0x80;                      // SMOD00 = 1
	 
	if (BaudRate>=BaudRate_4800)
	{
	 	CKCON |= 0x10;                             // 定时器Timer1使用系统时钟作为时间基准
	 	TH1    = -(SYSCLK/1200/(BaudRate*16));     // 设置定时器Timer1重载值
	}
	else
	{
		CKCON &= ~0x10;                               // 定时器Timer1使用系统时钟作为时间基准
	 	TH1    = -(SYSCLK/1200/(BaudRate*16*12));     // 设置定时器Timer1重载值
	}

	ES0=0;             				 // 关闭串口Uart0中断
	PS=0;             				 // 关闭串口Uart0中断优先权

	TI0  = 1;                        // Indicate TX0 ready
    RI0  = 0;                        // Indicate RX0 ready

    TR1=1;							 // 打开串口Uart0
 }

/***********************************************************************************
* 函数名称:Uart0_Enable;
*
* 函数功能描述:Uart0初始化;
*              
* 输入参数:bool类型,打开输入1;关闭输入0;
*
* 返回数据:none;
*
* 注意:    none;
************************************************************************************/

void Uart0_Enable(bool Flag)
{
	if (Flag)
		TR1=1;   // 打开串口Uart0
	else
        TR1=0;   // 关闭串口Uart0
}

/***********************************************************************************
* 函数名称:Uart0_SendString;
*
* 函数功能描述:Uart0初始化;
*              
* 输入参数: unsigned char类型指针,发送数据;
*
* 返回数据:none;
*
* 注意:    none;
************************************************************************************/

void Uart0_SendString(unsigned char  *pt)
{  
	while(*pt)
	{
		Uart0_SendByte(*pt++);
	}
}

/***********************************************************************************
* 函数名称:Uart0_SendByte;
*
* 函数功能描述:Uart0初始化;
*              
* 输入参数:unsigned char类型指针,发送数据;
*
* 返回数据:none;
*
* 注意:    none;
************************************************************************************/

void Uart0_SendByte(unsigned char value)
{
	while(!TI0);            // 等待发送1个字节数据完成
    SBUF0=value;            // 发送数据到uart0
	TI0=0;  				// 清除中断标志
}

/***********************************************************************************
* 函数名称:Uart0_ReceiveData;
*
* 函数功能描述:Uart0初始化;
*              
* 输入参数:none;
*
* 返回数据:unsigned char类型,接收数据;
*
* 注意:    none;
************************************************************************************/
unsigned char Uart0_ReceiveData(void)
{
	if(RI0)
	{
		SCON0&=~0x01;   // 清除RI1标志位
		return SBUF0;
	}
	return 0xff;
}


/***********************************************************************************/
// 文件结束
/***********************************************************************************/

⌨️ 快捷键说明

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