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

📄 单片机中对tl16c754的初始化程序.txt

📁 ti公司的多串口芯片的初始化程序
💻 TXT
字号:
#define PORTONE        0
#define PORTTWO        1
#define PORTTHREE      2

void Reset_16C754()
{
	unsigned int waittime;
	DDR4_D42 = 1;
   	PDR4_P42 = 1;/* INTCEL: enable interrupt */
   	DDR7_D70 = 1;
   	PDR7_P70 = 1;	/* CLKCEL: divide-by-1 prescaler */
   	DDR7_D71 = 1;
   	PDR7_P71 = 1;      /*reset*/
   	for(waittime=0;waittime<20000;waittime++);
   	PDR7_P71 = 0;
}
void Init_Uart_754(unsigned char portnumber)
{
	unsigned long address_var;
	
	if(portnumber == PORTONE)
	{
			address_var = UARTA_LCR;
      		*(volatile unsigned char __far*)address_var = 0x80; 
      		address_var = UARTA_DLL; 
      		*(volatile unsigned char __far*)address_var = 0x9c; 
      		address_var = UARTA_DLH; 
      		*(volatile unsigned char __far*)address_var = 0x00;
      		address_var = UARTA_LCR;
      		*(volatile unsigned char __far*)address_var = 0xBF; 
      		address_var = UARTA_EFR; 
      		*(volatile unsigned char __far*)address_var = 0x10;
      		address_var = UARTA_LCR;
      		*(volatile unsigned char __far*)address_var = 0x00; 
      		address_var = UARTA_MCR;
      		*(volatile unsigned char __far*)address_var = 0x42;
      		address_var = UARTA_TLR;
      		*(volatile unsigned char __far*)address_var = 0x8F;
      		address_var = UARTA_LCR;
      		*(volatile unsigned char __far*)address_var = 0x03; // 8,no,1stop bit   
      		address_var = UARTA_FCR;
      		*(volatile unsigned char __far*)address_var = 0x06;  //trigger level 16 
      		address_var = UARTA_FCR;
      		*(volatile unsigned char __far*)address_var = 0xC1;  //trigger level 16 
      		address_var = UARTA_MCR;
      		*(volatile unsigned char __far*)address_var = 0x08;      		 
      		address_var = UARTA_IER;
      		*(volatile unsigned char __far*)address_var = 0x01;  
      		
      		  
	}	
	else if (portnumber == PORTTWO)
	{
			address_var = UARTB_LCR;
      		*(volatile unsigned char __far*)address_var = 0x80; 
      		address_var = UARTB_DLL; 
      		*(volatile unsigned char __far*)address_var = 0x9c; 
      		address_var = UARTB_DLH; 
      		*(volatile unsigned char __far*)address_var = 0x00;
      		address_var = UARTB_LCR;
      		*(volatile unsigned char __far*)address_var = 0xBF; 
      		address_var = UARTB_EFR; 
      		*(volatile unsigned char __far*)address_var = 0x10;
      		address_var = UARTB_LCR;
      		*(volatile unsigned char __far*)address_var = 0x00;
      		address_var = UARTB_MCR;
      		*(volatile unsigned char __far*)address_var = 0x42;
      		address_var = UARTB_TLR;
      		*(volatile unsigned char __far*)address_var = 0x1F;
      		address_var = UARTB_LCR;
      		*(volatile unsigned char __far*)address_var = 0x03; // 8,no,1stop bit   
      		address_var = UARTB_FCR;
      		*(volatile unsigned char __far*)address_var = 0x06;  //trigger level 16 
      		address_var = UARTB_FCR;
      		*(volatile unsigned char __far*)address_var = 0xC1;  //trigger level 16 
      		address_var = UARTB_MCR;
      		*(volatile unsigned char __far*)address_var = 0x08;      		 
      		address_var = UARTB_IER;
      		*(volatile unsigned char __far*)address_var = 0x01;  
	}		
	
	else if (portnumber == PORTTHREE)
	{
			address_var = UARTC_LCR;
      		*(volatile unsigned char __far*)address_var = 0x83; 
      		address_var = UARTC_DLL; 
      		*(volatile unsigned char __far*)address_var = 0x9c; 
      		address_var = UARTC_DLH; 
      		*(volatile unsigned char __far*)address_var = 0x00;   
      		address_var = UARTC_LCR;
      		*(volatile unsigned char __far*)address_var = 0x03; // 8,no,1stop bit   
      		address_var = UARTC_FCR;
      		*(volatile unsigned char __far*)address_var = 0xC1;  //trigger level 16  
      		address_var = UARTC_IER;
      		*(volatile unsigned char __far*)address_var = 0x01;  
      		address_var = UARTC_MCR;
      		*(volatile unsigned char __far*)address_var = 0x08;  
	}	
}

⌨️ 快捷键说明

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