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

📄 al_way.asm

📁 倒计时器 A51源程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
			;***************
			;al_way_program  2000-12-3
			;***************

			timers         equ 08h
	;**************************************************		
			al1_min        equ timers+1h
			al1_hour       equ timers+2h
			al2_min        equ timers+3h
			al2_hour       equ timers+4h
			al3_min        equ timers+5h
			al3_hour       equ timers+6h
			flash          equ timers+7h

;****************************************************************
			del1        equ  flash+1h
			del2        equ  flash+2h
			del3        equ  flash+3h  ;ram addres at 12h
;*****************************************************************
			key_data     equ   del3+1h			
			sec          equ  del3+2h
		        timer_no     equ  sec+1h
			del4         equ  timer_no+1h
			key_power    equ  del4+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
			
	;*************************************************		
			al1_min_t        equ led3+1
		        al1_hour_t       equ al1_min_t+1
		
			al2_min_t     equ   al1_hour_t+1h
			al2_hour_t    equ   al2_min_t+1h
			
			al3_min_t    equ   al2_hour_t+1h
			al3_hour_t   equ   al3_min_t+1h 			
	;***************************************************
			
			beep_timer   equ   al3_hour_t+1h
			
;****************************************************************			
		        led_1     bit p3.0
		        led_2     bit p3.1
		        led_3     bit p3.7
		    	
		       HA         BIT P3.2
		       key_f      bit p3.3
		       
		       pnp1       bit p3.4
		       pnp2       bit p3.5
	
			
			timer_50ms  bit  00h
			timer_1s    bit  01h
			timer_3s    bit  03h
		;	timer_20s   bit  04h
			timer_1min  bit  05h
			timer_10min bit  06h
			
			;timer_am    bit  07h
			key_set_f   bit  08h
			sec_flash_f bit  key_set_f+1h
;*************************************************************			
			al1_f       bit  sec_flash_f+1h			
			al2_f       bit  al1_f+1h			
			al3_f	    bit  al2_f+1h
			flash_f     bit  al3_f+1h
			set_f       bit  flash_f+1h			
;*****************************************************************			
			al_f        bit set_f+1h
			al_out_f    bit al_f+1h
			all_s      bit al_f+2h			
			turn_f     bit  all_s+1h
			
			aal1_f     bit turn_f+1h
			aal2_f     bit turn_f+2h
			aal3_f     bit turn_f+3h
;*****************************************************************
						       
			tih       equ   3ch   ;9e58h  6MHz
			til       equ   0b0h  ;3cb0h 12MHz		       
		        tis       equ   10d   ;20d  12MHz, 10d 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,#10H       ;
		CLR A             ;
CR:             INC R0            ;
		MOV @R0,A         ;
               djnz r7,cr        ;CLR RAM
                MOV SP,#40H       ;
		 clr ea
		clr set_f
		clr turn_f		
		setb pnp2
		setb pnp1
;********************************* j al1-3 data
		mov r0,#al1_min
		mov r1,#al1_min_t
		mov r7,#07h
op_4:
		mov a,@r0
		cjne a,#19d ,op_1
op_2:		mov a,#00h
		mov @r0,a
		sjmp op_3		
op_1:		
		jnc op_2

op_3:
		mov a,@r0
		mov @r1,a
		inc r0
		inc r1
		djnz r7 ,op_4

		mov a,flash
		mov c,acc.1  ;acc.1  al1  acc.2 al2 ....
		mov al1_f,c
		mov c,acc.2  ;acc.1  al1  acc.2 al2 ....
		mov al2_f,c
		mov c,acc.3  ;acc.1  al1  acc.2 al2 ....
		mov al3_f,c
		

				
;************************************************		
		

;************** 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
;*****************
mov timers,#tis		               
mov sec,#00d
;mov al1_hour_t ,al1_hour
;mov al1_min_t ,al1_min

;mov al2_hour_t ,al2_hour
;mov al2_min_t ,al2_min

;mov al3_min_t ,al3_min
;mov al3_hour_t,al3_hour

mov timer_no,#ti_no
mov del4,#00h
;mov beep_timer,#8d

mov del1,#00d
mov del2,#00d
mov del3,#00d
mov del4,#00d
mov key_power,#01d

setb al_out_f
setb tr1
setb ea

setb timer_50ms

STAR_BI:
;		setb flash_f
          acall led_jmp_1;led_times
          aCALL KEY_1
	  acall al_out_way  	  		  	
	 acall delay
sjmp star_bi	
;;;;;;;;;;;;;;;;;
delay:

		inc del3
		mov a,del3
		cjne a,#0ffh,del_1
		mov del3,#00h
		inc del4
		mov a,del4
		cjne a,#040h,del_1
		mov del4,#00h
		clr flash_f
		clr set_f
								

del_1:
		
		ret
		
			   
;****************************
; key_pragm
;****************************

KEY_1:          
		mov p1,#00h
		mov p3,#0ffh
		clr key_f
		mov a,p3
		setb key_f
		anl a ,#10000011b
		cjne a,#10000011b,you_key_1
key_e:
	        
	 	mov p3,#0ffh       
		setb key_f
	        mov key_data,#00h
	
key_1_end:	

		ret

			
you_key_1:		
		mov del3,#0feh
		mov del4,#0feh

		setb key_f
		
		mov b,#20h
lll_1:
		push b
		lcall led
		pop b
		djnz b ,lll_1


		mov p1,#00h
		mov p3,#0ffh
		clr key_f
		mov a,p3
		setb key_f
		anl a ,#10000011b
		cjne a,#10000011b,you_key_2
	        
		sjmp key_e

