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

📄 clock0.asm

📁 智能LED电子钟源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
year_led:
		mov a,year
		acall led_flash_set
		mov led1,a
		mov a,b
		mov acc.7,c
		mov led2,a
		mov a,#00h
		mov led3,a
		mov led4,#led_blk
		mov led5,#02h
		ret

led_flash_set:
		mov c,acc.7
		push psw
		clr acc.7
		
		lcall bcd_8
		pop psw
		mov acc.7,c	
		ret



 ;*************
 ; D_8=>BCD
 ;*************

     BCD_8:     
		
		mov c_f,c
		MOV B,#10D
		DIV AB
		mov r5,b
		mov b,a
		mov a,r5
		mov c,c_f
		RET
		

;********************
;  LED_PROGRAM
;*******************
	
LED:            
	
		mov dptr,#led_asc
	;***************************led1
		mov a,led1
		mov c,acc.7
		anl c,timer_50ms
		jc led_led2
		clr acc.7
		movc a,@a+dptr
		acall ha_j
		clr   led_1
		acall timer_1ms
		setb led_1
	;*************************led2  
	led_led2:
		mov a,led2
		mov c,acc.7
		anl c,timer_50ms
		jc led_led3
		clr acc.7
		movc a,@a+dptr
		acall ha_j
		clr   led_2
		acall timer_1ms
		setb led_2
	;*************************led3  
	led_led3:
		mov a,led3
		mov c,acc.7
		anl c,timer_50ms
		jc led_led4
		clr acc.7

		movc a,@a+dptr
		acall ha_j
		clr   led_3
		acall timer_1ms
		setb led_3
	;*************************led4  
	led_led4:
		mov a,led4
		mov c,acc.7
		anl c,timer_50ms
		jc led_led5
		clr acc.7
		
		mov c,acc.5
		mov all_am,c
		mov c,acc.6
		mov all1_am,c
		clr acc.5
		clr acc.6
		
		movc a,@a+dptr
		mov c,all1_am
		mov acc.3 ,c
		mov c,all_am
		mov acc.0,c
jj_2:		
		acall ha_j
		clr   led_4
		acall timer_1ms
		setb led_4
	;*************************led5  
	led_led5:
		mov a,led5
		mov c,acc.7
		anl c,timer_50ms
		jc led_end
		clr acc.7

		cjne a,#01h,ko_1
		mov a,#0dh				
ko_1:
		movc a,@a+dptr
		acall ha_j
		clr   led_5
		acall timer_1ms
		setb led_5
	;*************************      
led_end:		ret


led_j:

		mov c,stop_f
		orl c, ting_f
		
		jc led_end1  ;ting_dian to turn off led

		acall led
		sjmp lee_1

led_end1:
		mov a,p1
		mov c,acc.7
		mov a,#0ffh
		mov acc.7,c
		
		mov p1,a
		mov p3,#0ffh

lee_1:
		ret
		



ha_j:
		mov c,ha
		mov acc.7,c				
		mov p1,a
		ret





led_asc:
		db 10111111B;0
		db 10000110B;1
		db 11011011B;2
		db 11001111B;3
		db 11100110B;4
		db 11101101B;5
		db 11111101B;6
		db 10000111B;7
		db 11111111B;8
		db 11101111B;9
		DB   10000000B;BLACK=>0aH
		DB   10111110B;u=>b
		dB   11111001B;e=>C
		DB   10110000B;1,=>D
 
;**********************************
;delay
;********************************
		
timer_1ms:
		push b
		mov r2,#01h
a_1:		mov b,#0ffh
b_1:           	djnz b,b_1
		djnz r2,a_1
		pop b
		ret
		
;******************
; TO-T1_INT
;******************

  T1:         
  		setb tr0
  		PUSH ACC          ;
	      PUSH b            ;
	      push psw	
		inc time_led1
		mov a,time_led1
		cjne a,#2d,t1_n1
		mov time_led1,#00h
		cpl timer_50ms		
	;	mov c,timer_50ms
	;	mov timer_1s ,c
				
		mov a,timers
		cjne a,#5d ,t1_n11
t1_n12:		
		clr timer_1s
		
		sjmp t1_n1
;*********************************
t1_end_2:      ajmp t1_end_1
;********************************


t1_n11:       jc t1_n12 		
		setb timer_1s

t1_n1:		djnz timers ,t1_end_2	
		mov timers,#tis

		inc time_led3
		mov a,time_led3
		cjne a,#03d,t1_sec
		mov time_led3,#00h
		cpl timer_3s		
t1_sec:		
		inc sec
		mov a,sec

		mov c ,acc.7
		mov c_temp ,c
		clr acc.7
		
		cjne a,#60d ,t1_c_end
		mov a,#00d
		mov c,c_temp
		mov acc.7,c
		mov sec ,a		
		sjmp t1_c_1
			 	
t1_c_end:	mov c,c_temp
		mov acc.7,c
		mov sec ,a		
		ajmp t1_end
		
t1_c_1:		inc min
		;inc r1
		;mov a,r1
		;cjne a,#10d,t1_min
		;mov r1,#00h
		cpl timer_1min		

;t1_min:		
		mov a,min		

		mov c ,acc.7
		mov c_temp ,c
		clr acc.7

		cjne a,#60d ,t1_c_end1
    		mov a,#00d
		mov c,c_temp
		mov acc.7,c
		mov min ,a		
		sjmp t1_c_2
t1_c_end1:     
		mov c,c_temp
		mov acc.7,c
		mov min ,a		
		ajmp t1_end	 	
t1_c_2:
                inc hour
		mov a,hour
		cjne a,#13d ,t1_end
                cpl timer_am
                mov hour,#01h

		jnb timer_am , t1_end
		
		inc week    ;***********week+1
		mov a,week
		cjne a,#8d ,dy_1  ;!!!!!!!!!!!!*********
               mov week,#01d		
  
  dy_1:          		
		mov dptr,#mou_12
		mov a,mou
		xrl a,#02d
		jnz mm_1
		acall mou_j
		sjmp mm_2
	mm_1:
		movc a,@a+dptr
	mm_2:
		mov b,a
		inc b
                inc day  ;***************day+1
		mov a,day
		cjne a ,b ,t1_end
		mov day,#01h
      		inc mou
		mov a,mou
		cjne a,#13d ,t1_end
        	mov mou,#01d				

		inc year
		mov a,year
	 	cjne a,#100d ,t1_end
		mov year,#00d	 	
	 	
T1_END:     

;*****************************timer subb al_timer
		
		acall al_out
		
t1_end_1:
;************************************ sub t0 timer
		clr c
		clr tr0
		mov b,timer_no
		mov  a,#til
		add a,tl0
		
		addc a,b ;*******have 5 order
		mov tl1 ,a
	
		mov a,#tih
		addc a, th0
		mov th1,a
		mov th0,#00h
		mov tl0,#00h
		setb tr1		
		pop psw
		pop b             ;
                pop acc           ;
	        RETI              ;


;**************************************************
ting_dian_ji:
		jb jian_f, ti_1		
		setb ting_f
		;jnb timer_10min ,ti_2
		;clr timer_10min		
		;inc timer_ting

		;mov a,timer_ting     ;timer_ting/4
		;rl a
		;rl a
		;mov timer_charge,a
		sjmp ti_2		
ti_1:	        
		clr ting_f
ti_2:		ret

;****************************************************	        
charge:
		mov c,stop_f
		orl c,ting_f
		jnc charge_end

		acall key_1
		
		jb charge_f, ch_1 


		mov a,key_power
		jz charge_end
		setb charge_f
		
ch_1:						
		jnb timer_1min ,ch_2
		clr timer_1min
		djnz timer_charge ,ch_2
		mov timer_charge,#02h
		clr charge_f
		sjmp charge_end
				
				
ch_2:		
		acall led
		
charge_end:          ret
;*****************************************************
al_out_beep:		
		mov c,al_f
		anl c,al_out_f
		jnc aa_2 
	
		jnb timer_3s ,aa_1
		clr timer_3s
		
		djnz beep_timer,aa_1
		mov beep_timer ,#08h
		clr al_out_f
		setb ha
		sjmp aa_2
	aa_1:  mov c,timer_50ms
		mov ha,c
		
	aa_2:		
		ret
;*****************************************************		
al_out:
		
		mov a,min
		cjne a,#00h ,lp_1		
		mov a,hour
		mov c,timer_am
		mov acc.7,c
		mov b,a
		xrl a,#10001000b
		jnz lp_2
		setb stop_f
lp_2:		mov a,b				
		xrl a,#00000110b
		jnz lp_1
		clr stop_f
		
lp_1:		
		mov c,al1_am
		mov a,al1_m
		mov acc.6,c
		clr acc.7
		mov b,a
		
		mov c,timer_am
		mov a,min
		mov acc.6,c
		clr acc.7
		cjne a ,b ,al_n1
		;acall al_out_beep		
		
		mov a,al1_h
		clr acc.7
		mov b,a
		
		mov a,hour
		clr acc.7
		cjne a,b ,al_n1
		
		setb al_f
		sjmp aL_n3

al_n1:						
		mov c,al2_am
		mov a,al2_m
		mov acc.6,c
		clr acc.7
		mov b,a
		
		mov c,timer_am
		mov a,min
		mov acc.6,c
		clr acc.7
		cjne a ,b ,al_n2

		mov a,al2_h
		clr acc.7
		mov b,a
		
		mov a,hour
		clr acc.7
		cjne a,b ,al_n2


		setb al_f

		sjmp al_n3	

al_n2:		clr al_f
		setb al_out_f
al_n3:
		ret
				
;******************************************
mou_j:
	mov dptr,#year_d
	mov a, year
	movc a,@a+dptr
	ret
	 
year_d:
	db 29d
	db 28d	
	db 28d	
	db 28d	
	db 29d
	db 28d	
	db 28d	
	db 28d	
	db 29d
	db 28d	
	db 28d	
	db 28d	
	db 29d
	db 28d	
	db 28d	
	db 28d	
	db 29d
	db 28d	
	db 28d	
	db 28d	
		
led_order_1:
		db 00d
		db 01d
		db 01d
		db 01d
		db 02d
		db 02d
		db 03d
		db 03d
		db 04d
		db 04d
		db 05d
		db 06d
		db 07d		
		
led_order_2:    
		db 00h
                db 60d
                db 13d
                db 08d
                db 32d
                db 13d
                db 60d
                db 13d
                db 60d
                db 13d
		db 60d
		db 99d                		
		db 30d
mou_12:  
	        db 31d
	        db 28d
	        db 31d
	        db 30d
	        db 31d
	        db 30d
	        db 31d
	        db 31d
	        db 30d
	        db 31d
	        db 30d
	        db 31d

⌨️ 快捷键说明

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