欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于用Protues仿真51單片機時,定時器時間不準確問題 [打印本頁]

作者: 千江水    時間: 2021-3-23 15:12
標題: 關于用Protues仿真51單片機時,定時器時間不準確問題
       用Protues軟件仿真51單片機時,定時器的時間和用板子測試時不一樣,怎么辦?
平時用板子的時候,時間設置為2ms中斷一次,中斷里面+500次就得到一秒鐘,但是在用Protues軟件仿真的時候,要10秒才加一次,這是什么問題呢?
      時鐘我設置的初始時間是12:30:00,本應該數碼管顯示的變量會和時鐘秒鐘一樣快才對,可是當時鐘跑到12:30:10的時候,定時器里面那個變量才加一顯示在數碼管上。
有大佬幫忙解答一下嗎, 非常感謝了!!

void Timer0_Init(void)
{
        TMOD |= 0x01;//設置為16位計數器
        TH0 = (65535-2000)/256;//時間定為2ms
        TL0 = (65535-2000)%256;
        EA = 1;
        ET0 = 1;
        TR0 = 1;
}

void Interrupt0(void)interrupt 1
{
        static uint tim = 0,time = 0;
        
        TH0 = (65535-2000)/256;
        TL0 = (65535-2000)%256;
        
        tim++;
        if(tim >= 500)
        {
                tim = 0;
                time++;
        }

        Dis[0] = Tab[time/1000%10];
        Dis[1] = Tab[time/100%10];
        Dis[2] = Tab[time/10%10];
        Dis[3] = Tab[time%10];
        
        key2();
        Display();
}


作者: lwh999995    時間: 2021-3-23 17:08
你這個time加到什么時候才到頭啊? 65535+ ?
65535-2000  還是 65536-2000  ?
作者: wulin    時間: 2021-3-23 21:13
完成中斷函數任務的時間超過中斷周期導致部分中斷請求丟失。所以計時慢了許多。
作者: 天ノ憶    時間: 2021-3-24 09:31
中斷里面不要放那么多東西,除了計數其他操作都放在Main函數里面
作者: 860012525    時間: 2021-3-24 14:37
中斷任務里頭太繁雜了,中間阻隔了其他中斷,就少了
作者: 千江水    時間: 2022-8-10 10:38
860012525 發表于 2021-3-24 14:37
中斷任務里頭太繁雜了,中間阻隔了其他中斷,就少了

程序新手哈,以前習慣了
作者: 千江水    時間: 2022-8-10 10:39
lwh999995 發表于 2021-3-23 17:08
你這個time加到什么時候才到頭啊? 65535+ ?
65535-2000  還是 65536-2000  ?

time是全局變量,在main函數中會清除的
作者: 千江水    時間: 2022-8-10 10:39
天ノ憶 發表于 2021-3-24 09:31
中斷里面不要放那么多東西,除了計數其他操作都放在Main函數里面

嗯嗯,下次改正
作者: hepen2002    時間: 2022-10-6 17:17
然后呢。問題得到解決了嗎

作者: doodigen    時間: 2024-1-26 07:53
wulin 發表于 2021-3-23 21:13
完成中斷函數任務的時間超過中斷周期導致部分中斷請求丟失。所以計時慢了許多。

即便中斷函數里只有兩行代碼,在proteus仿真時也慢十倍,實物中就正常,為什么呢?




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1