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

📄 ps2.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0120                   .dbline 107
 0120           ;  Set_DI(0);//DI=0;
 0120 0027              clr R16
 0122 6EDF              rcall _Set_DI
 0124                   .dbline 108
 0124           ;  Set_EN(0);//ENABLE=0;
 0124 0027              clr R16
 0126 7CDF              rcall _Set_EN
 0128                   .dbline 109
 0128           ;  PORTA=0x40+i;// P0=0x40+i;
 0128 842F              mov R24,R20
 012A 805C              subi R24,192    ; addi 64
 012C 8BBB              out 0x1b,R24
 012E                   .dbline 110
 012E           ;  nop(10);//_nop_();
 012E 0AE0              ldi R16,10
 0130 A8DF              rcall _nop
 0132                   .dbline 111
 0132           ;  Set_EN(1);//ENABLE=1;
 0132 01E0              ldi R16,1
 0134 75DF              rcall _Set_EN
 0136                   .dbline 112
 0136           ;  nop(10);//_nop_();
 0136 0AE0              ldi R16,10
 0138 A4DF              rcall _nop
 013A                   .dbline 113
 013A           ;  nop(10);// _nop_();
 013A 0AE0              ldi R16,10
 013C A2DF              rcall _nop
 013E                   .dbline 114
 013E           ;  Set_EN(0);//ENABLE=0;
 013E 0027              clr R16
 0140 6FDF              rcall _Set_EN
 0142                   .dbline -2
 0142                   .dbline 116
 0142           ;  //Delay(1);
 0142           ; }
 0142           L36:
 0142 00D0              rcall pop_gset1
 0144                   .dbline 0 ; func end
 0144 0895              ret
 0146                   .dbsym r i 20 c
 0146                   .dbend
 0146                   .dbfunc e WriteByte _WriteByte fV
 0146           ;              i -> R20
                        .even
 0146           _WriteByte::
 0146 00D0              rcall push_gset1
 0148 402F              mov R20,R16
 014A                   .dbline -1
 014A                   .dbline 132
 014A           ; 
 014A           ; //读状态//
 014A           ; //返回值:DB7,DB6,DB5,DB4,DB3,DB2,DB1,DB0
 014A           ; //返回值:BF,0,ON/OFF,RST,0,0,0,0
 014A           ; /*ucharReadStatus(void)
 014A           ; {uchardata i;
 014A           ;  RW=1;
 014A           ;  DI=0;
 014A           ;  ENABLE=1;
 014A           ;  i=P0;
 014A           ;  return i;
 014A           ; }*/
 014A           ; 
 014A           ; //写显示数据,i为送DDRAM的数据
 014A           ; void WriteByte(uchar i)
 014A           ; {Set_RW(0);//RW=0;
 014A                   .dbline 132
 014A 0027              clr R16
 014C 61DF              rcall _Set_RW
 014E                   .dbline 133
 014E           ;  Set_DI(1);//DI=1;
 014E 01E0              ldi R16,1
 0150 57DF              rcall _Set_DI
 0152                   .dbline 134
 0152           ;  Set_EN(0);//ENABLE=0;
 0152 0027              clr R16
 0154 65DF              rcall _Set_EN
 0156                   .dbline 135
 0156           ;  PORTA=i;//P0=i;
 0156 4BBB              out 0x1b,R20
 0158                   .dbline 136
 0158           ;  nop(10);//_nop_();
 0158 0AE0              ldi R16,10
 015A 93DF              rcall _nop
 015C                   .dbline 137
 015C           ;  Set_EN(1);//ENABLE=1;
 015C 01E0              ldi R16,1
 015E 60DF              rcall _Set_EN
 0160                   .dbline 138
 0160           ;  nop(10);//_nop_();
 0160 0AE0              ldi R16,10
 0162 8FDF              rcall _nop
 0164                   .dbline 139
 0164           ;  nop(10);//_nop_();
 0164 0AE0              ldi R16,10
 0166 8DDF              rcall _nop
 0168                   .dbline 140
 0168           ;  Set_EN(0);//ENABLE=0;
 0168 0027              clr R16
 016A 5ADF              rcall _Set_EN
 016C                   .dbline -2
 016C                   .dbline 142
 016C           ;  //Delay(1);
 016C           ; }
 016C           L37:
 016C 00D0              rcall pop_gset1
 016E                   .dbline 0 ; func end
 016E 0895              ret
 0170                   .dbsym r i 20 c
 0170                   .dbend
 0170                   .dbfunc e Reset _Reset fV
                        .even
 0170           _Reset::
 0170                   .dbline -1
 0170                   .dbline 156
 0170           ; 
 0170           ; //读显示数据处理
 0170           ; /*ucharReadData(void)
 0170           ; {uchar i;
 0170           ;  RW=1;
 0170           ;  DI=0;
 0170           ;  ENABLE=1;
 0170           ;  i=P0;
 0170           ;  return i;
 0170           ; }*/
 0170           ; 
 0170           ; //LCD复位//
 0170           ; void Reset(void)
 0170           ; {Set_RST(0);//RST=0;
 0170                   .dbline 156
 0170 0027              clr R16
 0172 6EDF              rcall _Set_RST
 0174                   .dbline 157
 0174           ;  Delay(1);
 0174 01E0              ldi R16,1
 0176 10E0              ldi R17,0
 0178 73DF              rcall _Delay
 017A                   .dbline 158
 017A           ;  Set_RST(1);//RST=1;
 017A 01E0              ldi R16,1
 017C                   .dbline -2
 017C                   .dbline 160
 017C           ;  //Delay(1);
 017C           ; }
 017C           L38:
 017C                   .dbline 0 ; func end
 017C 69CF              rjmp _Set_RST
 017E                   .dbend
 017E                   .dbfunc e ClearScreen _ClearScreen fV
 017E           ;              i -> R20
 017E           ;              j -> R22
 017E           ;              k -> R22
                        .even
 017E           _ClearScreen::
 017E 00D0              rcall push_gset2
 0180 602F              mov R22,R16
 0182                   .dbline -1
 0182                   .dbline 164
 0182           ; 
 0182           ; 
 0182           ; void ClearScreen(uchar k)
 0182           ; {uchar i,j;
 0182                   .dbline 165
 0182           ;  Set_CS1(1);//CS1=1;
 0182 01E0              ldi R16,1
 0184 55DF              rcall _Set_CS1
 0186                   .dbline 166
 0186           ;  Set_CS2(1);//CS2=1;
 0186 01E0              ldi R16,1
 0188 5BDF              rcall _Set_CS2
 018A                   .dbline 167
 018A           ;  for(i=k;i<8;i+=1)
 018A 462F              mov R20,R22
 018C 0AC0              rjmp L43
 018E           L40:
 018E                   .dbline 168
 018E           ;       {SetX(i);
 018E                   .dbline 168
 018E 042F              mov R16,R20
 0190 ACDF              rcall _SetX
 0192                   .dbline 169
 0192           ;        for(j=0;j<64;j++)
 0192 6627              clr R22
 0194 03C0              rjmp L47
 0196           L44:
 0196                   .dbline 170
 0196 0027              clr R16
 0198 D6DF              rcall _WriteByte
 019A           L45:
 019A                   .dbline 169
 019A 6395              inc R22
 019C           L47:
 019C                   .dbline 169
 019C 6034              cpi R22,64
 019E D8F3              brlo L44
 01A0                   .dbline 171
 01A0           L41:
 01A0                   .dbline 167
 01A0 4395              inc R20
 01A2           L43:
 01A2                   .dbline 167
 01A2 4830              cpi R20,8
 01A4 A0F3              brlo L40
 01A6                   .dbline -2
 01A6                   .dbline 172
 01A6           ;               WriteByte(0x00);
 01A6           ;        }
 01A6           ; }
 01A6           L39:
 01A6 00D0              rcall pop_gset2
 01A8                   .dbline 0 ; func end
 01A8 0895              ret
 01AA                   .dbsym r i 20 c
 01AA                   .dbsym r j 22 c
 01AA                   .dbsym r k 22 c
 01AA                   .dbend
 01AA                   .dbfunc e InitLCD _InitLCD fV
                        .even
 01AA           _InitLCD::
 01AA                   .dbline -1
 01AA                   .dbline 176
 01AA           ;  
 01AA           ; //LCD初始化//
 01AA           ; void InitLCD(void)
 01AA           ; {Reset();
 01AA                   .dbline 176
 01AA E2DF              rcall _Reset
 01AC                   .dbline 177
 01AC           ;  Delay(0);
 01AC 0027              clr R16
 01AE 1127              clr R17
 01B0 57DF              rcall _Delay
 01B2                   .dbline 178
 01B2           ;  ClearScreen(0);
 01B2 0027              clr R16
 01B4 E4DF              rcall _ClearScreen
 01B6                   .dbline 179
 01B6           ;  DisplayOnOff(1);
 01B6 01E0              ldi R16,1
 01B8 6ADF              rcall _DisplayOnOff
 01BA                   .dbline 180
 01BA           ;  SetStartLine(0);
 01BA 0027              clr R16
 01BC                   .dbline -2
 01BC                   .dbline 181
 01BC           ;  }
 01BC           L48:
 01BC                   .dbline 0 ; func end
 01BC 7FCF              rjmp _SetStartLine
 01BE                   .dbend
 01BE                   .dbfunc e WriteWord _WriteWord fV
 01BE           ;              i -> R20
 01BE           ;             cs -> y+10
 01BE           ;              y -> R10
 01BE           ;              x -> R12
 01BE           ;           disp -> R22,R23
                        .even
 01BE           _WriteWord::
 01BE 00D0              rcall push_gset4
 01C0 C22E              mov R12,R18
 01C2 602F              mov R22,R16
 01C4 712F              mov R23,R17
 01C6 A884              ldd R10,y+8
 01C8                   .dbline -1
 01C8                   .dbline 184
 01C8           ; 
 01C8           ; void WriteWord(uchar const *disp,uchar x,uchar y,uchar cs)
 01C8           ; {uchar i;
 01C8                   .dbline 185
 01C8           ;  if(cs==1) {Set_CS1(1);Set_CS2(0);}
 01C8 8A85              ldd R24,y+10
 01CA 8130              cpi R24,1
 01CC 29F4              brne L50
 01CE                   .dbline 185
 01CE                   .dbline 185
 01CE 01E0              ldi R16,1
 01D0 2FDF              rcall _Set_CS1
 01D2                   .dbline 185
 01D2 0027              clr R16
 01D4 35DF              rcall _Set_CS2
 01D6                   .dbline 185
 01D6 04C0              rjmp L51
 01D8           L50:
 01D8                   .dbline 186
 01D8           ;  else      {Set_CS1(0);Set_CS2(1);}
 01D8                   .dbline 186
 01D8 0027              clr R16
 01DA 2ADF              rcall _Set_CS1
 01DC                   .dbline 186
 01DC 01E0              ldi R16,1
 01DE 30DF              rcall _Set_CS2
 01E0                   .dbline 186
 01E0           L51:
 01E0                   .dbline 187
 01E0           ;  SetX(x);
 01E0 0C2D              mov R16,R12
 01E2 83DF              rcall _SetX
 01E4                   .dbline 188
 01E4           ;  SetY(y);
 01E4 0A2D              mov R16,R10
 01E6 98DF              rcall _SetY
 01E8                   .dbline 189
 01E8           ;  for(i=0;i<16;i++)
 01E8 4427              clr R20
 01EA 08C0              rjmp L55
 01EC           L52:
 01EC                   .dbline 190
 01EC                   .dbline 190
 01EC E62F              mov R30,R22
 01EE F72F              mov R31,R23
 01F0 C895              lpm
 01F2 002D              mov R16,R0
 01F4 A8DF              rcall _WriteByte
 01F6                   .dbline 191
 01F6 6F5F              subi R22,255  ; offset = 1
 01F8 7F4F              sbci R23,255
 01FA                   .dbline 191
 01FA           L53:
 01FA                   .dbline 189
 01FA 4395              inc R20
 01FC           L55:
 01FC                   .dbline 189
 01FC 4031              cpi R20,16
 01FE B0F3              brlo L52
 0200                   .dbline 192
 0200           ;      {WriteByte(*disp);
 0200           ;          disp++;}
 0200           ;   SetX(x+1);
 0200 0C2D              mov R16,R12
 0202 0F5F              subi R16,255    ; addi 1
 0204 72DF              rcall _SetX
 0206                   .dbline 193
 0206           ;   SetY(y);
 0206 0A2D              mov R16,R10
 0208 87DF              rcall _SetY
 020A                   .dbline 194
 020A           ;   for(i=0;i<16;i++)
 020A 4427              clr R20
 020C 08C0              rjmp L59
 020E           L56:
 020E                   .dbline 195
 020E                   .dbline 195
 020E E62F              mov R30,R22
 0210 F72F              mov R31,R23
 0212 C895              lpm
 0214 002D              mov R16,R0
 0216 97DF              rcall _WriteByte
 0218                   .dbline 196
 0218 6F5F              subi R22,255  ; offset = 1
 021A 7F4F              sbci R23,255
 021C                   .dbline 196
 021C           L57:
 021C                   .dbline 194
 021C 4395              inc R20
 021E           L59:
 021E                   .dbline 194
 021E 4031              cpi R20,16
 0220 B0F3              brlo L56
 0222                   .dbline -2
 0222                   .dbline 197
 0222           ;       {WriteByte(*disp);
 0222           ;        disp++;}
 0222           ; }
 0222           L49:
 0222 00D0              rcall pop_gset4
 0224                   .dbline 0 ; func end

⌨️ 快捷键说明

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