📄 variant.h
字号:
//data type
#define uint unsigned int
#define ulong unsigned long
#define uchar unsigned char
#define nop() _nop_()
//Global Constant
#define SYSCLK 18432000 //系统时钟
#define Diam 1
#define Mark 2
#define MarkChannel 0x04 //转换通道选择
#define DiamChannel 0x07
#define TEMPRTUR 0x10
#define BAUD_RATE_4800 120
#define BAUD_RATE_9600 60
#define BAUD_RATE_57600 10
#define BAUD_RATE_115200 5
#define BAUD_RATE_576000 1
#define DIAM_FILE 0
#define MARK_FILE 1
uchar code Diamhd[8] = {0x44,0x49,0x41,0x4D,0x45,0x54,0x45,0x52}; //变径文件前12B为 DIAMETER
uchar code Markhd[8] = {0x4B,0x49,0x4C,0x4F,0x4D,0x41,0x52,0x4B}; //标记文件前12B为 KILOMARK
uchar code MkSectorHd[10] = {'M','a','r','k','F','i','l','e'}; //文件中标记扇区的起始标志
uchar code MarkPrefix[8] = {0x54,0x6A,0x55,0x73,0x50,0x69,0x4F,0x65}; //每条标记记录的前缀 TjUsPiOe
uchar code MarkSuffix[8] = {0x74,0x4A,0x75,0x53,0x70,0x49,0x6F,0x45}; //每条标记记录的后缀 tJuSpIoE
uchar data WorkNo[5] = {'0','6','0','0','1'}; //工作号
//工程信息
uchar idata Info[24] = {1,6,4,24,0x04,0xB1,0xB1,0xBE,0xA9,0x06,0xC7,0xD8,0xBB,0xCA,0xB5,0xBA,0,0,0,0,0,0,0,0};
//将按字节倒序的代码表定义在code区
uchar code rev[16]={0x00,0x08,0x04,0x0C,0x02,0x0A,0x06,0x0E,0x01,0x09,0x05,0x0D,0x03,0x0B,0x07,0x0F};
//外部变量定义
// sbit Mark_sta = P3^4; //查询标记信号有效否
// sbit PlugIn = P3^6; //查询电缆接否
// sbit RsEnable = P2^0; //3323允许端
// sbit RE422 = P2^2;
// sbit TE422 = P2^3;
// sbit PlsOut = P1^2;
// sbit U0OtPls = P3^0;
// sbit U0OtPW = P3^1; //指示复位次数
// sbit PlsADtest= P3^2;
// sbit lamp = P3^3;
data uchar RstCounter = 0; //记录看门狗复位的次数
data uchar RstPWCntr = 0; //脉冲宽度计数器
data uchar U0OTProNo = 0; //超时的协议号
data uchar U0PWCntr = 0; //脉冲宽度计数器
data uchar U0OtTimes = 0; //超时的次数
data uchar U0OtTmCntr = 0; //超时的次数脉冲宽度计数器
data ulong Mc=0; //Mc为主计数器值
data ulong Mc_old=0;
bit Mark_sta_old = 1; //Mark_sta的旧状态,初始化为1
// bit Mark_valid = 0; //标记信号有效的标志位
// bit MarkADrequst = 0; //请求采集标记信号
bit DiamBufferFull=0;
// bit MarkBufferFull=0;
bit USB_DISK_READY=0;
bit USBDiamFileMdfied=0;
// bit USBMarkFileMdfied=0;
bit USBDiamFileCreated=0;
// bit USBMarkFileCreated=0;
bit USB_BAUDRATE_CHANGED=0;
data uchar CurrentDmBffer=0;
// data uchar CurrentMkBffer=0; //当前缓存区序号
bit FILE_END = 0;
bit CurrentFile=DIAM_FILE;//U盘当前打开并可操作的文件标志;0:变径文件;1:标记文件。
uint DmBffPtr=0; //DiamBufferPosition,变径缓存区的位置指针
// data uint MkBffPtr=0; //MarkBufferPosition,标记缓存区的位置指针
bit PlsOutOld = 0;
bit FileInfoChanged = 0;
xdata uchar DiamBuffer[2][1536];
// xdata uchar MarkBuffer[2][512];
data uchar RTCstring[7] = {0x06,0x04,0x24,0x05,0x23,0x59,0x30};
///////////////////////////////////////////////////////////////
// data uchar LYB_125us_PULSE;
data uchar LYB_10ms_PULSE;
data uchar LYB_100ms_PULSE;
data uchar LYB_125us_PlsOld;
data uchar LYB_10ms_PULSE_OLD;
data uchar LYB_100ms_PULSE_OLD;
//与UART0有关的全局变量定义及函数声明
#define U0MaxOverTIME 100 //UART0超时时间限制,1s
bit RS232FLAG = 0; //接收到数据的标志
bit U0Tbusy = 0; //发送忙标志
data uchar RS232=0; //应用层的接收缓冲区
data uchar PrtocolNo=0; //应用层协议号
data uchar U0Overtimer=0; //UART0超时计数器,每100ms加1
data uchar LONG=0; //应用层协议中接收到的数据个数
void send(unsigned char cc);
void Uart0Process(void);
//与UART1有关的全局变量定义及函数声明
#define U1MaxOverTIME 200 //UART1超时时间限制,2s
bit UART1flag=0; //接收到数据的标志
bit U1Tbusy = 0; //发送忙标志
data uchar U1sbuf = 0; //应用层的接收缓冲区
data uchar Ptr = 0; //应用层协议中接收到的数据个数
data uchar U1PrtoNo = 0; //应用层协议号
data uchar U1OverTimer = 0; //UART1超时计数器,每10ms加1
//与SMBus有关的全局变量定义及函数声明
void ReadRTCy2s(void);
data uint test0 _at_ 0x5A;
data uint samcout _at_ 0x58;
data uchar FullNumx = 0;
data uchar j;
data uint x;
sbit Ledred= P2^6;
bit oldred = 1;
bit oldgreen = 0;
sbit Ledgreen = P2^5;
sbit syn = P0^5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -