📄 24-2.lst
字号:
C51 COMPILER V7.06 24_2 08/13/2005 21:09:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 24_2
OBJECT MODULE PLACED IN 24-2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24-2.c DEBUG OBJECTEXTEND
stmt level source
1 //24C读写,11.0592M,经过测试ok
2 #include<reg51.h>
3 #include<intrins.h>
4 #include<stdio.h>
5 #include<string.h>
6 #define uchar unsigned char
7 #define uint unsigned int
8
9
10 uchar d10[4];
11 void del05s();
12 void delay();
13 void ask();
14 void stop();
15 void start();
16 uchar rdby();
17 void waddr();
18 void wrby(uchar x);
19 uchar raddr();
20 uchar read(uchar address);
21 void write(uchar address,uchar dat);
22 void d5ms();
23 void w8addr(uchar x);
24
25 sbit ESDA=P1^3;
26 sbit ECLK=P1^2;
27 sbit KEY=P3^7;
28
29
30 sbit ACC0=ACC^0;
31 sbit ACC1=ACC^1;
32 sbit ACC2=ACC^2;
33 sbit ACC3=ACC^3;
34 sbit ACC4=ACC^4;
35 sbit ACC5=ACC^5;
36 sbit ACC6=ACC^6;
37 sbit ACC7=ACC^7;
38
39
40 uchar code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0-9
41 0x88,0x83,0xa7,0xa1,0x86,0x8e};//数码字型表A-F
42 //
43
44 //
45 void main()
46
47 { unsigned int i,j,k;
48 1 uchar re,re1,re2;
49 1
50 1
51 1 while(1)
52 1 {
53 2
54 2
55 2 P0=0xff;
C51 COMPILER V7.06 24_2 08/13/2005 21:09:08 PAGE 2
56 2
57 2 j=0;
58 2
59 2
60 2 for (k=0;k<256;k++) { //256=0xff
61 3 write(k,k);}
62 2
63 2 for (k=0;k<256;k++){
64 3 re=read(k);
65 3 re1=re%0x10; //取高4位
66 3 re2=re>>4;// 取低4位
67 3 for (j=0;j<5;j++)
68 3
69 3 {
70 4
71 4 P0=ledcode[re1];
72 4 P2=0xfe;
73 4 delay();
74 4 P0=ledcode[re2];
75 4 P2=0xfd;
76 4 delay();
77 4
78 4
79 4
80 4 }
81 3 P2=0xff;delay();delay();
82 3 //del05s();
83 3
84 3 } }
85 1
86 1 }
*** WARNING C280 IN LINE 47 OF 24-2.C: 'i': unreferenced local variable
87
88
89 void delay()
90 {unsigned int kk=0x5ff;//0xff
91 1 do{_nop_();kk--;}
92 1 while(kk!=0);
93 1 // ES=0;
94 1 // KEY=1;
95 1 // if(KEY==0){SBUF=0x99;while(TI==0){;}TI=0;}
96 1 // ES=1;
97 1 }
98 void del05s()
99 {unsigned int kk=0xefff;//
100 1 do{_nop_();kk--;}
101 1 while(kk!=0);
102 1 }
103
104 void ask()
105 {
106 1 unsigned int i=0xffff;
107 1 ESDA=1;_nop_();ECLK=1;_nop_();
108 1 do
109 1 {i--;
110 2 if(ESDA!=1)
111 2 {ECLK=0;i=0;}
112 2 }
113 1 while(i!=0);
114 1 }
115 /*###################################*/
116 void stop()
C51 COMPILER V7.06 24_2 08/13/2005 21:09:08 PAGE 3
117 {
118 1 ECLK=0; _nop_();
119 1 ESDA=0; _nop_();
120 1 ECLK=1; _nop_();
121 1 ESDA=1;_nop_();
122 1 ECLK=0;_nop_();
123 1 }
124 /* */
125 /*###################################*/
126 /*24c start */
127 void start()
128 {
129 1 ESDA=1;_nop_();
130 1 ECLK=1;_nop_();
131 1 ESDA=0;_nop_();
132 1 ECLK=0;_nop_();
133 1 }
134 /*###################################*/
135 /*24c rdby */
136 uchar rdby()
137 { ESDA=1;
138 1 ECLK=1;_nop_();ACC7=ESDA;ECLK=0;_nop_();
139 1 ECLK=1;_nop_();ACC6=ESDA;ECLK=0;_nop_();
140 1 ECLK=1;_nop_();ACC5=ESDA;ECLK=0;_nop_();
141 1 ECLK=1;_nop_();ACC4=ESDA;ECLK=0;_nop_();
142 1 ECLK=1;_nop_();ACC3=ESDA;ECLK=0;_nop_();
143 1 ECLK=1;_nop_();ACC2=ESDA;ECLK=0;_nop_();
144 1 ECLK=1;_nop_();ACC1=ESDA;ECLK=0;_nop_();
145 1 ECLK=1;_nop_();ACC0=ESDA;ECLK=0;_nop_();
146 1 return(ACC);
147 1 }
148 /*###################################*/
149 /*24c waddr */
150 void waddr()
151 {
152 1 start();
153 1 wrby(0xa0);
154 1 ask();}
155 /*###################################*/
156 /*24c raddr */
157 uchar raddr()
158 {
159 1 start();
160 1 wrby(0xa1);
161 1 ask();
162 1 ACC=rdby();
163 1 stop();
164 1 return(ACC);
165 1 }
166 /*###################################*/
167 void wrby(uchar x)
168
169 { ACC=x;
170 1 ESDA=ACC7;ECLK=1;_nop_();ECLK=0;_nop_();
171 1 ESDA=ACC6;ECLK=1;_nop_();ECLK=0;_nop_();
172 1 ESDA=ACC5;ECLK=1;_nop_();ECLK=0;_nop_();
173 1 ESDA=ACC4;ECLK=1;_nop_();ECLK=0;_nop_();
174 1 ESDA=ACC3;ECLK=1;_nop_();ECLK=0;_nop_();
175 1 ESDA=ACC2;ECLK=1;_nop_();ECLK=0;_nop_();
176 1 ESDA=ACC1;ECLK=1;_nop_();ECLK=0;_nop_();
177 1 ESDA=ACC0;ECLK=1;_nop_();ECLK=0;_nop_();
178 1 ESDA=1;_nop_();ECLK=1;
C51 COMPILER V7.06 24_2 08/13/2005 21:09:08 PAGE 4
179 1 }
180 /*####################################*/
181 //-----------------------------------------------------
182 //从指定的地址中读出一个字节数据涵
183 //-----------------------------------------------------
184 uchar read(uchar address)
185
186 { waddr();
187 1 w8addr(address);
188 1 //ACC=raddr();
189 1 return(raddr());
190 1 }
191
192 //-----------------------------------------------------
193 //向指定的地址中写入一个字节数据涵数
194 //-----------------------------------------------------
195 void write(uchar address,uchar dat)
196 { //EWP=0;
197 1 waddr();
198 1 w8addr(address);
199 1 wrby(dat);
200 1 ask();
201 1 stop();
202 1 d5ms();
203 1 //EWP=1;
204 1 }
205 /* 延时*/
206 void d5ms()
207 { uchar a, b;
208 1 for (a=0;a<=15;a++)
209 1 {
210 2 for (b=0;b<0x7f;b++)
211 2 {;}
212 2 }
213 1 }
214
215
216 void w8addr(uchar x)
217 {
218 1 wrby(x );
219 1 ask();
220 1
221 1 }
222
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 478 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 11
IDATA SIZE = ---- ----
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 + -