📄 18b20_test.lis
字号:
00BE ; }
00BE L33:
00BE .dbline 56
00BE A394 inc R10
00C0 L35:
00C0 .dbline 56
00C0 8A2D mov R24,R10
00C2 8430 cpi R24,4
00C4 D0F3 brlo L32
00C6 X7:
00C6 .dbline 61
00C6 ; }
00C6 L23:
00C6 .dbline 43
00C6 6395 inc R22
00C8 L25:
00C8 .dbline 43
00C8 6230 cpi R22,2
00CA 20F3 brlo L22
00CC X8:
00CC .dbline 62
00CC ; lcd_port|=BIT(lcd_cs);
00CC DC9A sbi 0x1b,4
00CE .dbline -2
00CE L15:
00CE .dbline 0 ; func end
00CE 0C940000 xjmp pop_xgsetF03C
00D2 .dbsym r j 22 c
00D2 .dbsym r a 20 c
00D2 .dbsym r i 10 c
00D2 .dbsym r content 10 c
00D2 .dbsym r dat_comm 12 c
00D2 .dbend
00D2 .dbfunc e LCD_init _LCD_init fV
.even
00D2 _LCD_init::
00D2 .dbline -1
00D2 .dbline 67
00D2 ; }
00D2 ;
00D2 ; //LCD初始化
00D2 ; void LCD_init(void)
00D2 ; {
00D2 .dbline 69
00D2 ; /**********LCD12232串口口线设置************/
00D2 ; lcd_port|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
00D2 8BB3 in R24,0x1b
00D4 8C61 ori R24,28
00D6 8BBB out 0x1b,R24
00D8 .dbline 70
00D8 ; lcd_ddr|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
00D8 8AB3 in R24,0x1a
00DA 8C61 ori R24,28
00DC 8ABB out 0x1a,R24
00DE .dbline 72
00DE ;
00DE ; lcd_write(command,0x30); //30---基本指令动作
00DE 20E3 ldi R18,48
00E0 0027 clr R16
00E2 B8DF xcall _lcd_write
00E4 .dbline 74
00E4 ; //lcd_write(command,0x04); //点设定:显示字符/光标从左到右移位,DDRAM地址加1
00E4 ; lcd_write(command,0x01); //清屏,地址指针指向00H
00E4 21E0 ldi R18,1
00E6 0027 clr R16
00E8 B5DF xcall _lcd_write
00EA .dbline 75
00EA ; lcd_write(command,0x06); //光标的移动方向
00EA 26E0 ldi R18,6
00EC 0027 clr R16
00EE B2DF xcall _lcd_write
00F0 .dbline 76
00F0 ; lcd_write(command,0x0c); //开显示,关游标
00F0 2CE0 ldi R18,12
00F2 0027 clr R16
00F4 AFDF xcall _lcd_write
00F6 .dbline 77
00F6 ; delay_1ms(); //液晶初始化后延时
00F6 .dbline -2
00F6 L36:
00F6 .dbline 0 ; func end
00F6 95CF xjmp _delay_1ms
00F8 .dbend
00F8 .dbfunc e lcd_display _lcd_display fV
00F8 ; i -> R20
00F8 ; chn -> R10,R11
.even
00F8 _lcd_display::
00F8 0E940000 xcall push_xgset300C
00FC 5801 movw R10,R16
00FE .dbline -1
00FE .dbline 82
00FE ; }
00FE ;
00FE ; //LCD全屏显示字符
00FE ; void lcd_display(unsigned char chn[30])
00FE ; {
00FE .dbline 84
00FE ; unsigned char i;
00FE ; lcd_write(command,0x30);
00FE 20E3 ldi R18,48
0100 0027 clr R16
0102 A8DF xcall _lcd_write
0104 .dbline 85
0104 ; lcd_write(command,x1);
0104 20E8 ldi R18,128
0106 0027 clr R16
0108 A5DF xcall _lcd_write
010A .dbline 86
010A ; for(i=0;i<15;i++)
010A 4427 clr R20
010C 08C0 xjmp L41
010E L38:
010E .dbline 87
010E ; lcd_write(data,chn[i]);
010E E42F mov R30,R20
0110 FF27 clr R31
0112 EA0D add R30,R10
0114 FB1D adc R31,R11
0116 2081 ldd R18,z+0
0118 01E0 ldi R16,1
011A 9CDF xcall _lcd_write
011C L39:
011C .dbline 86
011C 4395 inc R20
011E L41:
011E .dbline 86
011E 4F30 cpi R20,15
0120 B0F3 brlo L38
0122 X9:
0122 .dbline 88
0122 ; lcd_write(command,x2);
0122 20E9 ldi R18,144
0124 0027 clr R16
0126 96DF xcall _lcd_write
0128 .dbline 89
0128 ; for(i=0;i<15;i++)
0128 4427 clr R20
012A 08C0 xjmp L45
012C L42:
012C .dbline 90
012C ; lcd_write(data,chn[15+i]);
012C E42F mov R30,R20
012E FF27 clr R31
0130 EA0D add R30,R10
0132 FB1D adc R31,R11
0134 2785 ldd R18,z+15
0136 01E0 ldi R16,1
0138 8DDF xcall _lcd_write
013A L43:
013A .dbline 89
013A 4395 inc R20
013C L45:
013C .dbline 89
013C 4F30 cpi R20,15
013E B0F3 brlo L42
0140 X10:
0140 .dbline -2
0140 L37:
0140 .dbline 0 ; func end
0140 0C940000 xjmp pop_xgset300C
0144 .dbsym r i 20 c
0144 .dbsym r chn 10 pc
0144 .dbend
0144 .dbfunc e line1_display _line1_display fV
0144 ; i -> R20
0144 ; chn -> R10,R11
.even
0144 _line1_display::
0144 0E940000 xcall push_xgset300C
0148 5801 movw R10,R16
014A .dbline -1
014A .dbline 95
014A ; }
014A ;
014A ; //LCD第一行显示字符
014A ; void line1_display(unsigned char chn[15])
014A ; {
014A .dbline 97
014A ; unsigned char i;
014A ; lcd_write(command,0x30);
014A 20E3 ldi R18,48
014C 0027 clr R16
014E 82DF xcall _lcd_write
0150 .dbline 98
0150 ; lcd_write(command,x1);
0150 20E8 ldi R18,128
0152 0027 clr R16
0154 7FDF xcall _lcd_write
0156 .dbline 99
0156 ; for (i=0;i<15;i++)
0156 4427 clr R20
0158 08C0 xjmp L50
015A L47:
015A .dbline 100
015A ; lcd_write(data,chn[i]);
015A E42F mov R30,R20
015C FF27 clr R31
015E EA0D add R30,R10
0160 FB1D adc R31,R11
0162 2081 ldd R18,z+0
0164 01E0 ldi R16,1
0166 76DF xcall _lcd_write
0168 L48:
0168 .dbline 99
0168 4395 inc R20
016A L50:
016A .dbline 99
016A 4F30 cpi R20,15
016C B0F3 brlo L47
016E X11:
016E .dbline -2
016E L46:
016E .dbline 0 ; func end
016E 0C940000 xjmp pop_xgset300C
0172 .dbsym r i 20 c
0172 .dbsym r chn 10 pc
0172 .dbend
0172 .dbfunc e line2_display _line2_display fV
0172 ; i -> R20
0172 ; chn -> R10,R11
.even
0172 _line2_display::
0172 0E940000 xcall push_xgset300C
0176 5801 movw R10,R16
0178 .dbline -1
0178 .dbline 105
0178 ; }
0178 ;
0178 ; //LCD第二行显示字符
0178 ; void line2_display(unsigned char chn[15])
0178 ; {
0178 .dbline 107
0178 ; unsigned char i;
0178 ; lcd_write(command,0x30);
0178 20E3 ldi R18,48
017A 0027 clr R16
017C 6BDF xcall _lcd_write
017E .dbline 108
017E ; lcd_write(command,x2);
017E 20E9 ldi R18,144
0180 0027 clr R16
0182 68DF xcall _lcd_write
0184 .dbline 109
0184 ; for (i=0;i<15;i++)
0184 4427 clr R20
0186 08C0 xjmp L55
0188 L52:
0188 .dbline 110
0188 ; lcd_write(data,chn[i]);
0188 E42F mov R30,R20
018A FF27 clr R31
018C EA0D add R30,R10
018E FB1D adc R31,R11
0190 2081 ldd R18,z+0
0192 01E0 ldi R16,1
0194 5FDF xcall _lcd_write
0196 L53:
0196 .dbline 109
0196 4395 inc R20
0198 L55:
0198 .dbline 109
0198 4F30 cpi R20,15
019A B0F3 brlo L52
019C X12:
019C .dbline -2
019C L51:
019C .dbline 0 ; func end
019C 0C940000 xjmp pop_xgset300C
01A0 .dbsym r i 20 c
01A0 .dbsym r chn 10 pc
01A0 .dbend
01A0 .dbfunc e int_disp _int_disp fV
01A0 ; i -> R22
01A0 ; dispi -> y+0
01A0 ; j -> R20
01A0 ; adc -> R12,R13
01A0 ; wz -> R10
.even
01A0 _int_disp::
01A0 0E940000 xcall push_xgsetF03C
01A4 6901 movw R12,R18
01A6 A02E mov R10,R16
01A8 2397 sbiw R28,3
01AA .dbline -1
01AA .dbline 115
01AA ; }
01AA ;
01AA ; //////////////////////////////////////////////////////最前面的零不显示
01AA ; void int_disp(unsigned char wz,unsigned int adc)
01AA ; {
01AA .dbline 116
01AA ; unsigned char dispi[3],j=3;
01AA 43E0 ldi R20,3
01AC .dbline 117
01AC ; unsigned char i=1;
01AC 61E0 ldi R22,1
01AE .dbline 118
01AE ; adc=adc%1000;
01AE 28EE ldi R18,1000
01B0 33E0 ldi R19,3
01B2 8601 movw R16,R12
01B4 0E940000 xcall mod16u
01B8 6801 movw R12,R16
01BA .dbline 119
01BA ; dispi[2]=adc/100; adc=adc%100;
01BA 24E6 ldi R18,100
01BC 30E0 ldi R19,0
01BE 0E940000 xcall div16u
01C2 0A83 std y+2,R16
01C4 .dbline 119
01C4 24E6 ldi R18,100
01C6 30E0 ldi R19,0
01C8 8601 movw R16,R12
01CA 0E940000 xcall mod16u
01CE 6801 movw R12,R16
01D0 .dbline 120
01D0 ; dispi[1]=adc/10; adc=adc%10;
01D0 2AE0 ldi R18,10
01D2 30E0 ldi R19,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -