; PWM æ§å¶ LED ç¯æ¸äº®æ¸çç¨åº *
; å©ç¨å®æ¶å¨æ§å¶äº§çå 空æ¯å¯åç PWM æ³¢ *
; æK1ï¼PWMå¼å¢å ï¼åå 空æ¯åå°,LED ç¯æ¸æã *
; æK2ï¼PWMå¼åå°ï¼åå 空æ¯å¢å ,LED ç¯æ¸äº®ã *
;å½PWMå¼å¢å å°æ大å¼æåå°å°æå°å¼æ¶ï¼è鸣å¨å°æ¥è¦ *
;èµæºï¼p0å£,8è·¯æ示ç¯ãp1.4,p1.5亮度æ§å¶æé®ï¼ç«¯å£æé®ï¼p3.7å°ååæ¥è¦ *
;ï¼ï¼ï¼ï¼
PWM EQU 7FH ;PWMèµåå§å¼
OUT EQU P0 ;8个LEDç¯çæ¥å£
INCKEY EQU P1.4 ;K1,PWMå¼å¢å é®ã
DECKEY EQU P1.5 ;K2,PWMå¼åå°é®ã
BEEP EQU P3.7
;ï¼ï¼ï¼ï¼
ORG 0000H
SJMP START
ORG 000BH
SJMP INTT0
ORG 001BH
SJMP INTT1
ORG 0030H
;ï¼ï¼ï¼ï¼
;主ç¨åº
;å®æ¶å¨0å·¥ä½å¨æ¨¡å¼1ï¼å®æ¶å¨1å·¥ä½å¨æ¨¡å¼2ã
;ï¼ï¼ï¼ï¼
START:
MOV SP,#30H
MOV TMOD,#21H
MOV TH1,PWM ;è宽è°è
MOV TL1,#00H
MOV TH0,#0FCH ;1ms延æ¶å¸¸æ°
MOV TL0,#066H ;é¢çè°è
SETB EA
SETB ET0
SETB ET1
SETB TR0
LOOP: MOV A,PWM ;
JB INCKEY,LOOP1 ;å¢å é®æ¯å¦æä¸ï¼
CALL DELAY ;延æ¶å»æå¨
JB INCKEY,LOOP1
CJNE A,#0FFH,PWMINC ;æ¯å¦å°æ大å¼ï¼
CALL BEEP_BL ;æ¯ï¼è鸣å¨æ¥è¦ã
SJMP LOOP
PWMINC:
INC PWM ;è°èè宽ï¼è宽åå°ï¼
SJMP LOOP
LOOP1: JB DECKEY,LOOP2 ;åå°é®æ¯å¦æä¸ï¼
CALL DELAY ;延æ¶å»æå¨
JB DECKEY,LOOP2
CJNE A,#02H,PWMDEC ;æ¯å¦å°æå°å¼ï¼
CALL BEEP_BL ;æ¯ï¼è鸣å¨æ¥è¦ã
SJMP LOOP
PWMDEC:
DEC PWM ;è°èè宽ï¼è宽å¢å ï¼
LOOP2: SJMP LOOP
;ï¼ï¼ï¼ï¼
;T0ä¸ææå¡åç¨åº ï¼é¢çï¼
;æ§å¶å®æ¶å¨1ä¸æ
;ï¼ï¼ï¼ï¼
INTT0:
CLR TR1
MOV TH0,#0FCH ;1ms延æ¶å¸¸æ°
MOV TL0,#066H ;é¢çè°è
MOV TH1,PWM
SETB TR1
MOV OUT,#00H ;å¯å¨è¾åº
RETI
;ï¼ï¼ï¼ï¼
;T1ä¸ææå¡åç¨åº ï¼è宽ï¼
;æ§å¶PWMèå²å®½åº¦
;ï¼ï¼ï¼ï¼
INTT1:
CLR TR1 ;è宽è°èç»æ
MOV OUT,#0FFH ;ç»æè¾åº
RETI
;ï¼ï¼ï¼ï¼
;10ms延æ¶åç¨åº
;ï¼ï¼ï¼ï¼
DELAY:
MOV R6,#50
DELAY1:
MOV R7,#100
DJNZ R7,$
DJNZ R6,DELAY1
RET
;----
;è鸣å¨åä¸å£°åç¨åº
;---
BEEP_BL:
MOV R6,#100
BL1: CALL BL2
CPL BEEP
DJNZ R6,BL1
MOV R5,#25
CALL DELAY2
RET
BL2: MOV R7,#180
BL3: NOP
DJNZ R7,BL3
RET
DELAY2: ;延æ¶R5Ã10MS
MOV R6,#50
BL4: MOV R7,#100
BL5: DJNZ R7,BL5
DJNZ R6,BL4
DJNZ R5,DELAY2
RET
;---
END
温馨提示:答案为网友推荐,仅供参考