📄 24c04.lst
字号:
C51 COMPILER V8.02 24C04 11/29/2011 23:42:43 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 24C04
OBJECT MODULE PLACED IN 24C04.OBJ
COMPILER INVOKED BY: D:\应用\单片机\程序\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 sbit sck = P1^4;
5 sbit sda = P1^7;
6 /****************************I2C总线开始*************************/
7 void start_24c04(void)
8 {
9 1 sda = 1;
10 1 _nop_();sck = 1;_nop_();
*** WARNING C206 IN LINE 10 OF 24C04.C: '_nop_': missing function-prototype
*** ERROR C264 IN LINE 10 OF 24C04.C: intrinsic '_nop_': declaration/activation error
11 1 sda = 0;_nop_();
12 1 sck = 0;
13 1 }
14 /****************************I2C总线停止*************************/
15 void stop_24c04(void)
16 {
17 1 sda = 0;
18 1 _nop_();sck = 1;_nop_();
19 1 sda = 1;
20 1 _nop_();
21 1 }
22 /*****************************应答程序**************************/
23 void ack_24c04(void)
24 {
25 1 uchar i = 255;
26 1 sck = 1;_nop_();
27 1 while(sda && i--);
28 1 sck = 0;
29 1 }
30 //***************************I2C总线初始化************************/
31 void init_24c04(void)
32 {
33 1 sda = 1;_nop_();//常态
34 1 sck = 0;_nop_();//常态
35 1 }
36 /***************************读取一个字节*************************/
37 uchar read_onebyte_24c04(void)
38 {
39 1 uchar i,dat;
40 1 sda = 1; // 释放总线
41 1 for(i = 0;i < 8;i++)
42 1 {
43 2 sck = 1;
44 2 dat = dat << 1;
45 2 if(sda)dat = dat | 0x01;
46 2 sck = 0;
47 2 }
48 1 sda = 1;sck = 0;
49 1 return(dat);
50 1 }
51 /*****************************写入一个字节**********************/
52 void write_onebyte_24c04(uchar dat)
53 {
C51 COMPILER V8.02 24C04 11/29/2011 23:42:43 PAGE 2
54 1 uchar i;
55 1 for(i = 0;i < 8;i++)
56 1 {
57 2 sda = (bit)(dat & 0x80);
58 2 dat = dat << 1;
59 2 sck = 1;
60 2 sck = 0;
61 2 }
62 1 sck = 0;sda = 1;
63 1 }
64
65 /*********************对某个地址写一个字节的数据***********************/
66 void write_add_dat_24c04(uchar add,uchar dat)
67 {
68 1 start_24c04();
69 1 write_onebyte_24c04(0xa0);
70 1 ack_24c04();
71 1 write_onebyte_24c04(add);
72 1 ack_24c04();
73 1 write_onebyte_24c04(dat);
74 1 ack_24c04();
75 1 stop_24c04();
76 1 }
77 /********************读取某个地址一个字节的数据*******************/
78 uchar read_add_dat_24c04(uchar add)
79 {
80 1 uchar dat;
81 1 start_24c04();
82 1 write_onebyte_24c04(0xa0);
83 1 ack_24c04();
84 1 write_onebyte_24c04(add);
85 1 ack_24c04();
86 1 start_24c04();
87 1 write_onebyte_24c04(0xa1);
88 1 ack_24c04();
89 1 dat = read_onebyte_24c04();
90 1 stop_24c04();
91 1 return(dat);
92 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -