呼吸灯



这个原理主要是控制亮和灭的百分比,亮/灭百分比越大那么就看上去亮,反之暗些。当然,我们需要将亮灭时间控制在20ms以内。





org 00H
ajmp start


org 30H
start:
;step 1:let  74HC138  enable 
clr  P1.4
setb P1.3


;step 2:selet LEDS6
;setb P1.2
;setb P1.1
;clr  p1.0
sbit ADDR0=P1.0
sbit ADDR1=P1.1
sbit ADDR2=P1.2


setb ADDR2
setb ADDR1
clr  ADDR0
;control the leds
main:	
mov R7,#255
    s1: 
	    mov A,#0FEH
        mov P0,A
		mov R6,#1
		ss1:
	       call delay1
		   djnz R6,ss1
	    mov A,#0FFH
	    mov P0,A
	    call delay
		djnz R7,s1
	


	 mov R7,#200
	  s2:
		 mov A,#0FEH
	     mov P0,A
		 mov R6,#2
		ss2:
	       call delay1
		   djnz R6,ss2
		mov A,#0FFH
		mov P0,A
		call delay
	   	djnz R7,s2
	






	 mov R7,#180
	 s3:
	     mov A,#0FEH
         mov P0,A
	     mov R6,#3
		ss3:
	       call delay1
		   djnz R6,ss3 	 
		 mov A,#0FFH
		 mov P0,A
		 call delay
	     djnz R7,s3
	


	    mov R7,#150
	   s4:
		  mov A,#0FEH
	      mov P0,A
		  mov R6,#5
		ss4:
	       call delay1
		   djnz R6,ss4	
		 mov A,#0FFH
		 mov P0,A
		 call delay
		 djnz R7,s4






	  mov R7,#100
	   s5:
	      mov A,#0FEH
          mov P0,A
		  mov R6,#8
	    ss5:
	       call delay1
		   djnz R6,ss5	
		 mov A,#0FFH
		 mov P0,A
		 call delay
		 djnz R7,s5




	 mov R7,#80
	  s6:
		 mov A,#0FEH
	     mov P0,A   
	  	 mov R6,#11
	    ss6:
	       call delay1
		   djnz R6,ss6	
		 mov A,#0FFH
		 mov P0,A
		 call delay
		djnz R7,s6






	mov R7,#60
	  s7:
		 mov A,#0FEH
	     mov P0,A   
	  	 mov R6,#15
	    ss7:
	       call delay1
		   djnz R6,ss7	
		 mov A,#0FFH
		 mov P0,A
		 call delay
		djnz R7,s7






		mov R7,#255
	  s8:
		 mov A,#0FEH
	     mov P0,A   
	  	 mov R6,#6
	    ss8:
	       call delay1
        djnz R6,ss8	
		djnz R7,s8
		mov A,#0FFH
		mov P0,A
		call delay


	 ajmp main




  //4ms
delay:
	  mov R1,#1H
      loop1:
              mov R2,#01FH
      loop2:
              mov R3,#30
      loop3:
			 djnz R3,loop3
			 djnz R2,loop2
			 djnz R1,loop1
     ret




//1ms
delay1:
	mov R0,#1
	lp1:
		mov R1,#5
		lp2:
			mov R2,#50
		    lp3:
			djnz R2,lp3
		djnz R1,lp2
	djnz R0,lp1
ret


end



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值