📄 c51_8250.c
字号:
/*************************************/
/*8250 Module Subroutine---c51_8250.c*/
/*************************************/
#define UartBase 0x6000
#define UartData XBYTE[UartBase+0x0000]
#define UartDLL XBYTE[UartBase+0x0000]
#define UartIER XBYTE[UartBase+0x0001]
#define UartDLM XBYTE[UartBase+0x0001]
#define UartIIR XBYTE[UartBase+0x0002]
#define UartLCR XBYTE[UartBase+0x0003]
#define UartMCR XBYTE[UartBase+0x0004]
#define UartLSR XBYTE[UartBase+0x0005]
#define UartMSR XBYTE[UartBase+0x0006]
#define UartSCR XBYTE[UartBase+0x0007]
/* for UART routine */
data char uart_rx_char;
data bit uart_rx_ready;
void UartInit(void); /* Photo type of routine */
void UartInit()
{
UartLCR = 0x80; /* Change to Baud Gen. mode*/
UartDLL = 0x0c; /* Baud = 1.8432M /16 /0x0c*/
UartDLM = 0x00;
UartLCR = 0x03; /* Change to N,8,1*/
UartIER = 0x01; /* 0000 0001 - Int When Rx data */
Uart2LCR = 0x80; /* Change to Baud Gen. mode*/
Uart2DLL = 0x0c; /* Baud = 1.8432M /16 /0x0c*/
Uart2DLM = 0x00;
Uart2LCR = 0x03; /* Change to N,8,1*/
Uart2IER = 0x01; /* 0000 0001 - Int When Rx data */
}
void UartSend(char); /* Photo type of routine */
void UartSend(char c)
{ UartData = c; /* Tx the char.*/
UartCrcCalc(c);
while((UartLSR&0x20)==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -