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

📄 12864.lis

📁 iccavr12864液晶程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00BC 4058              subi R20,128    ; addi 128
 00BE                   .dbline 95
 00BE           ;           break; 
 00BE 0BC0              xjmp L7
 00C0           L10:
 00C0                   .dbline 97
 00C0           ;     case 1: 
 00C0           ;           address = 0x90 + x;
 00C0 462F              mov R20,R22
 00C2 4057              subi R20,112    ; addi 144
 00C4                   .dbline 98
 00C4           ;               break; 
 00C4 08C0              xjmp L7
 00C6           L11:
 00C6                   .dbline 100
 00C6           ;       case 2: 
 00C6           ;       address = 0x88 + x;
 00C6 462F              mov R20,R22
 00C8 4857              subi R20,120    ; addi 136
 00CA                   .dbline 101
 00CA           ;       break; 
 00CA 05C0              xjmp L7
 00CC           L12:
 00CC                   .dbline 103
 00CC           ;     case 3: 
 00CC           ;       address = 0x98 + x;
 00CC 462F              mov R20,R22
 00CE 4856              subi R20,104    ; addi 152
 00D0                   .dbline 104
 00D0           ;       break; 
 00D0 02C0              xjmp L7
 00D2           L6:
 00D2                   .dbline 105
 00D2           ;       default:address = 0x80 + x;}
 00D2 462F              mov R20,R22
 00D4 4058              subi R20,128    ; addi 128
 00D6                   .dbline 105
 00D6           L7:
 00D6                   .dbline 106
 00D6           ;     LCD_write_char( address, 0 );
 00D6 2227              clr R18
 00D8 3327              clr R19
 00DA 042F              mov R16,R20
 00DC 1127              clr R17
 00DE B5DF              xcall _LCD_write_char
 00E0                   .dbline -2
 00E0           L5:
 00E0 0E940000          xcall pop_gset2
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r address 20 c
 00E6                   .dbsym r y 20 c
 00E6                   .dbsym r x 22 c
 00E6                   .dbend
 00E6                   .dbfunc e LCD_write_string _LCD_write_string fV
 00E6           ;              s -> R20,R21
 00E6           ;              Y -> R10
 00E6           ;              X -> R22
                        .even
 00E6           _LCD_write_string::
 00E6 0E940000          xcall push_gset3
 00EA A22E              mov R10,R18
 00EC 602F              mov R22,R16
 00EE 4E81              ldd R20,y+6
 00F0 5F81              ldd R21,y+7
 00F2                   .dbline -1
 00F2                   .dbline 119
 00F2           ;       
 00F2           ;   }
 00F2           ; /*-----------------------------------------------------------------------
 00F2           ; LCD_write_string  : 中英文字符串显示函数
 00F2           ; 
 00F2           ; 输入参数:*s      :英文字符串指针;
 00F2           ;           X、Y    : 显示字符串的位置 
 00F2           ; 
 00F2           ; 编写日期          :2005
 00F2           ; 最后修改日期      :2005      
 00F2           ; -----------------------------------------------------------------------*/
 00F2           ; void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
 00F2           ;   {
 00F2                   .dbline 120
 00F2           ;   LCD_set_xy( X, Y );
 00F2 2A2D              mov R18,R10
 00F4 062F              mov R16,R22
 00F6 CCDF              xcall _LCD_set_xy
 00F8 0BC0              xjmp L15
 00FA           L14:
 00FA                   .dbline 123
 00FA                   .dbline 124
 00FA FA01              movw R30,R20
 00FC 2081              ldd R18,z+0
 00FE 3327              clr R19
 0100 0027              clr R16
 0102 1127              clr R17
 0104 A2DF              xcall _LCD_write_char
 0106                   .dbline 125
 0106 4F5F              subi R20,255  ; offset = 1
 0108 5F4F              sbci R21,255
 010A                   .dbline 126
 010A 05E0              ldi R16,5
 010C 10E0              ldi R17,0
 010E 22D0              xcall _delay_nms
 0110                   .dbline 127
 0110           L15:
 0110                   .dbline 122
 0110           ;     
 0110           ;     while (*s) 
 0110 FA01              movw R30,R20
 0112 2080              ldd R2,z+0
 0114 2220              tst R2
 0116 89F7              brne L14
 0118                   .dbline -2
 0118           L13:
 0118 0E940000          xcall pop_gset3
 011C                   .dbline 0 ; func end
 011C 0895              ret
 011E                   .dbsym r s 20 pc
 011E                   .dbsym r Y 10 c
 011E                   .dbsym r X 22 c
 011E                   .dbend
 011E                   .dbfunc e delay_1us _delay_1us fV
                        .even
 011E           _delay_1us::
 011E                   .dbline -1
 011E                   .dbline 135
 011E           ;       {
 011E           ;         LCD_write_char( 0, *s );
 011E           ;           s ++;
 011E           ;               delay_nms(5);
 011E           ;         }
 011E           ;   }
 011E           ; 
 011E           ; /*-----------------------------------------------------------------------
 011E           ; 延时函数
 011E           ; 系统时钟:8M
 011E           ; -----------------------------------------------------------------------*/
 011E           ; void delay_1us(void)                 //1us延时函数
 011E           ;   {
 011E                   .dbline 136
 011E           ;    asm("nop");
 011E 0000              nop
 0120                   .dbline -2
 0120           L17:
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbend
 0122                   .dbfunc e delay_nus _delay_nus fV
 0122           ;              i -> R20,R21
 0122           ;              n -> R22,R23
                        .even
 0122           _delay_nus::
 0122 0E940000          xcall push_gset2
 0126 B801              movw R22,R16
 0128                   .dbline -1
 0128                   .dbline 140
 0128           ;   }
 0128           ; 
 0128           ; void delay_nus(unsigned int n)       //N us延时函数
 0128           ;   {
 0128                   .dbline 141
 0128           ;    unsigned int i=0;
 0128 4427              clr R20
 012A 5527              clr R21
 012C                   .dbline 142
 012C           ;    for (i=0;i<n;i++)
 012C 03C0              xjmp L22
 012E           L19:
 012E                   .dbline 143
 012E F7DF              xcall _delay_1us
 0130           L20:
 0130                   .dbline 142
 0130 4F5F              subi R20,255  ; offset = 1
 0132 5F4F              sbci R21,255
 0134           L22:
 0134                   .dbline 142
 0134 4617              cp R20,R22
 0136 5707              cpc R21,R23
 0138 D0F3              brlo L19
 013A                   .dbline -2
 013A           L18:
 013A 0E940000          xcall pop_gset2
 013E                   .dbline 0 ; func end
 013E 0895              ret
 0140                   .dbsym r i 20 i
 0140                   .dbsym r n 22 i
 0140                   .dbend
 0140                   .dbfunc e delay_1ms _delay_1ms fV
 0140           ;              i -> R16,R17
                        .even
 0140           _delay_1ms::
 0140                   .dbline -1
 0140                   .dbline 147
 0140           ;    delay_1us();
 0140           ;   }
 0140           ;   
 0140           ; void delay_1ms(void)                 //1ms延时函数
 0140           ;   {
 0140                   .dbline 149
 0140 0027              clr R16
 0142 1127              clr R17
 0144 02C0              xjmp L27
 0146           L24:
 0146                   .dbline 149
 0146           L25:
 0146                   .dbline 149
 0146 0F5F              subi R16,255  ; offset = 1
 0148 1F4F              sbci R17,255
 014A           L27:
 014A                   .dbline 149
 014A           ;    unsigned int i;
 014A           ;    for (i=0;i<1140;i++);
 014A 0437              cpi R16,116
 014C E4E0              ldi R30,4
 014E 1E07              cpc R17,R30
 0150 D0F3              brlo L24
 0152                   .dbline -2
 0152           L23:
 0152                   .dbline 0 ; func end
 0152 0895              ret
 0154                   .dbsym r i 16 i
 0154                   .dbend
 0154                   .dbfunc e delay_nms _delay_nms fV
 0154           ;              i -> R20,R21
 0154           ;              n -> R22,R23
                        .even
 0154           _delay_nms::
 0154 0E940000          xcall push_gset2
 0158 B801              movw R22,R16
 015A                   .dbline -1
 015A                   .dbline 153
 015A           ;   }
 015A           ;   
 015A           ; void delay_nms(unsigned int n)       //N ms延时函数
 015A           ;   {
 015A                   .dbline 154
 015A           ;    unsigned int i=0;
 015A 4427              clr R20
 015C 5527              clr R21
 015E                   .dbline 155
 015E           ;    for (i=0;i<n;i++)
 015E 03C0              xjmp L32
 0160           L29:
 0160                   .dbline 156
 0160 EFDF              xcall _delay_1ms
 0162           L30:
 0162                   .dbline 155
 0162 4F5F              subi R20,255  ; offset = 1
 0164 5F4F              sbci R21,255
 0166           L32:
 0166                   .dbline 155
 0166 4617              cp R20,R22
 0168 5707              cpc R21,R23
 016A D0F3              brlo L29
 016C                   .dbline -2
 016C           L28:
 016C 0E940000          xcall pop_gset2
 0170                   .dbline 0 ; func end
 0170 0895              ret
 0172                   .dbsym r i 20 i
 0172                   .dbsym r n 22 i
 0172                   .dbend

⌨️ 快捷键说明

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