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

📄 led-dimmer.asm

📁 一个单通道的LED调光程序,AT89S51@16MHz
💻 ASM
字号:
;========= AT89S51 @ 16MHz ===========
;=========2007.07.15==========
TIM_0_COUNT    EQU      30H
KEY_DATA       EQU      31H

           ORG          0000H
           JMP          START
           ORG          0BH
           JMP          TIM0
           ORG          1BH
           JMP          TIM1
           ORG          40H 
START:     MOV          P0,#0FFH
           MOV          P1,#0FFH
           MOV          P2,#0FFH
           MOV          P3,#0FFH
           MOV          R0,#30H
RAM_CLR:   MOV          @R0,#00H
           MOV          A,R0
           INC          R0
           CJNE         A,#3FH,RAM_CLR        
           MOV          TMOD,#00010010B
           MOV          IE,#10001010B
           MOV          TH1,#0CBH
           MOV          TL1,#0EAH
           ;==========
           MOV        TH0,#0CBH     ;255
           MOV        TL0,#0CBH
          ; MOV        TCON,#0FFH
           SETB       TR0
           SETB       TR1
;**************************************
LOOP:      MOV        A,KEY_DATA
           CJNE       A,#100,KEY_0_INC
           JMP        KEY_0_DOWN
KEY_0_INC: JB         P0.0,KEY_0_DOWN
           CALL       DELAY_10MS
           ;JNB        P0.0,$
           INC        KEY_DATA
           ;========================
KEY_0_DOWN:CJNE       A,#0,KEY_1_DEC
           JMP        KEY_EXIT
KEY_1_DEC: JB         P0.1,KEY_EXIT
           CALL       DELAY_10MS
          ; JNB        P0.1,$
           DEC        KEY_DATA          
KEY_EXIT:  JMP        LOOP
;====================================
TIM1:      PUSh       ACC
           PUSH       PSW
           MOV        TH0,#0CBH     ;255
           MOV        TL0,#0CBH     
           MOV        TH1,#0CBH
           MOV        TL1,#0EAH
           MOV        P2,#0FFH
           MOV        TIM_0_COUNT,KEY_DATA
           POP        PSW
           POP        ACC
           RETI
;====================================
TIM0:      PUSH       ACC
           PUSH       PSW
           INC        TIM_0_COUNT
           MOV        A,TIM_0_COUNT
           CJNE       A,#256,TIM_0_RETI
           MOV        P2,#00H
TIM_0_RETI:
           POP        PSW
           POP        ACC
           RETI
;=================================
DELAY_10MS:MOV        R7,#53
D1:        MOV        R6,#248
           DJNZ       R6,$           ;10MS
           DJNZ       R7,D1
           RET
           END
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

⌨️ 快捷键说明

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