?? 脈沖發(fā)生.asm
字號:
;晶振12M 89S51由低到高最高到低
PWM EQU 7FH ;PWM賦初始值
PWM_5 EQU 71H
SEC EQU 56H ;秒計數(shù)單元
Min EQU 55H ;分計數(shù)單元
PWM_1 EQU 80H ; 次數(shù)6
PWM_2 BIT 00H ;加減標志位
PWM_3 BIT 01H;3分計數(shù)標志位
SEC_5 EQU 6FH ;5秒計數(shù)
PWM_4 BIT 02H;輸出腳停止位
;----------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP INTT0
ORG 0030H
;----------------------------
;主程序
;定時器0工作在模式1
;----------------------------
START:
MOV SP,#30H;
MOV TMOD,#11H;
MOV PWM,#62H;(62FFH,D2FFH)
MOV TH0, PWM ; ;頻率調(diào)節(jié)
MOV TL0,#0FFH ; ;
SETB EA;
SETB ET0;
SETB TR0;
MOV PWM_1,#0;
MOV PWM_5,#0;
MOV SEC,#0;
MOV SEC_5,#0;
MOV Min,#0;
clr PWM_4;
clr PWM_3;
clr PWM_2;
MOV P1,#0FFH
MOV P3,#0FFH
MOV P2,#0FFH
MOV P0,#0FFH
LOOP:
SJMP LOOP;
;------------------------------
;T0中斷服務(wù)子程序 (頻率)
;------------------------------
INTT0:PUSH ACC ;ACC 入棧
PUSH PSW ;PSW 入棧
JB PWM_4 ,D_4
CPL P1.0 ;輸出腳
INC PWM_1 ; ;同頻率下脈沖個數(shù)6個
MOV A,PWM_1;
CJNE A,#6,D_1;
mov PWM_1,#0;
CPL P1.2
INC PWM_5 ; ;同頻率下脈沖個數(shù)6個
MOV A,PWM_5;
CJNE A,#5,D_6
CPL P1.4
mov PWM_5,#0;
D_6: JB PWM_2 ,D_2;
INC PWM ; 頻率調(diào)節(jié) 加
MOV A,PWM ;
CJNE A,#0D2H,D_1;到最高了嗎
setb PWM_2;
D_2: JB PWM_3 ,D_3;
INC SEC
MOV A,SEC
CJNE A,#15, D_1
mov SEC,#0;
INC Min
MOV A, Min
CJNE A,#180, D_1
mov Min,#0;
setb PWM_3;
D_3: DEC PWM ; 頻率調(diào)節(jié)減
MOV A,PWM;
CJNE A,#62H,D_1 ; 到最低了嗎
setb PWM_4
D_4: setb P1.0
setb P1.2
setb P1.4
INC SEC_5
MOV A, SEC_5
CJNE A,#125, D_1
MOV SEC_5,#0
clr PWM_2;
clr PWM_3
clr PWM_4
D_1: MOV TH0, pwm ; ;
MOV TL0,#0FFH ;
POP PSW
POP ACC
RETI;
END ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -