📄 test.lst
字号:
C51 COMPILER V6.12 TEST 11/25/2008 01:48:29 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN .\test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\test.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 sbit sda=P3^7;
4 sbit scl=P3^6;
5 void delay()
6 { ; ;}
7 void init()
8 {
9 1 sda=1;
10 1 scl=1;
11 1 }
12 void start()
13 {
14 1 sda=1;
15 1 delay();
16 1 scl=1;
17 1 delay();
18 1 sda=0;
19 1 delay();
20 1 }
21 void stop()
22 {
23 1 sda=0;
24 1 delay();
25 1 scl=1;
26 1 delay();
27 1 sda=1;
28 1 delay();
29 1 }
30 void write_byte(uchar x)
31 {
32 1 uchar i,temp;
33 1 temp=x;
34 1 for(i=0;i<8;i++)
35 1 {
36 2 temp=temp<<1;
37 2 scl=0;
38 2 delay();
39 2 sda=CY;
40 2 delay();
41 2 scl=1;
42 2 delay();
43 2 }
44 1 scl=0;
45 1 delay();
46 1 sda=1;
47 1 delay();
48 1 scl=1;
49 1 delay();
50 1 while((sda==1)&&(i<250))i++;//当两个为真才为真
51 1 scl=0;
52 1 delay();
53 1 }
54 void delay1(uchar x)
55 {
C51 COMPILER V6.12 TEST 11/25/2008 01:48:29 PAGE 2
56 1 uchar a,b;
57 1 for(a=x;a>0;a--)
58 1 for(b=100;b>0;b--);
59 1 }
60 uchar read_byte(uchar address)
61 {
62 1 uchar i,k;
63 1 write_byte(0xa0);
64 1 write_byte(address);
65 1 start();
66 1 write_byte(0xa1);
67 1 sda=1;
68 1 delay();
69 1 for(i=0;i<8;i++)
70 1 {
71 2 scl=1;
72 2 delay();
73 2 k=(k<<1)|sda;
74 2 scl=0;
75 2 delay();
76 2 }
77 1 return k;
78 1 }
79 void main()
80 {
81 1 init();
82 1 P1=0;
83 1 start();
84 1 write_byte(0xa0);
85 1 write_byte(3);
86 1 write_byte(0x01);
87 1 stop();
88 1 delay1(100);
89 1 start();
90 1 P0=read_byte(3);
91 1 while(1);
92 1 }
93
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 188 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -