⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18b20_test.lis

📁 18b20的器件使用
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -