![]() |
發布時間: 2022-8-25 11:30
正文摘要:RT,剛剛學習51的定時器,想做一個每隔50MS閃燈的程序,但LED卻常亮,編譯是正常的,求問各位老師問題出在哪里了幫忙指點一下,謝謝定時器初始化方法是STC-ISP生成的 50MS 12T 16位自動重載 #include <STC89C5xR ... |
定時器模式設置不對。將TMOD &=0xf0改為TMOD =0X01試試。建議不要用ISP中的定時器設置程序,很多錯誤 |
如果你用的是stc89c5x的芯片,哪有16位自動重載這個模式,那么TMOD &= 0XF0這一句設定肯定不合適,在應用前還是先搞清楚用的是啥芯片,再研究一下對應的pdf |
就算你有鈦合金氪石眼你也看不到50MS的閃燈閃爍 |
這50ms已經超出了正常人能看到的范圍了,改1秒試試 |
解決了,是89c52沒有16位定時器重載,選擇16位就好了 |
時間太短,閃了你也看不出來,500ms翻轉一次比較好,這是其1,其二,stc89系列,模式0是13位定時器方式,那么,你所以為的50ms,其實只有6ms出頭,那么等于就是常亮了。 |
1,int類型的i,能夠累加到65534么? 2,定時器中斷是50ms的間隔,50ms翻轉一次P22口的狀態,你確定你的肉眼能否分辨100ms以內的閃爍? |
你確定可以分辨出50ms閃爍?改成500ms閃爍吧 |
用手甩一下電路板,如果看到一條連續的亮線,說明沒閃。如果看到的是不連續的亮點,那就是已經閃了,但是你的眼睛無法分辨50ms這么快的速度。 |