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

📄 点阵.asm

📁 简绍了关于proteus 下的16*16点阵实现方案
💻 ASM
字号:
ORG 0000H
AJMP READY
ORG 000BH
AJMP INT_0
;只需更改点阵数据和要显示的总字数
READY:MOV P0,#0FFH
      MOV P1,#0FFH
	  MOV P2,#0FFH
	  MOV P3,#0FFH
	  MOV SP,#70H
	  MOV 36H,#2D		 
	  MOV 37H,#00H
;************************************************
	  MOV 3AH,#10D         ;设置要显示的总字数
;************************************************
      LCALL DATA_CHUSHI 
	  SETB EA
	  SETB ET0
	  MOV TMOD,#01H
	  MOV TH0,#0A6H
	  MOV TL0,#00H
	  SETB TR0
;主程序
MAIN:ACALL DISP_READY
     ACALL KEY
	 AJMP MAIN

;***********************************************
DATA_CHUSHI:MOV 35H,#00H
	  MOV 38H,#00H
	  MOV 39H,#01H		 ;初始化时已显示第一个字
	  MOV 3BH,#0A0H		  ;暂存r0指向地址
      MOV DPTR,#DATA1
	  MOV R0,#0A0H		;点阵数据存放地址
	  MOV 30H,#32D		;数据字节数	      
SEND_DATA0:MOV A,#00H			 
          MOVC A,@A+DPTR
		  MOV @R0,A
		  INC R0
		  INC DPTR
		  DJNZ 30H,SEND_DATA0
;***********************************************	      
		  MOV R0,#0C0H		;点阵数据存放地址
	      MOV 30H,#32D		;数据字节数
SEND_DATA1:MOV A,#00H			 
          MOVC A,@A+DPTR
		  MOV @R0,A
		  INC R0
		  INC DPTR
		  DJNZ 30H,SEND_DATA1
;***********************************************
          MOV DPTR,#DATA1+32	      
 		  MOV R0,#80H		;点阵数据存放地址
	      MOV 30H,#32D		;数据字节数
SEND_DATA2:MOV A,#00H			 
          MOVC A,@A+DPTR
		  MOV @R0,A
		  INC R0
		  INC DPTR
		  DJNZ 30H,SEND_DATA2 
		  RET  
		   	  
;***********************************************
KEY:MOV P3,#0FFH
    MOV A,P3
	ANL A,#00000011B
	CJNE A,#00000011B,KEY_PANDUAN
	RET
KEY_PANDUAN:MOV 34H,A
            ACALL KEY_DELAY
			MOV A,P3
			ANL A,#00000011B
			CJNE A,34H,KEY_EXIT
			ACALL KEY_CHULI
KEY_EXIT:    RET
;***************************
KEY_CHULI:JB ACC.0,KEY_2
		  MOV A,37H
		  ADD A,#40H
		  MOV 37H,A
		  LCALL DATA_CHUSHI
		  RET
KEY_2:    JB ACC.1,KEY_CHULI_EXIT
		  INC 36H
		  INC 36H
		  MOV A,36H
		  CJNE A,#14D,CHANGE_36H
		  MOV A,#2D
CHANGE_36H:MOV 36H,A
           MOV 35H,#00H
		   RET

KEY_CHULI_EXIT:RET
;***************************
KEY_DELAY:
DLY_LP1: MOV R1,#20
	MOV	R6,#50
DLY_LP2:
	NOP
	NOP
	NOP
	DJNZ	R6,DLY_LP2
	DJNZ	R7,DLY_LP1

END_DLYMS:
	RET 
;***************************


;显示程序
DISP_READY:MOV R0,3BH
           
           MOV 30H,#16D	  
		   
		   MOV 31H,#00H	  
		   
DISP:MOV A,@R0
     MOV P0,A
	 INC R0
	 MOV A,@R0
	 MOV P2,A
	 MOV P1,31H
	 ACALL DISP_DELAY
	 MOV P0,#00H
	 MOV P1,#0FFH
	 MOV P2,#00H
	 INC 31H
	 INC R0
	 DJNZ 30H,DISP
DISP_EXIT: 
          RET

;显示延时           
DISP_DELAY:MOV 32H,#2
D1:MOV 33H,#150
   DJNZ 33H,$
   DJNZ 32H,D1
   RET


