📄 at24c02_tx-1b.lst
字号:
C51 COMPILER V6.23a AT24C02_TX_1B 09/02/2006 22:02:27 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE AT24C02_TX_1B
OBJECT MODULE PLACED IN D:\SCM\TX-2\调试程序\AT24C0~1\AT24C0~1\AT24C02_TX-1B.OBJ
COMPILER INVOKED BY: C:\comp51\C51.EXE D:\SCM\TX-2\调试程序\AT24C0~1\AT24C0~1\AT24C02_TX-1B.C DB SB OE OT(0)
stmt level source
1 //试验AT24C02EEPROM芯片程序
2 #include<reg51.h>
3 #include <intrins.h>
4 #define uint unsigned int
5 #define uchar unsigned char
6 unsigned char sec; //定义计数值,每过1秒,sec加1
7 unsigned int tcnt; //定时中断次数
8 bit write=0; //写24C08的标志;
9 sbit sda=P2^0; //IO口定义
10 sbit scl=P2^1;
11 sbit dula=P2^6;
12 sbit wela=P2^7;
13 unsigned char j,k;
14 void delay(unsigned char i) //延时程序
15 {
16 1 for(j=i;j>0;j--)
17 1 for(k=125;k>0;k--);
18 1 }
19 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //数码管编码
20 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
21 void display(uchar bai_c,uchar sh_c) //显示程序
22 {
23 1 dula=0;
24 1 P0=table[bai_c]; //显示百位
25 1 dula=1;
26 1 dula=0;
27 1
28 1 wela=0;
29 1 P0=0x7e;
30 1 wela=1;
31 1 wela=0;
32 1 delay(5);
33 1
34 1 dula=0;
35 1 P0=table[sh_c]; //显示十位
36 1 dula=1;
37 1 dula=0;
38 1
39 1 wela=0;
40 1 P0=0x7d;
41 1 wela=1;
42 1 wela=0;
43 1 delay(5);
44 1
45 1 }
46
47 /////////24C08读写驱动程序////////////////////
48 void delay1(unsigned char x)
49 { unsigned int i;
50 1 for(i=0;i<x;i++);
51 1 ;}
52 void flash()
53 { ; ; }
54 void x24c08_init() //24c08初始化子程序
55 {scl=1; flash(); sda=1; flash();}
C51 COMPILER V6.23a AT24C02_TX_1B 09/02/2006 22:02:27 PAGE 2
56 void start() //启动I2C总线
57 {sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();}
58 void stop() //停止I2C总线
59 {sda=0; flash(); scl=1; flash(); sda=1; flash();}
60 void writex(unsigned char j) //写一个字节
61 { unsigned char i,temp;
62 1 temp=j;
63 1 for (i=0;i<8;i++)
64 1 {temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();}
65 1 scl=0; flash(); sda=1; flash();
66 1 }
67 unsigned char readx() //读一个字节
68 {
69 1 unsigned char i,j,k=0;
70 1 scl=0; flash(); sda=1;
71 1 for (i=0;i<8;i++)
72 1 { flash(); scl=1; flash();
73 2 if (sda==1) j=1;
74 2 else j=0;
75 2 k=(k<<1)|j;
76 2 scl=0;}
77 1 flash(); return(k);
78 1 }
79 void clock() //I2C总线时钟
80 {
81 1 unsigned char i=0;
82 1 scl=1; flash();
83 1 while ((sda==1)&&(i<255))i++;
84 1 scl=0; flash();
85 1 }
86 ////////从24c02的地址address中读取一个字节数据/////
87 unsigned char x24c08_read(unsigned char address)
88 {
89 1 unsigned char i;
90 1 start(); writex(0xa0);
91 1 clock(); writex(address);
92 1 clock(); start();
93 1 writex(0xa1); clock();
94 1 i=readx(); stop();
95 1 delay1(10);
96 1 return(i);
97 1 }
98 //////向24c02的address地址中写入一字节数据info/////
99 void x24c08_write(unsigned char address,unsigned char info)
100 {
101 1 EA=0;
102 1 start(); writex(0xa0);
103 1 clock(); writex(address);
104 1 clock(); writex(info);
105 1 clock(); stop();
106 1 EA=1;
107 1 delay1(50);
108 1 }
109
110 void t0(void) interrupt 1 using 0 //定时中断服务函数
111 {
112 1 TH0=(65536-50000)/256; //对TH0 TL0赋值
113 1 TL0=(65536-50000)%256; //重装计数初值
114 1 tcnt++; //每过250ust tcnt加一
115 1 if(tcnt==20) //计满20次(1秒)时
116 1 {
117 2 tcnt=0; //重新再计
C51 COMPILER V6.23a AT24C02_TX_1B 09/02/2006 22:02:27 PAGE 3
118 2 sec++;
119 2 write=1; //1秒写一次24C08
120 2 if(sec==100) //定时100秒,在从零开始计时
121 2 {sec=0;}
122 2 }
123 1 }
124
125 void main()
126 {
127 1 unsigned char i;
128 1 TMOD=0x01; //定时器工作在方式1
129 1 ET0=1; EA=1;
130 1 x24c08_init(); //初始化24C08
131 1 sec=x24c08_read(2);//读出保存的数据赋于sec
132 1 TH0=(65536-50000)/256; //对TH0 TL0赋值
133 1 TL0=(65536-50000)%256; //使定时器0.05秒中断一次
134 1 TR0=1; //开始计时
135 1 while(1)
136 1 {
137 2 i=10;
138 2 while(i--)
139 2 {
140 3 display(sec/10,sec%10);
141 3 }
142 2 if(write==1) //判断计时器是否计时一秒
143 2 {
144 3 write=0; //清零
145 3 x24c08_write(2,sec); //在24c08的地址2中写入数据sec
146 3 }
147 2 }
148 1 }
C51 COMPILER V6.23a AT24C02_TX_1B 09/02/2006 22:02:27 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
_writex. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
j. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
temp . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
_x24c08_read . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
address. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
table. . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 16
clock. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
flash. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
readx. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
j. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
k. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
_x24c08_write. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
address. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
info . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
_delay1. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0001H 2
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
t0 . . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
dula . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
wela . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1
write. . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
start. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
sda. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1
tcnt . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2
sec. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
x24c08_init. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
scl. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1
stop . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
C51 COMPILER V6.23a AT24C02_TX_1B 09/02/2006 22:02:27 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
_display . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
bai_c. . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
sh_c . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
j. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
k. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0004H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
_delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 530 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 23 ----
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 + -