📄 chengxu.txt
字号:
#include <stdio.h> // Standard I/O Functions
#include <ADUC824.h> // ADuC824 Header File
#include <math.h>
//#include <string.h>
//#include <intrins.h>
#define X24C44_WRDS 0x80 //RESET WRITE ENABLE LATCH
#define X24C44_STO 0x81 //TRANSFERS FROM RAM TO EEPROM
#define X24C44_WRITE 0x83 //RAM WRITE
#define X24C44_WREN 0x84 //SET WRITE ENABLE LATCH
#define X24C44_RCL 0x85 //TRANSFERS FROM EEPROM TO RAM, RESETS WRITE ENABLE LATCH
#define X24C44_READ 0x86 //RAM READ</P><P>
#define NOP() { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }
#define uchar unsigned char
#define uint unsigned int
//extern uchar TT; // 输入类型
extern uchar k;
extern uchar Chlnum;
//extern void Chlint();
extern void feeddog();
extern void InitCAN();
extern void InitVar();
//extern void Stack_Read();
extern float Eng_Calc();//多通道
//extern void Eng_Calc();//单通道
//extern void Stack_Init();
extern bit Changed;
//extern bit InputDetect; // 输入开路 0=ok 1=fail.
//extern uchar TT; // 输入类型
extern void Read_Para();
extern void Write_Para();
extern float idata Val[8];
//extern long Span;
//extern long Zero;
sbit SET=P2^6;
//sbit DO0=P2^4;
//sbit DO1=P1^0;
sbit A0=P2^0;
sbit A1=P2^1;
sbit SPI24C44_CS=P2^5;
sbit SPI24C44_DO=P3^4;
sbit CH451_sdi=P2^2;
sbit CH451_clk=P2^4;
sbit cs5045=P2^3;
extern bit leijidsp;
//extern SPI24C44_Write(unsigned char address,unsigned int dat);
//extern unsigned int SPI24C44_Read(unsigned char address);
extern void TRBYTE(unsigned char);
extern void TRBYT(unsigned char);
//extern unsigned char REVBYTE(void);
uchar storc;
extern void CH4511_write(unsigned int tdata1);
extern void CH4512_write(unsigned int tdata2);
//sbit A2=P2^2;
long ai_code;// memory array of chars
long fv_temp;
//extern uchar FF;
void BTRSET();//SET BTR
extern uchar idata btreg0,btreg1;
extern uchar CC;
extern union{
uchar B[4];
uint ui;
long li;
}EEI;
extern void Read_Page(uchar p);
extern uint idata xishu;
extern bit EC;
uchar SystemError;
lag(unsigned int Time){while(Time--);}
//void delayms(){ unsigned char i=255; while(i--);}
void ch451_init()
{
CH4511_write(0x0201);//ch451 reset
CH4511_write(0x0401);//ch451 only display mode
CH4511_write(0x05FA);//ch451 display canshu*/
CH4512_write(0x0201);//ch452 reset
CH4512_write(0x0401);//ch452 only display mode
CH4512_write(0x05FA);//ch452 display canshu
}
/*void Cal_savLL(unsigned char k1,unsigned char ch0,unsigned char cl0)//save data to 24c45
{
save chip config
SPI24C44_CS=0;//P2_3=0;
SPI24C44_CS=1;//P2_3=1;
k1=k1<<3;
k1=k1|0x83; //write
TRBYTE(k1);
TRBYTE(ch0);
TRBYTE(cl0);
//TRBYTE(0x81);//store RAM data to e2rom
SPI24C44_CS=0;//P2_3=0;
}
unsigned int Get_chip(unsigned char k1)//from 24c44 get data
{
unsigned char k2;
unsigned int getvalue;
bit outbit;
SPI24C44_CS=0;//P2_3=0;
SPI24C44_CS=1;//P2_3=1;
k1=k1<<3;
k1=k1|0x86;
TRBYT(k1);
CH451_clk=1;//P3_1=1;
CH451_clk=0;//P3_1=0;
for(k2=0;k2<16;k2++)
{
outbit=SPI24C44_DO;//P3_0;
getvalue=(getvalue<<1)|outbit;
CH451_clk=1;//P3_1=1;
CH451_clk=0;//P3_1=0;
}
SPI24C44_CS=0;// P2_3=0;
return getvalue;
}*/
void SPI24C44_WriteByte(unsigned char dat)
{
unsigned char count;
for(count=0;count<8;count++)
{
//dat<<=1;
CH451_sdi= ((dat&0x80) == 0x80);//CY;
lag(50);
CH451_clk=1; ///上升
lag(50);
CH451_clk=0; //开始上升 NOP();
dat = (dat<<1);
}
}
/*unsigned char SPI24C44_ReadByte()
{
unsigned char count;
unsigned int dat=0x0;
for(count=0;count<8;count++)
{
//dat<<=1;
dat = (dat<<1);
//NOP();
if(SPI24C44_DO) //dat++; //为"0"读出一个字
dat = (dat|0x01);
CH451_clk=1;
lag(10);
CH451_clk=0;
lag(10);
}
return(dat);
}*/
unsigned int SPI24C44_ReadWord()
{
unsigned char count;
unsigned int dat=0x0;
for(count=0;count<16;count++)
{
//dat<<=1;
dat = (dat<<1);
//NOP();
if(SPI24C44_DO) //dat++; //为"0"读出一个字
dat = (dat|0x01);
CH451_clk=1;
lag(50);
CH451_clk=0;
lag(50);
}
return(dat);
}
//从24C44(EEPROM)里面读取一字
//address: 0-15
unsigned int SPI24C44_Read(unsigned char address)
{
unsigned char temp;
unsigned int dat = 0x3;
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
SPI24C44_CS=1;
SPI24C44_WriteByte(X24C44_WREN);//PERFORM A RECALL TO SET THE RECALL LATCH
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
SPI24C44_CS=1;
SPI24C44_WriteByte(X24C44_RCL); //PERFORM A RECALL TO SET THE RECALL LATCH
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
address=address<<3;
temp= X24C44_READ | address;
SPI24C44_CS=1;
SPI24C44_WriteByte(temp); //Read Data from RAM Address
dat=SPI24C44_ReadWord();
//dat=SPI24C44_ReadByte();
//dat= dat<<8;
//dat=SPI24C44_ReadByte() + dat;
SPI24C44_CS=0;
return(dat);
}//向24C44里(EEPROM)写一字
SPI24C44_Write(unsigned char address,unsigned int dat)
{
unsigned char temp;
unsigned int moon;
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
SPI24C44_CS=1;
SPI24C44_WriteByte(X24C44_WREN); //PERFORM A RECALL TO SET THE RECALL LATCH
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
SPI24C44_CS=1;
/* SPI24C44_WriteByte(X24C44_RCL); //PERFORM A RECALL TO SET THE RECALL LATCH
SPI24C44_CS=0;
lag(10);
SPI24C44_SK=0;
lag(10);
SPI24C44_DI=0;
lag(10);
SPI24C44_CS=1; */
address=address<<3;
temp=X24C44_WRITE | address;
//SPI24C44_CS=1;
SPI24C44_WriteByte(temp); //WRITE(1AAAA011): Write Data into RAM Address AAAA
SPI24C44_WriteByte( (unsigned char)(dat>>8) );
SPI24C44_WriteByte( (unsigned char)dat );
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
SPI24C44_CS=1;
SPI24C44_WriteByte(X24C44_STO );
//STO(1XXXX001):Store RAM Data in E2PROM
SPI24C44_CS=0;
lag(50);
CH451_clk=0;
lag(50);
CH451_sdi=0;
lag(50);
/*SPI24C44_CS=1;
SPI24C44_WriteByte(X24C44_WRDS );
//STO(1XXXX001):Store RAM Data in E2PROM
SPI24C44_CS=0;
lag(500); */
moon=SPI24C44_Read(address>>3);
if(moon==dat) SystemError=0;
else SystemError=1;
}//非标准SPI口驱动,比较难调注意芯片与CPU接口!!呵呵 X24C44一款老的EEPROM,调试很久才成功的!!呵呵(C语言)
void Jisuan(void)
{
unsigned char m,l;
unsigned char idata c[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};//15,
// 16,17,18};//,19,20,21,22,23};
float code d[72]={0.12578,0.19391,0.08302,0.1247,
0.20313,0.3043,0.1302,0.1903,
0.3178,0.4637,0.1982,0.2824,
0.4829,0.6882,0.2933,0.4087,
0.7149,0.9969,0.4235,0.5780,
1.0332,1.4125,0.5977,0.8008,
1.4609,1.9613,0.8265,1.089,
2.0246,2.6732,1.122,1.455,
2.7546,3.582,1.497,1.915,
3.685,4.725,1.967,2.484,
4.854,6.144,2.548,3.182,
6.303,7.883,3.260,4.029,
8.076,9.991,4.123,5.048,
// cs[0]=cs[3]+(cs[4]-cs[3])*(cs[5]-cs[1])/(cs[2]-cs[1]);
10.224,12.521,5.160,6.264,
//12.799,15.526,6.397,7.706,
// 15.855,19.068,7.864,9.408,
//19.454,23.206,9.593,11.41,
//23.656,28.008,11.62,13.74
// 28.528,33.542,14.00,16.47,
// 34.138,39.875,16.76,19.64,
// 40.560,47.096,19.99,23.33,
// 47.869,55.270,23.73,27.63,
// 56.144,64.486,28.10,32.65
};
unsigned int n,n1;
float idata cs[6];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -