📄 1602b_lcd_test.lis
字号:
02B6 .dbline 232
02B6 ; OSCCAL=0X95;
02B6 85E9 ldi R24,149
02B8 81BF out 0x31,R24
02BA .dbline 234
02BA ; /********************************************/
02BA ; CLI();
02BA F894 cli
02BC .dbline 235
02BC ; PORTD=0x00;
02BC 22BA out 0x12,R2
02BE .dbline 236
02BE ; DDRD |= LCD_DATA | LCD_RW;
02BE 81B3 in R24,0x11
02C0 886F ori R24,248
02C2 81BB out 0x11,R24
02C4 .dbline 237
02C4 ; DDRD |= LCD_RS | LCD_EN;
02C4 81B3 in R24,0x11
02C6 8063 ori R24,48
02C8 81BB out 0x11,R24
02CA .dbline 238
02CA ; PORTA = 0xc7;//端口设置
02CA 87EC ldi R24,199
02CC 8BBB out 0x1b,R24
02CE .dbline 239
02CE ; DDRA = 0xff;
02CE 8FEF ldi R24,255
02D0 8ABB out 0x1a,R24
02D2 .dbline 242
02D2 ; // PORTC = 0x00;
02D2 ; //DDRC = 0xff;
02D2 ; init_1302();
02D2 0E940000 xcall _init_1302
02D6 .dbline 243
02D6 ; init_1302();
02D6 0E940000 xcall _init_1302
02DA .dbline 244
02DA ; init_time(0x00,0x58,0x20,0x19,0x04,0x06,0x08);//秒、分、时、日、月、星期、年
02DA 88E0 ldi R24,8
02DC 8887 std y+8,R24
02DE 86E0 ldi R24,6
02E0 8E83 std y+6,R24
02E2 84E0 ldi R24,4
02E4 8C83 std y+4,R24
02E6 89E1 ldi R24,25
02E8 8A83 std y+2,R24
02EA 80E2 ldi R24,32
02EC 8883 std y+0,R24
02EE 28E5 ldi R18,88
02F0 0027 clr R16
02F2 0E940000 xcall _init_time
02F6 .dbline 245
02F6 ; DDRC|=0x01; //置为输出
02F6 A09A sbi 0x14,0
02F8 .dbline 246
02F8 ; PORTC|=0x01;
02F8 A89A sbi 0x15,0
02FA .dbline 247
02FA ; timer2_init();
02FA B6DE xcall _timer2_init
02FC .dbline 248
02FC ; MCUCR = 0x00;
02FC 2224 clr R2
02FE 25BE out 0x35,R2
0300 .dbline 249
0300 ; GICR = 0x00;
0300 2BBE out 0x3b,R2
0302 .dbline 250
0302 ; TIMSK = 0x40;
0302 80E4 ldi R24,64
0304 89BF out 0x39,R24
0306 .dbline 251
0306 ; LCD_init();
0306 0E940000 xcall _LCD_init
030A .dbline 253
030A ; /*初始化参数*/
030A ; zkb=1500;
030A 8CED ldi R24,1500
030C 95E0 ldi R25,5
030E 90930700 sts _zkb+1,R25
0312 80930600 sts _zkb,R24
0316 .dbline 254
0316 ; t1=zkb/20;
0316 24E1 ldi R18,20
0318 30E0 ldi R19,0
031A 00910600 lds R16,_zkb
031E 10910700 lds R17,_zkb+1
0322 0E940000 xcall div16s
0326 10930300 sts _t1+1,R17
032A 00930200 sts _t1,R16
032E .dbline 255
032E ; t2=(20000-zkb)/20;
032E 20900600 lds R2,_zkb
0332 30900700 lds R3,_zkb+1
0336 00E2 ldi R16,20000
0338 1EE4 ldi R17,78
033A 0219 sub R16,R2
033C 1309 sbc R17,R3
033E 24E1 ldi R18,20
0340 30E0 ldi R19,0
0342 0E940000 xcall div16s
0346 10930100 sts _t2+1,R17
034A 00930000 sts _t2,R16
034E .dbline 256
034E ; zq=t1;
034E 20900200 lds R2,_t1
0352 30900300 lds R3,_t1+1
0356 30920500 sts _zq+1,R3
035A 20920400 sts _zq,R2
035E .dbline 258
035E ; // Global enable interrupts
035E ; SEI();
035E 7894 sei
0360 3EC0 xjmp L27
0362 L26:
0362 .dbline 260
0362 ; while(1)
0362 ; {
0362 .dbline 263
0362 ; //settime();
0362 ; // showtime();
0362 ; delay2_nms(100);
0362 04E6 ldi R16,100
0364 10E0 ldi R17,0
0366 48D0 xcall _delay2_nms
0368 .dbline 264
0368 ; zkb+=aa;
0368 2984 ldd R2,y+9
036A 3324 clr R3
036C 40900600 lds R4,_zkb
0370 50900700 lds R5,_zkb+1
0374 420C add R4,R2
0376 531C adc R5,R3
0378 50920700 sts _zkb+1,R5
037C 40920600 sts _zkb,R4
0380 .dbline 265
0380 80910600 lds R24,_zkb
0384 90910700 lds R25,_zkb+1
0388 843F cpi R24,244
038A E1E0 ldi R30,1
038C 9E07 cpc R25,R30
038E 41F0 breq L31
0390 80910600 lds R24,_zkb
0394 90910700 lds R25,_zkb+1
0398 843C cpi R24,196
039A E9E0 ldi R30,9
039C 9E07 cpc R25,R30
039E 19F4 brne L29
03A0 L31:
03A0 .dbline 265
03A0 ; if(zkb==500||zkb==2500){ //标准应该是1000至2000
03A0 .dbline 266
03A0 ; aa=-aa;
03A0 2984 ldd R2,y+9
03A2 2194 neg R2
03A4 2986 std y+9,R2
03A6 .dbline 267
03A6 ; }
03A6 L29:
03A6 .dbline 268
03A6 24E1 ldi R18,20
03A8 30E0 ldi R19,0
03AA 00910600 lds R16,_zkb
03AE 10910700 lds R17,_zkb+1
03B2 0E940000 xcall div16s
03B6 10930300 sts _t1+1,R17
03BA 00930200 sts _t1,R16
03BE .dbline 269
03BE 20900600 lds R2,_zkb
03C2 30900700 lds R3,_zkb+1
03C6 00E2 ldi R16,20000
03C8 1EE4 ldi R17,78
03CA 0219 sub R16,R2
03CC 1309 sbc R17,R3
03CE 24E1 ldi R18,20
03D0 30E0 ldi R19,0
03D2 0E940000 xcall div16s
03D6 10930100 sts _t2+1,R17
03DA 00930000 sts _t2,R16
03DE .dbline 279
03DE L27:
03DE .dbline 259
03DE C1CF xjmp L26
03E0 X2:
03E0 .dbline -2
03E0 L25:
03E0 2C96 adiw R28,12
03E2 .dbline 0 ; func end
03E2 0895 ret
03E4 .dbsym l dout 11 c
03E4 .dbsym l i 10 c
03E4 .dbsym l aa 9 c
03E4 .dbend
03E4 .dbfunc e delay2_1ms _delay2_1ms fV
03E4 ; i -> R16,R17
.even
03E4 _delay2_1ms::
03E4 .dbline -1
03E4 .dbline 282
03E4 ; t1=zkb/20;
03E4 ; t2=(20000-zkb)/20;
03E4 ; //////////////////////////////////////////////
03E4 ; /* LCD_write_char(0x01,0); //显示清屏
03E4 ; LCD_write_string(3,0,"Welcome");
03E4 ; LCD_write_string(1,1,"www.527dz.com!");
03E4 ; delay_nms(5000);
03E4 ; LCD_write_char(0x01,0); //显示清屏
03E4 ; LCD_write_string(0,0,"Tel:13308844201");
03E4 ; LCD_write_string(0,1,"527dz@527dz.com");
03E4 ; delay_nms(5000);*/
03E4 ; }
03E4 ; }
03E4 ; void delay2_1ms(void)//1ms延时函数
03E4 ; {
03E4 .dbline 284
03E4 ; unsigned int i;
03E4 ; for (i=0;i<150;i++)
03E4 0027 clr R16
03E6 1127 clr R17
03E8 02C0 xjmp L36
03EA L33:
03EA .dbline 285
03EA .dbline 286
03EA L34:
03EA .dbline 284
03EA 0F5F subi R16,255 ; offset = 1
03EC 1F4F sbci R17,255
03EE L36:
03EE .dbline 284
03EE 0639 cpi R16,150
03F0 E0E0 ldi R30,0
03F2 1E07 cpc R17,R30
03F4 D0F3 brlo L33
03F6 .dbline -2
03F6 L32:
03F6 .dbline 0 ; func end
03F6 0895 ret
03F8 .dbsym r i 16 i
03F8 .dbend
03F8 .dbfunc e delay2_nms _delay2_nms fV
03F8 ; i -> R20,R21
03F8 ; n -> R22,R23
.even
03F8 _delay2_nms::
03F8 0E940000 xcall push_gset2
03FC B801 movw R22,R16
03FE .dbline -1
03FE .dbline 290
03FE ; {
03FE ; }
03FE ; }
03FE ;
03FE ; void delay2_nms(unsigned int n)//延时n毫秒
03FE ; {
03FE .dbline 292
03FE ; unsigned int i;
03FE ; for (i=0;i<n;i++)//执行n次1毫秒延时
03FE 4427 clr R20
0400 5527 clr R21
0402 03C0 xjmp L41
0404 L38:
0404 .dbline 293
0404 EFDF xcall _delay2_1ms
0406 L39:
0406 .dbline 292
0406 4F5F subi R20,255 ; offset = 1
0408 5F4F sbci R21,255
040A L41:
040A .dbline 292
040A 4617 cp R20,R22
040C 5707 cpc R21,R23
040E D0F3 brlo L38
0410 .dbline -2
0410 L37:
0410 0E940000 xcall pop_gset2
0414 .dbline 0 ; func end
0414 0895 ret
0416 .dbsym r i 20 i
0416 .dbsym r n 22 i
0416 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0000 _t2::
0000 .blkb 2
0002 .dbsym e t2 _t2 I
0002 _t1::
0002 .blkb 2
0004 .dbsym e t1 _t1 I
0004 _zq::
0004 .blkb 2
0006 .dbsym e zq _zq I
0006 _zkb::
0006 .blkb 2
0008 .dbsym e zkb _zkb I
.area data(ram, con, rel)
0002 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0002 L24:
0002 .blkb 7
.area idata
0002 73756E64617900 .byte 's,'u,'n,'d,'a,'y,0
.area data(ram, con, rel)
0009 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0009 L22:
0009 .blkb 9
.area idata
0009 736174757264617900 .byte 's,'a,'t,'u,'r,'d,'a,'y,0
.area data(ram, con, rel)
0012 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0012 L20:
0012 .blkb 7
.area idata
0012 66726964617900 .byte 'f,'r,'i,'d,'a,'y,0
.area data(ram, con, rel)
0019 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0019 L18:
0019 .blkb 9
.area idata
0019 746875727364617900 .byte 't,'h,'u,'r,'s,'d,'a,'y,0
.area data(ram, con, rel)
0022 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0022 L16:
0022 .blkb 10
.area idata
0022 7765646E657364617900 .byte 'w,'e,'d,'n,'e,'s,'d,'a,'y,0
.area data(ram, con, rel)
002C .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
002C L14:
002C .blkb 8
.area idata
002C 7475657364617900 .byte 't,'u,'e,'s,'d,'a,'y,0
.area data(ram, con, rel)
0034 .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
0034 L12:
0034 .blkb 7
.area idata
0034 6D6F6E64617900 .byte 'm,'o,'n,'d,'a,'y,0
.area data(ram, con, rel)
003B .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -