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

📄 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
					  K5 BIT P1.7
					  K6 BIT P3.0
					  K7 BIT P3.1
                      K8 BIT P3.5   

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

                   MA:MOV P2,#0FFH
                      MOV P0,#0FFH
					  MOV P1,#0FFH        ;端口初始化
                 	  SETB EA
                      SETB EX1
                      CLR IT1





	  
	             	  CLR A
                      MOV R0,#20H
                   DD:MOV @R0,A
                      INC R0
                      CJNE R0,#5FH,DD
					   


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




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


			HH:MOV P0,#0FFH
			   MOV P2,#0FFH
			   JB K1,KK2
			   LCALL KFS
		   KK2:JB K2,KK3
			   LCALL KRY
		   KK3:JB K3,HH
			   LCALL KNI
			   CLR F0
			   LCALL SX
			   LCALL BM
			   AJMP HH
		  





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

			   LCALL TTY

			   CPL F0

			   KK4:LCALL XIANSHI
				   JB K4,KK5 ;SHII
				   LCALL SHII
			   KK5:JB K5,KKA ;FEN
			       LCALL FEN
			   KKA:JNB K1,K1DD
			       LCALL SX
				   LCALL BM
			       AJMP KK4
				   
		      TZ1:LCALL TZ
			      AJMP HH

 FEN:LCALL YY
     JB K5,KK5
 TQ1:JNB K5,TQ1
	 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
     LCALL YXX
	 ADD A,43H
	 MOV 31H,A
	 LCALL XX1
	 RET

SHII:LCALL YY
     JB K4,KK4
 TQ2:JNB K4,TQ2
	 INC 45H
	 MOV A,45H
	 CJNE A,#10,VB4
	 MOV 45H,#00H
	 INC 44H
 VB3:MOV A,44H
 	 CJNE A,#03,VB4
	 MOV 44H,#00H
 VB4:MOV A,44H
 	 LCALL YXX
 	 ADD A,45H
	 CJNE A,#36,TTV
     CLR A 
 TTV:MOV 32H,A
     LCALL XX2
     RET




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


		 	   JB F0,TZ2

			   LCALL TTY

			   CPL F0

			   KK6:LCALL XIANYUE
				   JB K6,KK7 ;RRI
				   LCALL RRI
			   KK7:JB K7,KKB ;YUE
			       LCALL YUE
			   KKB:JNB K2,K2DD
			       LCALL SX
				   LCALL BM
			       AJMP KK6	

			TZ2:LCALL TZ
			TMD:AJMP HH
			

 RRI:LCALL YY
     JB K6,KK6
 TQ3:JNB K6,TQ3
	 INC 47H
	 MOV A,47H
	 CJNE A,#10,VB6
	 MOV 47H,#00H
	 INC 46H
 VB5:MOV A,46H
	 CJNE A,#04,VB6
	 MOV 46H,#00H
 VB6:MOV A,46H
     LCALL YXX
	 ADD A,47H
	 MOV 33H,A
	 LCALL XX3
	 RET
			    
 YUE:LCALL YY
     JB K7,KK7
 TQ4:JNB K7,TQ4
	 INC 49H
	 MOV A,49H
	 CJNE A,#10,VB8
	 MOV 49H,#00H
	 INC 48H
     MOV A,48H
	 CJNE A,#02,VB8
	 MOV 48H,#00H
 VB8:MOV A,48H
     LCALL YXX
	 ADD A,49H
	 MOV 34H,A
	 LCALL XX4
	 RET 
			  


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


		 	   JB F0,TZ3

			   LCALL TTY

			   CPL F0

			   KK8:LCALL XIANNIAN
			       JB K8,KKC ;NIAN
				   LCALL YY 
			       LCALL NIANN
			   KKC:JNB K3,K3DD
			       LCALL SX
				   LCALL BM
			       AJMP KK8	

			TZ3:LCALL TZ
			KNM:AJMP HH
			    

			 NIANN:LCALL YY
			       JB K8,KK8
				   INC 	35H

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

			      RET


XIANSHI:MOV P0,31H
		MOV P2,32H
	    RET
                     	
XIANYUE:MOV P0,33H
        MOV P2,34H
        RET

XIANNIAN:MOV P0,35H
		 RET



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



	  YXX:RL A
	      RL A
		  RL A
		  RL A
		  RET


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

				MOV P0,#0FFH
				MOV P2,#0FFH
				CLR F0
				RET

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

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

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

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

   

   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     
		                                   LCALL SX              
					 LCALL BM
					 LCALL MAIN
		             INC 21H 
		             MOV A,21H
		             CJNE A,#0EH,RET_A
		             SETB 20H.4
	 	          V1:LCALL DDF
		             INC 21H
		             MOV A,21H
			          CJNE A,#1BH,RET_A
			          MOV 21H,#00H
			          MOV 20H,#00H
   	       RET_A:RETI

				ZHOU:JB 20H.5,V2
		             LCALL SX
					    LCALL BM
					    LCALL MAIN
		             INC 21H
		             MOV A,21H
		             CJNE A,#0EH,RET_V
		             SETB 20H.5
	 	          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 SX
					    LCALL BM
					    LCALL MAIN
		             INC 21H
		             MOV A,21H
		             CJNE A,#0EH,RET_C
		             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,#1BH,RET_C
			          MOV 21H,#00H
			          MOV 20H,#00H
   	           RET_C:RETI


					 
			 ;/////////////////////////////////
	
	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

					 DJNZ R7,WA
					 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 A,30H
								 LCALL BXB
							
								 MOV A,31H
								 LCALL BXB
							
								 MOV A,32H
								 LCALL BXB
								
								 MOV A,33H
								 LCALL BXB

								 MOV A,34H
								 LCALL BXB

								 MOV 35H,36H
								 MOV A,35H
								 LCALL BXB

								 RET

⌨️ 快捷键说明

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