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

📄 1302yybsz.asm

📁 16个LED旋转时钟
💻 ASM
📖 第 1 页 / 共 2 页
字号:
ORG 0000H
AJMP MA
ORG 0013H
AJMP DT
ORG 0030H			 
 
                      BTT DATA 50H
					  BYT DATA 51H
					  COM DATA 52H
					  RCV DATA 30H
					  XMT DATA 38H

 					  IO  BIT P1.5
					  DCLK BIT P1.6
					  RST BIT P1.4

					  K1 BIT P1.0             ;定义按键K1
                      K2 BIT P1.1             ;定义按键K2
					  K3 BIT P1.2
					  K4 BIT P1.3
				  ;/////////////////////////////////////////////////

                   MA:LCALL DYS
				      MOV P2,#0FFH
                      MOV P0,#0FFH
					  MOV P1,#0FFH        ;端口初始化
	  
	             	  CLR A
                      MOV R0,#20H
                   DD:MOV @R0,A
                      INC R0
                      CJNE R0,#5FH,DD

					  LCALL DYS
					   
					  MOV COM,#8Eh
                      MOV BYT,#1
                      MOV R0,#XMT
                      MOV XMT,#00h
                      LCALL XIE

					  LCALL DYS


					    MOV COM,#0BEh ;命令字节为BEh
                        MOV BYT,#8 ;多字节写入模式此模块为8 个
						MOV R0,#Xmt; 数据地址覆给R0
						MOV Xmt,#26h; 秒单元内容为59h
						MOV XMT+1,#30h; 分单元内容为59h
						MOV XMT+2,#19h; 时单元内容为13h
						MOV XMT+3,#31h; 日期单元内容为21h
						MOV XMT+4,#05h ;月单元内容为06h
						MOV XMT+5,#03h; 星期单元内容为03h
						MOV XMT+6,#08 ;年单元内容为00h
						MOV XMT+7,#2 ;写保护单元内容为00h
						LCALL XIE  ; 调用写入数据子程序



					  SETB EA
                      SETB EX1
                      CLR IT1

			           CLR F0




				        HH:MOV P0,#0FFH
						   MOV P2,#0FFH		
				       WZX:JB      F0,JP 
			           SK3:JB      K3,HH      ;检测按键K3
                           ACALL   YS          ;调用20ms延时消抖动
                           JB      K3,HH          ;如果K3为高电平,则是抖动
                      K3DD:JNB     K3,K3DD         ;等待K3按键释放

                          LCALL SX
                          LCALL BM

	                       CPL    F0

			   MOV COM,#80h ;命令字节为BEh
               MOV BYT,#1 ;多字节写入模式此模块为8 个
	           MOV R0,#XMT; 数据地址覆给R0
  	           MOV XMT,#80H
	           LCALL XIE  ; 调用写入数据子程序




					       JB     F0,JP

	          MOV COM,#80h ;命令字节为BEh
              MOV BYT,#1 ;多字节写入模式此模块为8 个
	          MOV R0,#XMT; 数据地址覆给R0
  	          MOV XMT,#00H
	          LCALL XIE  ; 调用写入数据子程序

                           JNB     F0,SK3
					

  JP: LCALL XIANX




	   JB      K1,SK2         ;检测按键K1
      ACALL   YY        ;调用20ms延时消抖动
      JB      K1,SK2          ;如果K1为高电平,则是抖动
K1DD: JNB     K1,K1DD         ;等待K1按键释放

	 INC 43H
	 MOV A,43H
	 CJNE A,#10,VB2
	 MOV 43H,#00H
	 INC 42H
VB1:MOV A,42H
	 CJNE A,#06,VB2
	 MOV 42H,#00H
VB2:MOV A,42H
    RL A
	 RL A
	 RL A
	 RL A
	 ADD A,43H
	 MOV 31H,A

  
      MOV COM,#82h ;命令字节为BEh
      MOV BYT,#1 ;多字节写入模式此模块为8 个
	   MOV R0,#XMT; 数据地址覆给R0
  	   MOV XMT,31H	  
	   LCALL XIE  ; 调用写入数据子程序
      AJMP    JP
 
      

