📄 main.lst
字号:
C51 COMPILER V7.00 MAIN 11/16/2007 09:39:20 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "STC89C51RC_RD_PLUS.H"
2 #include "intrins.h"
3 #include "absacc.h"
4 #include "Serial.h"
5 #include "CS5460A.h"
6
7 sbit P0_0 = P0^0;
8 sbit P0_1 = P0^1;
9 sbit P0_2 = P0^2;
10 sbit P0_3 = P0^3;
11 sbit P0_4 = P0^4;
12 sbit P0_5 = P0^5;
13 sbit P0_6 = P0^6;
14 sbit P0_7 = P0^7;
15
16 sbit P1_0 = P1^0;
17 sbit P1_1 = P1^1;
18 sbit P1_2 = P1^2;
19 sbit P1_3 = P1^3;
20 sbit P1_4 = P1^4;
21 sbit P1_5 = P1^5;
22 sbit P1_6 = P1^6;
23 sbit P1_7 = P1^7;
24
25
26 sbit P2_0 = P2^0;
27 sbit P2_1 = P2^1;
28 sbit P2_2 = P2^2;
29 sbit P2_3 = P2^3;
30 sbit P2_4 = P2^4;
31 sbit P2_5 = P2^5;
32 sbit P2_6 = P2^6;
33 sbit P2_7 = P2^7;
34
35
36 sbit P3_0 = P3^0;
37 sbit P3_1 = P3^1;
38 sbit P3_2 = P3^2;
39 sbit P3_3 = P3^3;
40 sbit P3_4 = P3^4;
41 sbit P3_5 = P3^5;
42 sbit P3_6 = P3^6;
43 sbit P3_7 = P3^7;
44
45
46 sbit P4_0 = P4^0;
47 sbit P4_1 = P4^1;
48 sbit P4_2 = P4^2;
49 sbit P4_3 = P4^3;
50
51 #define uchar unsigned char
52
53 // Original design board
54 //sbit CS5532_CS=P1^2;
55 //sbit CS5532_SDI=P3^5;
C51 COMPILER V7.00 MAIN 11/16/2007 09:39:20 PAGE 2
56 //sbit CS5532_SCLK=P3^4;
57 //sbit CS5532_SDO=P3^2;
58 sbit CS5532_CS=P1^2;
59 sbit CS5532_SDI=P2^4;
60 sbit CS5532_SCLK=P2^2;
61 sbit CS5532_SDO=P2^0;
62
63 //#define DWORD unsigned long
64
65 xdata long m_TickCount = 0;
66 long GetTickCount(){return m_TickCount;}
67
68 void Sleep(long iMilliseconds)
69 {
70 1 long TickCount = GetTickCount();
71 1 while((GetTickCount() - TickCount) < iMilliseconds)
72 1 {
73 2 //WDT_CONTR = 0x3C; //复位看门狗
74 2 }
75 1 }
76
77
78 //中断
79 void time0() interrupt 1
80 {
81 1 EA = 0;
82 1 TR0 = 0;
83 1 TH0 = 0xF8;
84 1 TL0 = 0xCC;
85 1 //TH0 = 0xFC;
86 1 //TL0 = 0x66;
87 1 //TL0 = 0x41;
88 1 //TH0 = 0xFE;
89 1 m_TickCount++;
90 1 TR0 = 1;
91 1 EA = 1;
92 1 }
93
94 // PCB Version
95 //sbit CS5532_CS=P1^3;
96 //sbit CS5532_SDI=P1^2;
97 //sbit CS5532_SDO=P1^1;
98 //sbit CS5532_SCLK=P1^0;
99
100
101 // all design board ?
102 sbit CS5532_A0=P1^6;
103 sbit CS5532_A1=P1^7;
104
105
106 #define RxdTxd4b_0 DBYTE[0x20]
107 #define RxdTxd4b_1 DBYTE[0x21]
108 #define RxdTxd4b_2 DBYTE[0x22]
109 #define RxdTxd4b_3 DBYTE[0x23]
110
111 #define uint unsigned int
112 #define delay(x) {uint dly = x;while(dly){dly--;}}
113 uchar idata RxdTxd4b[6];
114
115 void CS5532_Txd(uchar);
116 void CS5532_Txd_init(uchar);
117 void read_reg(uchar address_pt);
C51 COMPILER V7.00 MAIN 11/16/2007 09:39:20 PAGE 3
118 void read_data(uchar address_pt);
119 void read_data1(uchar address_pt);
120 void read_datax(uchar address_pt);
121 void CS5532_init(void);
122
123 #define Refurbish(x) x = 1;x = 0;
124 #define ControlOut P2_7
125
126 void main(void)
127 {
128 1 uchar uComRecv[5];
129 1 uchar uComi = 0;
130 1 long dPrvConversionTime = 0;
131 1 uchar i,k,address_pt;
132 1 uchar flag=0;
133 1 address_pt = 32; // RAM 数据区起始地址
134 1 TMOD = 0x1; //定时器T0模式1
135 1 TL0 = 0x0f;//定时初值
136 1 TH0 = 0x00;
137 1 TR0 = 1; //开始运行
138 1 ET0 = 1; //允许定时器T0中断
139 1 InitCom(5);
140 1 EA = 1;
141 1 for(k=0;k<20;k++) _nop_();
142 1 delay(1000);
143 1 CS5532_init();
144 1 for(k=0;k<20;k++) _nop_();
145 1 //Reset
146 1 // CS5532_Txd(0x03);
147 1 // CS5532_Txd(0x20);
148 1 // CS5532_Txd(0x00);
149 1 // CS5532_Txd(0x00);
150 1 // CS5532_Txd(0x00);
151 1
152 1 CS5532_Txd(0x03); // Soft Reset
153 1 CS5532_Txd(0x2A);
154 1 CS5532_Txd(0x00);
155 1 CS5532_Txd(0x04);
156 1 CS5532_Txd(0x00);
157 1
158 1 delay(1000);
159 1 CS5532_init();
160 1 for(k=0;k<20;k++) _nop_();
161 1 //************************************************
162 1 // 系统软复位( CS5532_init() 包含该部分)
163 1
164 1 // CS5532_Txd(0x05);
165 1 // CS5532_Txd(0x02);
166 1 // CS5532_Txd(0x00);
167 1 // CS5532_Txd(0x02);
168 1 // CS5532_Txd(0x00);
169 1
170 1 /* CS5532_Txd(0x05);
171 1 CS5532_Txd(0x32);
172 1 CS5532_Txd(0x40);
173 1 CS5532_Txd(0x32);
174 1 CS5532_Txd(0x40);*/
175 1 //-----
176 1 /* CS5532_Txd(0x85); // 偏移校准
177 1 while(CS5532_SDO)
178 1 _nop_(); _nop_(); _nop_(); _nop_();
179 1
C51 COMPILER V7.00 MAIN 11/16/2007 09:39:20 PAGE 4
180 1 while(1)
181 1 {
182 1 read_datax(address_pt);
183 1 P1 = 0x00;
184 1 //RxdTxd4b[3] = 0x0D;
185 1 for(k = 0; k < 4;k++)
186 1 {
187 1 Send(RxdTxd4b[k]);
188 1 }
189 1 delay(50000);
190 1 }*/
191 1 //-------
192 1 CS5532_Txd(0x03); // Soft Reset
193 1 CS5532_Txd(0x00);
194 1 CS5532_Txd(0x00);
195 1 CS5532_Txd(0x18);
196 1 CS5532_Txd(0x00);
197 1
198 1
199 1 CS5532_Txd(0x85); // 偏移校准
200 1 while(CS5532_SDO)
201 1 _nop_(); _nop_(); _nop_(); _nop_();
202 1
203 1
204 1
205 1
206 1 /*CS5532_Txd(0x02);
207 1 CS5532_Txd(0x0F);
208 1 CS5532_Txd(0x00);
209 1 CS5532_Txd(0x00);
210 1 CS5532_Txd(0x00);*/
211 1 //Write_CS5460A(buf5460,5);
212 1
213 1
214 1 CS5532_Txd(0xC0);//连续转换命令
215 1 while(CS5532_SDO)
216 1 _nop_(); _nop_(); _nop_(); _nop_();
217 1
218 1 while(1)
219 1 for(i=0;i<5;i++)
220 1 {
221 2 uchar uCheckSum = 0;
222 2 //while((GetTickCount() - dPrvConversionTime) <= (1000/15 - 1));
223 2 //dPrvConversionTime = GetTickCount();
224 2 //CS5532_CS=1;
225 2 while(CS5532_SDO)
226 2 _nop_(); _nop_(); _nop_(); _nop_();
227 2 _nop_(); _nop_(); _nop_(); _nop_();
228 2 _nop_(); _nop_(); _nop_(); _nop_();
229 2 // address_pt = 48;
230 2 //CS5532_Txd(0x80);
231 2 //while(CS5532_SDO)
232 2 _nop_(); _nop_(); _nop_(); _nop_();
233 2 // DBYTE[address_pt++]=0x80;
234 2 read_data1(address_pt);
235 2 P1 = 0x00;
236 2 // RxdTxd4b[3] = 0x0D;
237 2 if(RxdTxd4b[0]&0x80)
238 2 {
239 3 RxdTxd4b[0] &= 0x7F;
240 3 RxdTxd4b[3] |= 0x08;
241 3 }
C51 COMPILER V7.00 MAIN 11/16/2007 09:39:20 PAGE 5
242 2 uCheckSum += RxdTxd4b[0];
243 2 Send(RxdTxd4b[0]);
244 2
245 2 if(RxdTxd4b[1]&0x80)
246 2 {
247 3 RxdTxd4b[1] &= 0x7F;
248 3 RxdTxd4b[3] |= 0x10;
249 3 }
250 2 uCheckSum += RxdTxd4b[1];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -