[問題] 8051 輸出方波

看板ASM (組合語言)作者 (季羅桑)時間14年前 (2011/02/24 13:40), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
大家好 我是正在學習8051的新手 我想請教各位版友 我買了一個市售的8051模組 機械周期為1微秒 我要使用這個模組輸出一個頻率為3Hz且可調整Duty Cycle的方波 頻率3Hz週期為1/f=333333.333微秒 若duty cycle值為0.2% 則方波on的時間為333333.333*0.2%=666.666微秒 方波off的時間為333333.333-666.666=332666.667微秒 所以on時間須執行667次機械周期 off時間須執行332666次機械周期而,我程式理設定執行300000微秒) 因為計時/計數器最大的計數值僅有2^16=65536 所以我設計讓off每次跑10000微秒 總共跑30次 只是寫完總是覺得怪怪的 以下是我的程式碼 懇請各位版友幫幫我看哪裡有問題! ORG 00H SJMP START START: MOV TMOD,#01H SETB TR0 LOOP: CLR P1.0 ;on 的周期開始 MOV TH0,#>(65536-667) MOV TL0,#<(65536-667) S1: JBC TF0,S3 SJMP S1 S3: R6,#30 pint0: CPL P1.0 ;off 的周期開始 CLR TF0 MOV TH0,#>(65536-10000) MOV TL0,#<(65536-10000) S2: JBC TF0,S4 S4: CLR TF0 DJNZ R6,pint0 SJMP LOOP END -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.153.86 ※ 編輯: kittysan 來自: 140.113.253.119 (02/24 17:34)

02/24 17:25, , 1F
pwm 程式寫法可先參考W大的舊文 #1BZWffSY
02/24 17:25, 1F
※ 編輯: kittysan 來自: 140.113.253.119 (02/24 17:55)
文章代碼(AID): #1DPUyubm (ASM)
文章代碼(AID): #1DPUyubm (ASM)