📄 uart_rx_2 byte_ep.asm
字号:
chip sn8p26l38
.data
acc_buf ds 1
pflag_buf ds 1
rx_buf1 ds 1
rx_buf2 ds 1
.code
org 00h
jmp main
org 08h
jmp isr
org 10h
//============================================================
// Uart --> RX_2 byte
//============================================================
main:
b0bclr furxen // Disable UART Function
b0bset furxpen // Enable UART RX parity bit check function
b0bset furxps // odd parity
// b0bclr furxps // even parity
b0bset furxm // 2-byte
mov a,#11010010b // baud -->9600
b0mov urbrc,a
//================================================================
// UART Baud Rate = Fhosc/PreScaler/(Divider*8)
//=============================|==================================
// Fhosc =16 MHz | Fhosc =4 MHz
//=============================|==================================
// baud --> data | baud --> data
// 1200 --> 11010 101 b | 1200 --> 01101 100 b
// 2400 --> 11010 100 b | 2400 --> 01101 011 b
// 4800 --> 11010 011 b | 4800 --> 01101 010 b
// 9600 --> 11010 010 b | 9600 --> 01101 001 b
// 19200 -> 11010 001 b | 19200 -> 01101 000 b
// 38400 -> 11001 000 b | *
// 51200 -> 10011 000 b | *
// 57600 -> 10000 000 b | *
// 102400-> 01001 000 b | *
// 115200-> 01000 000 b | *
b0bset furxen // Enable UART
b0bset frxien // Enable RX interrupt
b0bclr frxirq // clear RX interrupt request flag
b0bset fgie // Enable ALL interrupt function
main10:
//======================================================
//
// User code
//
//======================================================
jmp main10
//======================================================
// interrupt code
//======================================================
isr:
mov acc_buf,a // Push ACC to buffer
mov a,pflag
b0mov pflag_buf,a // Push PFLAG to buffer
isr_rx:
b0bts1 frxien // Check rxien
jmp isr90
b0bts1 frxirq // Check rxirp
jmp isr90
b0bclr frxirq
mov a,urrxd1 // received data buffer byte 1
b0mov rx_buf1,a
mov a,urrxd2 // received data buffer byte 2
b0mov rx_buf2,a
isr90:
mov a,pflag_buf
b0mov pflag,a // Pop pflag_buf to pflag
mov a,acc_buf // Pop acc_buf to acc
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -