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

📄 clock1.asm

📁 智能LED电子钟源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		lcall bcd_8

		mov led1,a
		mov a,b
		mov led2,a
;;;;;;;;;;;;;;;;;;;;;;;;;
		mov a,al2_h
		mov c,acc.7
		mov a,flash
		mov acc.3,c
		mov acc.4,c
		mov flash,a
		mov a,al2_h
		clr acc.7
		acall bcd_8
		mov led3,a
		mov a,b
		jnz tt_4
tt_3:		mov a,#led_blk
tt_4:
		mov led4,a
	
	 	mov led5,#02h
		mov a,flash
		clr acc.0
		mov flash,a
	 		
		ret

sec_led:
		mov a,sec
		mov c,acc.7
		mov a,flash
		mov acc.1,c
		mov acc.2,c
		mov flash,a
		mov a,sec
		clr acc.7

		lcall bcd_8

		mov led1,a
		mov a,b
		mov led2,a
		mov a,#led_blk
		mov led3,a
		mov led4,a
		mov led5,#led_c
		
		mov a,flash
		setb acc.0
		mov flash,a

		ret

wei_ti:
		mov a,timer_no
		mov c,acc.7
		mov a,flash
		mov acc.1,c
		mov acc.2,c
		mov flash,a
		mov a,timer_no
		clr acc.7

		lcall bcd_8

		mov led1,a
		mov a,b
		mov led2,a
		mov a,#led_blk
		mov led3,a
		mov led4,a
		mov led5,#led_e
		mov a,flash
		setb acc.0
		mov flash,a

		ret
year_led:
		mov a,year
		mov c,acc.7
		mov a,flash
		mov acc.1,c
		mov acc.2,c
		mov flash,a
		mov a,year
		clr acc.7

		lcall bcd_8

		mov led1,a
		mov a,b
		mov led2,a
		mov a,#00h
		mov led3,a
		mov led5,#led_blk
		mov led4,#02h
		mov a,flash
		setb acc.0
		mov flash,a

		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:            
		clr led_1
		clr led_2
		clr led_3
		clr led_4
		clr led_5
	
		mov dptr,#led_asc
	;***************************led1
	
		mov a,flash
		mov c,acc.1
		anl c,timer_50ms
		jc led_led2

		mov a,led1
		movc a,@a+dptr
		cpl a
		;acall ha_j
		mov p1,a
		setb   led_1
		
		acall timer_1ms
		
		clr led_1
	;*************************led2  
	led_led2:
		mov a,flash
		mov c,acc.2
		anl c,timer_50ms
		jc led_led3

		mov a,led2
		movc a,@a+dptr
		cpl a
		mov b,a
		mov a,flash
		mov c,acc.0
		mov a,b
		mov acc.0,c
		
		mov p1,a
	
		setb  led_2
		acall timer_1ms
		clr led_2
	;*************************led3  
	led_led3:
		mov a,flash
		mov c,acc.3
		anl c,timer_50ms
		jc led_led4
		mov a,led3
		movc a,@a+dptr
		;acall ha_j
		cpl a
		mov b,a
		mov a,flash
		mov c,acc.0
		mov a,b
		mov acc.0,c
	
		mov p1,a
	
		setb   led_3
		acall timer_1ms
		clr led_3
	;*************************led4  
	led_led4:
		mov a,flash
		mov c,acc.4
		anl c,timer_50ms
		jc led_led5

		mov a,led4
		movc a,@a+dptr
		cpl a
		mov p1,a
		setb   led_4
		acall timer_1ms
		clr led_4
	;*************************led5  
	led_led5:
		mov a,flash
		mov c,acc.5
		anl c,timer_50ms
		jc led_end
		mov a,led5
		movc a,@a+dptr
		cpl  a 
		mov p1,a
	
		setb   led_5
		acall timer_1ms
		acall timer_1ms
		acall timer_1ms

		clr led_5
	;*************************      
led_end:
		mov p1,#0ffh
		mov a,p3
		orl a,#11111000b
		mov p3,a
		
		ret

led_asc:
		db 11111100B;0
		db 01100000B;1
		db 11011010B;2
		db 11110010B;3
		db 01100110B;4
		db 10110110B;5
		db 10111110B;6
		db 11100000B;7
		db 11111110B;8
		db 11110110B;9
		DB   00000000B;BLACK=>0aH
		DB   00111110B;u=>b
		dB   01111001B;e=>C
		DB   00110000B;1,=>D
 
;**********************************
;delay
;********************************
		
timer_1ms:
		push b
		mov r2,#01h
a_1:		mov b,#0fh
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		
		cjne a,#60d ,t1_c_end1
    		mov a,#00d
		mov min ,a		
		sjmp t1_c_2
t1_c_end1:     
		mov min ,a		
		ajmp t1_end	 	
t1_c_2:
                inc hour
		mov a,hour
		cjne a,#24d ,t1_end
                mov hour,#00h

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


;*****************************************************
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,al1_m
		clr acc.7
		mov b,a

		mov a,min
		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 a,al2_m
		clr acc.7
		mov b,a
		mov a,min
		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 24d
                db 08d
                db 32d
                db 13d
                db 60d
                db 24d
                db 60d
                db 24d
		db 60d
		db 99d                		
		db 30d
led_order_3:    
		db 00h
                db 00d
                db 00d
                db 01d
                db 1d
                db 1d
                db 00d
                db 00d
                db 00d
                db 00d
		db 00d
		db 00d                		
		db 00d

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 + -