SK2:  JB      K2,SK3       ;检测按键K2
      ACALL   YY         ;调用20ms延时消抖动
      JB      K2,SK3         ;如果K2为高电平,则是抖动     
K2DD: JNB     K2,K2DD         ;等待K2按键释放

    INC 45H
	MOV A,45H
	CJNE A,#10,VB3
	MOV 45H,#00H
	INC 44H
VB3:MOV A,44H
	CJNE A,#03,VB4
	MOV 44H,#00H
VB4:MOV A,44H
	RL A
	RL A
	RL A
	RL A
	ADD A,45H
	CJNE A,#36,TTV
    CLR A 
TTV:MOV 32H,A				  



      MOV COM,#84h ;命令字节为BEh
      MOV BYT,#1 ;多字节写入模式此模块为8 个
	  MOV R0,#XMT; 数据地址覆给R0
  	  MOV XMT,32H
	  LCALL XIE  ; 调用写入数据子程序
      AJMP    JP



           SUAN:MOV A,34H
		CJNE A,#5,SS1
		MOV A,33H
		CJNE A,#49,RET_B	   ;在编码中31在16进制中10进制49
		SETB 20H.1             ;20H.1 SHENRI
 		RET
            SS1:CJNE A,#8,RET_B
		MOV A,33H
		CJNE A,#5,SS2
		SETB 20H.2             ;20H.2 ZHOUNINA
		RET
            SS2:CJNE A,#7,RET_B
		SETB 20H.3             ;20H.3 QIXI
          RET_B:RET





			  ;////////////////////////////////////////

		          	 
		       DT:LCALL SX
				    LCALL BM
					 LCALL SUAN
					 JB 20H.1,SHEN
				    JB 20H.2,ZHOU 
					 JB 20H.3,QIXI
					 LCALL MAIN 
					 MOV 3DH,#00H
					 MOV 3EH,#00H
					 MOV 3FH,#00H
					 RETI



	            SHEN:JB 20H.4,V1
					 JB 20H.5,V22			     
		             LCALL SXXXX
					 CJNE A,#0EH,RET_A
					 SETB 20H.4
	 	          V1:LCALL DDF
		             INC 21H
		             MOV A,21H
			         CJNE A,#1BH,RET_A
					 SETB 20H.5
					 CLR 20H.4
			     V22:LCALL DDFF
				     INC 21H
					 MOV A,21H
					 CJNE A,#2AH,RET_A
			          MOV 21H,#00H
			          MOV 20H,#00H
   	            RET_A:RETI

				ZHOU:JB 20H.4,V2
		             LCALL SXXXX
					 CJNE A,#0EH,RET_A
					 SETB 20H.4
	 	          V2:MOV DPTR,#NIAN
					 LCALL XSDF
					 MOV DPTR,#WOKAO 
					 LCALL XSDF
					 MOV DPTR,#SAN
					 LCALL XSDF
					 MOV DPTR,#SHI
				    LCALL XSDF
					 MOV DPTR,#XIANG
	     			 LCALL XSDF
		             INC 21H
		             MOV A,21H
			         CJNE A,#1CH,RET_V
			         MOV 21H,#00H
			         MOV 20H,#00H
   	           RET_V:RETI

			         
				QIXI:JB 20H.4,V3
		             LCALL SXXXX
					 CJNE A,#0EH,RET_A
					 SETB 20H.4
	 	          V3:MOV DPTR,#LEE
					 LCALL XSDF
					 MOV DPTR,#KUAI
					 LCALL XSDF
					 MOV DPTR,#XI
					 LCALL XSDF
					 MOV DPTR,#QI
					 LCALL XSDF
		             INC 21H
		             MOV A,21H
			          CJNE A,#1CH,RET_C
			          MOV 21H,#00H
			          MOV 20H,#00H
   	           RET_C:RETI

			   SXXXX:LCALL SX              
					 LCALL BM
					 LCALL MAIN
		             INC 21H 
		             MOV A,21H
					 RET
			 ;/////////////////////////////////
	
	DDF:MOV R2,#00H
        MOV R3,#00H

  WGQ_A:MOV A,R2
        MOV DPTR,#HB
        MOVC A,@A+DPTR
        MOV 22H,A     
        INC R2

  WGQ_B:MOV A,R3
        MOV DPTR,#HB1
        MOVC A,@A+DPTR
        MOV 24H,A
        INC R3

        LCALL XIAN
        CJNE R3,#56,WGQ_A
		RET			 


				  	
   DDFF:MOV R2,#00H
        MOV R3,#00H

  WGQ_A1:MOV A,R2
        MOV DPTR,#TA
        MOVC A,@A+DPTR
        MOV 22H,A     
        INC R2

        MOV A,R3
        MOV DPTR,#TA1
        MOVC A,@A+DPTR
        MOV 24H,A
        INC R3

        LCALL XIAN
        CJNE R3,#56,WGQ_A1
		RET	


				MAIN:MOV R0,#40H
					 MOV R1,#46H

					 MOV R7,#06H

				  WA:MOV 3FH,@R0
				     MOV 3EH,@R1
					 
					 LCALL SZ
					 INC R0
					 INC R1	
					 
					 INC 23H
					 MOV A,23H
					 CJNE A,#02H,WO
					 LCALL MAOH
				  WO:CJNE A,#04H,WOR
					 LCALL MAOH

				 WOR:DJNZ R7,WA
					 MOV 23H,#00H
					 RET


				  SZ:MOV A,3FH
				     MOV DPTR,#CB
					 MOVC A,@A+DPTR
					 MOV R3,A
					 
					 MOV A,3EH
					 MOV DPTR,#CB
					 MOVC A,@A+DPTR
					 MOV R2,A

					 MOV R4,#05H
				     
				 ETA:MOV A,R3
					 MOV DPTR,#SZQ
					 MOVC A,@A+DPTR
					 MOV 22H,A
					 INC   R3

					 MOV A,R2
					 MOV DPTR,#SZQ
					 MOVC A,@A+DPTR
					 MOV 24H,A
					 INC   R2

					 LCALL XIAN
					 DJNZ R4,ETA
					 LCALL K
			

					 RET

				  
					       	  BM:MOV R0,#40H
					             MOV R1,#41H

							     MOV 3DH,30H
								 MOV A,30H
								 LCALL BXB
							
								 MOV 3DH,31H
								 MOV A,31H
								 LCALL BXB
							
								 MOV 3DH,32H
								 MOV A,32H
								 LCALL BXB

								 MOV 3DH,33H
								 MOV A,33H
								 LCALL BXB

								 MOV 3DH,34H
								 MOV A,34H
								 LCALL BXB

								 MOV 35H,36H

								 MOV 3DH,35H
								 MOV A,35H
								 LCALL BXB

								 RET
				BXB:MOV B,#16
					DIV AB
				    MOV @R1,A
				    MOV @R0,B
					LCALL LF1
					RET
							 
					
		       XIANX:MOV P0,31H
					 MOV P2,32H
					 RET
                     			
				XIAN:MOV P0,24H
				     MOV P2,22H
					 LCALL YS
					 RET

				   K:MOV P0,#0FFH
				     MOV P2,#0FFH
					 LCALL YS
					 RET

				  YS:MOV R6,#10H
				  NX:MOV R5,#18H
					 DJNZ R5,$
					 DJNZ R6,NX
					 RET
				  


				 DYS:MOV R6,#0FFH
				 NX1:MOV R5,#0FFH
					 DJNZ R5,$
					 DJNZ R6,NX1
					 RET

				  YY:MOV R6,#0E0H
				 NX2:MOV R5,#18H
					 DJNZ R5,$
					 DJNZ R6,NX2
					 RET
							
                 SX:MOV COM,#0BFh ;命令字节为BFh
                    MOV BYT,#8 ;多字节读出模式此模块为8 个
                    MOV R1,#RCV ;数据地址覆给R1
                    ACALL DU; 调用读出数据子程序
                    RET         

⌨️ 快捷键说明

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