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

📄 dcxjmain.c

📁 一个分选系统的软件:用SmallRtos操作系统
💻 C
字号:
/*********************************************************************************************************
**锂电分选系统 软件设计:刘宝贵,硬件设计:刘宝贵 调试:刘宝贵
**本系统使用编译器为 keil c51.exe V7.06
**本系统使用汇编器为 keil A51.exe V7.07
**本系统使用联接器为 keil BL51.exe V5.03
**本系统使用Small RTOS51 V1.12.0
**如果等程序有问题或者是Bug请与作者联系
**与作者联系方法:邮箱:baoguiliu@163.com,baoguiliu@sohu.com 电话:0451-86649609
**
**
**VER1.0
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: ldfxmain.c
**创   建   人: 刘宝贵
**最后修改日期: 
**描        述: ldfxmain.c源代码。
**
**--------------历史版本信息----------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "config.h"
void config();
/*********************************************************************************************************
** 函数名称: main
** 功能描述: 主函数
** 输 入:   无
** 输 出:   无
** 全局变量: 
** 调用模块: OSStart() config()
**
** 作 者: 刘宝贵
** 日 期: 2004年5月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void main(void)
{
    uint8 data i,temp8a,temp8b;
    config();//auto config
//    abc:
//    displaycls();
//    displayword(04,28,04);
//    displayword(04,64,05);
//    displayword(04,100,06);
//goto abc;
//test:
//		TI0 = 0;
//        SBUF0 = 0x55;
//        do{}while(TI0==0);
//        goto test;

//    P6 = 0;
//    P6 = 0xFF;
//    goto test;
    ConfigMe();
    TR0 = 1;
    OSStart();
}
/********************************************************************************************************/
void TaskAD(void)//通道切换后延时60ms,每5ms采样一次,共采10次。
{
    uint8 data i;
    while (1)
    {
        CON4053 = 1;
        for(i=0;i<108;i++)
        {
            P4 = i;
            OSWait(K_TMO,(5*OS_TICKS_PER_SEC)/1000);

            AMX0SL=0;//channel select 
            OSWait(K_TMO,(5*OS_TICKS_PER_SEC)/1000);
            AD0INT=0;
            AD0BUSY=1;
            do
            {
                OSWait(K_TMO,(5*OS_TICKS_PER_SEC)/1000);
            }while(AD0INT==0);
    
            Cellu[i] = ADC0H*256+ADC0L;
            CON4053 =!CON4053;
            
        }
    }
}
/********************************************************************************************************/
void TaskWorkStep(void)
{
    while (1)
    {
        OSWait(K_TMO,(50*OS_TICKS_PER_SEC)/1000);
    }
}//void TaskWorkStep(void)
/********************************************************************************************************/
void TaskCalcCapa(void)
{
    while (1)
    {
        OSWait(K_TMO,(50*OS_TICKS_PER_SEC)/1000);
    }
}
/********************************************************************************************************/
void TaskCellCheck(void)
{
    while (1)
    {
        OSWait(K_TMO,(50*OS_TICKS_PER_SEC)/1000);
    }
}
/********************************************************************************************************/
void TaskF(void)
{
    while (1)
    {
        OSWait(K_TMO,(50*OS_TICKS_PER_SEC)/1000);
    }
}
/********************************************************************************************************/
void TaskG(void)
{
    while (1)
    {
        OSWait(K_TMO,(200*OS_TICKS_PER_SEC)/1000);
    }
}
/********************************************************************************************************/
void TaskH(void)
{
    while (1)
    {
        uint8 xdata i;
        OSWait(K_TMO,(100*OS_TICKS_PER_SEC)/1000);
        i=P6;
        i&=0x20;
        if(i == 0x20) P6 &= 0xDF; 
        else P6 |= 0x20;
    }
}
/********************************************************************************************************/
void t2int(void) interrupt 5 
{
    TF2=0;
}
/*********************************************************************************************************
** 函数名称: UserTickTimer
** 功能描述: 本函数每个节拍在中断中执行一次,用于处理周期性的工作
** 输 入:   无
** 输 出:   无
** 全局变量: AdBuf Cell 
** 调用模块: midst OSWait da
**
** 作 者: 刘宝贵
** 日 期: 2004年4月28日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void UserTickTimer(void)            /* 系统定时中断中调用的用户函数                                */
{
    static uint8 data timer=0;
    timer++;
    if(timer==200)//每秒钟所做处理。
    {
        timer=0;
        Second++;
        OSIntSendSignal(TaskCalcCapa_ID);
    }
}

⌨️ 快捷键说明

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