📄 key.lst
字号:
1 .file "key.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
72 .global key_delay
74 key_delay:
1:key.c **** #define key_c
2:key.c **** #include "main.h"
3:key.c **** void key_scan(void)
4:key.c **** {
5:key.c **** if(0==(in_look_date()))
6:key.c **** {
7:key.c **** display_date();
8:key.c **** }
9:key.c **** else if(0==(in_look_temperature()))
10:key.c **** {
11:key.c **** display_temperature();
12:key.c **** }
13:key.c **** else if(0==(in_look_timer()))
14:key.c **** {
15:key.c **** do{
16:key.c **** flash_control=0x01;
17:key.c **** display_timer(1,timer0_hour,timer0_minute);
18:key.c **** if(0==(in_shift())) key_delay();
19:key.c **** }while(in_shift());
20:key.c **** do{
21:key.c **** flash_control=0x01;
22:key.c **** display_timer(2,timer1_hour,timer1_minute);
23:key.c **** if(0==(in_shift())) key_delay();
24:key.c **** }while(in_shift());
25:key.c **** do{
26:key.c **** flash_control=0x01;
27:key.c **** display_timer(3,timer2_hour,timer2_minute);
28:key.c **** if(0==(in_shift())) key_delay();
29:key.c **** }while(in_shift());
30:key.c **** do{
31:key.c **** flash_control=0x01;
32:key.c **** display_timer(4,timer3_hour,timer3_minute);
33:key.c **** if(0==(in_shift())) key_delay();
34:key.c **** }while(in_shift());
35:key.c **** do{
36:key.c **** flash_control=0x01;
37:key.c **** display_timer(5,timer4_hour,timer4_minute);
38:key.c **** if(0==(in_shift())) key_delay();
39:key.c **** }while(in_shift());
40:key.c **** do{
41:key.c **** flash_control=0x01;
42:key.c **** display_timer(6,timer5_hour,timer5_minute);
43:key.c **** if(0==(in_shift())) key_delay();
44:key.c **** }while(in_shift());
45:key.c **** }
46:key.c **** else if(second<5) display_temperature();
47:key.c **** else if(second<10) display_date();
48:key.c **** else display_time();
49:key.c ****
50:key.c **** if(0==(in_set_time()))
51:key.c **** {
52:key.c **** //年
53:key.c **** do{
54:key.c **** //年个位
55:key.c **** do{
56:key.c **** flash_control=0x80;
57:key.c **** display_year();
58:key.c **** if(0==(in_add())) key_delay();
59:key.c **** if(0==(in_add()))
60:key.c **** {
61:key.c **** year++;
62:key.c **** if((year&0x0f)>=0x0a) year&=0xf0;
63:key.c **** }
64:key.c **** if(0==(in_shift())) key_delay();
65:key.c **** }while(in_shift());
66:key.c **** //年十位
67:key.c **** do{
68:key.c **** flash_control=0x40;
69:key.c **** display_year();
70:key.c **** if(0==(in_add())) key_delay();
71:key.c **** if(0==(in_add()))
72:key.c **** {
73:key.c **** year+=0x10;
74:key.c **** if((year&0xf0)>=0xa0) year&=0x0f;
75:key.c **** }
76:key.c **** if(0==(in_shift())) key_delay();
77:key.c **** }while(in_shift());
78:key.c **** }while(in_shift());
79:key.c ****
80:key.c **** //月-日-周
81:key.c **** do{
82:key.c **** //周
83:key.c **** do{
84:key.c **** flash_control=0x80;
85:key.c **** display_date();
86:key.c **** if(0==(in_add())) key_delay();
87:key.c **** if(0==(in_add()))
88:key.c **** {
89:key.c **** week++;
90:key.c **** if(week>=0x08) week=0;
91:key.c **** }
92:key.c **** if(0==(in_shift())) key_delay();
93:key.c **** }while(in_shift());
94:key.c ****
95:key.c **** //日个位
96:key.c **** do{
97:key.c **** flash_control=0x10;
98:key.c **** display_date();
99:key.c **** if(0==(in_add())) key_delay();
100:key.c **** if(0==(in_add()))
101:key.c **** {
102:key.c **** day++;
103:key.c **** if((day&0x0f)>=0x0a) day&=0xf0;
104:key.c **** }
105:key.c **** if(0==(in_shift())) key_delay();
106:key.c **** }while(in_shift());
107:key.c ****
108:key.c **** //日十位
109:key.c **** do{
110:key.c **** flash_control=0x08;
111:key.c **** display_date();
112:key.c **** if(0==(in_add())) key_delay();
113:key.c **** if(0==(in_add()))
114:key.c **** {
115:key.c **** day+=0x10;
116:key.c **** if((day&0xf0)>=0x40) day&=0x0f;
117:key.c **** }
118:key.c **** if(0==(in_shift())) key_delay();
119:key.c **** }while(in_shift());
120:key.c ****
121:key.c **** //月个位
122:key.c **** do{
123:key.c **** flash_control=0x02;
124:key.c **** display_date();
125:key.c **** if(0==(in_add())) key_delay();
126:key.c **** if(0==(in_add()))
127:key.c **** {
128:key.c **** month++;
129:key.c **** if((month&0x0f)>=0x0a) month&=0xf0;
130:key.c **** }
131:key.c **** if(0==(in_shift())) key_delay();
132:key.c **** }while(in_shift());
133:key.c ****
134:key.c **** //月十位
135:key.c **** do{
136:key.c **** flash_control=0x01;
137:key.c **** display_date();
138:key.c **** if(0==(in_add())) key_delay();
139:key.c **** if(0==(in_add()))
140:key.c **** {
141:key.c **** month+=0x10;
142:key.c **** if((month&0xf0)>=0x20) month&=0x0f;
143:key.c **** }
144:key.c **** if(0==(in_shift())) key_delay();
145:key.c **** }while(in_shift());
146:key.c **** }while(in_shift());
147:key.c ****
148:key.c **** //时-分-秒
149:key.c **** do{
150:key.c **** //秒个位
151:key.c **** do{
152:key.c **** flash_control=0x80;
153:key.c **** display_time();
154:key.c **** if(0==(in_add())) key_delay();
155:key.c **** if(0==(in_add()))
156:key.c **** {
157:key.c **** second++;
158:key.c **** if((second&0x0f)>=0x0a) second&=0xf0;
159:key.c **** }
160:key.c **** if(0==(in_shift())) key_delay();
161:key.c **** }while(in_shift());
162:key.c **** //秒十位
163:key.c **** do{
164:key.c **** flash_control=0x40;
165:key.c **** display_time();
166:key.c **** if(0==(in_add())) key_delay();
167:key.c **** if(0==(in_add()))
168:key.c **** {
169:key.c **** second+=0x10;
170:key.c **** if((second&0xf0)>=0x60) second&=0x0f;
171:key.c **** }
172:key.c **** if(0==(in_shift())) key_delay();
173:key.c **** }while(in_shift());
174:key.c ****
175:key.c **** //分个位
176:key.c **** do{
177:key.c **** flash_control=0x10;
178:key.c **** display_time();
179:key.c ****
180:key.c **** if(0==(in_add())) key_delay();
181:key.c **** if(0==(in_add()))
182:key.c **** {
183:key.c **** minute++;
184:key.c **** if((minute&0x0f)>=0x0a) minute&=0xf0;
185:key.c **** }
186:key.c **** if(0==(in_shift())) key_delay();
187:key.c **** }while(in_shift());
188:key.c **** //分十位
189:key.c **** do{
190:key.c **** flash_control=0x08;
191:key.c **** display_time();
192:key.c ****
193:key.c **** if(0==(in_add())) key_delay();
194:key.c **** if(0==(in_add()))
195:key.c **** {
196:key.c **** minute+=0x10;
197:key.c **** if((minute&0xf0)>=0x60) minute&=0x0f;
198:key.c **** }
199:key.c **** if(0==(in_shift())) key_delay();
200:key.c **** }while(in_shift());
201:key.c ****
202:key.c **** //时个位
203:key.c **** do{
204:key.c **** flash_control=0x02;
205:key.c **** display_time();
206:key.c ****
207:key.c **** if(0==(in_add())) key_delay();
208:key.c **** if(0==(in_add()))
209:key.c **** {
210:key.c **** hour++;
211:key.c **** if((hour&0x0f)>=0x0a) hour&=0xf0;
212:key.c **** }
213:key.c **** if(0==(in_shift())) key_delay();
214:key.c **** }while(in_shift());
215:key.c **** //时十位
216:key.c **** do{
217:key.c **** flash_control=0x01;
218:key.c **** display_time();
219:key.c ****
220:key.c **** if(0==(in_add())) key_delay();
221:key.c **** if(0==(in_add()))
222:key.c **** {
223:key.c **** hour+=0x10;
224:key.c **** if((hour&0xf0)>=0x30) hour&=0x0f;
225:key.c **** }
226:key.c **** if(0==(in_ok())) key_delay();
227:key.c **** }while(in_ok());
228:key.c **** }while(in_ok());
229:key.c **** ds1302_write_time();
230:key.c **** }
231:key.c **** if(0==(in_set_timer()))
232:key.c **** {
233:key.c **** //timer1
234:key.c **** //分个位
235:key.c **** do{
236:key.c **** flash_control=0x80;
237:key.c **** display_timer(1,timer0_hour,timer0_minute);
238:key.c ****
239:key.c **** if(0==(in_add())) key_delay();
240:key.c **** if(0==(in_add()))
241:key.c **** {
242:key.c **** timer0_minute++;
243:key.c **** if((timer0_minute&0x0f)>=0x0a) timer0_minute&=0xf0;
244:key.c **** }
245:key.c **** if(0==(in_shift())) key_delay();
246:key.c **** }while(in_shift());
247:key.c **** //分十位
248:key.c **** do{
249:key.c **** flash_control=0x40;
250:key.c **** display_timer(1,timer0_hour,timer0_minute);
251:key.c ****
252:key.c **** if(0==(in_add())) key_delay();
253:key.c **** if(0==(in_add()))
254:key.c **** {
255:key.c **** timer0_minute+=0x10;
256:key.c **** if((timer0_minute&0xf0)>=0x60) timer0_minute&=0x0f;
257:key.c **** }
258:key.c **** if(0==(in_shift())) key_delay();
259:key.c **** }while(in_shift());
260:key.c **** //时个位
261:key.c **** do{
262:key.c **** flash_control=0x10;
263:key.c **** display_timer(1,timer0_hour,timer0_minute);
264:key.c ****
265:key.c **** if(0==(in_add())) key_delay();
266:key.c **** if(0==(in_add()))
267:key.c **** {
268:key.c **** timer0_hour++;
269:key.c **** if((timer0_hour&0x0f)>=0x0a) timer0_hour&=0xf0;
270:key.c **** }
271:key.c **** if(0==(in_shift())) key_delay();
272:key.c **** }while(in_shift());
273:key.c **** //时十位
274:key.c **** do{
275:key.c **** flash_control=0x08;
276:key.c **** display_timer(1,timer0_hour,timer0_minute);
277:key.c ****
278:key.c **** if(0==(in_add())) key_delay();
279:key.c **** if(0==(in_add()))
280:key.c **** {
281:key.c **** timer0_hour+=0x10;
282:key.c **** if((timer0_hour&0xf0)>=0x30) timer0_hour&=0x0f;
283:key.c **** }
284:key.c **** if(0==(in_shift())) key_delay();
285:key.c **** }while(in_shift());
286:key.c **** eeprom_write_byte((uchar *)(timer0_address+0),timer0_hour);
287:key.c **** eeprom_write_byte((uchar *)(timer0_address+1),timer0_minute);
288:key.c ****
289:key.c **** //timer2
290:key.c **** //分个位
291:key.c **** do{
292:key.c **** flash_control=0x80;
293:key.c **** display_timer(2,timer1_hour,timer1_minute);
294:key.c ****
295:key.c **** if(0==(in_add())) key_delay();
296:key.c **** if(0==(in_add()))
297:key.c **** {
298:key.c **** timer1_minute++;
299:key.c **** if((timer1_minute&0x0f)>=0x0a) timer1_minute&=0xf0;
300:key.c **** }
301:key.c **** if(0==(in_shift())) key_delay();
302:key.c **** }while(in_shift());
303:key.c **** //分十位
304:key.c **** do{
305:key.c **** flash_control=0x40;
306:key.c **** display_timer(2,timer1_hour,timer1_minute);
307:key.c ****
308:key.c **** if(0==(in_add())) key_delay();
309:key.c **** if(0==(in_add()))
310:key.c **** {
311:key.c **** timer1_minute+=0x10;
312:key.c **** if((timer1_minute&0xf0)>=0x60) timer1_minute&=0x0f;
313:key.c **** }
314:key.c **** if(0==(in_shift())) key_delay();
315:key.c **** }while(in_shift());
316:key.c **** //时个位
317:key.c **** do{
318:key.c **** flash_control=0x10;
319:key.c **** display_timer(2,timer1_hour,timer1_minute);
320:key.c ****
321:key.c **** if(0==(in_add())) key_delay();
322:key.c **** if(0==(in_add()))
323:key.c **** {
324:key.c **** timer1_hour++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -