📄 vf3000.lst
字号:
C51 COMPILER V3.20, SN-50203013 VF3000 09/26/06 13:34:20 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE VF3000
OBJECT MODULE PLACED IN VF3000.OBJ
COMPILER INVOKED BY: F:\COMP51\BIN\C51.EXE VF3000.C DB OE SMALL ROM(LARGE)
stmt level source
1 #define uchar unsigned char
2 #define uint unsigned int
3 #define ulong unsigned long
4 #define nop _nop_()
5
6 #pragma ROM(LARGE)
7 #pragma RB(0)
8 #pragma ot(5,SIZE)
9
10 #include<reg52.h>
11 #include<pub.h>
12 #include<absacc.h>
13 #include<intrins.h>
14 #include <24c256h.h>
15 #include <pcf8563.h>
16
17 #include <EMrfc.h>
18
19
20 uint data RecordNum;
21 bit CommMark=0;
22 bit E2promType;/*256则为0,512则为1*/
23 /******************* lcddisp.c *****************/
24 uchar DispBuff[4];
25
26 uchar code DispCode[16]=
27 {
28 0xeb,0x0a,0xad,0x8f,0x4e,0xc7,0xe7,0x8a,0xef,0xcf, /*0~9*/
29 0xee,0x67,0xe1,0x2f,0xe5,0xe4, /*A,b,C,d,E,F*/
30 //0x04,0x85,0xe1,0x8b,0xe5,0x64,0x1 /*-,三,[,],E,r,_*/
31 };
32 void commInt() interrupt 4 using 1
33 {
34 1 CommMark=1;
35 1 ES=0;
36 1 }
37 void wrLcdCode(uchar byte)
38 {
39 1 uchar i;
40 1
41 1 LCDCS=0;
42 1 LCDDA=1; LCDWR=0; LCDWR=1;
43 1 LCDDA=0; LCDWR=0; LCDWR=1;
44 1 LCDDA=0; LCDWR=0; LCDWR=1;
45 1
46 1 for (i=0;i<8;i++)
47 1 {
48 2 if ( byte>=0x80 ) LCDDA=1;
49 2 else LCDDA=0;
50 2 LCDWR=0;LCDWR=1;
51 2 byte<<=1;
52 2 }
53 1 LCDDA=0; LCDWR=0;LCDWR=1;
54 1
55 1 LCDDA=1;
C51 COMPILER V3.20, SN-50203013 VF3000 09/26/06 13:34:20 PAGE 2
56 1 LCDCS=1;
57 1 }
58
59 void wrLcdDisp()
60 {
61 1 uchar i,j;
62 1 uchar byte;
63 1 uchar addr;
64 1
65 1 LCDCS=0;
66 1 LCDDA=1; LCDWR=0; LCDWR=1;
67 1 LCDDA=0; LCDWR=0; LCDWR=1;
68 1 LCDDA=1; LCDWR=0; LCDWR=1;
69 1 LCDDA=0; LCDWR=0; LCDWR=1;
70 1
71 1 for ( i=0;i<5;i++ )
72 1 {
73 2 LCDDA=0; LCDWR=0; LCDWR=1;
74 2 }
75 1 for ( j=0;j<4;j++ )
76 1 {
77 2 byte=DispBuff[j];
78 2 for ( i=0;i<8;i++ )
79 2 {
80 3 if ( byte>=0x80 ) LCDDA=1;
81 3 else LCDDA=0;
82 3 LCDWR=0; LCDWR=1;
83 3 byte<<=1;
84 3 }
85 2 }
86 1 LCDDA=1;
87 1 LCDCS=1;
88 1 }
89
90 void dispChar(uchar loc, uchar byte)
91 {
92 1 DispBuff[loc]=DispCode[byte];
93 1 }
94
95 void clrDisp()
96 {
97 1 uchar i;
98 1 DispBuff[0]=0;
99 1 DispBuff[1]=0;
100 1 DispBuff[2]=0;
101 1 DispBuff[2]=0;
102 1
103 1 wrLcdDisp();
104 1 }
105
106 void initDisp()
107 {
108 1 uchar data i;
109 1
110 1 LCDCS=1; LCDWR=1; LCDRD=1; LCDDA=1;
111 1 LCDCS=0; for ( i=0;i<10;i++ );
112 1 LCDCS=1; for ( i=0;i<10;i++ );
113 1 LCDCS=0; for ( i=0;i<10;i++ );
114 1 LCDCS=1; for ( i=0;i<10;i++ );
115 1 LCDCS=0; for ( i=0;i<10;i++ );
116 1 LCDCS=1; for ( i=0;i<10;i++ );
117 1 wrLcdCode(0x29); // initlcd
C51 COMPILER V3.20, SN-50203013 VF3000 09/26/06 13:34:20 PAGE 3
118 1 wrLcdCode(0x18);
119 1 wrLcdCode(0x01);
120 1 wrLcdCode(0x03);
121 1 }
122 /******************* lcddisp.c *****************/
123
124
125 uchar WorkTime;
126
127 uchar data recbuf[20];
128 uchar data RecLen;
129
130 void music()
131 {
132 1 uint i;
133 1
134 1 for ( i=0;i<139*4;i++ )
135 1 {
136 2 Bell=1; TR0=0;TF0=0;TH0=0xff;TL0=0x91;TR0=1;
137 2 while ( !TF0 ); TF0=0;
138 2 Bell=0; TR0=0;TF0=0;TH0=0xff;TL0=0x91;TR0=1;
139 2 while ( !TF0 ); TF0=0;
140 2 }
141 1 Bell = 1;
142 1 }
143
144 /* 延时n个uS */
145 void delayNus(uint nus)
146 {
147 1 TR0=0;/*先停止计数*/
148 1 nus = 0xffff- nus;
149 1 TF0=0; TL0=(uchar)nus; TH0=nus/0x100;
150 1 TR0=1;
151 1 while( !TF0 );
152 1 TF0=0;
153 1 }
154
155
156 void delayN10ms(uchar t)
157 {
158 1 uchar i;
159 1 for(i=0;i<t;i++) delayNus(10000);
160 1 }
161
162 void powerDown()
163 {
164 1 Shake=1;
165 1 // PowerEN=1;
166 1 // Mod=1;
167 1 SHD=1;
168 1 PCON=0X2;
169 1 }
170
171 uchar TT1;
172 void timer1() interrupt 3 using 2 // 50ms interrupt
173 { /* WorkTime 每500ms 减一 */
174 1
175 1 TH1=0x00;TL1=0;
176 1 TT1--;
177 1 }
178
179 void dispClock()
C51 COMPILER V3.20, SN-50203013 VF3000 09/26/06 13:34:20 PAGE 4
180 {
181 1 getClock();
182 1
183 1 dispChar(0,Clock.Hour/16);
184 1 DispBuff[0]|=0x10;
185 1 dispChar(1,Clock.Hour%16);
186 1 dispChar(2,Clock.Min/16); dispChar(3,Clock.Min%16);
187 1 wrLcdDisp();
188 1 }
189
190 void main()
191 {
192 1 uchar StartTime;
193 1 uchar i=0;
194 1 uchar ii;
195 1
196 1 Shake=0;
197 1 initDisp();
198 1 clrDisp();
199 1
200 1 TMOD=0x11; TR1=1; //ET1=1;
201 1 IT0=0; //low level triggered --Wakeup
202 1 RI=0;
203 1 init24c256();
204 1 initPCF8563();
205 1 dispClock();
206 1 ES=1;
207 1 EA=1;
208 1 // Mod=0;
209 1 while (i<100)
210 1 {
211 2 SHD=0;
212 2 if(rfEM()==1)
213 2 {
214 3 SHD=1;
215 3 music();
216 3 wr24c256(0x29, 0x55);
217 3 ii=rd24c256(0x29);
218 3 dispChar(0, ii/16);
219 3 dispChar(1, ii%16);
220 3 wrLcdDisp();
221 3 powerDown();
222 3 }
223 2 else ;
224 2 SHD=1;
225 2 if(i==1)
226 2 {
227 3 // wr24c256(0x7fef, 0x12);
228 3 ii=rd24c256(0xffef);
229 3
230 3 clrDisp();
231 3 dispChar(1,ii/16);
232 3 dispChar(2,ii%16);
233 3 wrLcdDisp();
234 3 }
235 2 //powerDown();
236 2 TT1=8;TH1=0x00;TL1=0;ET1=1;
237 2 while(TT1>0){PCON=1;}
238 2 ET1=0;
239 2 i++;
240 2
241 2 if ( CommMark )
C51 COMPILER V3.20, SN-50203013 VF3000 09/26/06 13:34:20 PAGE 5
242 2 {
243 3 // initComm();
244 3 // commHandle();
245 3 powerDown();
246 3 }
247 2 else;
248 2 }
249 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 670 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 29 5
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -