|
10 UART
1. Send data by polling method.
clr P_IOC_Buf,4
clr P_IOC_Buf,5
clr P_IOC_Attrib,4
clr P_IOC_Attrib,5
set P_IOC_Dir,4
clr P_IOC_Dir,5 ;PC5(Rx) as input,PC4(Tx) as output
L_UART_Rx:
Lda #(C_UART_RXEN+C_UART_TXEN) ;enable UART TX & RX function
Sta P_UART_Ctrl
Lda #(C_UART_RXEN+C_UART_TXEN+C_UART_SOFTRST)
Sta P_UART_Ctrl ;reset UART
Lda #(C_UART_RXEN+C_UART_TXEN+C_UART_PSEL+C_UART_PEN)
;Int enable,enable parity check, even parity
sta P_UART_Ctrl
lda #$CC ;UART Baud Rate= 9600
sta P_UART_Baud
lda #(C_UART_OERR+C_UART_PERR+C_UART_FERR)
;clear error flag
sta P_UART_Status
L_TxReady:
Tst P_UART_Status,CB_UART_TXIF ;send data ready?
Beq L_TxReady
Lda #$98 ;send #$98
Sta P_UART_Data
|
2. Send data by interrupt.
clr P_IOC_Buf,4
clr P_IOC_Buf,5
clr P_IOC_Attrib,4
clr P_IOC_Attrib,5
set P_IOC_Dir,4
clr P_IOC_Dir,5 ;PC5(Rx) as input,PC4(Tx) as output
L_UART_Rx:
Lda #(C_UART_RXEN+C_UART_TXEN) ;enable UART TX & RX function
sta P_UART_Ctrl
lda #(C_UART_RXEN+C_UART_TXEN+C_UART_SOFTRST)
sta P_UART_Ctrl ;reset UART
lda #(C_UART_RXEN+C_UART_TXEN+C_UART_TXIE+C_UART_PSEL+C_UART_PEN)
;Int enable,enable parity check, even parity
sta P_UART_Ctrl
lda #$CC ;UART Baud Rate= 9600
sta P_UART_Baud
lda #(C_UART_OERR+C_UART_PERR+C_UART_FERR)
;clear error flag
sta P_UART_Status
cli |
3. Receive data by polling method.
clr P_IOC_Buf,4
clr P_IOC_Buf,5
clr P_IOC_Attrib,4
clr P_IOC_Attrib,5
set P_IOC_Dir,4
clr P_IOC_Dir,5 ;PC5(Rx) as input,PC4(Tx) as output
L_UART_Rx:
Lda #(C_UART_RXEN+C_UART_TXEN)
;enable UART TX & RX function
sta P_UART_Ctrl
lda #(C_UART_RXEN+C_UART_TXEN+C_UART_SOFTRST)
sta P_UART_Ctrl ;reset UART
lda #(C_UART_RXEN+C_UART_TXEN+C_UART_PSEL+C_UART_PEN)
;Enable parity check, even parity
sta P_UART_Ctrl
lda #$CC ;UART Baud Rate= 9600
sta P_UART_Baud
lda #(C_UART_OERR+C_UART_PERR+C_UART_FERR)
;clear error flag
sta P_UART_Status
L_UART_Rx1:
tst P_UART_Status,CB_UART_RXIF ;Rx data ready?
beq L_UART_Rx1 ;no
lda P_UART_Data ;receive data
|
4. Receive data by interrupt.
clr P_IOC_Buf,4
clr P_IOC_Buf,5
clr P_IOC_Attrib,4
clr P_IOC_Attrib,5
set P_IOC_Dir,4
clr P_IOC_Dir,5 ;PC5(Rx) as input,PC4(Tx) as output
L_UART_Rx:
Lda #(C_UART_RXEN+C_UART_TXEN)
;enable UART TX & RX function
sta P_UART_Ctrl
lda #(C_UART_RXEN+C_UART_TXEN+C_UART_SOFTRST)
sta P_UART_Ctrl ;reset UART
lda #(C_UART_RXEN+C_UART_RXIE+C_UART_TXEN+C_UART_PSEL+C_UART_PEN)
;Int enable,enable parity check, even parity
sta P_UART_Ctrl
lda #$CC ;UART Baud Rate= 9600
sta P_UART_Baud
lda #(C_UART_OERR+C_UART_PERR+C_UART_FERR)
;clear error flag
sta P_UART_Status
cli
|
|