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

📄 clock0.asm

📁 智能LED电子钟源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
			;***************
			;clock0 _program  2000-5-17
			;***************

			key_power  equ 08h
			timers     equ key_power+1
	;**************************************************		
			min        equ timers+2h
			hour       equ timers+3h
			week       equ timers+4h
			day        equ timers+5h
			mou        equ timers+6h
			
			al1_m        equ  timers+7h
			al1_h        equ  al1_m+1h
			al2_m        equ  al1_m+2h
			al2_h        equ  al1_m+3h  ;ram addres at 14h
			sec          equ  al2_h+1h
		        timer_no     equ  sec+1h
			year         equ  timer_no+1h
	;*************************************************	
			
			
			time_led1  equ 24h
			time_led2  equ time_led1+1
			time_led3  equ time_led2+1
	      		 
			led1        equ  time_led3+1h
			led2        equ led1+1
		        led3        equ led2+1
			led4        equ led3+1
		        led5        equ led4+1
			
			timer_ting   equ led5+1
			timer_charge equ timer_ting+1
			
			;charge_t    equ timer_charge+1
			;charge_d1   equ charge_t+1
			
		
			seach_led    equ   timer_charge+1h
			seach_key    equ   seach_led+1h
			seach_set    equ   seach_key+1h
			moue_2       equ   seach_set+1h 			
			beep_timer   equ   moue_2+1h
			
		        led_1     bit p3.0
		        led_2     bit p3.1
		        led_3     bit p3.2
		        led_4     bit p3.3
		        led_5     bit p3.4
		    	
		    	jian_f        bit p3.5
		    	
		       HA              BIT P1.7
		       key_f_charge    bit p3.7
		       
		       
		       ting_f       bit 00h
		       charge_f      bit ting_f+1h
		       
		       all_am      bit charge_f+1h
		       
		       al1_am    bit all_am+1h
		       al2_am    bit al1_am+1h
			
			timer_50ms  bit  al2_am+1h
			timer_1s    bit  al2_am+2h
			timer_3s    bit  al2_am+3h
		;	timer_20s   bit  al2_am+4h
			timer_1min  bit  al2_am+5h
			timer_10min bit  al2_am+6h
			
			timer_am    bit  al2_am+7h
			key_set_f   bit  al2_am+8h
			sec_flash_f bit  key_set_f+1h
			c_f         bit  sec_flash_f+1h			
			date_f      bit  c_f+1h			
			stop_f	    bit date_f+1h
			adj_f       bit stop_f+1h
			all1_am     bit adj_f+1h			
			al_f        bit all1_am+1h
			al_out_f    bit al_f+1h
			c_temp      bit al_out_f+1h			
			
						       
			tih       equ   3ch   ;9e58h  6MHz
			til       equ   0b0h  ;3cb0h 12MHz		       
		        tis       equ   10d   ;19d  12MHz, 9d 6MHz
		        ti_no     equ   3h
		        
			led_blk equ   0ah			
			led_c   equ   0bh			
			led_e	equ   0ch		
			
			
			oRG  0000H;            ;
			     sJMP start            
			ORG  0003H;            ;
			     reti;
			ORG  000BH             ;
			     reti           ;
			ORG  0013H    
			     reti              ;
			ORG  001BH             ;
			     aJMP T1        ;
			ORG  0023H             ;
			    RETI; AJMP RS_485             ;
			
			
;**************************************
;**************************************                      
start:   



	       MOV R7,#78h       ;
		MOV R0,#07H       ;
		CLR A             ;
CR:             INC R0            ;
		MOV @R0,A         ;
                djnz r7,cr        ;CLR RAM
                MOV SP,#3aH       ;
		 clr ea
		

;************** INT_CTRL

        
		; SETB ie0          ;  
		; SETB EX0          ;
		; SETb ex1          ;
		 setB ET0          ;
		 SETB ET1          ;
		; SETB IT0          ;
		; setb IT1          ;
		 MOV TMOD,#00010001b     ;
		 MOV TH1,#tih
		 mov tl1,#til
		 mov th0,#00h
		 mov tl0,#00h
		
