⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project based on embeded system(c51).txt

📁 一个基于嵌入式内核做的项目的源代码(c51的).
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                            break;
                        }
                        
                    break;
                    case 4://第四个实验页面
                        switch(KeyTemp[1])
                        {
                            case KEYJIAWEN:                
                                    serial[0]=CYEMIAN;
                                    serial[1]=10;
                                    OSQIntPost(CommandData, serial[0]);
                                    serial[0]=CYEMIAN;
                                    serial[1]=9;
                                    OSQIntPost(CommandData, serial[0]);
                                    serial[0]=CWENDU;
                                    serial[1]=wendu;
                                    serial[2]=1;
                                    OSQIntPost(CommandData, serial[0]);

     
                                
                            break;
                            default:
                            break;
                        }
                    break;
                    case 5://第五个实验页面
                        switch(KeyTemp[1])
                        {
                            case KEYJIA:
                                wendu++;
                                serial[0]=CWENDU;
                                serial[1]=wendu;
                                serial[2]=1;
                                OSQIntPost(CommandData, serial[0]);

                            break;
                            case KEYJIAN:
                                wendu--;
                                serial[0]=CWENDU;
                                serial[1]=wendu;
                                serial[2]=1;
                                OSQIntPost(CommandData, serial[0]);
                            break;
                            default:
                            break;
                        }
                    break;
                    case 6://第六个实验页面
                    break;
                    case 7://第七个实验页面
                    break;
                    case 8://第八个实验页面
                        switch(KeyTemp[1])
                        {
                            case KEYSHEZHI:
                                serial[0]=CYEMIAN;
                                serial[1]=5;
                                OSQIntPost(CommandData, serial[0]);
                                serial[0]=CYEMIAN;
                                serial[1]=6;
                                OSQIntPost(CommandData, serial[0]);
                                serial[0]=CSHEDING;
                                serial[1]=sheding/256;
                                serial[2]=sheding%256;
                                serial[3]=1;
                                OSQIntPost(CommandData, serial[0]);
                                serial[0]=CSUDU;
                                serial[1]=sudu/256;
                                serial[2]=sudu%256;
                                serial[3]=0;
                                OSQIntPost(CommandData, serial[0]);
                                test=3;


                            break;
                    
                            default:
                            break;
                        }
                    break;
                    default:
                    break;

                }

            break;
            case KEY_ALWAYS:
                switch(test)
                {
                
                    case 3:
                        switch(KeyTemp[1])
                        {
                            case KEYJIA:
                                if(yeup==0)
                                {
                                    
                                    if(keytime>9)
                                    {
                                        sheding=sheding+10;
                                    }
                                    else 
                                    {
                                        sheding++;
                                        keytime++;
                                    }
                                    serial[0]=CSHEDING;
                                    serial[1]=sheding/256;
                                    serial[2]=sheding%256;
                                    serial[3]=1;
                                    OSQIntPost(CommandData, serial[0]);
                                }
                                else
                                {
                                    if(keytime>9)
                                    {
                                        sudu=sudu+10;
                                    }
                                    else 
                                    {
                                        sudu++;
                                        keytime++;
                                    }
                                    serial[0]=CSUDU;
                                    serial[1]=sudu/256;
                                    serial[2]=sudu%256;
                                    serial[3]=1;
                                    OSQIntPost(CommandData, serial[0]);
                                
                                }
                          break;
                          case KEYJIAN:
                              if(yeup==0)
                                {
                                    
                                    if(keytime>9)
                                    {
                                        sheding=sheding-10;
                                    }
                                    else 
                                    {
                                        sheding--;
                                        keytime++;
                                    }
                                    serial[0]=CSHEDING;
                                    serial[1]=sheding/256;
                                    serial[2]=sheding%256;
                                    serial[3]=1;
                                OSQIntPost(CommandData, serial[0]);
                                }
                                else
                                {
                                    if(keytime>9)
                                    {
                                        sudu=sudu-10;
                                    }
                                    else 
                                    {
                                        sudu--;
                                        keytime++;
                                    }
                                    serial[0]=CSUDU;
                                    serial[1]=sudu/256;
                                    serial[2]=sudu%256;
                                    serial[3]=1;
                                    OSQIntPost(CommandData, serial[0]);
                                
                                }



                          break;
                          default:
                          break;
                          }
                        
                    break;
                    case 5:
                        switch(KeyTemp[1])
                        {
                            case KEYJIA:
                                if(keytime>9)
                                    {
                                        wendu=wendu+10;
                                    }
                                    else 
                                    {
                                        wendu++;
                                        keytime++;
                                    }
                                serial[0]=CWENDU;
                                serial[1]=wendu;
                                serial[2]=1;
                                OSQIntPost(CommandData, serial[0]);
                                
                            break;
                            case KEYJIAN :
                                if(keytime>9)
                                    {
                                        wendu=wendu-10;
                                    }
                                    else 
                                    {
                                        wendu--;
                                        keytime++;
                                    }
                                serial[0]=CWENDU;
                                serial[1]=wendu;
                                serial[2]=1;
                                OSQIntPost(CommandData, serial[0]);

                            break;
                            default:
                            break;
                        }
                        
                    break;
                    default:
                    break;

                }
            
            break;
            case KEY_UP:
                keytime=0;
        
            break;
            default:
            break;
        }
