📄 bc7281a.lst
字号:
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE BC7281A
OBJECT MODULE PLACED IN .\BC7281A.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Peripheric\BC7281A.C BROWSE DEBUG OBJECTEXTEND PRINT(.\BC7281A.lst) OBJE
-CT(.\BC7281A.obj)
line level source
1 #include"config.h"
2
3
4
5 //*******************************************************************************************************
6 //***************************** GLOBAL PERAMETER *************************************
7 //*******************************************************************************************************
8
9
10
11
12 /*********************************************************************************************************
13 ** 函数名称: send_byte
14 ** 功能描述: 写入BC728X
15 **
16 ** 输 入: sbyte //数据
17 ** 输 出: 无
18 ** 全局变量: 无
19 ** 调用模块: 无
20 ********************************************************************************************************/
21
22 void send_byte(unsigned char sbyte)
23 {
24 1 unsigned char i;
25 1
26 1 BC728X_CLK=0;
27 1 BC728X_CLK=1;
28 1
29 1 for(i=0;(i<250)&&BC728X_DAT;i++)
30 1 {
31 2 BC728X_CLK=0;
32 2 BC728X_CLK=1;
33 2 }//while(BC728X_DAT);
34 1
35 1 if(BC728X_DAT)
36 1 return;
37 1
38 1 BC728X_CLK=0;
39 1 BC728X_CLK=1;
40 1
41 1 //while(!BC728X_DAT);
42 1 for(i=0;(i<250)&&(!BC728X_DAT);i++);
43 1
44 1 if(!BC728X_DAT)
45 1 return;
46 1
47 1
48 1 for(i=0;i<8;i++)
49 1 {
50 2 if(sbyte&0x80)
51 2 {
52 3 BC728X_DAT=1;
53 3 }
54 2 else
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 2
55 2 {
56 3 BC728X_DAT=0;
57 3 }
58 2 sbyte<<=1;
59 2
60 2 BC728X_CLK=0;
61 2 BC728X_CLK=1;
62 2
63 2 // _Nop();
64 2 // _Nop();
65 2 // _Nop();
66 2 // _Nop();
67 2 // _Nop();
68 2 // _Nop();
69 2 // _Nop();
70 2
71 2 }
72 1
73 1 BC728X_DAT=1;
74 1
75 1 _Nop();
76 1 _Nop();
77 1 _Nop();
78 1 _Nop();
79 1 // _Nop();
80 1 // _Nop();
81 1 // _Nop();
82 1 }
83
84 /*********************************************************************************************************
85 ** 函数名称: recieve_byte
86 ** 功能描述: 写入BC728X
87 **
88 ** 输 入: 无
89 ** 输 出: 无
90 ** 全局变量: 无
91 ** 调用模块: 无
92 ********************************************************************************************************/
93
94 unsigned char receive_byte(void)
95 {
96 1 unsigned char i,ibyte;
97 1
98 1 BC728X_CLK=0;
99 1 BC728X_CLK=1;
100 1
101 1 //while(!BC728X_DAT);
102 1 for(i=0;(i<250)&&(!BC728X_DAT);i++);
103 1 if(!BC728X_DAT)
104 1 return;
*** WARNING C173 IN LINE 104 OF ..\PERIPHERIC\BC7281A.C: missing return-expression
105 1
106 1 BC728X_CLK=0;
107 1 BC728X_CLK=1;
108 1
109 1
110 1 for(i=0;i<8;i++)
111 1 {
112 2 _Nop();
113 2 _Nop();
114 2 // _Nop();
115 2 // _Nop();
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 3
116 2 // _Nop();
117 2 // _Nop();
118 2 // _Nop();
119 2
120 2 ibyte<<=1;
121 2
122 2 if(BC728X_DAT)
123 2 {
124 3 ibyte++;
125 3 }
126 2
127 2 BC728X_CLK=0;
128 2 BC728X_CLK=1;
129 2
130 2
131 2 }
132 1
133 1 BC728X_DAT=1;
134 1
135 1 _Nop();
136 1 _Nop();
137 1 // _Nop();
138 1 // _Nop();
139 1 // _Nop();
140 1 // _Nop();
141 1 // _Nop();
142 1
143 1 return(ibyte);
144 1 }
145
146 /*********************************************************************************************************
147 ** 函数名称: Write728x
148 ** 功能描述: 写入BC728X
149 **
150 ** 输 入: addr, //地址
151 ** wdata //数据
152 ** 输 出: 无
153 ** 全局变量: 无
154 ** 调用模块: 无
155 ********************************************************************************************************/
156
157 void Write728x(unsigned char addr,unsigned char wdata)
158 {
159 1 ES=0;
160 1
161 1 send_byte(addr);
162 1 send_byte(wdata);
163 1
164 1 ES=1;
165 1 }
166
167 /*********************************************************************************************************
168 ** 函数名称: Read728x
169 ** 功能描述: 读入BC728X
170 **
171 ** 输 入: addr, //地址
172 **
173 ** 输 出: receive_byte() //数据
174 ** 全局变量: 无
175 ** 调用模块: receive_byte()
176 ********************************************************************************************************/
177
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 4
178 unsigned char Read728x(unsigned char addr)
179 {
180 1 addr|=0x80;
181 1
182 1 send_byte(addr);
183 1
184 1 return(receive_byte());
185 1 }
186
187
188 /*********************************************************************************************************
189 ** 函数名称: DispNum
190 ** 功能描述: 显示数字
191 **
192 ** 输 入: addr, //地址
193 **
194 ** 输 出: 无
195 ** 全局变量: 无
196 ** 调用模块: 无
197 ********************************************************************************************************/
198
199
200 void DispNum(unsigned char address,unsigned long num)
201 {
202 1 idata char i,j;
203 1
204 1 ES=0;
205 1
206 1 switch(address)
207 1 {
208 2 case 0 : j=1;
209 2 for(i=6;i&&j;i--)
210 2 {
211 3 j=num%10;
212 3
213 3 j+=((i-1)<<4);
214 3
215 3 Write728x(0x14,j);
216 3
217 3 num/=10;
218 3
219 3 if(num>0)
220 3 j=1;
221 3 else
222 3 j=0;
223 3 }
224 2
225 2 if(i)
226 2 {
227 3 for(;i--;)
228 3 Write728x((i-1),0xFF);
229 3 }
230 2
231 2 break;
232 2 case 1 : j=1;
233 2 for(i=12;(i>6)&&j;i--)
234 2 {
235 3 j=num%10;
236 3
237 3 j+=((i-1)<<4);
238 3
239 3 Write728x(0x14,j);
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 5
240 3
241 3 num/=10;
242 3
243 3 if(num>0)
244 3 j=1;
245 3 else
246 3 j=0;
247 3 }
248 2
249 2 if(i>6)
250 2 {
251 3 for(;i>6;i--)
252 3 Write728x((i-1),0xFF);
253 3 }
254 2
255 2 break;
256 2 case 2 : for(i=13;i<15;i++)
257 2 {
258 3 Write728x((i-1),0xFF);
259 3 }
260 2
261 2 if(_Flag_StateLed)
262 2 Write728x(0x18,0x77);
263 2
264 2 j=1;
265 2 for(i=15;i>12&&j;i--)
266 2 {
267 3 j=num%10;
268 3 j+=((i-1)<<4);
269 3 num/=10;
270 3 Write728x(0x14,j);
271 3 j=num;
272 3 }
273 2 break;
274 2
275 2 case 3 : for(i=12;i>6;i--)
276 2 {
277 3 j=num%10;
278 3
279 3 j+=((i-1)<<4);
280 3 Write728x(0x14,j);
281 3
282 3 j&=0x0F;
283 3
284 3 num/=10;
285 3
286 3 if(j)
287 3 break;
288 3 if(!num)
289 3 break;
290 3
291 3
292 3 }
293 2
294 2 break;
295 2 default : return;
296 2 }
297 1
298 1 ES=1;
299 1
300 1 }
301
C51 COMPILER V7.50 BC7281A 12/29/2004 20:23:49 PAGE 6
302
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 612 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- 2
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -