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

📄 16x16.asm

📁 最简单的16x16的显示屏,有原理图和实际硬件调试后通过的全部代码!一起交流,共同进步!
💻 ASM
字号:
         SCLK_595   EQU  P1.2   ;时钟
         SDATA_595  EQU  P1.1   ;数据
		 RCK_595    EQU  P1.0   ;锁存
		 H1  BIT   00H
				ORG 00H
				LJMP  START
				ORG  0030H
START:			MOV  P0,#0FFH
                MOV  P2,#0FFH 
				MOV  R0,#0
	 	        MOV  R1,#0	   	;表变址
				MOV  R2,#8		;数据移位控制变量
				MOV  R3,#0	    ;行控制数
				MOV  R4,#16	    ;控制字的个数
			    MOV  R5,#50	;一个字显示次数
				MOV  R6,#0FEH
				SETB  H1
 WRITE:	        MOV  DPTR,#TAB
 WRITE1:        MOV  A,R1
				MOVC A,@A+DPTR
				MOV  2AH,A		  //2AH送数据
				LCALL  WR_595	  //送一位数据
				INC   R1
				MOV   A,R1
				MOVC  A,@A+DPTR
				MOV  2AH,A
				LCALL WR_595
				LCALL  OUT_595	   //输出锁存
	            LCALL  OUT_8550	   //行输出
				MOV   P0,#0FFH
				MOV   P2,#0FFH
				INC   R1
				CJNE  R1,#32,WRITE  //一屏字幕显示完
				MOV   R1,#0
				DJNZ  R5,WRITE
				MOV   R5,#50
WRITE2:        	MOV  DPTR,#TAB+32
WRITE22:        MOV  A,R1
				MOVC A,@A+DPTR
				MOV  2AH,A		  //2AH送数据
				LCALL  WR_595	  //送一位数据
				INC   R1
				MOV   A,R1
				MOVC  A,@A+DPTR
				MOV  2AH,A
				LCALL WR_595
				LCALL  OUT_595	   //输出锁存
	            LCALL  OUT_8550	   //行输出
				MOV   P0,#0FFH
				MOV   P2,#0FFH
				INC   R1
				CJNE  R1,#32,WRITE2  //一屏字幕显示完
				MOV   R1,#0
				DJNZ  R5,WRITE2
				MOV   R5,#50

WRITE3:        	MOV  DPTR,#TAB+64
WRITE33:        MOV  A,R1
				MOVC A,@A+DPTR
				MOV  2AH,A		  //2AH送数据
				LCALL  WR_595	  //送一位数据
				INC   R1
				MOV   A,R1
				MOVC  A,@A+DPTR
				MOV  2AH,A
				LCALL WR_595
				LCALL  OUT_595	   //输出锁存
	            LCALL  OUT_8550	   //行输出
				MOV   P0,#0FFH
				MOV   P2,#0FFH
				INC   R1
				CJNE  R1,#32,WRITE3  //一屏字幕显示完
				MOV   R1,#0
				DJNZ  R5,WRITE3
				MOV   R5,#50
WRITE4:        	MOV  DPTR,#TAB+96
WRITE44:        MOV  A,R1
				MOVC A,@A+DPTR
				MOV  2AH,A		  //2AH送数据
				LCALL  WR_595	  //送一位数据
				INC   R1
				MOV   A,R1
				MOVC  A,@A+DPTR
				MOV  2AH,A
				LCALL WR_595
				LCALL  OUT_595	   //输出锁存
	            LCALL  OUT_8550	   //行输出
				MOV   P0,#0FFH
				MOV   P2,#0FFH
				INC   R1
				CJNE  R1,#32,WRITE4  //一屏字幕显示完
				MOV   R1,#0
				DJNZ  R5,WRITE4
				MOV   R5,#50

WRITE5:        	MOV  DPTR,#TAB+128
WRITE55:        MOV  A,R1
				MOVC A,@A+DPTR
				MOV  2AH,A		  //2AH送数据
				LCALL  WR_595	  //送一位数据
				INC   R1
				MOV   A,R1
				MOVC  A,@A+DPTR
				MOV  2AH,A
				LCALL WR_595
				LCALL  OUT_595	   //输出锁存
	            LCALL  OUT_8550	   //行输出
				MOV   P0,#0FFH
				MOV   P2,#0FFH
				INC   R1
				CJNE  R1,#32,WRITE5  //一屏字幕显示完
				MOV   R1,#0
				DJNZ  R5,WRITE5
				MOV   R5,#50

                LJMP START
;---------------------------------------------------------------
;行输出子程序
;---------------------------------------------------------------
OUT_8550:	  MOV DPTR,#TTAB
			  JB  H1,P0KSC
P2KSC: 		  MOV  A,R3  
P2KSC1: 	  MOVC A,@A+DPTR
              MOV  P2,A
			  LCALL  DELAY
			  INC  R3
              CJNE R3,#8,LOOP
			  MOV  R3,#0
			  SETB  H1		
			  RET
P0KSC:		  MOV  A,R3  
P0KSC1:		  MOVC A,@A+DPTR
              MOV P0,A
			  LCALL  DELAY
			  INC  R3
			  CJNE  R3,#8,LOOP
			  MOV  R3,#0
			  CLR  H1  
 LOOP:        RET	   

;---------------------------------------------------------------
;输出锁存器输出数据子程序
;---------------------------------------------------------------
OUT_595:
                CLR  RCK_595
                NOP
                SETB RCK_595      ;上升沿将数据送到输出锁存器
                NOP
                CLR  RCK_595
                RET
;--------------------------------------------------------------
;移位寄存器接收数据子程序
;--------------------------------------------------------------
WR_595:
                MOV R2,#08H
                MOV A,2AH
				cpl  a
WR_LOOP:		
                RLC A
                MOV SDATA_595,C
                SETB SCLK_595       ;上升沿发生移位
				NOP
                CLR SCLK_595
				NOP
                DJNZ R2,WR_LOOP
				MOV  R2,#8
                RET
;--------------------------------------------------------------
;延时子程序
;--------------------------------------------------------------
DELAY:
                MOV 43H,#14H           ; every LED(2ms)
   DL2:         MOV 44H,#14H
   DL1:
                DJNZ 44H,DL1
                DJNZ 43H,DL2
                RET
TTAB:   DB  0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
TAB:
;大   CB4F3
DB 080H,000H,080H,000H,080H,000H,080H,000H
DB 080H,000H,0FFH,07FH,080H,000H,040H,001H
DB 040H,001H,040H,002H,020H,002H,020H,004H
DB 010H,008H,008H,018H,004H,070H,002H,020H 

;家   CBCD2
DB 040H,000H,080H,000H,0FCH,07FH,002H,020H
DB 0FAH,017H,080H,000H,040H,000H,0F0H,004H
DB 04EH,00DH,020H,003H,098H,003H,066H,00DH
DB 018H,071H,006H,021H,0A0H,000H,040H,000H

;好   CBAC3
DB 008H,000H,088H,03FH,008H,010H,008H,008H
DB 03FH,004H,024H,004H,024H,004H,0E4H,07FH
DB 022H,004H,026H,004H,018H,004H,010H,004H
DB 028H,004H,064H,004H,022H,005H,001H,002H 

;!   CA3A1
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 008H,000H,008H,000H,008H,000H,008H,000H
DB 008H,000H,008H,000H,008H,000H,008H,000H
DB 008H,000H,000H,000H,008H,000H,000H,000H

;  黑屏
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H
END

⌨️ 快捷键说明

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