原帖由 marbol 於 2006-12-22 12:26 發表
ayu大大~~~
關於賦值的部份,還有很多可能的做法,不過使用table的方式基本上是沒有問題,
現在賦值還有一個重點!!!就是要指定哪隻PWM腳,輸出何種PWM波形,
程式一開始先讓PWM0~PWM7腳,賦與#12的值(也就是0ch,中 ...
marbol大師,
我馬上作,等我喔
;------------------------------------------------------------------
PWM0 EQU 40H ;
PWM1 EQU 41H ;
PWM2 EQU 42H ;
PWM3 EQU 43H ;
PWM4 EQU 44H ;
PWM5 EQU 45H ;
PWM6 EQU 46H ;
PWM7 EQU 47H ;
;------------------------------------------------------
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,#5
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
mov r3,#250 ;延時5秒設定值
LCALL OUT
djnz r2,loop
LJMP MAIN
;--------------------------------------------------------------------------------
table:
db 0ch,0ch,0ch,0ch,0ch,0ch,0ch,0ch
db 18h,00h,00h,18h,00h,00h,00h,00h
db 00h,00h,01h,00h,01h,00h,00h,00h
db 00h,00h,00h,00h,00h,12h,00h,06h
db 00h,06h,00h,00h,00h,00h,12h,00h
[ 本帖最後由 ayu 於 2006-12-22 21:41 編輯 ] |