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

📄 gpio_spi.asm

📁 基于sunplus的16MCU产品,SPMC75的键盘和显示的例子,完整的工程,对单片机开发工程式师有一定的借鉴作用.
💻 ASM
字号:
.include Spmc75_regs.inc

.code
.define GPIO_SPI_CLK_Port 	P_IOB_Buffer_ADDR
.define GPIO_SPI_DAT_Port 	P_IOB_Buffer_ADDR
.define GPIO_SPI_Load_Port 	P_IOB_Buffer_ADDR
.define GPIO_SPI_CLK		0x0080
.define GPIO_SPI_DAT		0x0040
.define GPIO_SPI_Load		0x0100
			
.PUBLIC _GPIO_SPI_TXD
_GPIO_SPI_TXD:
			r2 = 13
GPIO_SPI_B:	test r1,0x1000
			jz GPIO_SPI_A
			r3 = [GPIO_SPI_DAT_Port]
			r3 |= GPIO_SPI_DAT
			[GPIO_SPI_DAT_Port] = r3
			r3 = [GPIO_SPI_CLK_Port]		//产生时钟
			r3 |= GPIO_SPI_CLK
			[GPIO_SPI_CLK_Port] = r3
			r3 &= ~GPIO_SPI_CLK
			[GPIO_SPI_CLK_Port] = r3
			r1 = r1 lsl 1
			r2 -= 1
			jnz GPIO_SPI_B
			jmp GPIO_SPI_C
GPIO_SPI_A: r3 = [GPIO_SPI_DAT_Port]
			r3 &= ~GPIO_SPI_DAT
			[GPIO_SPI_DAT_Port] = r3
			r3 = [GPIO_SPI_CLK_Port]		//产生时钟
			r3 |= GPIO_SPI_CLK
			[GPIO_SPI_CLK_Port] = r3
			r3 &= ~GPIO_SPI_CLK
			[GPIO_SPI_CLK_Port] = r3
			r1 = r1 lsl 1
			r2 -= 1
			jnz GPIO_SPI_B
GPIO_SPI_C: //发送结束
			retf
			
.PUBLIC _GPIO_SPI_Load
_GPIO_SPI_Load:
			r1 = [GPIO_SPI_Load_Port]
			r1 |= GPIO_SPI_Load
			[GPIO_SPI_Load_Port] = r1
			r1 &= ~GPIO_SPI_Load
			[GPIO_SPI_Load_Port] = r1
			retf
.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -