找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2232|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

怎么寫采用分支結(jié)構(gòu)主程序,以狀態(tài)號(hào)標(biāo)識(shí)系統(tǒng)所處的狀態(tài) 求大神前輩解答

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:160971 發(fā)表于 2017-1-10 21:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
怎么寫采用分支結(jié)構(gòu)主程序,以狀態(tài)號(hào)標(biāo)識(shí)系統(tǒng)所處的狀態(tài),狀態(tài)0,1,2,3分別代表實(shí)現(xiàn)不同功能程序。這樣說(shuō)吧,就是把幾個(gè)獨(dú)立的程序?qū)懙絾纹瑱C(jī)里,按鍵按一下運(yùn)行第一個(gè)程序,按兩下顯示第二個(gè)程序,如此如此。求大神解答。

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

使用道具 舉報(bào)

沙發(fā)
ID:149988 發(fā)表于 2017-1-11 08:08 | 只看該作者

RE: 怎么寫采用分支結(jié)構(gòu)主程序,以狀態(tài)號(hào)標(biāo)識(shí)系統(tǒng)所處的狀態(tài) 求大神前輩解答

這是一個(gè)單鍵控制多種流水燈程序,aa,bb,cc,dd,ee分別是4種不同的流水方式,y就是這幾種方式的控制位,把你所需要的程序分別寫進(jìn)y所控制的語(yǔ)句中就差不多了。
#include<reg51.h>             //51系列單片機(jī)頭文件
#include<intrins.h>           //51系列單片機(jī)頭文件
#define uint unsigned int     //宏定義
#define uchar unsigned char   //宏定義
sbit k1=P1^0;
uchar aa,bb,cc,dd,ee,y=0;                     //定義一個(gè)變量,用來(lái)給P1口賦值
void delayms(uint xms)        //延時(shí)子函數(shù)
{
  uint i,j;
  for(i=xms;i>0;i--)      //i=xms即延時(shí)約xms毫秒
  for(j=110;j>0;j--);      
}
void key()
{
  uchar x;
  if(k1==0)
  {
    delayms(50);
    if(k1==0)
    {
      while(!k1);
      x++;
      if(x==5)
      x=1;
      if(y==5)
      x=0;
      switch(x)
      {
        case 1: y=1; break;
        case 2: y=2; break;
        case 3: y=3; break;
        case 4: y=4; break;        
        default: break;  
      }
    }
  }
}
void display()
{   
    if(y==0)
    {      
      P2=aa;           
      delayms(500);                  
      aa=~aa;           
    }
    if(y==1)
    {      
      P2=bb;            
      delayms(500);                     
      bb=_crol_(bb,1);         
    }
    if(y==2)
    {
      P2=cc;            
      delayms(500);                     
      cc=_cror_(cc,1);
    }      
    if(y==3)
    {
      P2=dd;           
      delayms(500);                     
      dd=~dd;     
    }
    if(y==4)
    {
      P2=ee;           
      delayms(500);                     
      ee=~ee;     
    }
  }
void main()            
{
  aa=0xff;            
  bb=0x01;
  cc=0xfe;
  dd=0xaa;
  ee=0xff;
  while(1)            
  {  
    key();
    display();
  }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:160895 發(fā)表于 2017-1-11 10:27 | 只看該作者
你可以用SWITCH語(yǔ)句來(lái)實(shí)現(xiàn)你的功能。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表