led3.asm.bak

来自「LPC932的SPI接口应用」· BAK 代码 · 共 58 行

BAK
58
字号
; 使用LPC932的SPI接口对74HC595进行操作
; 其中使用74HC595的低3位对三色LED进行控制,为0时点亮。
; 使用单主方式,CPOL=1,CPHA=1,即空闲是为SPICLK高电平,且SPICLK在上CS_595

P2M1	DATA	0A4H
P2M2	DATA	0A5H

SPCTL	DATA	0E2H	; SPI设置寄存器
SPSTAT	DATA	0E1H	; SPI状态寄存器
SPDAT	DATA	0E3H	; SPI数据寄存器

CS_595		BIT	P2.4

		ORG	0000H
		AJMP	MAIN

		ORG	0100H
MAIN:		MOV	R7,#0			; 延时
		DJNZ	R7,$
		MOV	P2M1,#00H
		MOV	P2M2,#00H
	
SPI_INI:	MOV	A,#MSTRMODE1+SCPOL	; 设置SPI总线,上升沿有效
		ACALL	SETSPI
SEND_DAT:	
		MOV	R0,#0
		MOV	A,R0
SEND_DL1:	MOV	DPTR,#SENDDAT
		MOVC	A,@A+DPTR
		CLR	CS_595
		ACALL	MSEND_DAT		; 子程序中不能改R0
		SETB	CS_595
		INC	R0
		MOV	A,R0
		ACALL	DELAYS			; 子程序中不能改R0
		CJNE	A,#8,SEND_DL1
		SJMP	SEND_DAT

SENDDAT:  DB  00H,01H,02H,04H,03H,05H,06H,07H

 
; 延时函数
DELAYS:		
		MOV	R7,#100
DELAYS_L1:	MOV	R6,#0
DELAYS_L2:	MOV	R5,#0
		DJNZ	R5,$
		DJNZ	R6,DELAYS_L2
		DJNZ	R7,DELAYS_L1
		RET

$INCLUDE (LPC932SPI.INC)

END
		


⌨️ 快捷键说明

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