📄 dcxjmain.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 + -