;***********RS_CTRL

    ; MOV SCON,#00H     ;

;*****************
;   MINI_Pragram
;*****************
;setb tr0
;setb sec_flash_f
setb timer_am
mov timers,#tis		               
mov sec,#00d
mov hour ,#12d
mov min ,#00d
mov day ,#1d
mov mou ,#01d
mov week ,#01d
mov timer_no,#ti_no
mov year,#00h
mov beep_timer,#8d
mov timer_charge,#02h

mov al1_m,#00d
mov al1_h,#6d
setb al1_am
mov al2_m,#10d
mov al2_h,#1d
clr al2_am
setb al_out_f
setb tr1
setb ea

STAR_BI:
	  acall led_jmp_1;led_times

          
          acall led_j

;*******************************
		mov c,stop_f
		orl c, ting_f
		jc ma_1         ;ting_dian to turn off led
		
          aCALL KEY_1


ma_1:
	  acall ting_dian_ji
	  acall charge
	  acall al_out_beep  	  		  	
sjmp star_bi	
	   
;****************************
; key_pragm
;****************************

KEY_1:            ; clr you_key_f
		
		mov p3,#01111111b
		mov a,p3
		anl a ,#00000011b
		cjne a,#00000011b,you_key_1
		mov p3,#0ffh
	        mov key_power,#00h
	
key_1_end:	

		ret

			
you_key_1:		
		setb key_f_charge
		lcall led
		;mov a,#10000000b
		;mov c,ha
		;mov acc.7,c
		mov p1,#0ffh

		;mov p1,#10000000b
		;clr key_f_charge
		mov p3,#01111111b
		mov a,p3
		mov p3,#0ffh
		anl a ,#00000011b
		cjne a,#00000011b,you_key_2
		sjmp key_1_end
you_key_2:     jb acc.0 ,key_set
		mov key_power,#01h
key_set:       jb acc.1 ,you_key_3							
		mov key_power,#02h
		
you_key_3:	
		setb key_f_charge	
		acall led
		mov p1,#0ffh
	;	mov c,ha
	;	mov acc.7,c
	;	mov p1,a
		mov p3,#01111111b
		mov a,p3
		mov p3,#0ffh
		anl a ,#00000011b
		cjne a,#00000011b,you_key_3
		mov p3,#0ffh
		mov b,#02h
	bb_1:	clr ha
		push b
		acall led
		pop b
		djnz b ,bb_1
		setb ha
;******************************************
		mov dptr,#key_ord_1
		mov a,key_power
		mov b,#03h;!!!!!!!!!!!!!!!
		mul ab
		jmp @a+dptr
		
key_ord_1:      ljmp key_k0_0
		ljmp key_k1_0
		ljmp key_k2_0
	
key_k0_0:    ;no key 
		ajmp key_1_end

key_k1_0:   ;seach and up key
		mov a,seach_set
		jz k_seach
;*****************************************

	       mov a,seach_set
	       xrl a,#02h
	       jnz pp_0

		mov r0,time_led2
		mov a,@r0
		clr acc.7
		jb timer_am ,qq_1
		add a,#12d
qq_1:		
		inc a
		cjne a,#25d ,aam_1
aam_2:		mov a,#01h
	
aam_1:			
		cjne a,#12d ,aam_3
aam_4:		
		setb timer_am
		sjmp aam_5
aam_3:
		jc aam_4
		clr timer_am
		clr c
		subb a,#12d
aam_5:
		setb acc.7		
		mov @r0,a
		sjmp pp_2
pp_0:
		mov r0,time_led2
		mov a,@r0
		clr acc.7

		
		inc a
		mov r3,a
						
		mov dptr,#led_order_2
		mov a,seach_set
		movc a,@a+dptr
		mov b,a
		mov a,r3
		cjne a ,b ,pp_1				
		mov a,#01d

pp_1:		
		setb acc.7		
		mov @r0 ,a
	       
pp_2:   
	        ajmp key_1_end


k_seach:
		inc seach_led
		mov a,seach_led
		cjne a ,#08h ,ks_1
		clr timer_3s
		mov seach_led,#00h
ks_1:
		ajmp key_1_end

