📄 at2402.lst
字号:
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AT2402
OBJECT MODULE PLACED IN at2402.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE at2402.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*********************************************************
3 AT2402
4
5 按键K1为位选数码管
6 按键K2为加。。。。+
7 按键K3为加。。。。-
8 按键K4为保存。。。Save
9 *********************************************************/
10 #include <reg51.h>
11 #include <intrins.h>
12
13 #define OP_READ 0xa1 // 器件地址以及读取操作
14 #define OP_WRITE 0xa0 // 器件地址以及写入操作
15 #define MAX_ADDR 0x7f // AT24C02最大地址
16
17 //********************************************************************************
18 unsigned char data disp_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
19 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
20 //********************************************************************************
21 sbit SDA = P3^5;
22 sbit SCL = P3^6;
23
24 sbit k1=P1^0;//按键K1为位选数码管
25 sbit k2=P1^1;//按键K2为加。。。。+
26 sbit k3=P1^2;//按键K3为加。。。。-
27 sbit k4=P1^3;//按键K4为保存。。。Save
28
29 sbit disp_bit0=P2^0;
30 sbit disp_bit1=P2^1;
31 sbit disp_bit2=P2^2;
32 sbit disp_bit3=P2^3;
33 sbit disp_bit4=P2^4;
34 sbit disp_bit5=P2^5;
35 sbit disp_bit6=P2^6;
36 sbit disp_bit7=P2^7;
37 void start();
38 void stop();
39 unsigned char shin();
40 unsigned char key_scan();
41 bit shout(unsigned char write_data);
42 unsigned char read_random(unsigned char random_addr);
43 void write_byte( unsigned char addr, unsigned char write_data);
44
45 void delay_1ms(unsigned char ms);
46 //********************************************************************************
47 bit flash_bit,flash_cpl;
48 unsigned char eeprom_data[8],key_s,key_v,flash_number_bit,flash_500ms,disp_bit;
49 main(void)
50 {
51 1 unsigned char i,key_number;
52 1 TMOD&=0xf0;
53 1 TMOD|=0x01;
54 1 TH0=0xec;
55 1 TL0=0x78;
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 2
56 1 ET0=1;
57 1 EA=1;
58 1 flash_500ms=0x00;
59 1 flash_cpl=1;
60 1 flash_bit=1;
61 1 key_number=0x00;
62 1 disp_bit=0x00;
63 1 SDA = 1;
64 1 SCL = 1;
65 1 TR0=1;
66 1 for(i = 0 ; i < 8; i++) //读出显示代码到AT24Cxx
67 1 eeprom_data[i]=read_random(i);
68 1
69 1 for(;;)
70 1 {
71 2 key_s=key_scan();
72 2 if(key_s^key_v)
73 2 {
74 3 delay_1ms(10);
75 3 key_s=key_scan();
76 3 if(key_s^key_v)
77 3 {
78 4 key_v=key_s;
79 4 if((key_s&0x08)==0x00)
80 4 {
81 5 flash_bit=0;
82 5 key_number=0x01;
83 5 flash_number_bit=0x01;
84 5 do
85 5 {
86 6 key_s=key_scan();
87 6 if(key_s^key_v)
88 6 {
89 7 delay_1ms(10);
90 7 key_s=key_scan();
91 7 if(key_s^key_v)
92 7 {
93 8 key_v=key_s;
94 8 if((key_s&0x08)==0x00)
95 8 {
96 9 key_number=0x02;
97 9 flash_number_bit=0x02;
98 9 }
99 8 else if((key_s&0x04)==0x00)
100 8 {
101 9 if(++eeprom_data[0]==0x0a)
102 9 eeprom_data[0]=0x00;
103 9 }
104 8 else if((key_s&0x02)==0x00)
105 8 {
106 9 if(--eeprom_data[0]==0xff)
107 9 eeprom_data[0]=0x00;
108 9 }
109 8 else if((key_s&0x01)==0x00)
110 8 {
111 9 for(i=0;i<8;i++)
112 9 write_byte(i, eeprom_data[i]);
113 9 flash_bit=1;
114 9 key_number=0x00;
115 9 }
116 8 }
117 7 }
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 3
118 6 }while(key_number==0x01);
119 5 do
120 5 {
121 6 key_s=key_scan();
122 6 if(key_s^key_v)
123 6 {
124 7 delay_1ms(10);
125 7 key_s=key_scan();
126 7 if(key_s^key_v)
127 7 {
128 8 key_v=key_s;
129 8 if((key_s&0x08)==0x00)
130 8 {
131 9 key_number=0x03;
132 9 flash_number_bit=0x03;
133 9 }
134 8 else if((key_s&0x04)==0x00)
135 8 {
136 9 if(++eeprom_data[1]==0x0a)
137 9 eeprom_data[1]=0x00;
138 9 }
139 8 else if((key_s&0x02)==0x00)
140 8 {
141 9 if(--eeprom_data[1]==0xff)
142 9 eeprom_data[1]=0x00;
143 9 }
144 8 else if((key_s&0x01)==0x00)
145 8 { for(i=0;i<8;i++)
146 9 write_byte(i, eeprom_data[i]);
147 9 flash_bit=1;
148 9 key_number=0x00;
149 9 }
150 8 }
151 7 }
152 6 }while(key_number==0x02);
153 5 do
154 5 {
155 6 key_s=key_scan();
156 6 if(key_s^key_v)
157 6 {
158 7 delay_1ms(10);
159 7 key_s=key_scan();
160 7 if(key_s^key_v)
161 7 {
162 8 key_v=key_s;
163 8 if((key_s&0x08)==0x00)
164 8 {
165 9 key_number=0x04;
166 9 flash_number_bit=0x04;
167 9 }
168 8 else if((key_s&0x04)==0x00)
169 8 {
170 9 if(++eeprom_data[2]==0x0a)
171 9 eeprom_data[2]=0x00;
172 9 }
173 8 else if((key_s&0x02)==0x00)
174 8 {
175 9 if(--eeprom_data[2]==0xff)
176 9 eeprom_data[2]=0x00;
177 9 }
178 8 else if((key_s&0x01)==0x00)
179 8 {
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 4
180 9 for(i=0;i<8;i++)
181 9 write_byte(i,eeprom_data[i]);
182 9 flash_bit=1;
183 9 key_number=0x00;
184 9 }
185 8 }
186 7 }
187 6 }while(key_number==0x03);
188 5 do
189 5 {
190 6 key_s=key_scan();
191 6 if(key_s^key_v)
192 6 {
193 7 delay_1ms(10);
194 7 key_s=key_scan();
195 7 if(key_s^key_v)
196 7 {
197 8 key_v=key_s;
198 8 if((key_s&0x08)==0x00)
199 8 {
200 9 key_number=0x05;
201 9 flash_number_bit=0x05;
202 9 }
203 8 else if((key_s&0x04)==0x00)
204 8 {
205 9 if(++eeprom_data[3]==0x0a)
206 9 eeprom_data[3]=0x00;
207 9 }
208 8 else if((key_s&0x02)==0x00)
209 8 {
210 9 if(--eeprom_data[3]==0xff)
211 9 eeprom_data[3]=0x00;
212 9 }
213 8 else if((key_s&0x01)==0x00)
214 8 {
215 9 for(i=0;i<8;i++)
216 9 write_byte(i,eeprom_data[i]);
217 9 flash_bit=1;
218 9 key_number=0x00;
219 9 }
220 8 }
221 7 }
222 6 }while(key_number==0x04);
223 5 do
224 5 {
225 6 key_s=key_scan();
226 6 if(key_s^key_v)
227 6 {
228 7 delay_1ms(10);
229 7 key_s=key_scan();
230 7 if(key_s^key_v)
231 7 {
232 8 key_v=key_s;
233 8 if((key_s&0x08)==0x00)
234 8 {
235 9 key_number=0x06;
236 9 flash_number_bit=0x06;
237 9 }
238 8 else if((key_s&0x04)==0x00)
239 8 {
240 9 if(++eeprom_data[4]==0x0a)
241 9 eeprom_data[4]=0x00;
C51 COMPILER V8.02 AT2402 03/02/2009 16:30:29 PAGE 5
242 9 }
243 8 else if((key_s&0x02)==0x00)
244 8 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -