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

📄 display.lis

📁 著名的RF射频芯片nRF2401应用程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0118           ;   lcd_write_data(data/10%10+0x30);
 0118 2AE0              ldi R18,10
 011A 30E0              ldi R19,0
 011C 042F              mov R16,R20
 011E 1127              clr R17
 0120 00D0              rcall div16s
 0122 2AE0              ldi R18,10
 0124 30E0              ldi R19,0
 0126 00D0              rcall mod16s
 0128 005D              subi R16,208  ; offset = 48
 012A 1F4F              sbci R17,255
 012C 00D0              rcall _lcd_write_data
 012E                   .dbline 41
 012E           ;   lcd_write_data(data%10+0x30); 
 012E 2AE0              ldi R18,10
 0130 30E0              ldi R19,0
 0132 042F              mov R16,R20
 0134 1127              clr R17
 0136 00D0              rcall mod16s
 0138 005D              subi R16,208  ; offset = 48
 013A 1F4F              sbci R17,255
 013C 00D0              rcall _lcd_write_data
 013E                   .dbline -2
 013E           L15:
 013E 00D0              rcall pop_gset1
 0140                   .dbline 0 ; func end
 0140 0895              ret
 0142                   .dbsym r data 20 c
 0142                   .dbend
 0142                   .dbfunc e displayint _displayint fV
 0142           ;           data -> R20
 0142           ;        address -> R22
                        .even
 0142           _displayint::
 0142 00D0              rcall push_gset2
 0144 422F              mov R20,R18
 0146 602F              mov R22,R16
 0148                   .dbline -1
 0148                   .dbline 44
 0148           ; }
 0148           ; void displayint(unsigned char address,unsigned char data)
 0148           ; {   lcd_write_comm(0x30);
 0148                   .dbline 44
 0148 00E3              ldi R16,48
 014A 10E0              ldi R17,0
 014C 00D0              rcall _lcd_write_comm
 014E                   .dbline 45
 014E           ;     lcd_write_comm(address);
 014E 062F              mov R16,R22
 0150 1127              clr R17
 0152 00D0              rcall _lcd_write_comm
 0154                   .dbline 46
 0154           ;       displaybyte(data);
 0154 042F              mov R16,R20
 0156 D3DF              rcall _displaybyte
 0158                   .dbline -2
 0158           L16:
 0158 00D0              rcall pop_gset2
 015A                   .dbline 0 ; func end
 015A 0895              ret
 015C                   .dbsym r data 20 c
 015C                   .dbsym r address 22 c
 015C                   .dbend
 015C                   .dbfunc e displaybyte2 _displaybyte2 fV
 015C           ;           data -> R20
                        .even
 015C           _displaybyte2::
 015C 00D0              rcall push_gset1
 015E 402F              mov R20,R16
 0160                   .dbline -1
 0160                   .dbline 50
 0160           ; }
 0160           ; 
 0160           ; void displaybyte2(unsigned char data)
 0160           ; { 
 0160                   .dbline 51
 0160           ;   lcd_write_data(data/10%10+0x30);
 0160 2AE0              ldi R18,10
 0162 30E0              ldi R19,0
 0164 042F              mov R16,R20
 0166 1127              clr R17
 0168 00D0              rcall div16s
 016A 2AE0              ldi R18,10
 016C 30E0              ldi R19,0
 016E 00D0              rcall mod16s
 0170 005D              subi R16,208  ; offset = 48
 0172 1F4F              sbci R17,255
 0174 00D0              rcall _lcd_write_data
 0176                   .dbline 52
 0176           ;   lcd_write_data(data%10+0x30); 
 0176 2AE0              ldi R18,10
 0178 30E0              ldi R19,0
 017A 042F              mov R16,R20
 017C 1127              clr R17
 017E 00D0              rcall mod16s
 0180 005D              subi R16,208  ; offset = 48
 0182 1F4F              sbci R17,255
 0184 00D0              rcall _lcd_write_data
 0186                   .dbline -2
 0186           L17:
 0186 00D0              rcall pop_gset1
 0188                   .dbline 0 ; func end
 0188 0895              ret
 018A                   .dbsym r data 20 c
 018A                   .dbend
 018A                   .dbfunc e display_char _display_char fV
 018A           ;              i -> R20
 018A           ;            len -> R22
 018A           ;        address -> R20
 018A           ;            Ptr -> R10,R11
                        .even
 018A           _display_char::
 018A 00D0              rcall push_gset3
 018C 422F              mov R20,R18
 018E A02E              mov R10,R16
 0190 B12E              mov R11,R17
 0192 6E81              ldd R22,y+6
 0194                   .dbline -1
 0194                   .dbline 60
 0194           ; }
 0194           ; //////////////////////////////////////////////////////////////////////
 0194           ; //*Ptr       字符串的首地址 
 0194           ; //address    液晶屏的地址0x80-0x8f,0x90-0x9f之间
 0194           ; //len        显示的数据的长度,如果不够后面补空格
 0194           ; /////////////////////////////////////////////////////////////////////
 0194           ; void display_char(unsigned char *Ptr ,unsigned char address,unsigned char len)
 0194           ; {   unsigned char i;
 0194                   .dbline 62
 0194           ; 
 0194           ;     lcd_write_comm(0x30);
 0194 00E3              ldi R16,48
 0196 10E0              ldi R17,0
 0198 00D0              rcall _lcd_write_comm
 019A                   .dbline 63
 019A           ;     lcd_write_comm(address);
 019A 042F              mov R16,R20
 019C 1127              clr R17
 019E 00D0              rcall _lcd_write_comm
 01A0                   .dbline 64
 01A0           ;     lcd_write_comm(0x0c);
 01A0 0CE0              ldi R16,12
 01A2 10E0              ldi R17,0
 01A4 00D0              rcall _lcd_write_comm
 01A6                   .dbline 65
 01A6           ;       for(i=0;i<len;i++)
 01A6 4427              clr R20
 01A8 0FC0              rjmp L22
 01AA           L19:
 01AA                   .dbline 66
 01AA           ;       {
 01AA                   .dbline 67
 01AA           ;       if(*Ptr!='/0')
 01AA EA2D              mov R30,R10
 01AC FB2D              mov R31,R11
 01AE 8081              ldd R24,z+0
 01B0 8F32              cpi R24,47
 01B2 31F0              breq L23
 01B4                   .dbline 68
 01B4           ;       lcd_write_data(*Ptr++);
 01B4 0191              ld R16,Z+
 01B6 AE2E              mov R10,R30
 01B8 BF2E              mov R11,R31
 01BA 1127              clr R17
 01BC 00D0              rcall _lcd_write_data
 01BE 03C0              rjmp L24
 01C0           L23:
 01C0                   .dbline 70
 01C0           ;       else
 01C0           ;       lcd_write_data(' ');
 01C0 00E2              ldi R16,32
 01C2 10E0              ldi R17,0
 01C4 00D0              rcall _lcd_write_data
 01C6           L24:
 01C6                   .dbline 71
 01C6           L20:
 01C6                   .dbline 65
 01C6 4395              inc R20
 01C8           L22:
 01C8                   .dbline 65
 01C8 4617              cp R20,R22
 01CA 78F3              brlo L19
 01CC                   .dbline -2
 01CC           L18:
 01CC 00D0              rcall pop_gset3
 01CE                   .dbline 0 ; func end
 01CE 0895              ret
 01D0                   .dbsym r i 20 c
 01D0                   .dbsym r len 22 c
 01D0                   .dbsym r address 20 c
 01D0                   .dbsym r Ptr 10 pc
 01D0                   .dbend
 01D0                   .dbfunc e display_int _display_int fV
 01D0           ;              i -> R20
 01D0           ;            len -> R22
 01D0           ;        address -> R20
 01D0           ;            Ptr -> R10,R11
                        .even
 01D0           _display_int::
 01D0 00D0              rcall push_gset3
 01D2 422F              mov R20,R18
 01D4 A02E              mov R10,R16
 01D6 B12E              mov R11,R17
 01D8 6E81              ldd R22,y+6
 01DA                   .dbline -1
 01DA                   .dbline 80
 01DA           ;       }
 01DA           ; }
 01DA           ; 
 01DA           ; //////////////////////////////////////////////////////////////////////
 01DA           ; //*Ptr       字符串的首地址 
 01DA           ; //address    液晶屏的地址0x80-0x8f,0x90-0x9f之间
 01DA           ; //len        显示的数据的长度,如果不够后面补空格
 01DA           ; /////////////////////////////////////////////////////////////////////
 01DA           ; void display_int(unsigned char *Ptr ,unsigned char address,unsigned char len)
 01DA           ; {   unsigned char i;
 01DA                   .dbline 82
 01DA           ; 
 01DA           ;     lcd_write_comm(0x30);
 01DA 00E3              ldi R16,48
 01DC 10E0              ldi R17,0
 01DE 00D0              rcall _lcd_write_comm
 01E0                   .dbline 83
 01E0           ;     lcd_write_comm(address);
 01E0 042F              mov R16,R20
 01E2 1127              clr R17
 01E4 00D0              rcall _lcd_write_comm
 01E6                   .dbline 84
 01E6           ;     lcd_write_comm(0x0c);
 01E6 0CE0              ldi R16,12
 01E8 10E0              ldi R17,0
 01EA 00D0              rcall _lcd_write_comm
 01EC                   .dbline 85
 01EC           ;       for(i=0;i<len;i++)
 01EC 4427              clr R20
 01EE 0DC0              rjmp L29
 01F0           L26:
 01F0                   .dbline 86
 01F0                   .dbline 89
 01F0                   .dbline 90
 01F0 EA2D              mov R30,R10
 01F2 FB2D              mov R31,R11
 01F4 0081              ldd R16,z+0
 01F6 83DF              rcall _displaybyte
 01F8                   .dbline 91
 01F8 8A2D              mov R24,R10
 01FA 9B2D              mov R25,R11
 01FC 0196              adiw R24,1
 01FE A82E              mov R10,R24
 0200 B92E              mov R11,R25
 0202                   .dbline 92
 0202 00E2              ldi R16,32
 0204 10E0              ldi R17,0
 0206 00D0              rcall _lcd_write_data
 0208                   .dbline 93
 0208                   .dbline 97
 0208           L27:
 0208                   .dbline 85
 0208 4395              inc R20
 020A           L29:
 020A                   .dbline 85
 020A 4617              cp R20,R22
 020C 88F3              brlo L26
 020E                   .dbline -2
 020E           L25:
 020E 00D0              rcall pop_gset3
 0210                   .dbline 0 ; func end
 0210 0895              ret
 0212                   .dbsym r i 20 c
 0212                   .dbsym r len 22 c
 0212                   .dbsym r address 20 c
 0212                   .dbsym r Ptr 10 pc
 0212                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -