📄 24c04.lst
字号:
C51 COMPILER V8.02 24C04 08/30/2010 21:46:57 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 24C04
OBJECT MODULE PLACED IN 24C04.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 24C04.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uchar unsigned char
4 #define nop _nop_()
5 sbit sda=P1^7; //SDA和单片机的P17脚相连
6 sbit scl=P1^1; //SCL和单片机的P16脚相连
7 //定义ACC的位,利用ACC操作速度最快
8 sbit a0=ACC^0;
9 sbit a1=ACC^1;
10 sbit a2=ACC^2;
11 sbit a3=ACC^3;
12 sbit a4=ACC^4;
13 sbit a5=ACC^5;
14 sbit a6=ACC^6;
15 sbit a7=ACC^7;
16 //开始函数
17 void start()
18 {
19 1 sda=1;
20 1 nop;
21 1 scl=1;
22 1 nop;
23 1 sda=0;
24 1 nop;
25 1 scl=0;
26 1 nop;
27 1 }
28 //停止函数
29 void stop()
30 {
31 1 sda=0;
32 1 nop;
33 1 scl=1;
34 1 nop;
35 1 sda=1;
36 1 nop;
37 1 }
38 //响应函数
39 void ack()
40 {
41 1 uchar i;
42 1 scl=1;
43 1 nop;
44 1 while((sda==1) && (i<250))i++;
45 1 scl=0;
46 1 nop;
47 1 }
48 //写一个字节函数
49 void write_byte(uchar dd)
50 {
51 1 ACC=dd;
52 1 sda=a7;scl=1;scl=0;
53 1 sda=a6;scl=1;scl=0;
54 1 sda=a5;scl=1;scl=0;
55 1 sda=a4;scl=1;scl=0;
C51 COMPILER V8.02 24C04 08/30/2010 21:46:57 PAGE 2
56 1 sda=a3;scl=1;scl=0;
57 1 sda=a2;scl=1;scl=0;
58 1 sda=a1;scl=1;scl=0;
59 1 sda=a0;scl=1;scl=0;
60 1 sda=1;
61 1 }
62 //读一个字节函数
63 uchar read_byte()
64 {
65 1 sda=1;
66 1 scl=1;a7=sda;scl=0;
67 1 scl=1;a6=sda;scl=0;
68 1 scl=1;a5=sda;scl=0;
69 1 scl=1;a4=sda;scl=0;
70 1 scl=1;a3=sda;scl=0;
71 1 scl=1;a2=sda;scl=0;
72 1 scl=1;a1=sda;scl=0;
73 1 scl=1;a0=sda;scl=0;
74 1 sda=1;
75 1 return(ACC);
76 1 }
77 //写地址和数据函数
78 void write_add(uchar address,uchar date)
79 {
80 1 start();
81 1 write_byte(0xa0);//写2404地址命令
82 1 ack();
83 1 write_byte(address);//写地址
84 1 ack();
85 1 write_byte(date);//写数据
86 1 ack();
87 1 stop();
88 1 }
89 //读地址、数据函数
90 uchar read_add(uchar address)
91 {
92 1 uchar temp;
93 1 start();
94 1 write_byte(0xa0); //
95 1 ack();
96 1 write_byte(address); //
97 1 ack();
98 1 start();
99 1 write_byte(0xa1);
100 1 ack();
101 1 temp=read_byte();
102 1 stop();
103 1 return(temp);
104 1 }
105 void delay(uchar i)
106 {
107 1 uchar a,b;
108 1 for(a=0;a<i;i++)
109 1 for(b=0;b<100;b++);
110 1 }
111 void init()
112 {
113 1 sda=1;
114 1 nop;
115 1 scl=1;
116 1 nop;
117 1 }
C51 COMPILER V8.02 24C04 08/30/2010 21:46:57 PAGE 3
118 void main()
119 {
120 1 init(); //初始化函数
121 1 write_add(5,0x77); //往地址5中写入0xaa
122 1 delay(100);
123 1 P0=read_add(5); //读地址5中的数据,并送P0口驱动发光二极管显示
124 1 while(1); //无限循环
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 295 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -