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

📄 uart_040.c

📁 c8051f040实验程序含CAN SMBUS IIC
💻 C
字号:
#include "c8051F040.h"
#define uchar unsigned char
#define uint unsigned int

void port_init();
void os_init();
void uart_init();
void time_init();
/*************************************************************************
*
*主函数
**************************************************************************/
void main()
{
    uchar g;
	WDTCN = 0xDE;                                           // 关闭看门狗
	WDTCN = 0xAD;
	os_init();                                              //晶振初始化
	port_init();											//端口初始化
	uart_init();
	time_init();
	 SFRPAGE   = CONFIG_PAGE;
	IE        = 0x90;										//开中断
  
  
	while(1)
	{
	        SFRPAGE = UART0_PAGE;
		   
		   
		    g=SBUF0;
	        SFRPAGE = UART0_PAGE;
		 while(RI0==0);	RI0=0;
    	
		    {    
    		SFRPAGE = UART0_PAGE;
			SBUF0=g;

			while(TI0==0);
			SFRPAGE = UART0_PAGE;
			TI0=0;
	
			}
	}


}
/*************************************************************************
*
*端口初始化函数
**************************************************************************/
void port_init()
{
    SFRPAGE   = CONFIG_PAGE;
  
    XBR0      = 0x04;
    XBR2      = 0x40;

   	P0MDOUT   = 0X10;
  
}
/*************************************************************************
*
*系统时钟初始化,选择外部晶体振荡器
**************************************************************************/
void os_init()
{
    int i = 0;
    SFRPAGE   = CONFIG_PAGE;
    OSCXCN    = 0x67;									//外部22.1184M晶振
    for (i = 0; i < 3000; i++);                         //等待外部晶振稳定 
    while ((OSCXCN & 0x80) == 0);
    CLKSEL    = 0x01;									//系统时钟不分频

}
/*************************************************************************
*
*串口初始化,选择UART1
**************************************************************************/
void uart_init()
{
    SFRPAGE   = UART0_PAGE;
    SCON0     = 0x50;								   //允许uart1

}
/*************************************************************************
*
*定时器初始化,作为UART0的波特率发生器
*************************************************************************/
void time_init()
{
    SFRPAGE   = TIMER01_PAGE;
    TCON      = 0X40;
	TMOD      = 0x20;
    CKCON     = 0X10;
	TH1       = 0xb8;
	TR1=1;


}

⌨️ 快捷键说明

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