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

📄 main.h

📁 利用SMALL RTOS51做的一个项目
💻 H
字号:
/*********************************************************************************************************
**                                             Small RTOS(51)
**                                   The Real-Time Kernel(For Keil c51)
**
**                                  (c) Copyright 2002-2002, chenmingji
**                                           All Rights Reserved
**
**                                                  V1.12.1
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: main.C
**创   建   人: 陈明计
**最后修改日期: 2003年4月27日
**描        述: DP-51的液晶TC1602A的驱动程序的例子
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 陈明计
** 版  本: V1.0
** 日 期: 2003年4月27日
** 描 述: 原始版本,应用于Small RTOS 51 v1.12.1
**
**------------------------------------------------------------------------------------------------------
** 修改人:龚树强
** 版  本:
** 日 期:2004年9月25日
** 描 述:基于AT89C2051和SMALL_RTOS 51的触摸屏项目
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
** 描 述: 
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "config.h"


//*******************************************************************************************************
//*****************************        PREDEFINED    STATES         *************************************
//*******************************************************************************************************
#define		LOCOAL_ADDR									1




#define		CMD_SWITCH_LINE								1
#define		CMD_STOP									2
#define		CMD_START									3
#define		CMD_REQUEST									4
#define		CMD_FINISHED								5
#define		CMD_CURRENT_PRODUCED						6
#define		CMD_PROCESSING								7
#define		CMD_RESEND_REQUEST							8
#define		CMD_ACK										9
#define		CMD_STANDBY									10
#define		CMD_NO_ORDER								11

#define		CMD_TARGET_VALUE							1
#define		CMD_CURRENT_VALUE							2
#define		CMD_FINISHED_PERSENT						3
#define		CMD_INCORRECT								4
#define		CMD_QUARY									5
#define		CMD_CURRENT_VALUE_REQUEST					6

#define		SERIAL_DIRECTION_CTRL						P2_7
	


#define		UP_DELAY_THREADHOLD							18		//键盘弹起倒计时


#define		TIME_THREADHOLD_HIGH						5000	//计数器高电平最短下限
#define		TIME_THREADHOLD_LOW							2000	//计数器低电平最短下限	


						

//*******************************************************************************************************
//*****************************         GLOBAL   PERAMETER          *************************************
//*******************************************************************************************************


#if OS_TIME_ISR == 1
	uint8 _Reg_TH0;												//TH0缓存
	uint8 _Reg_TL0;												//TL0缓存
#endif	

	uint8 OS_Q_MEM_SEL CommandData[7];        					//给命令消息队列分配的队列空间
	uint8 OS_Q_MEM_SEL SerialInData[10];        				//给读串口消息队列分配的队列空间
	uint8 OS_Q_MEM_SEL SerialOutData[22];       				//给写串口消息队列分配的队列空间

	idata uint8 _ResendBuffer[6];
	idata uint8 _BufferIndex;

	idata uint8 _InputReg;										//按键输入寄存器
	

	idata uint8 _KeyScanReg;									//键盘扫描寄存器
	idata uint8 _KeyboardTimer;									//弹起计时器

	idata uint8 _Sum;

	idata uint8 _IdleTimer;										//空闲时间计时器

	idata unsigned long _TargetValue = 0;						//目标值
	idata unsigned long _CurrentValue = 0;						//当前值
	idata unsigned long _TempValue = 0;							//临时值


	idata unsigned int _ProduceSpeed = 0;						//每秒产量

	idata unsigned int _ProducedPersent = 0;					//完成百分比
	
	bit _Flag_AutoMode;											//自动模式	:TRUE		手动模式  :FALSE
	
	bit _Flag_KeyLock;											//键盘锁
	bit _Flag_Set;												//设置目标产量	:TRUE		设置当前产量  :FALSE

	bit	_Flag_State_Producing;									//工作状态	: TRUE		待机状态  :	FALSE	
	bit	_Flag_State_Error;									
	bit _Flag_State_Finish;
	bit _Flag_State_TaskAccepted;
											
	bit _Flag_CounteEnable;										//允许计数  :TRUE		禁止计数  :FALSE

	bit _Flag_SetupMode;										//设置模式

	bit _Flag_CounterFallDown;									//计数器下降沿
	bit _Flag_CounterUpRising;									//计数器上升沿
	bit _Flag_CounterTimeOut;									//计数器定时触发

	bit _Flag_DispChanged;										//显示已更改,需要刷新显示
	bit _Flag_DispSpeed;										//显示生产速度 :TRUE	显示完成度 :FALSE

	bit _Flag_Beep;

	bit _Flag_KeyPressed;										//键已按下,等待释放

	bit _Flag_StateLedOn;
	bit _Flag_StateError;
	bit _Flag_StateProducing;
	bit _Flag_StateIdle;

	bit _Flag_RequestAccept;

	bit _Flag_StateLed;
	
	
	
	sbit _Beep=P3^4;

	sbit _Counter=P3^2;

	sbit _LedProduceSpeed=P1^6;

	sbit _LedProducedPersent=P1^7;

	sbit _LedStateError=P1^0;
	sbit _LedStateProducing=P1^1;
	sbit _LedStateIdle=P1^2;

	sbit _Out=P1^4;


⌨️ 快捷键说明

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