📄 main.lis
字号:
02FE X30:
02FE 6830 cpi R22,8
0300 E0E0 ldi R30,0
0302 7E07 cpc R23,R30
0304 09F4 brne X31
0306 57C0 rjmp L96
0308 X31:
0308 6930 cpi R22,9
030A E0E0 ldi R30,0
030C 7E07 cpc R23,R30
030E 09F4 brne X32
0310 5DC0 rjmp L97
0312 X32:
0312 6A30 cpi R22,10
0314 E0E0 ldi R30,0
0316 7E07 cpc R23,R30
0318 09F4 brne X33
031A 60C0 rjmp L98
031C X33:
031C 62C0 rjmp L85
031E X7:
031E .dbline 133
031E ; {
031E L88:
031E .dbline 134
031E ; case 0 :write_data(0x88,((read_data(0x89))&0x0f)|(t<<4));;break;//0
031E 09E8 ldi R16,137
0320 00D0 rcall _read_data
0322 842F mov R24,R20
0324 8F70 andi R24,#0x0F
0326 8295 swap R24
0328 202F mov R18,R16
032A 2F70 andi R18,15
032C 282B or R18,R24
032E 08E8 ldi R16,136
0330 00D0 rcall _write_data
0332 .dbline 134
0332 .dbline 134
0332 57C0 rjmp L86
0334 L89:
0334 .dbline 135
0334 ; case 1 :write_data(0x88,((read_data(0x89))&0xf0)|t);;break;
0334 09E8 ldi R16,137
0336 00D0 rcall _read_data
0338 202F mov R18,R16
033A 207F andi R18,240
033C 242B or R18,R20
033E 08E8 ldi R16,136
0340 00D0 rcall _write_data
0342 .dbline 135
0342 .dbline 135
0342 4FC0 rjmp L86
0344 L90:
0344 .dbline 136
0344 ; case 2 :write_data(0x86,((read_data(0x87))&0x0f)|(t<<4));;break;
0344 07E8 ldi R16,135
0346 00D0 rcall _read_data
0348 842F mov R24,R20
034A 8F70 andi R24,#0x0F
034C 8295 swap R24
034E 202F mov R18,R16
0350 2F70 andi R18,15
0352 282B or R18,R24
0354 06E8 ldi R16,134
0356 00D0 rcall _write_data
0358 .dbline 136
0358 .dbline 136
0358 44C0 rjmp L86
035A L91:
035A .dbline 137
035A ; case 3 :write_data(0x86,((read_data(0x87))&0xf0)|t);;break;
035A 07E8 ldi R16,135
035C 00D0 rcall _read_data
035E 202F mov R18,R16
0360 207F andi R18,240
0362 242B or R18,R20
0364 06E8 ldi R16,134
0366 00D0 rcall _write_data
0368 .dbline 137
0368 .dbline 137
0368 3CC0 rjmp L86
036A L92:
036A .dbline 138
036A ; case 4 :write_data(0x84,((read_data(0x85))&0x0f)|(t<<4));;break;
036A 05E8 ldi R16,133
036C 00D0 rcall _read_data
036E 842F mov R24,R20
0370 8F70 andi R24,#0x0F
0372 8295 swap R24
0374 202F mov R18,R16
0376 2F70 andi R18,15
0378 282B or R18,R24
037A 04E8 ldi R16,132
037C 00D0 rcall _write_data
037E .dbline 138
037E .dbline 138
037E 31C0 rjmp L86
0380 L93:
0380 .dbline 139
0380 ; case 5 :write_data(0x84,((read_data(0x85))&0xf0)|t);;break;
0380 05E8 ldi R16,133
0382 00D0 rcall _read_data
0384 202F mov R18,R16
0386 207F andi R18,240
0388 242B or R18,R20
038A 04E8 ldi R16,132
038C 00D0 rcall _write_data
038E .dbline 139
038E .dbline 139
038E 29C0 rjmp L86
0390 L94:
0390 .dbline 140
0390 ; case 6 :write_data(0x82,((read_data(0x83))&0x0f)|(t<<4));;break;
0390 03E8 ldi R16,131
0392 00D0 rcall _read_data
0394 842F mov R24,R20
0396 8F70 andi R24,#0x0F
0398 8295 swap R24
039A 202F mov R18,R16
039C 2F70 andi R18,15
039E 282B or R18,R24
03A0 02E8 ldi R16,130
03A2 00D0 rcall _write_data
03A4 .dbline 140
03A4 .dbline 140
03A4 1EC0 rjmp L86
03A6 L95:
03A6 .dbline 141
03A6 ; case 7 :write_data(0x82,((read_data(0x83))&0xf0)|t);;break;
03A6 03E8 ldi R16,131
03A8 00D0 rcall _read_data
03AA 202F mov R18,R16
03AC 207F andi R18,240
03AE 242B or R18,R20
03B0 02E8 ldi R16,130
03B2 00D0 rcall _write_data
03B4 .dbline 141
03B4 .dbline 141
03B4 16C0 rjmp L86
03B6 L96:
03B6 .dbline 142
03B6 ; case 8 :write_data(0x80,((read_data(0x81))&0x0f)|(t<<4));;break;
03B6 01E8 ldi R16,129
03B8 00D0 rcall _read_data
03BA 842F mov R24,R20
03BC 8F70 andi R24,#0x0F
03BE 8295 swap R24
03C0 202F mov R18,R16
03C2 2F70 andi R18,15
03C4 282B or R18,R24
03C6 00E8 ldi R16,128
03C8 00D0 rcall _write_data
03CA .dbline 142
03CA .dbline 142
03CA 0BC0 rjmp L86
03CC L97:
03CC .dbline 143
03CC ; case 9 :write_data(0x80,((read_data(0x81))&0xf0)|t);;break;
03CC 01E8 ldi R16,129
03CE 00D0 rcall _read_data
03D0 202F mov R18,R16
03D2 207F andi R18,240
03D4 242B or R18,R20
03D6 00E8 ldi R16,128
03D8 00D0 rcall _write_data
03DA .dbline 143
03DA .dbline 143
03DA 03C0 rjmp L86
03DC L98:
03DC .dbline 144
03DC ; case 10 :write_data(0x8a,t);;break;
03DC 242F mov R18,R20
03DE 0AE8 ldi R16,138
03E0 00D0 rcall _write_data
03E2 .dbline 144
03E2 .dbline 144
03E2 L85:
03E2 L86:
03E2 .dbline 146
03E2 ; }
03E2 ; LCD_set_xy(9,1); //这一位抗干拢
03E2 21E0 ldi R18,1
03E4 09E0 ldi R16,9
03E6 00D0 rcall _LCD_set_xy
03E8 .dbline 147
03E8 ; LCD_write_char(n+48);
03E8 00910100 lds R16,_n
03EC 005D subi R16,208 ; addi 48
03EE 00D0 rcall _LCD_write_char
03F0 .dbline 148
03F0 ; }
03F0 05C0 rjmp L52
03F2 L51:
03F2 .dbline 150
03F2 ; else
03F2 ; {
03F2 .dbline 151
03F2 ; LCD_DATA_PORT=0x01; //清屏
03F2 81E0 ldi R24,1
03F4 8BBB out 0x1b,R24
03F6 .dbline 152
03F6 ; command_enable();
03F6 00D0 rcall _command_enable
03F8 .dbline 153
03F8 ; delay_ms(10); //等待1.53ms以上
03F8 0AE0 ldi R16,10
03FA 00D0 rcall _delay_ms
03FC .dbline 154
03FC ; }
03FC L52:
03FC L24:
03FC .dbline 155
03FC ; ret:SEI();
03FC 7894 sei
03FE .dbline -2
03FE L17:
03FE 2296 adiw R28,2
0400 00D0 rcall pop_gset4
0402 00D0 rcall pop_lset
0404 .dbline 0 ; func end
0404 1895 reti
0406 .dbsym r t 20 c
0406 .dbsym r store 20 i
0406 .dbsym r user_code 12 i
0406 .dbsym r data_code 22 i
0406 .dbsym r i 10 c
0406 .dbend
0406 .dbfunc e main _main fV
0406 ; a -> y+10
0406 ; temm -> R10
0406 ; count -> R12
0406 ; temh -> R14
0406 ; teml -> R20
0406 ; th -> y+9
0406 ; tl -> y+8
0406 ; s -> y+7
0406 ; i -> R22
.even
0406 _main::
0406 2D97 sbiw R28,13
0408 .dbline -1
0408 .dbline 161
0408 ; }
0408 ; /******************************************************
0408 ; 主程序
0408 ; ******************************************************/
0408 ; void main(void)
0408 ; {
0408 .dbline 165
0408 ;
0408 ; uchar s,i,th,tl;
0408 ; uchar temh,teml,a,count,temm;
0408 ; init_devices();
0408 06DE rcall _init_devices
040A .dbline 166
040A ; init_1302();
040A 00D0 rcall _init_1302
040C .dbline 167
040C ; init_1302();
040C 00D0 rcall _init_1302
040E .dbline 168
040E ; init_lcd() ;
040E 00D0 rcall _init_lcd
0410 .dbline 169
0410 ; init_lcd() ;
0410 00D0 rcall _init_lcd
0412 .dbline 170
0412 ; init_time(0x00,0x01,0x02,0x03,0x04,0x05);
0412 85E0 ldi R24,5
0414 8E83 std y+6,R24
0416 84E0 ldi R24,4
0418 8C83 std y+4,R24
041A 83E0 ldi R24,3
041C 8A83 std y+2,R24
041E 82E0 ldi R24,2
0420 8883 std y+0,R24
0422 21E0 ldi R18,1
0424 0027 clr R16
0426 00D0 rcall _init_time
0428 19C1 rjmp L101
042A L100:
042A .dbline 172
042A ; while(1)
042A ; {
042A .dbline 174
042A ; //1302
042A ; LCD_set_xy(0,0);
042A 2227 clr R18
042C 0027 clr R16
042E 00D0 rcall _LCD_set_xy
0430 .dbline 176
0430 ; //month
0430 ; s=read_data(0x89);
0430 09E8 ldi R16,137
0432 00D0 rcall _read_data
0434 0F83 std y+7,R16
0436 .dbline 177
0436 ; tl=s&0x0f;
0436 802F mov R24,R16
0438 8F70 andi R24,15
043A 8887 std y+8,R24
043C .dbline 178
043C ; th=(s>>4);
043C 8F81 ldd R24,y+7
043E 8295 swap R24
0440 8F70 andi R24,#0x0F
0442 8987 std y+9,R24
0444 .dbline 179
0444 ; LCD_write_char(th+48);
0444 082F mov R16,R24
0446 005D subi R16,208 ; addi 48
0448 00D0 rcall _LCD_write_char
044A .dbline 180
044A ; LCD_write_char(tl+48);
044A 0885 ldd R16,y+8
044C 005D subi R16,208 ; addi 48
044E 00D0 rcall _LCD_write_char
0450 .dbline 181
0450 ; LCD_write_char(':');
0450 0AE3 ldi R16,58
0452 00D0 rcall _LCD_write_char
0454 .dbline 183
0454 ; //day
0454 ; s=read_data(0x87);
0454 07E8 ldi R16,135
0456 00D0 rcall _read_data
0458 0F83 std y+7,R16
045A .dbline 184
045A ; tl=s&0x0f;
045A 802F mov R24,R16
045C 8F70 andi R24,15
045E 8887 std y+8,R24
0460 .dbline 185
0460 ; th=(s>>4);
0460 8F81 ldd R24,y+7
0462 8295 swap R24
0464 8F70 andi R24,#0x0F
0466 8987 std y+9,R24
0468 .dbline 186
0468 ; LCD_write_char(th+48);
0468 082F mov R16,R24
046A 005D subi R16,208 ; addi 48
046C 00D0 rcall _LCD_write_char
046E .dbline 187
046E ; LCD_write_char(tl+48);
046E 0885 ldd R16,y+8
0470 005D subi R16,208 ; addi 48
0472 00D0 rcall _LCD_write_char
0474 .dbline 188
0474 ; LCD_write_char(' ');
0474 00E2 ldi R16,32
0476 00D0 rcall _LCD_write_char
0478 .dbline 189
0478 ; LCD_write_char(' ');
0478 00E2 ldi R16,32
047A 00D0 rcall _LCD_write_char
047C .dbline 191
047C ; //hour
047C ; s=read_data(0x85);
047C 05E8 ldi R16,133
047E 00D0 rcall _read_data
0480 0F83 std y+7,R16
0482 .dbline 192
0482 ; tl=s&0x0f;
0482 802F mov R24,R16
0484 8F70 andi R24,15
0486 8887 std y+8,R24
0488 .dbline 193
0488 ; th=(s>>4);
0488 8F81 ldd R24,y+7
048A 8295 swap R24
048C 8F70 andi R24,#0x0F
048E 8987 std y+9,R24
0490 .dbline 194
0490 ; LCD_write_char(th+48);
0490 082F mov R16,R24
0492 005D subi R16,208 ; addi 48
0494 00D0 rcall _LCD_write_char
0496 .dbline 195
0496 ; LCD_write_char(tl+48);
0496 0885 ldd R16,y+8
0498 005D subi R16,208 ; addi 48
049A 00D0 rcall _LCD_write_char
049C .dbline 196
049C ; LCD_write_char(':');
049C 0AE3 ldi R16,58
049E 00D0 rcall _LCD_write_char
04A0 .dbline 198
04A0 ; //min
04A0 ; s=read_data(0x83);
04A0 03E8 ldi R16,131
04A2 00D0 rcall _read_data
04A4 0F83 std y+7,R16
04A6 .dbline 199
04A6 ; tl=s&0x0f;
04A6 802F mov R24,R16
04A8 8F70 andi R24,15
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -