幹架王 發表於 2009-7-1 19:40:26

馬達程式問題

這是一個讓伺服馬達到達中立的程式,每0.1ms計時一次
最後P2.0輸出pwm波 1.5ms 20ms
ORG 0000H
JMP START
ORG 000BH
JMP TIMER0
START: MOV R2,#1
MOV R1,#10
MOV TMOD,#00000001B
MOV TH0,#0FFH
MOV TL0,#64H
SETB EA
SETB ET0
SETB TR0
   
LOOP: JMP LOOP


TIMER0:
PUSH ACC
CLR TF0
MOV TH0,#0FFH
MOV TL0,#64H
INC R0
CYCLE1: CJNE R2,#0,SERVO1
CYCLE2: CJNE R0,#20,GOBACK
MOV R0,#0
DJNZ R1,CYCLE2
MOV R2,#1
MOV R0,#0
MOV R1,#10
SETB P2.0
JMP GOBACK

SERVO1: MOV A,R0
XRL A,#15
JNZ GOBACK
MOV R2,#0
CLR P2.0
GOBACK: POP ACC
RETI
END


但是更改成每0.01ms計時一次 ,卻無法輸出PWM波,請問各位高手到底是為什麼啊?

更改地方

MOV TH0,#0FFH
MOV TL0,#0EFH

MOV TH0,#0FFH
MOV TL0,#0EFH


CYCLE2: CJNE R0,#200,GOBACK

XRL A,#150

幹架王 發表於 2009-7-1 20:43:06

補充 使用的石英晶體是20MHz ,除以12,所以週期是0.6uS
0.6u*17=10.2uS,約等於0.01ms
0.01ms*150=1.5ms
0.01ms*2000=20ms
頁: [1]
查看完整版本: 馬達程式問題