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

📄 led_shiftregistcontrolrowandcol.a51

📁 此文件是单片机控制LED滚动显示。开发环境keil c.
💻 A51
字号:
$NOMOD51

NAME	LEDSHIFTREGISTERCONTROL

P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
T2	BIT	090H.0
EA	BIT	0A8H.7
STC89C58RD_P4	DATA	0E8H
IE	DATA	0A8H
c_Col_SData	BIT	090H.5
EXF2	BIT	0C8H.6
RD	BIT	0B0H.7
ES	BIT	0A8H.4
IP	DATA	0B8H
RI	BIT	098H.0
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
T2EX	BIT	090H.1
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
c_Col_SOE	BIT	090H.2
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
SBUF	DATA	099H
PCON	DATA	087H
c_Col_SClk	BIT	090H.7
c_Col_SOut_High	BIT	090H.0
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
CP_RL2	BIT	0C8H.0
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
TH2	DATA	0CDH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
PT2	BIT	0B8H.5
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
EXEN2	BIT	0C8H.3
c_Col_SOut_Low	BIT	090H.1
REN	BIT	098H.4
T2CON	DATA	0C8H
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H

;User Define Bit 
;c_Col_Data bit 090H.5;
Col_SData 	bit P1.5;
Col_SClk 	bit P1.7;
Col_SOut_High 	bit P1.0;
Col_SOut_Low 	bit P2.7;

Row_SData       bit P1.4
Row_SCLK	bit P1.1
Row_SOut        bit P1.3

Col_SOE  	bit P1.2;

;----------------------

?PR?_ShT_LEDBoard_ColShiftOut?LEDSHIFTREGISTERCONTROL SEGMENT CODE 
?DT?_ShT_LEDBoard_ColShiftOut?LEDSHIFTREGISTERCONTROL SEGMENT DATA OVERLAYABLE 
?PR?_ShT_LEDBoard_RowShiftOut?LEDSHIFTREGISTERCONTROL SEGMENT CODE 
?DT?_ShT_LEDBoard_RowShiftOut?LEDSHIFTREGISTERCONTROL SEGMENT DATA OVERLAYABLE 
	EXTRN	DATA (ucColDataBuff_Low)
	EXTRN	DATA (ucColDataBuff_High)
	PUBLIC	_ShT_LEDBoard_RowShiftOut
	PUBLIC	_ShT_LEDBoard_ColShiftOut

	RSEG  ?DT?_ShT_LEDBoard_ColShiftOut?LEDSHIFTREGISTERCONTROL
?_ShT_LEDBoard_ColShiftOut?BYTE:
ucExtShiftCount?040:   DS   1
	ORG  1
ucByteCount?041:   DS   1
 ucBitCount?042:   DS   1
     ucTemp?043:   DS   1

	RSEG  ?DT?_ShT_LEDBoard_RowShiftOut?LEDSHIFTREGISTERCONTROL
?_ShT_LEDBoard_RowShiftOut?BYTE:
uiWriteValue?144:   DS   2
	ORG  2
    ucCount?145:   DS   1
     uiTemp?146:   DS   2

	RSEG  ?PR?_ShT_LEDBoard_ColShiftOut?LEDSHIFTREGISTERCONTROL
_ShT_LEDBoard_ColShiftOut:
	USING	0

	MOV  	ucExtShiftCount?040,R7

	Clr Col_SClk
	Clr Col_SOut_High

	MOV  	A,#LOW (ucColDataBuff_High)
	MOV  	R0,A

	Mov R2,#8
ShiftOutByte_HighScreen:
	  	Mov R3,#8
		Mov A,@R0
		CPL A
	
	ShiftOutBit_HighScreen:
		Rlc A
		Mov Col_SData,c
		
		SetB Col_SClk
		Clr  Col_SClk

		DJNZ R3,ShiftOutBit_HighScreen

		Inc R0
    	DJNZ R2,ShiftOutByte_HighScreen

	;扩展数据位移位操作
	  	Mov A,ucExtShiftCount?040
		JZ ShiftOutExtBit_HighScreenEnd

		Mov R3,A
		Mov A,@R0
		CPL A
	
ContinueShiftBit_HighSCreen:
		Rlc A
		Mov Col_SData,c
		
		SetB Col_SClk
		Clr  Col_SClk
		
		DJNZ R3,ContinueShiftBit_HighScreen

ShiftOutExtBit_HighScreenEnd:

;数据输出到显示屏由于上半屏下半屏及行合佑朊与时钟线数据,必须关闭显输出示内容。
;	SETB Col_SOE ;

	;数据锁存输出操作
	SetB Col_SOut_High
	Clr  Col_Sout_High

;操作下半屏数据移位输出
	MOV  	A,#LOW (ucColDataBuff_Low)
	MOV  	R0,A

	Mov R2,#8
ShiftOutByte_LowScreen:
	  	Mov R3,#8
		Mov A,@R0
		CPL A
	
	ShiftOutBit_LowScreen:
		Rlc A
		Mov Col_SData,c
		
		SetB Col_SClk
		Clr  Col_SClk

		DJNZ R3,ShiftOutBit_LowScreen

		Inc R0
    	DJNZ R2,ShiftOutByte_LowScreen

	;下半屏扩展数据位移位操作
	  	Mov A,ucExtShiftCount?040			
		JZ ShiftOutExtBit_LowScreenEnd

		Mov R3,A	;移位次数送计数器R3
		Mov A,@R0
		CPL A
ContinueShiftBit_LowSCreen:
		Rlc A
		Mov Col_SData,c
		
		SetB Col_SClk
		Clr  Col_SClk

		DJNZ R3,ContinueShiftBit_LowSCreen

ShiftOutExtBit_LowScreenEnd:
;下半屏数据列锁存输出。
	SetB Col_SOut_Low
	Clr  Col_Sout_Low
	SETB Col_SOE ;

	RET  	

	RSEG  ?PR?_ShT_LEDBoard_RowShiftOut?LEDSHIFTREGISTERCONTROL
_ShT_LEDBoard_RowShiftOut:

	MOV  	uiWriteValue?144,R6
	MOV  	uiWriteValue?144+01H,R7

	CLR  	Row_SClk
	CLR  	Row_SOut

	Mov  R3,#08
	Mov a,R6
	Cpl a

ShiftOutBit_Row_HighByte:
        RLC A
	MOV Row_SData,c

	SetB Row_SClk
	Clr  Row_SClk

	Djnz R3,ShiftOutBit_Row_HighByte


	Mov  R3,#08
	Mov a,R7
	CPL a

ShiftOutBit_Row_LowByte:
        RLC A
	MOV Row_SData,c

	SetB Row_SClk
	Clr  Row_SClk

	Djnz R3,ShiftOutBit_Row_LowByte

	SetB Row_SOut
	clr Row_Sout
	RET  	

	END

⌨️ 快捷键说明

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