📄 source1.lst
字号:
C51 COMPILER V7.02b SOURCE1 05/19/2006 18:09:30 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE SOURCE1
OBJECT MODULE PLACED IN Source1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe Source1.c DB OE
stmt level source
1 /////////////////////////////////////
2 // Generated Initialization File //
3 /////////////////////////////////////
4
5 #include "c8051F060.h"
6 #include "absacc.h"
7
8 // Peripheral specific initialization functions,
9 // Called from the Init_Device() function
10 #define uchar unsigned char
11 #define uint unsigned int
12
13 void init_rtc();
14 void disp_rtc();
15
16 uchar xdata * data read_ptr;
17 idata unsigned char a[13];
18 uchar res[5];
19 uchar t,k;
20 uint i;
21
22 sbit AD16 = P3^4;
23 sbit AD17 = P3^5;
24 sbit AD18 = P3^6;
25 sbit RD = P4^6;
26 sbit WR = P4^7;
27
28
29
30 void Timer_Init()
31 {
32 1 SFRPAGE = TIMER01_PAGE;
33 1 TCON = 0x40;
34 1 TMOD = 0x20;
35 1 TH1 = 0x9F;
36 1 TR1 = 1;
37 1 }
38
39 void Port_IO_Init()
40 {
41 1 SFRPAGE = CONFIG_PAGE;
42 1 // P3MDOUT = 0x07;
43 1 XBR0 = 0x05;
44 1 XBR2 = 0x44;
45 1 }
46
47 void Oscillator_Init()
48 {
49 1 int i = 0;
50 1 SFRPAGE = CONFIG_PAGE;
51 1 OSCXCN = 0x67;
52 1 for (i = 0; i < 3000; i++); // Wait 1ms for initialization
53 1 while ((OSCXCN & 0x80) == 0);
54 1 CLKSEL = 0x01;
55 1 }
C51 COMPILER V7.02b SOURCE1 05/19/2006 18:09:30 PAGE 2
56
57 void Interrupts_Init()
58 {
59 1 IE = 0x80;
60 1 EIE2 = 0x40;
61 1 EIE1 = 0x02;
62 1 }
63 void SMBus_Init()
64 {
65 1 SFRPAGE = SMB0_PAGE;
66 1 SMB0CN = 0x40;
67 1 SMB0CR = 0x99;
68 1 }
69 void EMIF_Init (void)
70 {
71 1 char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
72 1
73 1 SFRPAGE = EMI0_PAGE; // Save SFR_PAGE
74 1 EMI0CF = 0x3F; // upper ports; non-muxed mode;
75 1 // split mode w/o bank select
76 1 // EMI0TC = 0x45; // timing (7-cycle MOVX)
77 1
78 1 SFRPAGE = CONFIG_PAGE;
79 1 P4MDOUT |= 0xFF; // all EMIF pins configured as
80 1 P5MDOUT |= 0xFF; // push-pull
81 1 P6MDOUT |= 0xFF;
82 1 P7MDOUT |= 0xFF;
83 1
84 1 SFRPAGE = SFRPAGE_SAVE; // restore SFR_PAGE
85 1 }
86 void Init_Device(void)
87 {
88 1 Timer_Init();
89 1 Port_IO_Init();
90 1 Oscillator_Init();
91 1 Interrupts_Init();
92 1 SMBus_Init();
93 1 EMIF_Init ();
94 1
95 1 }
96 //=======================================================
97 void smbus_cfg(uchar smb0adr)
98 {
99 1 SFRPAGE=0x00;
100 1 SMB0ADR=smb0adr;
101 1 }
102 void smbusMasterStart()
103 {
104 1 k=0;
105 1 SFRPAGE=0x00;
106 1 STA=1;
107 1 }
108 //=========================================================
109 //=======================================================
110 main()
111 {
112 1
113 1
114 1 WDTCN = 0x07; //看门狗禁止
115 1 WDTCN = 0xDE;
116 1 WDTCN = 0xAD;
117 1
C51 COMPILER V7.02b SOURCE1 05/19/2006 18:09:30 PAGE 3
118 1 EA=1;
119 1 Init_Device();
120 1 smbus_cfg(0x70);
121 1 smbusMasterStart();
122 1
123 1 // init_rtc();
124 1
125 1 for(i=0;i<60000;i++)
126 1 { for(i=0;i<60000;i++);}
127 1 for(i=0;i<60000;i++)
128 1 { for(i=0;i<60000;i++);}
129 1
130 1 a[0]=0x1b;
131 1 a[1]=0x20;
132 1 a[2]=0x99;
133 1 a[3]=0x1b;
134 1 a[4]=0x24;
135 1 /* AD16=1;AD17=1;AD18=1;
136 1 for(i=0;i<30000;i++);
137 1 XBYTE[0xF8FF]=0x40;
138 1 read_ptr=0xF8FF;//XRAM_START_ADD;1020-1029
139 1 for(i=5;i<13;i++)
140 1 {
141 1 a[i]=*read_ptr;
142 1 read_ptr=read_ptr+0x0100;
143 1 }
144 1 XBYTE[0xF8FF]=0;*/
145 1 disp_rtc();
146 1
147 1 SFRPAGE=0x01;
148 1 SBUF1=a[0];
149 1
150 1 while(1);
151 1 }
152 //===============================================
153 void uart1_ISR() interrupt 20
154 {
155 1 if(RI1){
156 2 res[t]=SBUF1;//将接收数据写入res[]数组
157 2 t++;
158 2 RI1=0;
159 2 }
160 1 if(TI1){
161 2 t++;
162 2 if(t<13){
163 3 SBUF1=a[t];//发送数据数组为aa[]
164 3
165 3 }
166 2
167 2 TI1=0;
168 2
169 2 }
170 1 }
171 //======================================================
172 void smbusInt() interrupt 7
173 {
174 1 SFRPAGE=0x00;
175 1
176 1 if(SMB0STA==0x08)
177 1 {
178 2 SMB0DAT=0x70;
179 2 k=1;
C51 COMPILER V7.02b SOURCE1 05/19/2006 18:09:30 PAGE 4
180 2 STA=0;
181 2 }
182 1 if(SMB0STA==0x28||SMB0STA==0x18)
183 1 {
184 2 if(k>=2)
185 2 STO=1;
186 2 if(k==1)
187 2 SMB0DAT=0x00;
188 2 k++;
189 2 }
190 1
191 1 if(SMB0STA==0x10)
192 1 {
193 2 SMB0DAT=0x6e;
194 2 STA=0;
195 2 }
196 1 SI=0;
197 1 }
198 //========================================================
199 /*void init_rtc()
200 {
201 AD16 = AD17 = AD18 = 1;
202
203 XBYTE[0xf8ff] = 0xA0;
204 XBYTE[0xf9ff] = 0x00;//0x00; second
205 XBYTE[0xfaff] = 0x52;//0x01; minute
206 XBYTE[0xfbff] = 0x17;//0x02; hour
207 XBYTE[0xfcff] = 0x05;//0x06; day
208 XBYTE[0xfdff] = 0x19;//0x07; date
209 XBYTE[0xfeff] = 0x05;//0x07; month
210 XBYTE[0xffff] = 0x06;//0x06; year
211
212 XBYTE[0xfff8] = 0x20;
213 }*/
214 void disp_rtc()
215 {
216 1 AD16 = AD17 = AD18 = 1;
217 1
218 1 XBYTE[0xf8ff] = (0x40||XBYTE[0xf8ff]);
219 1
220 1 a[5] = XBYTE[0xf9ff];
221 1 a[6] = XBYTE[0xfaff];
222 1 a[7] = XBYTE[0xfbff];
223 1 a[8] = (XBYTE[0xfcff]&0x07);
224 1 a[9] = XBYTE[0xfdff];
225 1 a[10] = XBYTE[0xfeff];
226 1 a[11] = XBYTE[0xffff];
227 1 a[12] = XBYTE[0xf8ff];
228 1 XBYTE[0xf8ff] = 0;
229 1 }
230
231 //===========================================================
232 /*
233 uchar p=0x41,m=0x61;
234
235 AD16=1;AD17=0;AD18=0;
236 for(i=0;i<30000;i++);
237 read_ptr=XBYTE[0x1010];//XRAM_START_ADD;
238 for(i=0;i<10;i++)
239 {
240 *read_ptr=p;
241 read_ptr++;
C51 COMPILER V7.02b SOURCE1 05/19/2006 18:09:30 PAGE 5
242 p=p+1;
243 }
244
245 AD16=1;AD17=1;AD18=0;
246 for(i=0;i<30000;i++);
247 read_ptr=XBYTE[0x1010];//XRAM_START_ADD;
248 for(i=0;i<10;i++)
249 {
250 *read_ptr=m;
251 read_ptr++;
252 m=m+1;
253 }
254
255 AD16=1;AD17=1;AD18=0;
256 for(i=0;i<30000;i++);
257 read_ptr=XBYTE[0x1010];//XRAM_START_ADD;1020-1029
258 for(i=5;i<15;i++)
259 {
260 a[i]=*read_ptr;
261 read_ptr++;
262 }
263 */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 505 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 ----
IDATA SIZE = 13 ----
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 + -