you_key_2:     jb acc.0 ,key_set

		mov key_data,#01h
		sjmp you_key_33

key_set:       jb acc.1 ,you_key_3							

		mov key_data,#02h
		sjmp you_key_33

you_key_3:	
               jb acc.7 ,you_key_33							
		mov key_data,#03h
		sjmp you_key_33

you_key_33:

		setb key_f
		acall led

		inc del1
		mov a,del1
		cjne a,#0ffh ,jhg_1
		mov del1,#00h
		
		inc del2
		mov a,del2
		cjne a,#08h ,jhg_1
		mov del2,#00h		
		setb flash_f
		setb set_f
;		mov key_power,#01h
;		mov key_data,#00h		


jhg_1:
		mov p1,#00h
		mov p3,#0ffh

		clr key_f
		mov a,p3
		anl a ,#10000011b
		cjne a,#10000011b,you_key_33
		setb key_f	
	 	mov p3,#0ffh       
		mov del1,#00h
		mov del2,#00h
		
		
;		acall beep
		mov r6,#040h
	bb_1:	
		;!!!!!!!!!!!!!!!!!!!!!!!!!!
		clr ha
		setb key_f
		acall led
		acall led
		djnz r6 ,bb_1
		setb ha
;******************************************
		mov dptr,#key_ord_1
		mov a,key_data
		mov b,#03h;!!!!!!!!!!!!!!!
		mul ab
		jmp @a+dptr
		
key_ord_1:      ljmp key_k0_0
		ljmp key_k1_0
		ljmp key_k2_0
		ljmp key_k3_0
	
key_k0_0:    ;no key 
		ajmp key_1_end

key_k1_0:   ;   key_3 
		acall key_3
	        ajmp key_1_end

key_k2_0:       ; key_2    
		acall key_2
		ajmp key_1_end

key_k3_0:       ; key_1    

		inc key_power
		mov a,key_power
		cjne a,#08h ,io_1
		
		mov key_power,#01h
	io_1:	
		ajmp key_1_end





;**************************************
		proc  key_3
key_3:

		mov dptr,#led_ord_3
		mov a,key_power       ;data
		mov b,#02h
		mul ab
		jmp @a+dptr
		
led_ord_3:      ajmp led_k0_2
		ajmp led_k2_2
		ajmp led_k1_2
		ajmp led_k4_2
		ajmp led_k3_2
		ajmp led_k6_2
		ajmp led_k5_2
		ajmp led_k7_2
		
led_k0_2:    ;   nop

		ajmp led_jmp_5_end

led_k1_2:    ;  al1 way off/on

		cpl al1_f
		jb flash_f ,tw_11

		sjmp tw_21
tw_11:
		mov c,al1_f
		mov a,flash
		mov acc.1 ,c
		mov flash,a
		
tw_21:
		ajmp led_jmp_5_end

led_k2_2:       ;al1 timer 
		
		jb flash_f ,set_11
		inc al1_min_t
		mov a,al1_min_t
		cjne a,#60 ,set_12
		mov al1_min_t,#00h
set_12:		
		sjmp set_14						
		
set_11:         
		inc al1_min
		mov a,al1_min
		cjne a,#60 ,set_14
		mov al1_min,#00h
set_14:		
		
		ajmp led_jmp_5_end

led_k3_2:       ;al2 way off/on
		
		cpl al2_f
		jb flash_f ,tw_12
		sjmp tw_22
tw_12:
		mov c,al2_f
		mov a,flash
		mov acc.2 ,c
		mov flash,a
		
tw_22:
		ajmp led_jmp_5_end

led_k4_2:       ;al2 timer

		jb flash_f ,set_21
		inc al2_min_t
		mov a,al2_min_t
		cjne a,#60 ,set_22
		mov al2_min_t,#00h
set_22:		
		sjmp set_24						
		
set_21:         
		inc al2_min
		mov a,al2_min
		cjne a,#60 ,set_24
		mov al2_min,#00h
set_24:		
		

		ajmp led_jmp_5_end

led_k5_2:       ; al3 way off/on

		cpl al3_f
		jb flash_f ,tw_13
		sjmp tw_23
tw_13:
		mov c,al3_f
		mov a,flash
		mov acc.3 ,c
		mov flash,a
		
tw_23:
		ajmp led_jmp_5_end

led_k6_2:       ;al3 timer
		jb flash_f ,set_31
		inc al3_min_t
		mov a,al3_min_t
		cjne a,#60 ,set_32
		mov al3_min_t,#00h
set_32:		
		sjmp set_34						
		
set_31:         
		inc al3_min
		mov a,al3_min
		cjne a,#60 ,set_34
		mov al3_min,#00h
set_34:		
		ajmp led_jmp_5_end

led_k7_2:       ; turn off/on
		setb turn_f

led_jmp_5_end:  
	        ret
		end
;****************************************
		proc key_2
key_2:

		mov dptr,#led_ord_3
		mov a,key_power       ;data
		mov b,#02h
		mul ab
		jmp @a+dptr
		
led_ord_3:      ajmp led_k0_2
		ajmp led_k2_2
		ajmp led_k1_2
		ajmp led_k4_2
		ajmp led_k3_2
		ajmp led_k6_2
		ajmp led_k5_2
		ajmp led_k7_2
		
led_k0_2:    ;   nop

⌨️ 快捷键说明

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