標題: 各位大神幫忙看看,這個程序?qū)Σ粚?[打印本頁]

作者: sxszpeng    時間: 2015-12-20 20:43
標題: 各位大神幫忙看看,這個程序?qū)Σ粚?br />#include<reg51.h>
#define u8 unsigned char
#define u16 unsigned int
sbit led=P1^0;
u8 time,num;

void timer() interrupt 0
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        time++;
}

void delay(u16 num)
{
        u16 x;
        for(x=num;x>0;x--)
        {
                if(time==2)
                {
                        time=0;
                }
        }
}

void main()
{
        time=0;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        led=0;
        while(1)
        {
                delay(5);
                led=~led;
        }
}


作者: admin    時間: 2015-12-20 21:01
- 0 個錯誤, 0 個警告。程序沒有問題
作者: sxszpeng    時間: 2015-12-20 21:15
額,我的意思是這個程序能不能作為延時程序來用,因為我仿真的結果不對,而我也找不出原因
作者: 郭常德    時間: 2015-12-20 21:38
對啦  全部都對呢
作者: wantyou    時間: 2015-12-21 09:59
是對的啊
作者: sxszpeng    時間: 2015-12-21 10:46
問題是我用PROTUES仿真,那個延時500MS就不是500MS,延時的時間不對
作者: 紅塵有你    時間: 2015-12-21 12:02
sxszpeng 發(fā)表于 2015-12-21 10:46
問題是我用PROTUES仿真,那個延時500MS就不是500MS,延時的時間不對

你這延時的是50MS,而且不能用定時器0,TR0只能延時8.192MS
作者: cf0609    時間: 2015-12-21 15:10
最好搞個板子,不要用仿真,,,
作者: lwylwy1    時間: 2015-12-21 15:29
對的,仿真是有延時的注意,仿真只能證明是可運行的。
作者: 騰飛的龍    時間: 2015-12-21 22:12
延時函數(shù)里加定時器,沒用過。學習啦
作者: liuanboy    時間: 2015-12-23 13:25
你的系統(tǒng)時鐘頻率不一樣,延時的時間就不一樣啊
作者: 騰飛的龍    時間: 2015-12-24 12:27
中斷號不對,T0的中斷號應該是1
作者: sxszpeng    時間: 2015-12-24 20:57
恩,對的,中斷號是1,系統(tǒng)時鐘是12MHZ





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