当前位置:文档之家› 压力传感器数据采集程序

压力传感器数据采集程序

};
//-----------------------------------------------
//-----------------------------------------------
//看门狗
void dog(void)
{
DOG=!DOG;
_nop_();
DOG=!DOG;
}
//-----------------------------------------------
0xA4, // 2
0xB0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xF8, // 7
0x80, // 8
0x90, // 9
0x88, // A 10
0x83, // b 11
0xC6, // C 12
0xA1, // d 13
0x86, // E 14
0x8E, // F 15
//date:2010/09/04
//VERSION: U2.0
//#include <stdio.h>
#include <reg52.h>
#include <intrins.h> //nop
//#include <absacc.h> //扩展外部
//#include <math.h>
//***********EEPROM地址************
0x8C, // P 16
0xC1, // U 17
0xF1, // J 18
0xFF, //全熄灭19
0xBF, // - 20
0x47, // L 21
0x89, // H 22
0xFE, // - 23
0xF7, // - 24
0xAF, // r 25
0xA3, // o 26
0x9C, // O 27
//16位处理
//00H零点
//01H放大倍数
//02H报警点
//03H解报点
//04H断电点
//05H复电点
//06H 0度补偿
//07H 40度补偿
//08H自检点
//09H
//0AH
//0BH
//0CH
//0DH
//**********************************
//-------------------------------------------
sfr T2MOD = 0xC9;
//P0
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
//P1
sbit P1_0=P1^0;
//-----------------------------------------------
//不显示
void dirb(void)
{
led2c=1;led3c=1;led4c=1;//显示' '
}
//-----------------------------------------------
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
//-----------------------------------------------
//位变量
bit led1c;//从右往左第一位数码管显示标志=0显示=1不显示
bit led2c;//从右往左第二位数码管显示标志=0显示=1不显示
RCAP2L=0xcc;
TH2=RCAP2H;
TL2=RCAP2L;
//-----------------------------------------------
//-----------------------------------------------
//显示字符表
code unsigned char table[]={ 0xC0, // 0
0xF9, // 1
unsigned int fout;//复电点
unsigned char wd0;//0度补偿
unsigned char wd40;//0度补偿
unsigned int zjd;//自检点
unsigned char temcount;//读温度主程序执行次数
unsigned char dispcount;//=0显示从左往又第一位数码管
unsigned char tbuffer4;//从右往左第四位数码管显示特殊字符缓冲
idata float yl;//本次压力值
idata float yl1;//上次压力值
unsigned int temp;//温度
idata unsigned char a[9];//读温度数组
idata float c[4];
//=1显示从左往又第二位数码管
//=2显示从左往又第三位数码管
//=3显示从左往又第四位数码管
unsigned char tbuffer1;//从右往左第一位数码管显示特殊字符缓冲
unsigned char tbuffer2;//从右往左第二位数码管显示特殊字符缓冲
unsigned char tbuffer3;//从右往左第三位数码管显示特殊字符缓冲
//以下管脚定义
#define EECS P3_5 //EEPROM选通
#define ADCS P3_4 //EEPROM,A/D选通
#define SCLK P2_4 //EEPROM,A/D时钟
#define SDAT P2_5 //EEPROM,A/D数据输入
#define DOG P3_2 //看门狗
//-----------------------------------------------
//延时程序入口i
void delay(unsigned int i)
{
// unsigned int j;
for(;i>1;i--)
{
_nop_();
}
// _nop_();
}
//-----------------------------------------------
//-----------------------------------------------
//初始化特殊功能寄存器
void rest(void)
{
IE=0;
IP=0x02;
TMOD=0x11;
TH0=0;
TL0=0;
TH1=0;
TL1=0;
SCON=0;
PCON=0;
TCON=0x55;
RCAP2H=0xf8;
// bit led4f//从右往左第四位数码管显示标志=1显示结束=0没有显示结束
bit led1sc;//从右往左第一位数码管允许闪烁显示标志=1允许闪烁显示=0不允许闪烁
bit led2sc;//从右往左第二位数码管允许闪烁显示标志=1允许闪烁显示=0不允许闪烁
bit led3sc;//从右往左第三位数码管允许闪烁显示标志=1允许闪烁显示=0不允许闪烁
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
//P2
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
unsigned int sec;//1秒
unsigned int min;//1分
unsigned char zero;//零点
unsigned char lined;//放大倍数
unsigned int alarm;//报警点
unsigned int jalarm;//解报点
unsigned int pout;//断电点
bit minute;//1m到标志=1到=0没到
bit flag1820;//读写1820时防止读错标志
bit crcflag;//CRC检验用标志位
bit np;//浓度正负标志=1负
bit lbflag;/Байду номын сангаас滤波标志
bit zjflag;//自检标志
bit zj;//增加键=1有效
bit jx;//减小键=1有效
#define FMQ P0_4 //报警输出
#define BJ P0_5 //报警输出
#define POFF P2_7 //断电输出
#define FOUT P3_7 //频率输出
#define PDT P0_7 //温度
//-------------------------------------------
bit led3c;//从右往左第三位数码管显示标志=0显示=1不显示
bit led4c;//从右往左第四位数码管显示标志=0显示=1不显示
bit led1p;//从右往左第一位数码管小数点显示标志=1显示=0不显示
bit led2p;//从右往左第二位数码管小数点显示标志=1显示=0不显示
bit led3p;//从右往左第三位数码管小数点显示标志=1显示=0不显示
bit temflag1;//发温度转换命令=1发过命令
相关主题