;中断处理程序
INT_0:PUSH ACC
      MOV TH0,#0A6H
	  MOV TL0,#00H
      INC 35H
      MOV A,35H
	  CJNE A,36H,INT0_EXIT	
	  MOV 35H,#00H
	  ACALL WHICH_WAY
INT0_EXIT:POP ACC 
          RETI
;*********************************************
WHICH_WAY:MOV A,37H
          CJNE A,#00H,WAY2
		  ACALL YIDONG1
		  RET
WAY2:     CJNE A,#40H,WAY3
		  ACALL YIDONG2
		  RET
WAY3:     CJNE A,#80H,WAY4
		  ACALL YIDONG3
		  RET
WAY4:     ACALL YIDONG4
		  RET
;*********************************************
YIDONG1:   MOV 50H,#0A1H
		  MOV 51H,#0C1H
		  MOV 3CH,#16D
       	  INC 38H
		  MOV A,38H
		  CJNE A,#16D,YIDONG1_THEN1
		  MOV 38H,#00H
		  INC 39H
		  MOV A,39H
		  CJNE A,3AH,YIDONG1_THEN
		  MOV 39H,#00H
		  MOV DPTR,#DATA1
YIDONG1_THEN:
		  MOV 3CH,#32D
		  MOV R1,#0C0H
YIDONG1_SEND_DATA:MOV A,#00H
                 MOVC A,@A+DPTR
				 MOV @R1,A
				 INC R1
				 INC DPTR
				 DJNZ 3CH,YIDONG1_SEND_DATA
				 MOV 3CH,#16D
YIDONG1_THEN1: 
           MOV R1,51H
           MOV A,@R1
		   RLC A
		   MOV @R1,A
		   DEC R1
		   MOV A,@R1
		   RLC A
		   MOV @R1,A
		   MOV R1,50H
		   MOV A,@R1
		   RLC A
		   MOV @R1,A
		   DEC R1
		   MOV A,@R1
		   RLC A
		   MOV @R1,A
		   INC 50H
		   INC 50H
		   INC 51H
		   INC 51H
		   DJNZ 3CH,YIDONG1_THEN1         
           RET

;*********************************************
YIDONG2:MOV 50H,#0A0H
        MOV 51H,#80H           
		MOV 3CH,#16D
		INC 38H
		MOV A,38H
		CJNE A,#16D,YIDONG2_THEN1
		MOV 38H,#00H
        INC 39H
		MOV A,39H
	    CJNE A,3AH,YIDONG2_THEN
	    MOV 39H,#00H
        MOV DPTR,#DATA1
YIDONG2_THEN:MOV 3CH,#32D
		MOV R1,#80H
YIDONG2_SEND_DATA:MOV A,#00H
                  MOVC A,@A+DPTR
				  MOV @R1,A
				  INC R1
				  INC DPTR
				  DJNZ 3CH,YIDONG2_SEND_DATA
				  MOV 3CH,#16D
YIDONG2_THEN1:MOV R1,51H
             MOV A,@R1
			 RRC A
			 MOV @R1,A
			 INC R1
			 MOV A,@R1
			 RRC A
			 MOV @R1,A

			 MOV R1,50H
			 MOV A,@R1
			 RRC A
			 MOV @R1,A
			 INC R1
			 MOV A,@R1
			 RRC A
			 MOV @R1,A

			 INC 50H
			 INC 50H
			 INC 51H
			 INC 51H
			 DJNZ 3CH,YIDONG2_THEN1
			 RET
;*********************************************
YIDONG3:INC 3BH
        INC 3BH
		MOV 30H,#01H
		INC 38H
		MOV A,38H
		CJNE A,#16D,YIDONG3_EXIT
		MOV 3BH,#0A0H
		MOV 38H,#00H
		MOV 3CH,#32D
        MOV 50H,#0A0H
		MOV 51H,#0C0H
YIDONG3_LOOP:MOV R1,51H
             MOV A,@R1
			 MOV R1,50H
			 MOV @R1,A
			 INC 50H
			 INC 51H
			 DJNZ 3CH,YIDONG3_LOOP
			 INC 39H
			 MOV A,39H
			 CJNE A,3AH,YIDONG3_THEN
			 MOV 39H,#00H
			 MOV DPTR,#DATA1

YIDONG3_THEN:MOV R1,#0C0H
             MOV 3CH,#32D
YIDONG3_THEN2:MOV A,#00H
             MOVC A,@A+DPTR
			 MOV @R1,A
			 INC R1
			 INC DPTR
			 DJNZ 3CH,YIDONG3_THEN2
YIDONG3_EXIT:RET
;*********************************************
YIDONG4:DEC 3BH
        DEC 3BH
		MOV 30H,#01H
		INC 38H
		MOV A,38H
		CJNE A,#16D,YIDONG4_EXIT
		MOV 3BH,#0A0H
		MOV 38H,#00H
		MOV 3CH,#32D
        MOV 50H,#0A0H
		MOV 51H,#80H
YIDONG4_LOOP:MOV R1,51H
             MOV A,@R1
			 MOV R1,50H
			 MOV @R1,A
			 INC 50H
			 INC 51H
			 DJNZ 3CH,YIDONG4_LOOP
			 INC 39H
			 MOV A,39H
			 CJNE A,3AH,YIDONG4_THEN
			 MOV 39H,#00H
			 MOV DPTR,#DATA1

YIDONG4_THEN:MOV R1,#80H
             MOV 3CH,#32D
YIDONG4_THEN2:MOV A,#00H
             MOVC A,@A+DPTR
			 MOV @R1,A
			 INC R1
			 INC DPTR
			 DJNZ 3CH,YIDONG4_THEN2
YIDONG4_EXIT:RET
;*********************************************

DATA1:DB 04H,080H,0EH,0A0H,078H,090H,08H,090H,08H,084H,0FFH,0FEH,08H,080H,08H,090H,0AH,090H,0CH,060H,018H,040H,068H,0A0H,09H,020H,0AH,014H,028H,014H,010H,0CH
DB 0FH,0E0H,08H,020H,08H,020H,0FH,0E0H,08H,020H,08H,020H,0FH,0E0H,00H,04H,0FFH,0FEH,01H,00H,09H,020H,09H,0F0H,09H,00H,015H,00H,023H,06H,040H,0FCH
DB 02H,040H,044H,044H,02BH,0F8H,010H,050H,028H,064H,04BH,0FEH,088H,080H,09H,08H,01BH,0FCH,02DH,08H,049H,08H,089H,0F8H,09H,08H,09H,08H,029H,0F8H,011H,08H
DB 02H,040H,044H,044H,02BH,0F8H,010H,050H,028H,064H,04BH,0FEH,088H,080H,09H,08H,01BH,0FCH,02DH,08H,049H,08H,089H,0F8H,09H,08H,09H,08H,029H,0F8H,011H,08H
DB 00H,00H,01H,080H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,01H,080H,01H,080H,01H,080H,00H,00H,01H,080H,03H,0C0H,01H,080H,00H,00H,00H,00H
DB 02H,00H,02H,00H,07H,0F0H,08H,020H,018H,040H,025H,080H,02H,080H,0CH,080H,071H,0FCH,02H,08H,0CH,010H,012H,020H,021H,0C0H,01H,00H,0EH,00H,070H,00H
DB 02H,00H,02H,00H,07H,0F0H,08H,020H,018H,040H,025H,080H,02H,080H,0CH,080H,071H,0FCH,02H,08H,0CH,010H,012H,020H,021H,0C0H,01H,00H,0EH,00H,070H,00H
DB 01H,00H,01H,00H,01H,04H,0FFH,0FEH,01H,00H,01H,00H,03FH,0F0H,08H,020H,08H,020H,04H,040H,02H,080H,01H,00H,02H,080H,0CH,060H,030H,01EH,0C0H,04H
DB 010H,040H,010H,040H,010H,050H,013H,0F8H,0FCH,040H,010H,048H,017H,0FCH,018H,010H,030H,014H,0D7H,0FEH,012H,010H,011H,010H,011H,010H,010H,010H,050H,050H,020H,020H
DB 00H,00H,01H,080H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,03H,0C0H,01H,080H,01H,080H,01H,080H,00H,00H,01H,080H,03H,0C0H,01H,080H,00H,00H,00H,00H

⌨️ 快捷键说明

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