原帖由 marbol 於 2006-12-15 08:08 發表
2.增加的方式有用到table嗎??雖然說有步伐產生器的數學模型,不過有些時候動作不規則還是需要用table的方式來賦值~~~~
3.最後就是如同您所說的八個都要讓它們交互做不 ...
八個都要讓它們交互做不同轉動 的實驗作出來了。
要秀很麻煩,我寄給您。
;---------------------------------------------------------------------
;程式檔名:ssc(8通道pwm)
;------------------------------------------------------------------
PWM0 EQU 40H ;
PWM1 EQU 41H ;
PWM2 EQU 42H ;
PWM3 EQU 43H ;
PWM4 EQU 44H ;
PWM5 EQU 45H ;
PWM6 EQU 46H ;
PWM7 EQU 47H ;
COUNT EQU 37H
pWM EQU 52H
;------------------------------------------------------
ORG 00H
AJMP START
ORG 0BH
LJMP T0_INT ;timer0中斷
ORG 30H
START:
mov dptr,#table
MOV TMOD,#00010001B ;設定 TIMER1 作業於模式 1,TIMER0 作業於模式 1
;---------------------------------------------------------
MOV TH0,#>(65536-40) ;設定TIMER0在每40us中斷一次,if use 12Mhz crystal
MOV TL0,#<(65536-40)
;--------------------------------------------------------
SETB EA
SETB ET0 ;啟用TIMER0中斷
;--------------------------------------------------------------------------------
;通道判斷
;--------------------------------------------------------------------------------
MAIN:
mov r1,#0
mov r2,#50
loop:
mov a,r1
movc a,@a+dptr
mov pwm0,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm1,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm2,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm3,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm4,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm5,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm6,a
inc r1
mov a,r1
movc a,@a+dptr
mov pwm7,a
inc r1
LCALL OUT
djnz r2,loop
LJMP MAIN
;--------------------------------------------------------------------------------
table:
db 01h,02h,03h,04h,05h,06h,07h,08h,09h,0ah,0bh,0ch,0dh,0eh,0fh,10h,11h,12h,13h,14h,15h,16h,17h,18h,19h
db 19h,18h,17h,16h,15h,14h,13h,12h,11h,10h,0fh,0eh,0dh,0ch,0bh,0ah,09h,08h,07h,06h,05h,04h,03h,02h,01h
;----------------------------------------------------
[ 本帖最後由 ayu 於 2006-12-20 22:35 編輯 ] |