看板 ASM 關於我們 聯絡資訊
各位前輩好 小弟想請教各位前輩一些問題 我想要使用標準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