?? shukong1.lst
字號:
C51 COMPILER V7.10 SHUKONG1 05/21/2013 12:45:44 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE SHUKONG1
OBJECT MODULE PLACED IN shukong1.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE shukong1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include <absacc.h>
4
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 sbit rs=P3^5;
9 sbit wr=P3^6;
10 sbit lcden=P3^4;
11
12 sbit CLK=P3^1;
13 sbit DIO=P3^2;
14 sbit CS1=P3^3;
15 sbit sda=P1^6;
16 sbit scl=P1^7;
17
18 sbit k1=P3^0;
19 sbit k2=P3^7;
20 uchar x,t,FLAG,fa;
21 void delay(uint x)
22 {
23 1 uint a,b;
24 1 for(a=x;a>0;a--)
25 1 for(b=110;b>0;b--);
26 1 }
27 void delay20ms(void) //誤差 0us
28 {
29 1 unsigned char a,b;
30 1 for(b=215;b>0;b--)
31 1 for(a=45;a>0;a--);
32 1 }
33
34 void delay1(uint x)
35 {
36 1 uint a,b;
37 1 for(a=x;a>0;a--)
38 1 for(b=100;b>0;b--);
39 1 }
40 void delay2()
41 {;;}
42 void init_24c256()
43 { scl=0;
44 1 delay2();
45 1 sda=1;
46 1 delay2();
47 1 }
48 void start()
49 { sda=1;
50 1 delay2();
51 1 scl=1;
52 1 delay2();
53 1 sda=0;
54 1 delay2();
55 1 }
C51 COMPILER V7.10 SHUKONG1 05/21/2013 12:45:44 PAGE 2
56 void stop()
57 { sda=0;
58 1 delay2();
59 1 scl=1;
60 1 delay2();
61 1 sda=1;
62 1 delay2();
63 1 }
64 void response()
65 { uchar i;
66 1 scl=1;
67 1 delay2();
68 1 while((sda==1)&&(i<255))
69 1 i++;
70 1 scl=0;
71 1 delay2();
72 1
73 1 }
74 void write_24c256(uchar dataa)
75 { uchar i,temp;
76 1 temp=dataa;
77 1 for(i=0;i<8;i++)
78 1 { temp=temp<<1;
79 2 scl=0;
80 2 sda=CY;
81 2 delay2();
82 2 scl=1;
83 2 delay2();
84 2 }
85 1 scl=0;
86 1 delay2();
87 1 sda=1;
88 1 delay2();
89 1 }
90 uchar read_24c256()
91 { uchar i,k;
92 1 // scl=0;
93 1 //delay2();
94 1 //sda=1; //shi fang
95 1 for(i=0;i<8;i++)
96 1 { scl=1;
97 2 delay2();
98 2 k=(k<<1)|sda;
99 2 scl=0;
100 2 delay2();
101 2 }
102 1 delay2();
103 1 return k;
104 1 }
105 void write_add(uchar address,uchar dat)
106 { start();
107 1 write_24c256(0xa0);
108 1 response();
109 1 write_24c256(address);
110 1 response();
111 1 write_24c256(dat);
112 1 response();
113 1 stop();
114 1
115 1 }
116 uchar read_add(uchar address)
117 { uchar date;
C51 COMPILER V7.10 SHUKONG1 05/21/2013 12:45:44 PAGE 3
118 1 start();
119 1 write_24c256(0xa0);
120 1 response();
121 1 write_24c256(address);
122 1 response();
123 1 start();
124 1 write_24c256(0xa1);
125 1 response();
126 1 date=read_24c256();
127 1 stop();
128 1 return date;
129 1 }
130 /*void write_com(uchar com)
131 {
132 P0=com;
133 rs=0;
134 lcden=0;
135 delay(10);
136 lcden=1;
137 delay(10);
138 lcden=0;
139
140 }
141
142 void write_date(uchar date)
143 {
144 P0=date;
145 rs=1;
146 lcden=0;
147 delay(10);
148 lcden=1;
149 delay(10);
150 lcden=0;
151
152 }
153
154 void init()
155 {
156
157 wr=0;
158 write_com(0x38);
159 delay(20);
160 write_com(0x0c);
161 delay(20);
162 write_com(0x06);
163 delay(20);
164 write_com(0x01);
165 delay(20);
166
167 } */
168 unsigned char A_D()
169 {
170 1 unsigned char i,dat;
171 1 CS1=1; //一個轉換周期開始
172 1 CLK=0; //為第一個脈沖作準備
173 1 CS1=0; //CS置0,片選有效
174 1
175 1 DIO=1; //DIO置1,規定的起始信號
176 1 CLK=1; //第一個脈沖
177 1 CLK=0; //第一個脈沖的下降沿,此前DIO必須是高電平
178 1 DIO=1; //DIO置1, 通道選擇信號
179 1 CLK=1; //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數據用于選擇通道,這里選通道CH0
C51 COMPILER V7.10 SHUKONG1 05/21/2013 12:45:44 PAGE 4
180 1 CLK=0; //第二個脈沖下降沿
181 1 DIO=0; //DI置0,選擇通道0
182 1 CLK=1; //第三個脈沖
183 1 CLK=0; //第三個脈沖下降沿
184 1 DIO=1; //第三個脈沖下沉之后,輸入端DIO失去作用,應置1
185 1 CLK=1; //第四個脈沖
186 1 for(i=0;i<8;i++) //高位在前
187 1 {
188 2 CLK=1; //第四個脈沖
189 2 CLK=0;
190 2 dat<<=1; //將下面儲存的低位數據向右移
191 2 dat|=(unsigned char)DIO; //將輸出數據DIO通過或運算儲存在dat最低位
192 2 }
193 1 CS1=1; //片選無效
194 1 return dat; //將讀書的數據返回
195 1 }
196
197 /*void keyscan()
198 { uint i;
199 if(k1==0)
200 {
201 delay20ms();
202 if(k1==0)
203 { while(!k1);
204 EA=1;
205 ET0=1;
206 TR0=1;
207 }
208 }
209 if(k2==0)
210 {
211 delay20ms();
212 if(k2==0)
213 { while(!k2);
214 EA=0;
215 // ET0=0;
216 // TR0=0;
217 FLAG=1;
218 }
219 }
220
221
222 } */
223 void main()
224 { uchar bb,cc;
225 1 //init();
226 1 init_24c256();
227 1 //x=read_add(0x00);
228 1 TMOD=0X01;
229 1 ET0=1;
230 1 EA=1;
231 1 TL0=(65535-5000)%256;
232 1 TH0=(65535-5000)/256;
233 1 TR0=1;
234 1 while(1)
235 1 {
236 2 if(fa==1)
237 2 { fa=0;
238 3 bb=x;
239 3 write_add(0X02,bb);
240 3 delay20ms();
241 3 P2=read_add(0x02);
C51 COMPILER V7.10 SHUKONG1 05/21/2013 12:45:44 PAGE 5
242 3 }
243 2
244 2 }
245 1 }
*** WARNING C280 IN LINE 224 OF SHUKONG1.C: 'cc': unreferenced local variable
246 void time0_interrupt(void)interrupt 1
247 { TL0=(65535-5000)%256;
248 1 TH0=(65535-5000)/256;
249 1 t++;
250 1 if(t==20)
251 1 { t=0;
252 2 x=A_D();
253 2 fa=1;
254 2 }
255 1 }
256
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 389 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 2
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 + -