key_k2_0:       ;set key    
		mov r0,time_led2
		mov a,@r0
		clr acc.7
		mov @r0,a
		
				
		inc seach_set
		mov a,seach_set
		cjne a,#0dh ,se_1		
		mov seach_set,#00h
			
se_1:
		mov b,#min
		mov a,seach_set
		add a,b
		dec a
		mov r0,a
		mov a,@r0
		setb acc.7
		mov @r0,a
		mov a,r0
		mov time_led2,a
		
		mov dptr,#led_order_1
		mov a,seach_set
		movc a,@a+dptr
		mov seach_led,a
		
		ajmp key_1_end


;******************************************** led
led_jmp_1:

		mov dptr,#led_ord_3
		mov a,seach_led;data
		mov b,#02h
		mul ab
		jmp @a+dptr
		
led_ord_3:      ajmp led_k0_2
		ajmp led_k1_2
		ajmp led_k2_2
		ajmp led_k3_2
		ajmp led_k4_2
		ajmp led_k5_2
		ajmp led_k6_2
		ajmp led_k7_2
		
led_k0_2:    ;   timer and date to led
		acall timer_led1
		jnb timer_3s, led_k0_21
		acall date_led1
led_k0_21:   
		ajmp led_jmp_5_end

led_k1_2:    ;  timer to led
		acall timer_led1
		ajmp led_jmp_5_end

led_k2_2:       ;date to led 
		acall date_led1
	;	clr sec_flash_f

		ajmp led_jmp_5_end

led_k3_2:       ;al1 to led
		acall al1_led1
		
		ajmp led_jmp_5_end

led_k4_2:       ;al2 to led
		acall al2_led1
		ajmp led_jmp_5_end

led_k5_2:       ; turn off led
		acall sec_led
		ajmp led_jmp_5_end

led_k6_2:       ;
		acall wei_ti 
		ajmp led_jmp_5_end

led_k7_2:       ; turn off led
		acall year_led

led_jmp_5_end:  

	        ret

timer_led1:
		mov a,min
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a
		mov a,hour
		acall led_flash_set
		mov led3,a
		mov a,b
		jnz tt_2
		
tt_1:		mov a,#led_blk
tt_2:
		mov acc.7,c
		mov c, timer_am
		mov acc.5 ,c
		mov c,timer_1s
		mov acc.6,c
		mov led4,a

		mov led5,week


		ret
date_led1:
		mov a,day
		acall led_flash_set
		mov led1,a
		mov a,b
		jz kk_1
		mov acc.7,c
		mov led2,a
		sjmp kk_2
kk_1:
		mov led2,#led_blk
kk_2:
		mov a,mou
		acall led_flash_set
		mov led3,a
		mov a,b
		jnz ke_1 
		mov led4,#led_blk
		sjmp ke_2
ke_1:		
		mov acc.7,c
		mov led4,a
ke_2:		
		mov led5,week
		setb date_f
		ret

al1_led1:
		mov a,al1_m
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a

		mov a,al1_h
		acall led_flash_set
		mov led3,a
		mov a,b
		jnz tt_6
tt_5:		mov a,#led_blk

tt_6:	        
		mov acc.7,c
		mov c,al1_am
		mov acc.5,c
		mov c,timer_1s
		mov acc.6 ,c	
		mov led4,a

		
		mov led5,#01h
	
		ret
al2_led1:

		mov a,al2_m
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a
		mov a,al2_h
		acall led_flash_set
		mov led3,a
		mov a,b
		jnz tt_3
tt_3:		mov a,#led_blk
tt_4:
		mov acc.7,c
	        mov c,al2_am
	  	mov acc.5,c
		mov c,timer_1s
		mov acc.6 ,c	
		mov led4,a
	
	 	mov led5,#02h
	 		
		ret

sec_led:
		mov a,sec
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a
		mov a,#led_blk
		mov led3,a
		mov led4,a
		mov led5,#led_c
		
		ret

wei_ti:
		mov a,timer_no
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a
		mov a,#led_blk
		mov led3,a
		mov led4,a
		mov led5,#led_e
		ret

⌨️ 快捷键说明

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