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

📄 define data struct.i

📁 一个充电控制器的完整单片机程序
💻 I
字号:
#line 1 "define data struct.c" /0    #line 1 "D:\KEIL\C51\INC\ABSACC.H" /0                 #line 24 "D:\KEIL\C51\INC\ABSACC.H" /1         #line 29 "D:\KEIL\C51\INC\ABSACC.H" /0       #line 4 "define data struct.c" /0   #line 1 "D:\KEIL\C51\INC\STDLIB.H" /0        typedef unsigned int size_t;         typedef char wchar_t;    #pragma SAVE #pragma REGPARMS  extern int    abs  (int   val); extern long  labs  (long  val);  extern float atof (char *s1); extern long  atol (char *s1); extern int   atoi (char *s1); extern int   rand (); extern void  srand (int);  extern float         strtod  (char *, char **); extern long          strtol  (char *, char **, unsigned char); extern unsigned long strtoul (char *, char **, unsigned char);    extern int  init_mempool          (void xdata *p, unsigned int size); extern void xdata *malloc  (unsigned int size); extern void free                  (void xdata *p); extern void xdata *realloc (void xdata *p, unsigned int size); extern void xdata *calloc  (unsigned int size, unsigned int len);  #pragma RESTORE  #line 5 "define data struct.c" /0   #line 1 "D:\KEIL\C51\INC\ATMEL\AT89X52.H" /0       sfr P0      = 0x80; sfr SP      = 0x81; sfr DPL     = 0x82; sfr DPH     = 0x83; sfr PCON    = 0x87; sfr TCON    = 0x88; sfr TMOD    = 0x89; sfr TL0     = 0x8A; sfr TL1     = 0x8B; sfr TH0     = 0x8C; sfr TH1     = 0x8D; sfr P1      = 0x90; sfr SCON    = 0x98; sfr SBUF    = 0x99; sfr P2      = 0xA0; sfr IE      = 0xA8; sfr P3      = 0xB0; sfr IP      = 0xB8; sfr T2CON   = 0xC8; sfr T2MOD   = 0xC9; sfr RCAP2L  = 0xCA; sfr RCAP2H  = 0xCB; sfr TL2     = 0xCC; sfr TH2     = 0xCD; sfr PSW     = 0xD0; sfr ACC     = 0xE0; sfr B       = 0xF0;   sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87;             sbit IT0  = 0x88; sbit IE0  = 0x89; sbit IT1  = 0x8A; sbit IE1  = 0x8B; sbit TR0  = 0x8C; sbit TF0  = 0x8D; sbit TR1  = 0x8E; sbit TF1  = 0x8F;                sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97;  sbit T2   = 0x90;         sbit T2EX = 0x91;           sbit RI   = 0x98; sbit TI   = 0x99; sbit RB8  = 0x9A; sbit TB8  = 0x9B; sbit REN  = 0x9C; sbit SM2  = 0x9D; sbit SM1  = 0x9E; sbit SM0  = 0x9F;   sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7;   sbit EX0  = 0xA8;         sbit ET0  = 0xA9;         sbit EX1  = 0xAA;         sbit ET1  = 0xAB;         sbit ES   = 0xAC;         sbit ET2  = 0xAD;          sbit EA   = 0xAF;           sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6; sbit P3_7 = 0xB7;  sbit RXD  = 0xB0;         sbit TXD  = 0xB1;         sbit INT0 = 0xB2;         sbit INT1 = 0xB3;         sbit T0   = 0xB4;         sbit T1   = 0xB5;         sbit WR   = 0xB6;         sbit RD   = 0xB7;           sbit PX0  = 0xB8; sbit PT0  = 0xB9; sbit PX1  = 0xBA; sbit PT1  = 0xBB; sbit PS   = 0xBC; sbit PT2  = 0xBD;   sbit CP_RL2= 0xC8;        sbit C_T2 = 0xC9;         sbit TR2  = 0xCA;         sbit EXEN2= 0xCB;         sbit TCLK = 0xCC;         sbit RCLK = 0xCD;         sbit EXF2 = 0xCE;         sbit TF2  = 0xCF;               sbit P    = 0xD0; sbit FL   = 0xD1; sbit OV   = 0xD2; sbit RS0  = 0xD3; sbit RS1  = 0xD4; sbit F0   = 0xD5; sbit AC   = 0xD6; sbit CY   = 0xD7;            sbit BUSYFLAG = ACC^7;    #line 6 "define data struct.c" /0   #line 1 "D:\KEIL\C51\INC\INTRINS.H" /0      extern void          _nop_     (void); extern bit           _testbit_ (bit); extern unsigned char _cror_    (unsigned char, unsigned char); extern unsigned int  _iror_    (unsigned int,  unsigned char); extern unsigned long _lror_    (unsigned long, unsigned char); extern unsigned char _crol_    (unsigned char, unsigned char); extern unsigned int  _irol_    (unsigned int,  unsigned char); extern unsigned long _lrol_    (unsigned long, unsigned char); extern unsigned char _chkfloat_(float);   #line 7 "define data struct.c" /0    #line 1 "charger.h" /0                          typedef 	struct {	 unsigned char ah; unsigned char al; }word;   union bitseg { word byte;			 unsigned int i; };    struct workdata { unsigned char date[3];   unsigned int work[18]; struct workdata xdata *next; struct workdata xdata *up; }; typedef struct workdata daydata; typedef daydata xdata *link ;   struct rate { unsigned int volatage;  unsigned int temperature;  unsigned int discharge;  unsigned int charge; };         extern void getadin(void); extern void account(void); extern void save(void); extern void control(void); extern void init_system_work_point(void); extern void init_rate(void);    extern void delay(unsigned int i);     extern void menu(void);     extern  unsigned int tlc1543(unsigned char port);         extern void setup12887(unsigned char *p); extern void read12887(unsigned char *p); extern void start12887(void);                  void text(unsigned char sta,unsigned char *string);  void WD_LCD(unsigned char ch);  void WC_LCD(unsigned char comand);  void clear(void);         extern unsigned int xdata adin[10]; extern daydata xdata today; extern unsigned int xdata sys[13]; extern struct rate xdata crate;    extern unsigned int bdata tlong,t50ms;    extern code unsigned char *adinhz[10]; extern code unsigned char *hishz[18]; extern code unsigned char *sethz[12];   extern code unsigned int stab[5][4]; extern code unsigned int dtab[4][7]; extern code unsigned char *unit[4];  extern code unsigned char uadin[9]; extern code unsigned char uhis[18]; extern code unsigned char uset[11];   #line 9 "define data struct.c" /0   #line 1 "mylib.h" /0                        extern void text(unsigned char sta,unsigned char *string);  extern void WD_LCD(unsigned char ch);  extern void WC_LCD(unsigned char comand);  extern void clear(void);       extern void delay(unsigned int i);    extern  unsigned int tlc1543(unsigned char port);      extern void setup12887(unsigned char *p); extern void read12887(unsigned char *p); extern void start12887(void);   #line 10 "define data struct.c" /0           static bit bdata boostflag=1; static unsigned char idata switchchar=0x3f;           static daydata xdata looplink[0xa0] _at_ 0xC500;  void init_system_work_point(void) { unsigned char idata i;  for(i=0;i<12;i++) { if(i<7) { sys[i]=dtab[2][i];  } else { sys[i]=stab[i-7][2]; } } sys[12]=0;    for(i=0;i<0xa0-1;i++) { looplink[i].next=&looplink[i+1]; looplink[i+1].up=&looplink[i]; } looplink[0xa0-1].next=&looplink[0]; looplink[0].up=&looplink[0xa0-1];  today.next=&looplink[0]; today.up=&looplink[0xa0-1];    init_rate(); }        void init_rate(void) { unsigned int data i;  i=5*10; crate.temperature = i*100; crate.volatage = i*sys[11];  crate.discharge = i*sys[8]; crate.charge = i*sys[9]; }  void getadin(void) { unsigned char data i; unsigned long data tmp;  for(i=0;i<6;i++) { tmp=tlc1543(i);tmp*=crate.charge; tmp /= 1024;		adin[i]=tmp; }  tmp=tlc1543(6);tmp*=crate.discharge; tmp /= 1024;		adin[6]=tmp; tmp=tlc1543(8);tmp*=crate.temperature; tmp /= 1024;		adin[7]=tmp; tmp=tlc1543(9);tmp*=crate.volatage; tmp /= 1024;		adin[8]=tmp;  }   void account(void) { if(tlong%60==0)  {char i; for(i=0;i<9;i++) { if(i<7) {   today.work[i*2+1]+=(today.work[i*2+1]+adin[i])/(60*2); } else  {  if(adin[i]>today.work[i*2+1])today.work[i*2+1]=adin[i];  else if(adin[i]<today.work[2*i])today.work[i*2]=adin[i]; }  if(adin[i]>today.work[2*i])today.work[i*2]=adin[i]; } } }                  #pragma DISABLE  static void controlswitch (unsigned char i) { _nop_();_nop_();_nop_();   ((unsigned char volatile xdata *) 0)[0x6001]=~i; _nop_();_nop_();_nop_();   ((unsigned char volatile xdata *) 0)[0x6001]=~i; }  static void alarm_overload() { }  void control(void) {  if(today.work[13]>sys[6])alarm_overload();  if(adin[8] > sys[0]*10) { switchchar=0x0; controlswitch(switchchar);  boostflag=0; } else if(boostflag) {  if(adin[8] > sys[1]*10); else  { switchchar=0x3f; controlswitch(switchchar);  boostflag=1;  if(adin[8] > sys[4]*10); else  { switchchar=0x7f; controlswitch(switchchar);   if(adin[8] >sys[5] *10); else {switchchar=0xff;controlswitch(switchchar);}  } } } else  { if(adin[8] >sys[2]*10) { switchchar &= 0x3f; switchchar>>=1; controlswitch(switchchar); }  else  { if(adin[8] >sys[3] *10); else {switchchar=0x3f;controlswitch(switchchar);} } } }      void save(void) { static unsigned char data day; unsigned char data i;  link p;  i=today.date[2]; if(i!=day) { p=today.next;  for(i=0;i<18;i++)  { if(i<3)p->date[i]=today.date[i]; p->work[i]=today.work[i]; } today.next=p->next;  today.up=p; } day= i;  }

⌨️ 快捷键说明

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