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

📄 straincollector.h

📁 51单片机实现接收桥梁健康监测数据的代码,主要测量桥梁挠度!!数据通过GPRS传送!
💻 H
字号:
/* 应变采集器单片机程序 ×/
/* 16路数据采集,采用P4口控制*/
/* Writed by: yg*/
/* Date: 2008-7-24 */
#ifndef __STRAINCOLLECTOR_H__
#define __STRAINCOLLECTOR_H__

#include <stdio.h>
#include <reg52.h>
#include <string.h>

sfr P4 = 0xE8;
#define uchar unsigned char
#define TID 0x13        // 应变计
#define MID 0x01        // 01~08
#define STARTFLAG 0XAA
#define WAKEMSG 0X55
#define WAKEMSGEND  0XCA
#define LSLPTIME  03 // 浅休眠时间,单位(秒)
#define WKTIMEOUT    0XEF22      // 浅休眠状态的工作时间的Timeout

//
#define SEC 0
#define MIN 1
#define HOUR 2
#define DAY 3
#define WEEK 4
#define MONTH 5
#define YEAR 6

#define STNORNUM 8
//=============================================================================
#define CLEAR(d, n) while(n--) d[n]=0x00;
#define SET50MS1() TH1=0X3C; TL1=0XB0
#define ISTIMEOUT() BTIMEOUT


/////////////////////////////////////////////////////
// port define
sbit P4_3 = P4^3;

sbit P3_7 = P3^7;   // 无线电路的电源控制:0 上电
sbit P3_6 = P3^6;   // 采集电路的电源控制:0 上电
sbit P3_5 = P3^5;

sbit P1_7 = P1^7;
sbit P1_6 = P1^6;
sbit P1_5 = P1^5;
sbit P1_4 = P1^4;
sbit P1_3 = P1^3;
sbit P1_2 = P1^2;
sbit P1_1 = P1^1;
sbit P1_0 = P1^0;       // 1 省电模式

sbit P0_7 = P0^7;       // 外部定时器
sbit P0_6 = P0^6;       // 外部定时器I2C
sbit P0_5 = P0^5;       // 清零计数器
sbit P0_4 = P0^4;
sbit P0_3 = P0^3;
sbit P0_2 = P0^2;
sbit P0_1 = P0^1;
sbit P0_0 = P0^0;

sbit SDA=P3^7;
sbit SCL=P3^6; 

//=================================================================
// bdata define

uchar bdata statusFlag;
// BSLPFLG 休眠标记位, 为1表示可休眠状态
sbit BSLPFLG = statusFlag ^ 1;
// BDPSLP 深休眠标记位,为1表示深休眠,0(BSLPFLG为1时)表示浅休眠
sbit BDPSLP = statusFlag ^ 0;
// BCLFLG 采集标记,为1表示处于采集状态。
sbit BCLFLG = statusFlag ^ 2;

// 方波发送完毕的标记位
sbit BSWOVER = statusFlag ^ 4;
// 应变信号
sbit BSDGOT = statusFlag ^ 5;
// timeout flag
sbit BTIMEOUT = statusFlag ^ 6;
//====================================================================
unsigned  flag=0;
unsigned char sign=0,sign1=0;
unsigned char symbol=0;
uchar count=0;
//unsigned char M,N,L=0xFB,H1=0x01,H2=0x02,H=0xFF,T=0x00;
unsigned char d,e,cont,yb=0,wd=0;
unsigned char xdata g_sdata[10];
uchar g_strainflag;
//uchar g_straindata[5];
uchar xdata g_strainData[8][5];

// yg add for wake time
uchar xdata g_dslpTime[7];
// 命令字, 0xFF表示无命令字
#define CMD_ADDRCONFIRM 0X01
#define CMD_COLLECT 0X02
#define CMD_READDATA    0X03
#define CMD_RETRY   0X05
#define CMD_UPSLPTM 0X0A
#define CMD_DSLEEP  0X0B
#define CMD_CRCERR  0X16

// 命令内容, 最长20个字节,CMD, TID, MID, LEN(0-14),DATA0..DATA14, CRC 
#define CMD 0
#define CMDTID CMD+1
#define CMDMID CMDTID+1
#define CMDDLEN 3
#define CMDDATA0 4
#define CMDDATA1 5
#define CMDDATA2 6
#define CMDCRC 19 
uchar xdata g_cmdData[20];
uchar xdata g_sendcmdData[4];

//=========================================================================
// function declare
char send_char (char c);
void set_timeout(uchar msec);
void set_sleep();
void set_wake_time();
void P8563_setAlarm();
void P8563_set3s();

void delay1ms();
void delay10ms();
void delay500ms();
// extern function declare
void writeData(uchar address,uchar mdata);

//=========================================================================

#endif // end if define __STRAINCOLLECTOR_H__

⌨️ 快捷键说明

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