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

📄 uart_tx_2byte_ep.asm

📁 范例程序 SONiX
💻 ASM
字号:
chip	sn8p26l38


.data
	acc_buf		ds	1
	pflag_buf		ds	1

.code
	org	00h
	jmp	main
	org	08h
	jmp	isr
	
	org	10h
//============================================================
//           Uart --> TX 2-byte
//============================================================
main:
	b0bclr	futxen		// Disable UART Function	

	b0bset	futxpen		// Enable UART TX parity bit check function 

	b0bset	futxps		// odd parity
//	b0bclr	futxps		// even parity

	b0bset	futxm		// 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	futxen		// Enable UART

	mov	a,#55h		// UART transmitted data1 --> low byte 
	b0mov	urtxd1,a

	mov	a,#0aah		// UART transmitted data2 --> high byte 
	b0mov	urtxd2,a

	b0bset	ftxien		// Enable TX interrupt
	b0bclr	ftxirq		// clear TX 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	ftxien					// Check txien
			jmp	isr90					
			b0bts1	ftxirq					// Check txirp
			jmp	isr90					
			b0bclr	ftxirq
			.						//transmitted data --> OK
			.
			User code
			.
			.

		
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 + -