//         OSWait(K_TMO,OS_TICKS_PER_SEC  / 10);
        
    }

}

/*********************************************************************************************************
** 函数名称: Motorrun(void)
** 功能描述:  电机运行任务,主要控制电机的运行和停止的时间,来控制流量的大小
               并不是控制电机的转速
** 输 入: 无
** 输 出: 无
** 全局变量: run,
** 调用模块: OSSemCreate(),OSQPend()
**            OSQIntPost(),
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/


        void Motorrun(void)
{
    uint16 i;
    while (1)
    {
        if(run==1)
        {
            //电机运行的控制算法程序已省略
        }
        else
        {
               OSWait(K_TMO,OS_TICKS_PER_SEC/ 10 );
        }
    }
}

/*********************************************************************************************************
** 函数名称: INT_0(void) interrupt 0
** 功能描述:  控制电机开/关的中断,外部连接了一个按键
** 输 入: 无
** 输 出: 无
** 全局变量: run,
** 调用模块: 
**            OSQIntPost(),
** 作 者: 陈杰峰   wishercjf@163.com 
** 日 期: 2004年5月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/



#if EN_OS_INT_ENTER >0 
#pragma disable                                         /* 除非最高优先级中断,否则,必须加上这一句                 */
#endif
        void INT_0(void) interrupt 0
{
#if EN_OS_INT_ENTER >0
    OS_INT_ENTER();                                     /* 进入中断处理             */
#endif
   
    if(run==0)
    {
        
        if(test==4)
        {
                serial[0]=CYEMIAN;
                serial[1]=11;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CYEMIAN;
                serial[1]=13;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CSHEDING;
                serial[1]=sheding/256;
                serial[2]=sheding%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CYIJING;
                serial[1]=yijing/256;
                serial[2]=yijing%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CSUDU;
                serial[1]=sudu/256;
                serial[2]=sudu%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                test=7;
                run=1;
        }
        if(test==5)
        {
                serial[0]=CYEMIAN;
                serial[1]=11;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CYEMIAN;
                serial[1]=12;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CSHEDING;
                serial[1]=sheding/256;
                serial[2]=sheding%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CYIJING;
                serial[1]=yijing/256;
                serial[2]=yijing%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CSUDU;
                serial[1]=sudu/256;
                serial[2]=sudu%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CWENDU;
                serial[1]=wendu/256;
                serial[2]=wendu%256;
                serial[3]=0;
                OSQIntPost(CommandData, serial[0]);
                test=6;
                run=1;
        
        }
        
    }
    else
    {
        run=0;
        test=8;
                serial[0]=CYEMIAN;
                serial[1]=14;
                OSQIntPost(CommandData, serial[0]);
                serial[0]=CYEMIAN;
                serial[1]=10;
                OSQIntPost(CommandData, serial[0]);

    }
    OSIntExit();                                        /* 退出中断处理             */
}

/*********************************************************************************************************
** 函数名称: da5615(unsigned int da)
** 功能描述:  da5615的驱动程序,本程序是从c51bbs上找到的
** 输 入: 温度值
** 输 出: 无

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -