📄 uart.asm
字号:
.define P_UART_Command1 0x7021; // Command1 Port for UART
.define P_UART_Command2 0x7022; // Command2 Port for UART
.define P_UART_Data 0x7023; // Data Port for UART
.define P_UART_BaudScalarLow 0x7024; // Set Baud Rate scalar low
.define P_UART_BaudScalarHigh 0x7025; // Set Baud Rate scalar high
.define P_Watchdog_Clear 0x7012 // Watchdog Reset
.define P_IOB_Data 0x7005 // Write Data into the data register and read from IOB pad
.define P_IOB_Buffer 0x7006 // Write Data into buffer register and read from buffer register
.define P_IOB_Dir 0x7007 // Direction vector for IOB
.define P_IOB_Attrib 0x7008 // Attribute vector for IOB
.external _GB_WrData
.code
//===========================================================================================
// Function Name: SPR4096_IO_WriteAByte
// Description :
// Syntax : SPR4096_IO_WriteAByte(unsigned long int Addr,Data);
// Input :
// Output :
// Destroy :
// Used :
//==========================================================================================
.public _SP_Uart_Init
_SP_Uart_Init:
r1=0x0000
[P_IOB_Data]=r1
r1=0x0400
[P_IOB_Attrib]=r1
r1=0x0400
[P_IOB_Dir]=r1
r1=0x05 //baud rate = 4800
[P_UART_BaudScalarHigh]=r1
r1=0x00
[P_UART_BaudScalarLow]=r1
// r1=0x20
// [P_UART_Command1]=r1
r1=0x00
[P_UART_Command1]=r1
r1=0x80
[P_UART_Command2]=r1 //enable Rx
retf
//===========================================================================================
// Function Name: SPR4096_IO_WriteAByte
// Description :
// Syntax : SPR4096_IO_WriteAByte(unsigned long int Addr,Data);
// Input :
// Output :
// Destroy :
// Used :
//==========================================================================================
.public _SP_Uart_Rx
_SP_Uart_Rx:
r1=0x0001
[P_Watchdog_Clear]=r1
r2=0x80
test r2,[P_UART_Command2]
jz _SP_Uart_Rx
r1=[P_UART_Data]
[_GB_WrData]=r1
retf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -