📄 a24cxx.lst
字号:
C51 COMPILER V7.06 A24CXX 11/01/2008 21:34:46 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE A24CXX
OBJECT MODULE PLACED IN A24CXX.OBJ
COMPILER INVOKED BY: D:\keil\keil\C51\BIN\C51.EXE A24CXX.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include"IIC.h"
3 #include"A24CXX.h"
4 uchar call[] = {0xd5,23,1,0} ;//呼叫数据
5 uchar close[] = {0xd5,26,1,0}; //关视频音频
6 uchar opendoor[] = {0xd5,24,1,0}; //用户机控制门口机开门数据
7 uchar danger[] = {0xd5,22,1,0}; //紧急呼叫
8 uchar xying[] = {0xd5,25,1,0}; //有人应答
9 uchar xian=0xd6; //空闲
10
11 //向A24CXX发送一字节数据函数:A24C_Send()
12 void A24C_Send(uchar temp)
13 {
14 1 uchar i;
15 1 for(i=0;i<8;i++)
16 1 {
17 2 PinSDA=temp&0x80;
18 2 temp=temp<<1;
19 2 nNop(20);
20 2 PinSCL=1;
21 2 nNop(20); //SCL高电平时间不小于4uS
22 2 PinSCL=0; //SCL低电平时间不小于4.7uS
23 2 }
24 1 nNop(20);
25 1 PinSDA=1; //准备接收应答信号
26 1 nNop(20);
27 1 PinSCL=1; //发送应答时钟
28 1 while(PinSDA); //判断是否有应答信号
29 1 nNop(20);
30 1 PinSCL=0;
31 1 }
32
33 //从A24CXX读一字节数据函数:A24C_Read()
34 uchar A24C_Read()
35 {
36 1 uchar i,temp=0;
37 1 PinSDA=1;
38 1 for(i=0;i<8;i++)
39 1 {
40 2 PinSCL=0;
41 2 temp=temp<<1;
42 2 PinSCL=1;
43 2 nNop(20);
44 2 if(PinSDA)
45 2 temp++;
46 2 }
47 1 PinSCL=0;
48 1 PinSDA=0;//应答位
49 1 PinSCL=1;
50 1 nNop(20);
51 1 PinSCL=0;
52 1 PinSDA=1;
53 1 return(temp);
54 1 }
55
C51 COMPILER V7.06 A24CXX 11/01/2008 21:34:46 PAGE 2
56 //向A24CXX指定地址发送一字节数据函数:A24C_WriteByte()
57 void A24C_WriteByte(uchar DevAddr,uchar SubAddr,uchar temp)
58 {
59 1 StartIIC();
60 1 A24C_Send(DevAddr);
61 1 A24C_Send(SubAddr);
62 1 A24C_Send(temp);
63 1 StopIIC();
64 1 LongDelay(2);
65 1 }
66
67 //从A24CXX指定地址接收一字节数据函数:A24C_ReadByte()
68 uchar A24C_ReadByte(uchar DevAddr,uchar SubAddr)
69 {
70 1 uchar temp;
71 1 StartIIC();
72 1 A24C_Send(DevAddr);
73 1 A24C_Send(SubAddr);
74 1 StopIIC();
75 1 StartIIC();
76 1 A24C_Send(DevAddr+1);
77 1 temp = A24C_Read();
78 1 StopIIC();
79 1 LongDelay(2);
80 1 return(temp);
81 1 }
82
83 //向A24CXX中预存入数据函数:WriteEErom()
84 void WriteEErom()
85 {
86 1 uchar i,j;
87 1 do{
88 2 StartIIC();
89 2 A24C_Send(A24C02);
90 2 A24C_Send(j);
91 2 for(i=0;i<8;i++)
92 2 A24C_Send(i+j);
93 2 StopIIC();
94 2 for(i=0;i<255;i++)
95 2 nNop(10);
96 2 j=j+8;
97 2 }while(j!=0);
98 1 }
99
100
101 void chushuju()
102 {
103 1 A24C_WriteByte(0xa0,0x00,xian);
104 1 A24C_WriteByte(0xa0,0x01,call[0]);
105 1 A24C_WriteByte(0xa0,0x02,call[1]);
106 1 A24C_WriteByte(0xa0,0x03,call[2]);
107 1 A24C_WriteByte(0xa0,0x04,call[3]);
108 1
109 1 A24C_WriteByte(0xa0,0x05,close[0]);
110 1 A24C_WriteByte(0xa0,0x06,close[1]);
111 1 A24C_WriteByte(0xa0,0x07,close[2]);
112 1 A24C_WriteByte(0xa0,0x08,close[3]);
113 1
114 1 A24C_WriteByte(0xa0,0x09,opendoor[0]);
115 1 A24C_WriteByte(0xa0,0x0a,opendoor[1]);
116 1 A24C_WriteByte(0xa0,0x0b,opendoor[2]);
117 1 A24C_WriteByte(0xa0,0x0c,opendoor[3]);
C51 COMPILER V7.06 A24CXX 11/01/2008 21:34:46 PAGE 3
118 1
119 1 A24C_WriteByte(0xa0,0x0d,danger[0]);
120 1 A24C_WriteByte(0xa0,0x0e,danger[1]);
121 1 A24C_WriteByte(0xa0,0x0f,danger[2]);
122 1 A24C_WriteByte(0xa0,0x10,danger[3]);
123 1
124 1 A24C_WriteByte(0xa0,0x11,xying[0]);
125 1 A24C_WriteByte(0xa0,0x12,xying[1]);
126 1 A24C_WriteByte(0xa0,0x13,xying[2]);
127 1 A24C_WriteByte(0xa0,0x14,xying[3]);
128 1
129 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 467 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 12
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 + -