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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2239|回復: 3
打印 上一主題 下一主題
收起左側

proteus里程序不跑,大佬幫忙看一下

[復制鏈接]
跳轉到指定樓層
樓主
ID:647772 發表于 2019-12-18 02:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include  <reg51.h>
#include  <intrins.h>
#define  uchar  unsigned char
#define  uint  unsigned int

unsigned char code table[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}
uchar key_mode=0;
uchar RXD_time=11;
sbit  H_RED=P1^0;
sbit  H_GREEN=P1^1;   
sbit  H_YELLOW=P1^2;  
sbit  L_RED=P1^4;   
sbit  L_GREEN=P1^5;
sbit  L_YELLOW=P1^6;

sbit  k1=P2^0;   
sbit  k2=P2^1;  
sbit  k3=P2^2;   
sbit  k4=P2^3;   
sbit  LED_com1=P2^6;
sbit  LED_com2=P2^7;

void delay_LED(unsigned int i)
{
   unsigned int j;
   for(j=0;j<i;j++)
}
void display(uchar RXD_time)   
{
    uchar shi,ge;
     shi=RXD_time/10;
      ge=RXD_time%10;
    LED_com1=1;
    LED_com2=1;
   
    LED_com1=0;
    P0=table[shi];
    LED_com2=1;
    delay_LED(20);
   
    LED_com1=1;
    P0=table[ge];
    LED_com2=0;
    delay_LED(20);
   
   
   
}
void  int0()  interrupt  0     
    if (k1==0) key_mode=1;      
                                 
if (k2==0) key_mode=2;   
                          
      
        
if (k3==0) key_mode=3;         
                           

if (k4==0) key_mode=4;  
}
void  T0_int()  interrupt  1     
{
    uchar i;  
  
    TH0=0x3C ;
TL0=0xB0;
i++;
if(i==10)      
{
    i=0;

    L_YELLOW=~L_YELLOW;
  H_YELLOW=~H_YELLOW;
  


}
}
void  T1_int()  interrupt  3  
{
    uchar i;

   
    TH1=0x3C;
TL1=0xB0  ;
i++;

if(i==220)
{
   i=0;

     RXD_time--;
   

}
}


           
void  main(void)
{
IT0=1;
EX0=1  ;
TMOD=0x11 ;  

TH0=0x3C  ;  
TL0=0xB0 ;
ET0=1 ;   
  
TH1=0x3C  ;  
TL1=0xB0 ;
ET1=1 ;   
    EA=1    ;   
P1=1 ;   

while(1)   
{
           
   
      if(key_mode==1)
    {   
     L_RED=0;
    H_RED=0;

  }

    if (key_mode==2)
   {
      
      TR0=1;


   }
   
      
    if (key_mode==3)
   {
        
      H_GREEN=0;
   L_RED=0;


   }
   
   
     
         
   if (key_mode==4)
   {
   
     L_RED=0;
   delay_LED(11000);
   L_GREEN=0;
   H_GREEN=0;
    delay_LED(8000);
   H_YELLOW=0;
   delay_LED(3000);
   H_RED=0;
   TR1=1;
  }
  while(1);




     
   
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:332444 發表于 2019-12-18 10:09 | 只看該作者
while(1);這個何用?上仿真圖看看是蝦米
回復

使用道具 舉報

板凳
ID:396245 發表于 2019-12-18 11:17 | 只看該作者
xianfajushi 發表于 2019-12-18 10:09
while(1);這個何用?上仿真圖看看是蝦米

很明顯,不是不跑,是跑完一遍就被死循環了。
回復

使用道具 舉報

地板
ID:667393 發表于 2019-12-18 15:11 | 只看該作者
先說解決方案,去掉后面一個while(1);
解釋:前一個 while(1){......}可以根據if后面不同的條件選擇,并循環。但是   if (key_mode==4)也結束判斷之后,你的程序進入了第二個  while(1);  之后,程序只在這里循環,而不是前一個大的while語句中循環。你的程序框架如下所示:
while(1)
{
if (key_mode==1) { };
if (key_mode==2) { };
if (key_mode==3) { };
if (key_mode==4) { };
while(1)
{  空  };


};
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表