找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2941|回复: 4
打印 上一主题 下一主题
收起左侧

求程序工做完后,再运行另一个结束报擎程序,求大侠们怎么写

[复制链接]
跳转到指定楼层
楼主
ID:61311 发表于 2014-11-28 14:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求程序工做完后,再运行另一个结束报擎程序,求大侠们怎么写?
用C来写,
sbit       BCDE    =P2^4;//程序完成后,输出一个电平!

BYTE      EndFlag;//结束标志
BYTE      EndDisplay;//结束显示//



main()
????求解???


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2014-11-28 15:55 来自手机 | 只看该作者
你可以提供一下详细的工作流程,接下来就需要吧,这些流程全部都写在主函数里面
回复

使用道具 举报

板凳
ID:1 发表于 2014-11-28 15:56 来自手机 | 只看该作者
你提供的程序进行了定义,并没有进行,任何,实质性的操作
回复

使用道具 举报

地板
ID:61311 发表于 2014-11-28 16:35 | 只看该作者
程序太多,上主程序吧
回复

使用道具 举报

5#
ID:61311 发表于 2014-11-28 16:35 | 只看该作者
sbit       U8LE    = P1^6;//;/ chip selected for chip 373
sbit       BCDE    =P2^4;
sbit       BCDD    =P2^3;
sbit       BCDC    =P2^2;
sbit       BCDB    =P2^1;
sbit       BCDA    =P2^0;
sbit       OE373   =P3^2;
sbit       U25LE   =P3^4;
sbit       U27LE   =P3^5;
sbit       U27OE   =P3^3;
sbit       FAN     =P1^7;


extern    BYTE tick;
extern    BYTE alarmminute;
extern    ControlStep idata step;
extern    WORD minute;
extern    BYTE second;
extern    SampleTick;
extern     CAlarm;//extern    sendalarm[16];
extern    CheckFlag;
extern    AlLedFlag;
extern    fanminute;
extern    WORD idata samplecurrent[15];
extern    WORD idata current[8];
extern    BYTE idata SaveGap;
extern    WORD idata SaveTime;
extern    WORD idata UpperV;
extern    WORD idata DownerV;
//extern void SetWD(void);
BYTE      idata UnitAdd;
BYTE      RelayFlag;  // variable store Relay status
BYTE      CycleTime;
BYTE      EndFlag;
BYTE      EndDisplay;
BYTE      idata RunStatus;
//extern    WORD    idata ADGain,DAGain,ADOffset,DAOffset;

main()
{
  BYTE  ContFlag;  // flag to break cycle
  BYTE  data MenuId,key,temp;
  extern void SetRelay(void);
// BYTE  SaveTime;
   //U8LE=1;
  P0=0xff;
  EndDisplay=0;
  FAN=1;
  initial();
  SerialInit();
  InitTimer0();
  EndFlag=0;
  write538(0);
  
  delay(5);
  P0=0Xf8;
  delay(1);
  U25LE=1;
  U27LE=1;
  U8LE=1;
  OE373=0;
  U27OE=0;
  SetWD();

  ResetAlarm();
  ResetCheck();
  ResetRelay();
  ResetRelay();
  RunStatus=0;
  SaveTime=0;



    for(;;)
  {
     UnitAdd=P2;
         UnitAdd=UnitAdd&0x3f;
         if (P2^4==1)
                 {UnitAdd=UnitAdd & 0xef;}
         else
                 {UnitAdd=UnitAdd | 0x10;}
        if (P2^5==1)
                 {UnitAdd=UnitAdd & 0xdf;}
         else
                 {UnitAdd=UnitAdd | 0x20;}
         Init8279();
     ResetWD();
     step.StepNo=readx25043(STEPSTATUS);
     step.StepNo=readx25043(STEPSTATUS);

     minute=readx25043int(TIMESTATUSHIGH);
     CycleTime=readx25043(CYCLESTATUS);
     EndFlag=readx25043(ENDFSTATUS);
         UpperV=readx25043int(UV_ADDH);
     DownerV=readx25043int(DV_ADDH);
         if (UpperV==0)
                 {UpperV=INIUPPERV;}

     //UnitAdd=readx25043(UNITNO);
         if(step.StepNo>19) step.StepNo=0;
         if(minute>999) minute=0;
         if(EndFlag) //if either of these item was not zero.it demonstarte abnormal break
               {
                      InitTimer0();   //to start timer0
                  for(;;){

                      CheckFlag=0;
                  AlLedFlag=0;
                  ResetCheck();
                      ResetAlarm();
                             if(minute>=SaveTime)

                               SaveGap=minute-SaveTime;
                             else
                                       SaveGap=59+minute-SaveTime;

                 if(SaveGap>=SAVETIME)
                             {
                               SaveStatus();    // Save runing status every certain time
                                   SaveTime=minute;
                  FAN=0;
                                }
                  DisplayBlink("START",5,0);   // display start blink to demonstrate abnormal break
                  ResetWD();
                                  key=GetKey();
                  temp=ExeCommand();
                  if(temp) key=temp;
                              ContFlag=0;
                              switch(key){
                                   case  KEY_ENTER :
                                                           ClrStatus();
                                                           ContFlag=1;
                                                           break;
                       case  KEY_START :
                                               start();
                                               ContFlag=1;
                                               break;
                                       default         :
                                                               break;
                                   }
                  if(ContFlag) break;
                              }

               ET0=0;
                   TR0=0;

                   }

            else
                   {
                if(EndDisplay)
                            {display("ENDII",5,0);}
                                else display("START",5,0);
                 CheckFlag=0;
                 AlLedFlag=0;
                 ResetCheck();
                           ResetAlarm();
                ContFlag=0;
                       for(;;)
                {
                             if(minute>=SaveTime)

                               SaveGap=minute-SaveTime;
                             else
                                       SaveGap=59+minute-SaveTime;

                 if(SaveGap>=SAVETIME)
                             {
                               SaveStatus();    // Save runing status every certain time
                                   SaveTime=minute;
                  FAN=0;
                                }
                                    ResetWD();
                    key=GetKey();
                                        temp=ExeCommand();
                    if(temp) key=temp;
                        if(key==KEY_ENTER)
                        {
                            MenuId=MenuEntry(StartMenu,1);  // menuID is index of one selection in menu
                                switch (MenuId)
                                {
                                            case 0 : ProgEntry(); break;
                                           //     case 1 : SetVoltage();break;
                                                                        /*case 2 : do {display("8I8I8I8I",8,0);
                                                                                     delay(100);
                                                                                                 display("I8I8I8I8",8,0);
                                                                                                 delay(100);}
                                                                                                 while(1);*/
                                        }
                                                ContFlag=1;
                        }
     
                            switch (key)
                    {
                        case  KEY_START   :   start();         ContFlag=1;break;
                        case  KEY_CHARG   :   test(CHARGE);    ContFlag=1;break;
                        case  KEY_DISCH   :   test(DISCHARGE); ContFlag=1;break;
                        default           :   break;

                         }

                     if(ContFlag) break;

                 }
                   }
  }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表