📄 display.lst
字号:
C51 COMPILER V7.20 DISPLAY 06/20/2005 16:55:59 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE DISPLAY
OBJECT MODULE PLACED IN display.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //-----------------
2 //change value that display in lcd
3 //-----------------
4 #include <string.h>
5 #include <ABSACC.H>
6 #include <stdio.h>
7 #include <INTRINS.h>
8 #include <stdlib.h>
9 #include <AT89X52.H>
10
11 #include "CHARGER.H"
12
13 //
14 //----------------
15 //main program
16 ////--------------
17 static unsigned char month_is(unsigned char *s)
18 {
19 1 unsigned char data i;
20 1 code char *m[]={"Jan","Feb","Mar","Apr","May","Jun","Jnl","Aug","Sep","Oct","Nov","Dec"};
21 1 for(i=0;;i++)if((m[i][0]==s[0])&&(m[i][1]==s[1])&&(m[i][2]==s[2]))return i+1;
22 1 }
23 static void now_is(unsigned char *s)
24 {
25 1 code unsigned char *t[]={__DATE__,__TIME__};
26 1
27 1 s[0]=1;
28 1 s[1]=atoi(t[1]+3);
29 1 s[2]=atoi(t[1]);
30 1
31 1 s[3]=atoi(t[0]+4);
32 1 s[4]=month_is(t[0]);
33 1 s[5]=atoi(t[0]+8);
34 1 }
35
36 //---------------------
37 //hardware reset flag
38 unsigned char data bootflag _at_ 0x9;
39 extern bit bdata boostflag;
40
41 static void init(void)
42 {
43 1 unsigned int data i;
44 1 unsigned char xdata *string;//[8];
45 1
46 1 for(i=0;i<3;i++)
47 1 {
48 2 delay(1000);//Waiting for all right
49 2 /*1*///init port of 51
50 2 RESET_DOG;
51 2 P8255D=0x80;//AoBoCo,8255 mode 0, all port output
52 2 P8255A=0xFF;
53 2 P8255B=0xFF;
54 2 }
55 1 /*2*///init lcd
C51 COMPILER V7.20 DISPLAY 06/20/2005 16:55:59 PAGE 2
56 1 WC_LCD(SET8B);
57 1 WC_LCD(SCR_TFF);
58 1 /*3*///init history area to save
59 1 RESET_DOG;
60 1 if(bootflag!=0xAA)
61 1 {
62 2
63 2 string=0xC000;
64 2
65 2 RESET_DOG;
66 2 for(i=0;i<0x2000;i++)*string++=0;
67 2 RESET_DOG;
68 2
69 2 init_history_buffer();
70 2
71 2 boostflag=1;
72 2
73 2 /*4*///init system work point & rate
74 2 if(sys[11]<2230||sys[11]>3230){sys[11]=0;just=0;}
75 2 //如果存在系统设置,则不进行缺省设置
76 2 if(!(sys[7]==48||sys[7]==110||sys[7]==220||sys[7]==300))
77 2 {
78 3 init_rate_workpoint(DEFSYSV);
79 3 password=8952;
80 3 }
81 2 RESET_DOG;;
82 2
83 2 /*5*///init realtimer
84 2 now_is(&XBYTE[0xC400]);
85 2 // setup12887(&XBYTE[0xC400]);
86 2 RESET_DOG;
87 2
88 2 bootflag=0xAA;
89 2 }
90 1
91 1 start12887();
92 1 /*7*///init interrupt
93 1 EX0=1; EX1=1;
94 1 IT0=1; IT1=1;//interrupt mode download side
95 1
96 1 /*8*///init_timer0();//enable readkey,reset dog
97 1 TMOD &= 0XF0;
98 1 TMOD |= 0X1; //mode 1 max is 106.66666ms on 7.3728M
99 1 TL0 = 0X00;
100 1 TH0 = 0X88; //on 7.3728M,50ms(0x8800);
101 1 ET0 = 1;
102 1 TF0 = 0;
103 1 TR0 = 1;
104 1
105 1 EA=1;
106 1 keyrst(0);
107 1
108 1 controlstate=0x20;//state display reset
109 1
110 1 RESET_DOG;
111 1 }
112
113 //--------------
114 extern code char *atstate;
115 //-----------------------
116 void main(void)
117 {
C51 COMPILER V7.20 DISPLAY 06/20/2005 16:55:59 PAGE 3
118 1 init();//check soft reset
119 1 init_serial();
120 1 Wmodem(atstate);
121 1 while(1)
122 1 {
123 2 //2005/4
124 2 init_rate_workpoint(DEFSYSV);
125 2 //2005/4
126 2 RESET_DOG;
127 2 getadin();//get ad input
128 2 account();//account work data of today
129 2 control();//control extern switcher with battery volatage
130 2 firstscr();//display timer & battery volatage
131 2 menu();//is menu enter
132 2 save();//save history data per once day
133 2 SetSys();//Set sysSet with data of recived
134 2 if(tlong&0x0FF==0)
135 2 Wmodem(atstate);//Period 256 Second
136 2 }
137 1 }
138
139
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 640 ----
CONSTANT SIZE = 111 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -