作者Deltaguita (貝纳頌)
看板ASM
標題[請益] 8051產生40K 38K 37K方波輸出
時間Wed Apr 11 11:42:10 2012
各位前輩好 小弟想請教各位前輩一些問題
我想要使用標準8051產生40K 38K 37K方波輸出
我目前可以單純利用迴圈以及NOP指令來達到精準輸出
可是這樣要個別寫3種頻率輸出的副程式
現在我想改用計時器來精簡程式,只要改變計時起始值就可以輸出3種不同頻率
只是輸出有點問題 不管我怎麼調整 就是沒辦法調到我要的輸出
a=246 得到41.7k
a=245 31.2K....
請問我該如何修改?
程式碼如下:
;==============================================================
;P0. IR_output輸出
;石英震盪器頻率:12M HZ
;機械周期1/12 us ; 指令周期:1us
;$MOD51
IRoutput equ P2.0
org 000h ;rest
Jmp main
org 000bh ;TIME_IR1
Reti
main:
clr IRoutput
mov a,#246
mov TMOD,#02h
setb TR0
FOUT:
mov TL0,a ;2us
cpl IRoutput ;1us
RE: jbc TF0,FOUT ;2us
ajmp re
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.222.115
推 wuonline:用硬體計數器做一個1k的基頻,再用軟體接力計數 04/11 13:13
請問怎麼做?
推 lion21:1換振盪器2換高速51 04/11 13:14
請問有推薦的嗎?
推 ruemann:無法整除就沒辨法直接得到精確的輸出 04/11 14:30
推 WolfLord:先求出所需的頻率最小公因數,然後用他的倍數挑石英英體 04/11 16:14
目前一個指令約1us 25us
※ 編輯: Deltaguita 來自: 60.251.222.115 (04/12 09:33)
推 ruemann:我想你弄錯W大的意思了 04/12 13:57
推 lion21:你的下一級不能容許一點誤差嗎? 04/12 23:21
→ Deltaguita:我重寫之後 解決了... 04/13 01:16