[請益] 8051產生40K 38K 37K方波輸出

看板ASM (組合語言)作者 (貝纳頌)時間13年前 (2012/04/11 11:42), 編輯推噓6(601)
留言7則, 5人參與, 最新討論串1/1
各位前輩好 小弟想請教各位前輩一些問題 我想要使用標準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

04/11 13:13, , 1F
用硬體計數器做一個1k的基頻,再用軟體接力計數
04/11 13:13, 1F
請問怎麼做?

04/11 13:14, , 2F
1換振盪器2換高速51
04/11 13:14, 2F
請問有推薦的嗎?

04/11 14:30, , 3F
無法整除就沒辨法直接得到精確的輸出
04/11 14:30, 3F

04/11 16:14, , 4F
先求出所需的頻率最小公因數,然後用他的倍數挑石英英體
04/11 16:14, 4F
目前一個指令約1us 25us ※ 編輯: Deltaguita 來自: 60.251.222.115 (04/12 09:33)

04/12 13:57, , 5F
我想你弄錯W大的意思了
04/12 13:57, 5F

04/12 23:21, , 6F
你的下一級不能容許一點誤差嗎?
04/12 23:21, 6F

04/13 01:16, , 7F
我重寫之後 解決了...
04/13 01:16, 7F
文章代碼(AID): #1FXFsMaj (ASM)
文章代碼(AID): #1FXFsMaj (ASM)