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

標題: 單片機定時器0:小燈一隔一秒閃爍程序錯誤 [打印本頁]

作者: hanliu    時間: 2020-12-16 20:19
標題: 單片機定時器0:小燈一隔一秒閃爍程序錯誤
大佬們,在線求助
今天剛學的定時器,我實在是不知道哪錯了_

#include<reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led=P1^0;

u16 num;

void dingshi0()
{               
        TMOD=0X01;//選擇定時器0 工作方式1
        TH0=(65536-50000)/256; //50ms
        TL0=(65536-50000)%256;
        ET0=1;
        EA=1;
        TR0=1;//開啟定時器
}
void main()
{
        while(1)
        {
                dingshi0();
        }
}
void ding0() interrupt 1
{
        num++;//計數、時間
        TH0=(65536-50000)/256;//50ms
        TL0=(65536-50000)%256;
        if(num==20)//1s
        {
                num=0;
                led=~led;        
        }                        
}
作者: 47okey    時間: 2020-12-16 22:50
定時器0初始化應該放在while(1)外面,你這樣是不斷初始化,不能計時了。
作者: hanliu    時間: 2020-12-16 23:25
47okey 發表于 2020-12-16 22:50
定時器0初始化應該放在while(1)外面,你這樣是不斷初始化,不能計時了。

感想大佬(^O^),
我懂了
作者: jiahz2019    時間: 2020-12-17 08:23
試下這樣行不行
#include<reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led=P1^0;

u16 num;

void dingshi0()
{               
        TMOD=0X01;//選擇定時器0 工作方式1
        TH0=(65536-50000)/256; //50ms
        TL0=(65536-50000)%256;
        ET0=1;
        EA=1;
        TR0=1;//開啟定時器
}
void main()
{
         void dingshi0() ;
         while(1)
        {
               if(num==20)//1s
        {
                num=0;
                led=~led;        
        }   
        }
}
void ding0() interrupt 1
{
        num++;//計數、時間
        TH0=(65536-50000)/256;//50ms
        TL0=(65536-50000)%256;                           
}

作者: fj51hei    時間: 2020-12-17 09:43
編譯下不就知道!
作者: hanliu    時間: 2020-12-17 21:19
jiahz2019 發表于 2020-12-17 08:23
試下這樣行不行
#include
typedef unsigned int u16;

我剛才試了下,這樣也可以




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