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

📄 new_disp.lis

📁 我学习AVR的代码例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00AA                   .dbfunc e SENDCOMB _SENDCOMB fV
 00AA           ;            adr -> R10
                        .even
 00AA           _SENDCOMB::
 00AA 00D0              rcall push_gset3x
 00AC A02E              mov R10,R16
 00AE                   .dbline -1
 00AE                   .dbline 98
 00AE           ;  }
 00AE           ; 
 00AE           ; void SENDCOMB(unsigned char adr)
 00AE           ;  {
 00AE                   .dbline 99
 00AE           ;    Start_spi();
 00AE E1DF              rcall _Start_spi
 00B0                   .dbline 100
 00B0           ;    SendBit(0XA0,3); /*发送写显示RAM 命令ID=101 */
 00B0 23E0              ldi R18,3
 00B2 00EA              ldi R16,160
 00B4 C4DF              rcall _SendBit
 00B6                   .dbline 101
 00B6           ;    SendBit(adr,6); /*指定写入地址*/
 00B6 26E0              ldi R18,6
 00B8 0A2D              mov R16,R10
 00BA C1DF              rcall _SendBit
 00BC                   .dbline -2
 00BC           L20:
 00BC 00D0              rcall pop_gset3x
 00BE                   .dbline 0 ; func end
 00BE 0895              ret
 00C0                   .dbsym r adr 10 c
 00C0                   .dbend
 00C0                   .dbfunc e disp_init _disp_init fV
 00C0           ;              i -> R10
                        .even
 00C0           _disp_init::
 00C0 00D0              rcall push_gset3x
 00C2                   .dbline -1
 00C2                   .dbline 104
 00C2           ;  } 
 00C2           ; void disp_init(void)
 00C2           ;  {
 00C2                   .dbline 106
 00C2           ;    unsigned char i;
 00C2           ;    SENDCOMA(0X0a); /*禁止WDT溢出标志输出*/
 00C2 0AE0              ldi R16,10
 00C4 E8DF              rcall _SENDCOMA
 00C6                   .dbline 107
 00C6           ;    SENDCOMA(0X52); //设置偏压,背极数 定义1/3 偏压4背极
 00C6 02E5              ldi R16,82
 00C8 E6DF              rcall _SENDCOMA
 00CA                   .dbline 108
 00CA           ;    SENDCOMA(0X30); //*使用内部256KRC 振荡器*
 00CA 00E3              ldi R16,48
 00CC E4DF              rcall _SENDCOMA
 00CE                   .dbline 109
 00CE           ;    SENDCOMA(0X02); //*启动振荡器*    
 00CE 02E0              ldi R16,2
 00D0 E2DF              rcall _SENDCOMA
 00D2                   .dbline 110
 00D2           ;    SENDCOMA(0X06); //LCDON
 00D2 06E0              ldi R16,6
 00D4 E0DF              rcall _SENDCOMA
 00D6                   .dbline 111
 00D6           ;    SENDCOMA(0X08);//timer dis
 00D6 08E0              ldi R16,8
 00D8 DEDF              rcall _SENDCOMA
 00DA                   .dbline 112
 00DA           ;    SENDCOMB(0x00); //*把数据指针指回0 接着写入数据*   
 00DA 0027              clr R16
 00DC E6DF              rcall _SENDCOMB
 00DE                   .dbline 113
 00DE           ;    for(i=0;i<15;i++) /*写入16 字节数据*/
 00DE AA24              clr R10
 00E0 03C0              rjmp L25
 00E2           L22:
 00E2                   .dbline 114
 00E2                   .dbline 115
 00E2 0027              clr R16
 00E4 D1DF              rcall _SendByte
 00E6                   .dbline 116
 00E6           L23:
 00E6                   .dbline 113
 00E6 A394              inc R10
 00E8           L25:
 00E8                   .dbline 113
 00E8 8A2D              mov R24,R10
 00EA 8F30              cpi R24,15
 00EC D0F3              brlo L22
 00EE                   .dbline -2
 00EE           L21:
 00EE 00D0              rcall pop_gset3x
 00F0                   .dbline 0 ; func end
 00F0 0895              ret
 00F2                   .dbsym r i 10 c
 00F2                   .dbend
 00F2                   .dbfunc e disp_off _disp_off fV
                        .even
 00F2           _disp_off::
 00F2                   .dbline -1
 00F2                   .dbline 119
 00F2           ;      {
 00F2           ;        SendByte(0x0); /*写入数据*/
 00F2           ;      }
 00F2           ;  }
 00F2           ; void disp_off(void)
 00F2           ;   {
 00F2                   .dbline 120
 00F2           ;     SENDCOMA(0X04);//lcdoff
 00F2 04E0              ldi R16,4
 00F4 D0DF              rcall _SENDCOMA
 00F6                   .dbline 121
 00F6           ;     SENDCOMA(0X00);//sys dis
 00F6 0027              clr R16
 00F8 CEDF              rcall _SENDCOMA
 00FA                   .dbline -2
 00FA           L26:
 00FA                   .dbline 0 ; func end
 00FA 0895              ret
 00FC                   .dbend
 00FC                   .dbfunc e disp _disp fV
 00FC           ;            dat -> R10
 00FC           ;            add -> R12
                        .even
 00FC           _disp::
 00FC 00D0              rcall push_gset5x
 00FE A22E              mov R10,R18
 0100 C02E              mov R12,R16
 0102                   .dbline -1
 0102                   .dbline 125
 0102           ;     //SENDCOMA(0X0c);//timer en
 0102           ;   }
 0102           ; void disp(char add,char dat)
 0102           ;  {
 0102                   .dbline 126
 0102           ;    switch(add)
 0102 EC2C              mov R14,R12
 0104 FF24              clr R15
 0106 C701              movw R24,R14
 0108 8130              cpi R24,1
 010A E0E0              ldi R30,0
 010C 9E07              cpc R25,R30
 010E 09F1              breq L31
 0110 8230              cpi R24,2
 0112 E0E0              ldi R30,0
 0114 9E07              cpc R25,R30
 0116 01F1              breq L32
 0118 8330              cpi R24,3
 011A E0E0              ldi R30,0
 011C 9E07              cpc R25,R30
 011E F9F0              breq L33
 0120 8430              cpi R24,4
 0122 E0E0              ldi R30,0
 0124 9E07              cpc R25,R30
 0126 F1F0              breq L34
 0128 8530              cpi R24,5
 012A E0E0              ldi R30,0
 012C 9E07              cpc R25,R30
 012E E9F0              breq L35
 0130 8630              cpi R24,6
 0132 E0E0              ldi R30,0
 0134 9E07              cpc R25,R30
 0136 E1F0              breq L36
 0138 8730              cpi R24,7
 013A E0E0              ldi R30,0
 013C 9E07              cpc R25,R30
 013E D9F0              breq L37
 0140 8830              cpi R24,8
 0142 E0E0              ldi R30,0
 0144 9E07              cpc R25,R30
 0146 D1F0              breq L38
 0148 8930              cpi R24,9
 014A E0E0              ldi R30,0
 014C 9E07              cpc R25,R30
 014E C9F0              breq L39
 0150 1AC0              rjmp L28
 0152           X1:
 0152                   .dbline 127
 0152           ;      {
 0152           L31:
 0152                   .dbline 128
 0152           ;          case 1: add=a1;break;
 0152 84E0              ldi R24,4
 0154 C82E              mov R12,R24
 0156                   .dbline 128
 0156 17C0              rjmp L29
 0158           L32:
 0158                   .dbline 129
 0158           ;          case 2: add=a2;break;
 0158 8CE0              ldi R24,12
 015A C82E              mov R12,R24
 015C                   .dbline 129
 015C 14C0              rjmp L29
 015E           L33:
 015E                   .dbline 130
 015E           ;          case 3: add=a3;break;
 015E 84E1              ldi R24,20
 0160 C82E              mov R12,R24
 0162                   .dbline 130
 0162 11C0              rjmp L29
 0164           L34:
 0164                   .dbline 131
 0164           ;          case 4: add=a4;break;
 0164 8CE1              ldi R24,28
 0166 C82E              mov R12,R24
 0168                   .dbline 131
 0168 0EC0              rjmp L29
 016A           L35:
 016A                   .dbline 132
 016A           ;          case 5: add=a5;break;
 016A 84E2              ldi R24,36
 016C C82E              mov R12,R24
 016E                   .dbline 132
 016E 0BC0              rjmp L29
 0170           L36:
 0170                   .dbline 133
 0170           ;          case 6: add=a6;break;
 0170 8CE2              ldi R24,44
 0172 C82E              mov R12,R24
 0174                   .dbline 133
 0174 08C0              rjmp L29
 0176           L37:
 0176                   .dbline 134
 0176           ;          case 7: add=a7;break;
 0176 84E3              ldi R24,52
 0178 C82E              mov R12,R24
 017A                   .dbline 134
 017A 05C0              rjmp L29
 017C           L38:
 017C                   .dbline 135
 017C           ;          case 8: add=a8;break;
 017C 8CE3              ldi R24,60
 017E C82E              mov R12,R24
 0180                   .dbline 135
 0180 02C0              rjmp L29
 0182           L39:
 0182                   .dbline 136
 0182           ;          case 9: add=a9;break;
 0182 84E4              ldi R24,68
 0184 C82E              mov R12,R24
 0186                   .dbline 136
 0186           L28:
 0186           L29:
 0186                   .dbline 138
 0186           ;        }
 0186           ;    SENDCOMB(add);             //write address
 0186 0C2D              mov R16,R12
 0188 90DF              rcall _SENDCOMB
 018A                   .dbline 139
 018A           ;    SendByte(S[dat]);            //write data
 018A 80E0              ldi R24,<_S
 018C 90E0              ldi R25,>_S
 018E EA2D              mov R30,R10
 0190 FF27              clr R31
 0192 E80F              add R30,R24
 0194 F91F              adc R31,R25
 0196 0491              lpm R16,Z
 0198 77DF              rcall _SendByte
 019A                   .dbline -2
 019A           L27:
 019A 00D0              rcall pop_gset5x
 019C                   .dbline 0 ; func end
 019C 0895              ret
 019E                   .dbsym r dat 10 c
 019E                   .dbsym r add 12 c
 019E                   .dbend
 019E                   .dbfunc e main _main fV
 019E           ;              j -> R10
 019E           ;              i -> R12
                        .even
 019E           _main::
 019E                   .dbline -1
 019E                   .dbline 143
 019E           ;    //SendByte(S[dat]);            //write data
 019E           ;  }
 019E           ; void main(void)
 019E           ;   {
 019E                   .dbline 145
 019E           ;     char i,j;
 019E           ;     port_init();
 019E 30DF              rcall _port_init
 01A0                   .dbline 146
 01A0           ;       disp_init();
 01A0 8FDF              rcall _disp_init
 01A2                   .dbline 147
 01A2 CC24              clr R12
 01A4 C394              inc R12
 01A6 AA24              clr R10
 01A8 A394              inc R10
 01AA 05C0              rjmp L44
 01AC           L41:
 01AC                   .dbline 147
 01AC 2A2D              mov R18,R10
 01AE 0C2D              mov R16,R12
 01B0 A5DF              rcall _disp
 01B2           L42:
 01B2                   .dbline 147
 01B2 C394              inc R12
 01B4 A394              inc R10
 01B6           L44:
 01B6                   .dbline 147
 01B6           ;       for(i=1,j=1;i<10;i++,j++) disp(i,j);
 01B6 8C2D              mov R24,R12
 01B8 8A30              cpi R24,10
 01BA C0F3              brlo L41
 01BC           L45:
 01BC                   .dbline 149
 01BC           L46:
 01BC                   .dbline 149
 01BC FFCF              rjmp L45
 01BE           X2:
 01BE                   .dbline -2
 01BE           L40:
 01BE                   .dbline 0 ; func end
 01BE 0895              ret
 01C0                   .dbsym r j 10 c
 01C0                   .dbsym r i 12 c
 01C0                   .dbend

⌨️ 快捷键说明

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