![]() |
發(fā)布時間: 2022-2-11 16:45
正文摘要:請教壇里各位,以下程序目的是輸出1us的方波,可是用示波器檢測只有38kHz左右(晶振12M正常),百思不得其解。 單片機源程序如下: #include <REG51.H> sbit pause = P0^3; void main(void) { EA = 1;& ... |
wulin 發(fā)表于 2022-2-12 06:04 感謝,我在STC8開發(fā)板上使用22.1184晶振就可以得到1us的方波了。 |
要理解基本概念,不能用中斷實現(xiàn),用中斷1us沒有人這樣做的,找有時鐘分頻輸出功能的單片機 |
你是89c51的話,用t2定時器,并且從ex引腳輸出脈沖,可以達到理論上的最高速,如果配上倍頻,即6t模式的話,勉強可輸出1us的方波,其他方法都不可能實現(xiàn)。 |
你是89c51的話,用定時器2,并且從ex |
傳統(tǒng)51單片機在12M晶振條件下執(zhí)行pause = ~pause;需要2us時間。所以不能用定時器中斷,用最精簡代碼編程也只能輸出脈寬3us,占空50%,頻率166.667KHz的方波。理論上晶振頻率達36MHz才能滿足基本條件。
|
請將 pause = ~pause; 改成 pause = TF0 ? 0 :!pause; 確定有無輸出。 |
中斷響應(yīng)需要耗時3-6微秒。 |
Powered by 單片機教程網(wǎng)