📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 07/07/2006 03:58:36 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char //定义一下方便使用
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h> //包括一个52标准内核的头文件
5 //本课试验写入一个字节到24c02中
6
7 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的
8
9 #define WriteDeviceAddress 0xa0 //定义器件在IIC总线中的地址
10 #define ReadDviceAddress 0xa1
11 sbit SCL=P2^7;
12 sbit SDA=P2^6;
13
14 sbit P10=P1^0;
15
16 //定时函数
17 void DelayMs(uint number)
18 {
19 1 uchar temp;
20 1 for(;number!=0;number--)
21 1 {
22 2 for(temp=112;temp!=0;temp--) ;
23 2 }
24 1 }
25
26 //开始总线
27 void Start()
28 {
29 1 SDA=1;
30 1 SCL=1;
31 1 SDA=0;
32 1 SCL=0;
33 1 }
34
35 //结束总线
36 void Stop()
37 {
38 1 SCL=0;
39 1 SDA=0;
40 1 SCL=1;
41 1 SDA=1;
42 1 }
43
44 //测试ACK
45 bit TestAck()
46 {
47 1 bit ErrorBit;
48 1 SDA=1;
49 1 SCL=1;
50 1 ErrorBit=SDA;
51 1 SCL=0;
52 1 return(ErrorBit);
53 1 }
54
55 //写入8个bit到24c02
C51 COMPILER V7.07 MAIN 07/07/2006 03:58:36 PAGE 2
56 Write8Bit(uchar input)
57 {
58 1 uchar temp;
59 1 for(temp=8;temp!=0;temp--)
60 1 {
61 2 SDA=(bit)(input&0x80);
62 2 SCL=1;
63 2 SCL=0;
64 2 input=input<<1;
65 2 }
66 1 }
67
68 //写入一个字节到24c02中
69 void Write24c02(uchar ch,uchar address)
70 {
71 1 Start();
72 1 Write8Bit(WriteDeviceAddress);
73 1 TestAck();
74 1 Write8Bit(address);
75 1 TestAck();
76 1
77 1 Write8Bit(ch);
78 1 TestAck();
79 1
80 1 Stop();
81 1 DelayMs(10);
82 1 }
83
84 //本课试验写入一个字节到24c02中
85 void main(void) // 主程序
86 {
87 1 Write24c02(0x88,0x02);// 将0x88写入到24c02的第2个地址空间
88 1
89 1 P10=0; //指示运行完毕
90 1 while(1); //程序挂起
91 1
92 1
93 1 }
94
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 111 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -