1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1912|回復: 2
收起左側

求解單片機紅綠燈程序一直跳不出循環,一直在9-4循環

[復制鏈接]
ID:777130 發表于 2020-6-16 00:40 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
  #define p1 P1
  #define uchar unsigned char
  #define uint unsigned int
  sbit gr0=P2^0;
  sbit ye0=P2^1;
  sbit re0=P2^2;
  sbit gr1=P2^3;
  sbit ye1=P2^4;
  sbit re1=P2^5;
  code unsigned shu[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  code unsigned shux[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  uchar type=1,flash=0;
  uchar temp,red=10;
  
  void delay(uint x)
  {
  uchar i;
  while(x--)
  for(i=0;i<120;i++);
  }
  void main()
  {
  switch(type)
  {
  case 1:
  re0=0;ye0=0;gr0=1;
  re1=1;ye1=0;gr1=0;
  temp=red;
  while(temp--)
  {
  P1=shu[temp];
  delay(1000);
  if(temp==4)break;
  }
  type=2;
  break;
  case 2:
  gr0=0;
  if(++flash!=6) return;
  while(temp--)
  {
  ye0=~ye0;
  P1=shu[temp];
  delay(1000);
  if(temp==4)
  break;
  }
  type=3;
  break;
  case 3:
  re0=1;ye0=0;gr0=0;
  re1=0;ye1=0;gr1=1;
  temp=red;
  while(temp--)
  {
  P3=shux[temp];
  delay(1000);
  if(temp==4)break;  
  }
  type=4;
  case 4:
  gr1=0;
  if(++flash!=6)return;
  while(temp--)
  {
  ye1=~ye1;
  P3=shux[temp];
  delay(1000);  
  }
  flash=0;
  type=1;
  }  
  }


51hei截圖_20200616003931.png
回復

使用道具 舉報

ID:24758 發表于 2020-6-16 12:49 | 顯示全部樓層
程序有點小問題,會導致*** error 65: access violation at C:0x020A : no 'execute/read' permission。
建議你將switch結構放到while里面,然后將case 2 和case 4中的 if(++flash!=6) return; 這個語句改寫成其他形式。
回復

使用道具 舉報

ID:739545 發表于 2020-6-16 13:23 | 顯示全部樓層
if(temp==4)break;自己不是設置到從9~4自動跳出么? 代碼寫的可讀性真差。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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