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

📄 ledtest.lis

📁 使用atmel128对45db161读写程序加LM2009R大液晶显示
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0116 90E0              ldi R25,0
 0118 8417              cp R24,R20
 011A 9507              cpc R25,R21
 011C 44F7              brge L9
 011E                   .dbline 96
 011E           ;   {
 011E           ;      PORTG &= 0x04;
 011E           ;      PORTG ^= 0X01;
 011E           ;      PORTG ^= 0x02;
 011E           ;   }
 011E           ;   //=============================
 011E           ;   
 011E           ;    df_init();  //端口初始化
 011E 0E940000          xcall _df_init
 0122                   .dbline 97
 0122           ;    j=0;
 0122 6627              clr R22
 0124 7727              clr R23
 0126                   .dbline 119
 0126           ;  /*kl:
 0126           ;   for(i=0;i<512;i++)
 0126           ;       xx[i]=3;    //初始化
 0126           ; 
 0126           ;   //测试写
 0126           ;       df_write_open(4099*Field);
 0126           ;       //for(i=0;i<5;i++)
 0126           ;       // {
 0126           ;           df_write(xx,512);
 0126           ;       // }
 0126           ;       df_write_close();
 0126           ;       j++;
 0126           ; 
 0126           ;    if(j<10)
 0126           ;    {
 0126           ;     goto kl;
 0126           ;    }
 0126           ; 
 0126           ; */
 0126           ; //    Write_page(2049,0,xx,512); //读页 一 页地址,  二页内地址,  三 数组存放取出来的数,  四 取多少个字节
 0126           ;       //=============================================
 0126           ;   df_read_open(4099*Field);
 0126 20910200          lds R18,_Field
 012A 30910300          lds R19,_Field+1
 012E 03E0              ldi R16,4099
 0130 10E1              ldi R17,16
 0132 0E940000          xcall empy16s
 0136 0E940000          xcall _df_read_open
 013A                   .dbline 122
 013A           ; //    for(j=0;j<5;j++)
 013A           ; //    {
 013A           ;        df_read(xx,512);
 013A 20E0              ldi R18,512
 013C 32E0              ldi R19,2
 013E 00E0              ldi R16,<_xx
 0140 10E0              ldi R17,>_xx
 0142 0E940000          xcall _df_read
 0146                   .dbline 129
 0146           ; //    }
 0146           ; //    df_read_close();
 0146           ; //   Page_Scrape(2049);  //页擦除
 0146           ;       //  Read_Page(2049,0,xx,512); //读页 一 页地址,  二页内地址,  三 数组存放取出来的数,  四 取多少个字节
 0146           ;       //  df_read(1,1,xx,128);
 0146           ; 
 0146           ;   ShowNumber(0,0,512,xx);
 0146 80E0              ldi R24,<_xx
 0148 90E0              ldi R25,>_xx
 014A 9B83              std y+3,R25
 014C 8A83              std y+2,R24
 014E 80E0              ldi R24,512
 0150 92E0              ldi R25,2
 0152 9983              std y+1,R25
 0154 8883              std y+0,R24
 0156 2227              clr R18
 0158 3327              clr R19
 015A 0027              clr R16
 015C 1127              clr R17
 015E 2DD1              xcall _ShowNumber
 0160           L13:
 0160                   .dbline 133
 0160                   .dbline 134
 0160                   .dbline 135
 0160           L14:
 0160                   .dbline 132
 0160 FFCF              xjmp L13
 0162           X0:
 0162                   .dbline -2
 0162           L7:
 0162 2496              adiw R28,4
 0164                   .dbline 0 ; func end
 0164 0895              ret
 0166                   .dbsym l readXDIV 5 c
 0166                   .dbsym r j 22 I
 0166                   .dbsym r i 20 I
 0166                   .dbend
 0166                   .dbfunc e initLCDM _initLCDM fV
                        .even
 0166           _initLCDM::
 0166                   .dbline -1
 0166                   .dbline 139
 0166           ; 
 0166           ;   //=========================
 0166           ;  while(1)
 0166           ;  { 
 0166           ;   ;// portout = 0xaa;
 0166           ;  }
 0166           ; }
 0166           ; //============================
 0166           ; void initLCDM(void)
 0166           ; {
 0166                   .dbline 140
 0166           ;     PORTF |= 0XFF;
 0166 80916200          lds R24,98
 016A 8F6F              ori R24,255
 016C 80936200          sts 98,R24
 0170                   .dbline 141
 0170           ;     SetCS;
 0170 969A              sbi 0x12,6
 0172                   .dbline 141
 0172                   .dbline 142
 0172           ;       SetRD;
 0172 959A              sbi 0x12,5
 0174                   .dbline 142
 0174                   .dbline 143
 0174           ;       SetWR;
 0174 979A              sbi 0x12,7
 0176                   .dbline 143
 0176                   .dbline 144
 0176           ;       SetRS;
 0176 189A              sbi 0x3,0
 0178                   .dbline 144
 0178                   .dbline 151
 0178           ;    // SetRST;
 0178           ;       //delay_ms(30);
 0178           ;       //ClrRST;
 0178           ;       //delay_ms(800);
 0178           ;   //  SetRST;
 0178           ;       //delay_ms(10);//
 0178           ;       SdCmd(0xa0,0x07); LCD_ChkBusy();  //使能 BUSY 输出
 0178 27E0              ldi R18,7
 017A 30E0              ldi R19,0
 017C 00EA              ldi R16,160
 017E 10E0              ldi R17,0
 0180 62D0              xcall _SdCmd
 0182                   .dbline 151
 0182 99D0              xcall _LCD_ChkBusy
 0184                   .dbline 152
 0184           ;       SdCmd(0x81,0x40); LCD_ChkBusy();   //by default 
 0184 20E4              ldi R18,64
 0186 30E0              ldi R19,0
 0188 01E8              ldi R16,129
 018A 10E0              ldi R17,0
 018C 5CD0              xcall _SdCmd
 018E                   .dbline 152
 018E 93D0              xcall _LCD_ChkBusy
 0190                   .dbline 153
 0190           ;       SdCmd(0x00,0xCD); LCD_ChkBusy();  //Whole Chip LCD Controller Reg(Char Mode)
 0190 2DEC              ldi R18,205
 0192 30E0              ldi R19,0
 0194 0027              clr R16
 0196 1127              clr R17
 0198 56D0              xcall _SdCmd
 019A                   .dbline 153
 019A 8DD0              xcall _LCD_ChkBusy
 019C                   .dbline 154
 019C           ;       SdCmd(0x01,0xf2); LCD_ChkBusy();   //BUSY=HiPolity, ClockOut=enable, InternalFreq=4MHz  
 019C 22EF              ldi R18,242
 019E 30E0              ldi R19,0
 01A0 01E0              ldi R16,1
 01A2 10E0              ldi R17,0
 01A4 50D0              xcall _SdCmd
 01A6                   .dbline 154
 01A6 87D0              xcall _LCD_ChkBusy
 01A8                   .dbline 155
 01A8           ;       SdCmd(0x10,0x29); LCD_ChkBusy();   //Whole Chip Cursor Control Reg(disable cursor)
 01A8 29E2              ldi R18,41
 01AA 30E0              ldi R19,0
 01AC 00E1              ldi R16,16
 01AE 10E0              ldi R17,0
 01B0 4AD0              xcall _SdCmd
 01B2                   .dbline 155
 01B2 81D0              xcall _LCD_ChkBusy
 01B4                   .dbline 156
 01B4           ;       SdCmd(0x11,0x10); LCD_ChkBusy();  //Distance of Words or Lines Reg(cursor=1,gap=0)
 01B4 20E1              ldi R18,16
 01B6 30E0              ldi R19,0
 01B8 01E1              ldi R16,17
 01BA 10E0              ldi R17,0
 01BC 44D0              xcall _SdCmd
 01BE                   .dbline 156
 01BE 7BD0              xcall _LCD_ChkBusy
 01C0                   .dbline 157
 01C0           ;       SdCmd(0x90,0x05); LCD_ChkBusy();  //Shift Clock Control Reg(320x240,69Hz)
 01C0 25E0              ldi R18,5
 01C2 30E0              ldi R19,0
 01C4 00E9              ldi R16,144
 01C6 10E0              ldi R17,0
 01C8 3ED0              xcall _SdCmd
 01CA                   .dbline 157
 01CA 75D0              xcall _LCD_ChkBusy
 01CC                   .dbline 158
 01CC           ;       SdCmd(0xf1,0x0f); LCD_ChkBusy();   //设置字型大小
 01CC 2FE0              ldi R18,15
 01CE 30E0              ldi R19,0
 01D0 01EF              ldi R16,241
 01D2 10E0              ldi R17,0
 01D4 38D0              xcall _SdCmd
 01D6                   .dbline 158
 01D6 6FD0              xcall _LCD_ChkBusy
 01D8                   .dbline 159
 01D8           ;       SdCmd(0x20,0x27); LCD_ChkBusy();  //Active Window Right  Reg
 01D8 27E2              ldi R18,39
 01DA 30E0              ldi R19,0
 01DC 00E2              ldi R16,32
 01DE 10E0              ldi R17,0
 01E0 32D0              xcall _SdCmd
 01E2                   .dbline 159
 01E2 69D0              xcall _LCD_ChkBusy
 01E4                   .dbline 160
 01E4           ;     SdCmd(0xf0,0xa0); LCD_ChkBusy();   //Font Control Reg
 01E4 20EA              ldi R18,160
 01E6 30E0              ldi R19,0
 01E8 00EF              ldi R16,240
 01EA 10E0              ldi R17,0
 01EC 2CD0              xcall _SdCmd
 01EE                   .dbline 160
 01EE 63D0              xcall _LCD_ChkBusy
 01F0                   .dbline 161
 01F0           ;       SdCmd(0x30,0xef); LCD_ChkBusy();   //Active Window Bottom Reg(240 duty)
 01F0 2FEE              ldi R18,239
 01F2 30E0              ldi R19,0
 01F4 00E3              ldi R16,48
 01F6 10E0              ldi R17,0
 01F8 26D0              xcall _SdCmd
 01FA                   .dbline 161
 01FA 5DD0              xcall _LCD_ChkBusy
 01FC                   .dbline 162
 01FC           ;       SdCmd(0x40,0x00); LCD_ChkBusy();   //Active Window Left   Reg
 01FC 2227              clr R18
 01FE 3327              clr R19
 0200 00E4              ldi R16,64
 0202 10E0              ldi R17,0
 0204 20D0              xcall _SdCmd
 0206                   .dbline 162
 0206 57D0              xcall _LCD_ChkBusy
 0208                   .dbline 163
 0208           ;       SdCmd(0x50,0x00); LCD_ChkBusy();   //Active Window Top    Reg
 0208 2227              clr R18
 020A 3327              clr R19
 020C 00E5              ldi R16,80
 020E 10E0              ldi R17,0
 0210 1AD0              xcall _SdCmd
 0212                   .dbline 163
 0212 51D0              xcall _LCD_ChkBusy
 0214                   .dbline 164
 0214           ;       SdCmd(0x21,0x27); LCD_ChkBusy();   //Display Window Right  Reg
 0214 27E2              ldi R18,39
 0216 30E0              ldi R19,0
 0218 01E2              ldi R16,33
 021A 10E0              ldi R17,0
 021C 14D0              xcall _SdCmd
 021E                   .dbline 164
 021E 4BD0              xcall _LCD_ChkBusy
 0220                   .dbline 165
 0220           ;       SdCmd(0x30,0xef); LCD_ChkBusy(); // Display Window Bottom Reg(240 duty)
 0220 2FEE              ldi R18,239
 0222 30E0              ldi R19,0
 0224 00E3              ldi R16,48
 0226 10E0              ldi R17,0
 0228 0ED0              xcall _SdCmd
 022A                   .dbline 165
 022A 45D0              xcall _LCD_ChkBusy
 022C                   .dbline 166
 022C           ;       SdCmd(0x41,0x00); LCD_ChkBusy();   //Display Window Left   Reg
 022C 2227              clr R18
 022E 3327              clr R19
 0230 01E4              ldi R16,65
 0232 10E0              ldi R17,0
 0234 08D0              xcall _SdCmd
 0236                   .dbline 166
 0236 3FD0              xcall _LCD_ChkBusy
 0238                   .dbline 167
 0238           ;     SdCmd(0x51,0x00); LCD_ChkBusy();  // Display Window Top    Reg
 0238 2227              clr R18
 023A 3327              clr R19
 023C 01E5              ldi R16,81
 023E 10E0              ldi R17,0
 0240 02D0              xcall _SdCmd
 0242                   .dbline 167
 0242 39D0              xcall _LCD_ChkBusy
 0244                   .dbline -2
 0244           L16:
 0244                   .dbline 0 ; func end
 0244 0895              ret
 0246                   .dbend
 0246                   .dbfunc e SdCmd _SdCmd fV
 0246           ;       Com_Data -> R18
 0246           ;        Command -> R16
                        .even
 0246           _SdCmd::
 0246                   .dbline -1
 0246                   .dbline 172
 0246           ; }
 0246           ; //====================================
 0246           ; //-----------------------------------
 0246           ; void SdCmd(uchar Command,uchar Com_Data)   //send command
 0246           ; {   
 0246                   .dbline 173
 0246           ;    SetWR;
 0246 979A              sbi 0x12,7
 0248                   .dbline 173
 0248                   .dbline 174
 0248           ;    SetRD;
 0248 959A              sbi 0x12,5
 024A                   .dbline 174
 024A                   .dbline 175
 024A           ;    ClrRS;   //RS = 0 输入命令  
 024A 83B1              in R24,0x3
 024C 8E7F              andi R24,254
 024E 83B9              out 0x3,R24
 0250                   .dbline 175
 0250                   .dbline 176
 0250           ;    ClrCS;
 0250 82B3              in R24,0x12
 0252 8F7B              andi R24,191
 0254 82BB              out 0x12,R24
 0256                   .dbline 176
 0256                   .dbline 177
 0256           ;    PORTF = Command;

⌨️ 快捷键说明

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