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

標題: 嘗試寫了一個交通燈的程序,但是不知道哪里錯了,秒表秒數動得很快,求大神指導 [打印本頁]

作者: 電ac    時間: 2020-6-29 04:53
標題: 嘗試寫了一個交通燈的程序,但是不知道哪里錯了,秒表秒數動得很快,求大神指導
這是我寫的代碼。
#include<regx51.h>
sbit R=P1^0;
sbit Y=P1^1;
sbit G=P1^2;
sbit com1=P3^0;
sbit com2=P3^1;
unsigned char c,miao;
unsigned char dm[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int i)
{
while(i--);
}
void timer() interrupt 1
{   
   TH0=(65536-25000)/256;
  TL0=(65536-25000)%256;
  c++;
  if(c>=40)
   c=0;
   miao--;
}
void xs()
{
com1=1;com2=0;
P2=dm[miao/10];
delay(1000);
P2=0xff;
com1=0;com2=1;
P2=dm[miao%10];
delay(1000);
P2=0xff;
}
void t0()
{
   TMOD=0X01;
    EA=1;
    ET0=1;
  TR0=1;
    TH0=(65536-25000)/256;
  TL0=(65536-25000)%256;
}
void main ()
{
t0();
    while (1)
    {
   miao=39;
   while(miao!=0)
   {
    G=0;
    Y=1;
    R=1;
    xs();
    }
   miao=5;
   while(miao!=0)
   {
    Y=0;
    R=1;
    G=1;
    xs();
   }
   miao=59;
   while(miao!=0)
   {
    R=0;
    G=1;
    Y=1;
    xs();
    }
  }  
}


作者: 不要黑    時間: 2020-6-29 15:11
定時器中斷函數。if語句后加大括號
void timer() interrupt 1
{   
   TH0=(65536-25000)/256;
  TL0=(65536-25000)%256;
  c++;
  if(c>=40)
{
   c=0;
   miao--;
}
}

作者: xianfajushi    時間: 2020-6-29 15:11
  c=0;    miao--;應該用花括號括起來,{  c=0;    miao--;}對?
作者: man1234567    時間: 2020-6-29 17:40
樓上正解。
IF如果不加括號只將隨后的一句納入條件判斷,也就是說你原來的程序只有當C達到40后置零,而miao--并不受條件約束,加了括號后所有括號內的都納入條件判斷。
c>=40不寫成c=40是怕跑飛么
作者: 電ac    時間: 2020-7-1 23:01
謝謝各位大佬,確實是大佬說的那樣,程序可以正常運行了
作者: 電ac    時間: 2020-7-1 23:15
xianfajushi 發表于 2020-6-29 15:11
c=0;    miao--;應該用花括號括起來,{  c=0;    miao--;}對?

是的,已經改好了。謝謝

作者: 電ac    時間: 2020-7-1 23:16
不要黑 發表于 2020-6-29 15:11
定時器中斷函數。if語句后加大括號
void timer() interrupt 1
{   

你說的是對的,謝謝




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