呼吸灯

来源:互联网 发布:人工合成牛胰岛素 知乎 编辑:程序博客网 时间:2024/04/20 06:52
这个原理主要是控制亮和灭的百分比,亮/灭百分比越大那么就看上去亮,反之暗些。当然,我们需要将亮灭时间控制在20ms以内。
org 00Hajmp startorg 30Hstart:;step 1:let  74HC138  enable clr  P1.4setb P1.3;step 2:selet LEDS6;setb P1.2;setb P1.1;clr  p1.0sbit ADDR0=P1.0sbit ADDR1=P1.1sbit ADDR2=P1.2setb ADDR2setb ADDR1clr  ADDR0;control the ledsmain:mov R7,#255    s1:     mov A,#0FEH        mov P0,Amov R6,#1ss1:       call delay1   djnz R6,ss1    mov A,#0FFH    mov P0,A    call delaydjnz R7,s1 mov R7,#200  s2: mov A,#0FEH     mov P0,A mov R6,#2ss2:       call delay1   djnz R6,ss2mov A,#0FFHmov P0,Acall delay   djnz R7,s2 mov R7,#180 s3:     mov A,#0FEH         mov P0,A     mov R6,#3ss3:       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,#5ss4:       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 delaydjnz R7,s6mov 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 delaydjnz R7,s7mov R7,#255  s8: mov A,#0FEH     mov P0,A      mov R6,#6    ss8:       call delay1        djnz R6,ss8djnz R7,s8mov A,#0FFHmov P0,Acall delay ajmp main  //4msdelay:  mov R1,#1H      loop1:              mov R2,#01FH      loop2:              mov R3,#30      loop3: djnz R3,loop3 djnz R2,loop2 djnz R1,loop1     ret//1msdelay1:mov R0,#1lp1:mov R1,#5lp2:mov R2,#50    lp3:djnz R2,lp3djnz R1,lp2djnz R0,lp1retend