標題:
51初學小白~請問定時器為什么不能觸發(fā)
[打印本頁]
作者:
zjm001
時間:
2022-8-25 11:30
標題:
51初學小白~請問定時器為什么不能觸發(fā)
RT,剛剛學習51的定時器,想做一個每隔50MS閃燈的程序,但LED卻常亮,編譯是正常的,求問各位老師問題出在哪里了幫忙指點一下,謝謝定時器初始化方法是STC-ISP生成的 50MS 12T 16位自動重載
#include <STC89C5xRC.H>
void Timer0Init();
int i=0;
void main(){
Timer0Init();
P22=1;
while(1);
}
void Timer0Init() //50MS@11.0592MHz{
AUXR &= 0x7F;
TMOD &= 0xF0
TL0 = 0x00;
TH0 = 0x4C;
TF0 = 0;
TR0 = 1;
ET0=1
EA=1
}
void c_led() interrupt 1{
TL0 = 0x00;
TH0 = 0x4C;
TF0 = 0;
i+=1;
if(i>=65534){
復制代碼
51hei截圖20220825112637.png
(29.62 KB, 下載次數: 28)
下載附件
2022-8-25 11:30 上傳
作者:
Hephaestus
時間:
2022-8-25 12:39
用手甩一下電路板,如果看到一條連續(xù)的亮線,說明沒閃。如果看到的是不連續(xù)的亮點,那就是已經閃了,但是你的眼睛無法分辨50ms這么快的速度。
作者:
hhh402
時間:
2022-8-25 12:57
你確定可以分辨出50ms閃爍?改成500ms閃爍吧
作者:
robinsonlin
時間:
2022-8-25 13:01
1,int類型的i,能夠累加到65534么?
2,定時器中斷是50ms的間隔,50ms翻轉一次P22口的狀態(tài),你確定你的肉眼能否分辨100ms以內的閃爍?
作者:
188610329
時間:
2022-8-25 13:02
時間太短,閃了你也看不出來,500ms翻轉一次比較好,這是其1,其二,stc89系列,模式0是13位定時器方式,那么,你所以為的50ms,其實只有6ms出頭,那么等于就是常亮了。
作者:
zjm001
時間:
2022-8-25 13:10
解決了,是89c52沒有16位定時器重載,選擇16位就好了
作者:
sttt300
時間:
2022-8-25 13:16
這50ms已經超出了正常人能看到的范圍了,改1秒試試
作者:
lkc8210
時間:
2022-8-25 13:19
就算你有鈦合金氪石眼你也看不到50MS的閃燈閃爍
作者:
xxxevery
時間:
2022-8-25 13:48
如果你用的是stc89c5x的芯片,哪有16位自動重載這個模式,那么TMOD &= 0XF0這一句設定肯定不合適,在應用前還是先搞清楚用的是啥芯片,再研究一下對應的pdf
作者:
Tuier
時間:
2022-8-25 14:31
定時器模式設置不對。將TMOD &=0xf0改為TMOD =0X01試試。建議不要用ISP中的定時器設置程序,很多錯誤
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1