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

📄 lcdtest.lst

📁 AT91M40800源码
💻 LST
📖 第 1 页 / 共 5 页
字号:
    240          }
   \                     ??dipBMP_3:
   \   00000070   7040BDE8           POP      {R4-R6,LR}
   \   00000074   1EFF2FE1           BX       LR               ;; return
    241          

   \                                 In segment CODE, align 4, keep-with-next
    242          void dishz(unsigned char x_addr,unsigned char y_addr,unsigned char *p)
    243          { unsigned i,pag,colh,coll;
   \                     dishz:
   \   00000000   F0412DE9           PUSH     {R4-R8,LR}
   \   00000004   0240B0E1           MOVS     R4,R2
    244            pag  =  x_addr*2+0xb0;
   \   00000008   0220A0E3           MOV      R2,#+2
   \   0000000C   920010E0           MULS     R0,R2,R0
   \   00000010   B06090E2           ADDS     R6,R0,#+176
    245            colh =  y_addr>>4;
   \   00000014   FF1011E2           ANDS     R1,R1,#0xFF      ;; Zero extend
   \   00000018   2172B0E1           LSRS     R7,R1,#+4
   \   0000001C   FF7017E2           ANDS     R7,R7,#0xFF      ;; Zero extend
    246            colh |= 0xf0;
   \   00000020   F07097E3           ORRS     R7,R7,#0xF0
    247            colh &= 0x1f;
   \   00000024   1F7017E2           ANDS     R7,R7,#0x1F
    248            coll =  y_addr &0x0f;
   \   00000028   0F8011E2           ANDS     R8,R1,#0xF
    249            SEND2LCM(0,colh);
   \   0000002C   0710B0E1           MOVS     R1,R7
   \   00000030   0000A0E3           MOV      R0,#+0
   \   00000034   ........           BL       SEND2LCM
    250            SEND2LCM(0,coll);
   \   00000038   0810B0E1           MOVS     R1,R8
   \   0000003C   0000A0E3           MOV      R0,#+0
   \   00000040   ........           BL       SEND2LCM
    251            SEND2LCM(0,pag);
   \   00000044   0610B0E1           MOVS     R1,R6
   \   00000048   0000A0E3           MOV      R0,#+0
   \   0000004C   ........           BL       SEND2LCM
    252              for(i=0;i<32;i++)
   \   00000050   0050A0E3           MOV      R5,#+0
   \   00000054   0F0000EA           B        ??dishz_0
    253              {if(i==16)
   \                     ??dishz_1:
   \   00000058   100055E3           CMP      R5,#+16
   \   0000005C   0800001A           BNE      ??dishz_2
    254                  {SEND2LCM(0,pag+1);
   \   00000060   011096E2           ADDS     R1,R6,#+1
   \   00000064   0000A0E3           MOV      R0,#+0
   \   00000068   ........           BL       SEND2LCM
    255                   SEND2LCM(0,colh);
   \   0000006C   0710B0E1           MOVS     R1,R7
   \   00000070   0000A0E3           MOV      R0,#+0
   \   00000074   ........           BL       SEND2LCM
    256                   SEND2LCM(0,coll);
   \   00000078   0810B0E1           MOVS     R1,R8
   \   0000007C   0000A0E3           MOV      R0,#+0
   \   00000080   ........           BL       SEND2LCM
    257                  }
    258               SEND2LCM(1,*p++);
   \                     ??dishz_2:
   \   00000084   0010D4E5           LDRB     R1,[R4, #+0]
   \   00000088   0100A0E3           MOV      R0,#+1
   \   0000008C   ........           BL       SEND2LCM
   \   00000090   014094E2           ADDS     R4,R4,#+1
    259              }
   \   00000094   015095E2           ADDS     R5,R5,#+1
   \                     ??dishz_0:
   \   00000098   200055E3           CMP      R5,#+32
   \   0000009C   EDFFFF3A           BCC      ??dishz_1
    260          }
   \   000000A0   F041BDE8           POP      {R4-R8,LR}
   \   000000A4   1EFF2FE1           BX       LR               ;; return
    261          

   \                                 In segment CODE, align 4, keep-with-next
    262          void initLCM(void)
    263          {
   \                     initLCM:
   \   00000000   00402DE9           PUSH     {LR}
    264                  __PIO_PERB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT);  //作为普通IO使用
   \   00000004   FF04A0E3           MOV      R0,#-16777216
   \   00000008   FF0880E3           ORR      R0,R0,#0xFF0000
   \   0000000C   E417A0E3           MOV      R1,#+59768832
   \   00000010   001080E5           STR      R1,[R0, #+0]
    265                  __PIO_OERB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT); // 设置为输出
   \   00000014   EF00E0E3           MVN      R0,#+239
   \   00000018   FF0CC0E3           BIC      R0,R0,#0xFF00
   \   0000001C   E417A0E3           MOV      R1,#+59768832
   \   00000020   001080E5           STR      R1,[R0, #+0]
    266                  __PIO_SODRB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT); // 所有输出为高电平
   \   00000024   CF00E0E3           MVN      R0,#+207
   \   00000028   FF0CC0E3           BIC      R0,R0,#0xFF00
   \   0000002C   E417A0E3           MOV      R1,#+59768832
   \   00000030   001080E5           STR      R1,[R0, #+0]
    267          
    268          	SEND2LCM(0,0xe2);
   \   00000034   E210A0E3           MOV      R1,#+226
   \   00000038   0000A0E3           MOV      R0,#+0
   \   0000003C   ........           BL       SEND2LCM
    269          	delayMs(100);
   \   00000040   6400A0E3           MOV      R0,#+100
   \   00000044   ........           BL       delayMs
    270          	SEND2LCM(0,0xa0);
   \   00000048   A010A0E3           MOV      R1,#+160
   \   0000004C   0000A0E3           MOV      R0,#+0
   \   00000050   ........           BL       SEND2LCM
    271          	SEND2LCM(0,0xc0);//	SEND2LCM(0,0xc8);
   \   00000054   C010A0E3           MOV      R1,#+192
   \   00000058   0000A0E3           MOV      R0,#+0
   \   0000005C   ........           BL       SEND2LCM
    272          	SEND2LCM(0,0xa3);
   \   00000060   A310A0E3           MOV      R1,#+163
   \   00000064   0000A0E3           MOV      R0,#+0
   \   00000068   ........           BL       SEND2LCM
    273          	delayMs(100);
   \   0000006C   6400A0E3           MOV      R0,#+100
   \   00000070   ........           BL       delayMs
    274          	SEND2LCM(0,0x2c);
   \   00000074   2C10A0E3           MOV      R1,#+44
   \   00000078   0000A0E3           MOV      R0,#+0
   \   0000007C   ........           BL       SEND2LCM
    275          	delayMs(100);
   \   00000080   6400A0E3           MOV      R0,#+100
   \   00000084   ........           BL       delayMs
    276          	SEND2LCM(0,0x2e);
   \   00000088   2E10A0E3           MOV      R1,#+46
   \   0000008C   0000A0E3           MOV      R0,#+0
   \   00000090   ........           BL       SEND2LCM
    277          	delayMs(100);
   \   00000094   6400A0E3           MOV      R0,#+100
   \   00000098   ........           BL       delayMs
    278          	SEND2LCM(0,0x2f);
   \   0000009C   2F10A0E3           MOV      R1,#+47
   \   000000A0   0000A0E3           MOV      R0,#+0
   \   000000A4   ........           BL       SEND2LCM
    279          	delayMs(100);
   \   000000A8   6400A0E3           MOV      R0,#+100
   \   000000AC   ........           BL       delayMs
    280          	SEND2LCM(0,0x25);
   \   000000B0   2510A0E3           MOV      R1,#+37
   \   000000B4   0000A0E3           MOV      R0,#+0
   \   000000B8   ........           BL       SEND2LCM
    281          	SEND2LCM(0,0x81);
   \   000000BC   8110A0E3           MOV      R1,#+129
   \   000000C0   0000A0E3           MOV      R0,#+0
   \   000000C4   ........           BL       SEND2LCM
    282          	SEND2LCM(0,0x15);
   \   000000C8   1510A0E3           MOV      R1,#+21
   \   000000CC   0000A0E3           MOV      R0,#+0
   \   000000D0   ........           BL       SEND2LCM
    283          	delayMs(100);
   \   000000D4   6400A0E3           MOV      R0,#+100
   \   000000D8   ........           BL       delayMs
    284          	SEND2LCM(0,0x60);
   \   000000DC   6010A0E3           MOV      R1,#+96
   \   000000E0   0000A0E3           MOV      R0,#+0
   \   000000E4   ........           BL       SEND2LCM
    285          	SEND2LCM(0,0xaf);
   \   000000E8   AF10A0E3           MOV      R1,#+175
   \   000000EC   0000A0E3           MOV      R0,#+0
   \   000000F0   ........           BL       SEND2LCM
    286          }
   \   000000F4   0040BDE8           POP      {LR}
   \   000000F8   1EFF2FE1           BX       LR               ;; return

   \                                 In segment CODE, align 4, keep-with-next
    287          void LCDtest(void)
    288          { unsigned char *hzcode;
   \                     LCDtest:
   \   00000000   10402DE9           PUSH     {R4,LR}
    289                    initLCM();
   \   00000004   ........           BL       initLCM
    290                    LCDclear(0x55,0x55);
   \   00000008   5510A0E3           MOV      R1,#+85
   \   0000000C   5500A0E3           MOV      R0,#+85
   \   00000010   ........           BL       LCDclear
    291          	  delayMs(200);
   \   00000014   C800A0E3           MOV      R0,#+200
   \   00000018   ........           BL       delayMs
    292          	  LCDclear(0xff,0x00);
   \   0000001C   0010A0E3           MOV      R1,#+0
   \   00000020   FF00A0E3           MOV      R0,#+255
   \   00000024   ........           BL       LCDclear
    293          	  delayMs(200);
   \   00000028   C800A0E3           MOV      R0,#+200
   \   0000002C   ........           BL       delayMs
    294          	  LCDclear(0xaa,0x55);
   \   00000030   5510A0E3           MOV      R1,#+85
   \   00000034   AA00A0E3           MOV      R0,#+170
   \   00000038   ........           BL       LCDclear
    295          	  delayMs(200);
   \   0000003C   C800A0E3           MOV      R0,#+200
   \   00000040   ........           BL       delayMs
    296          	  LCDclear(0x00,0x00);
   \   00000044   0010A0E3           MOV      R1,#+0
   \   00000048   0000A0E3           MOV      R0,#+0
   \   0000004C   ........           BL       LCDclear
    297          	  delayMs(200);
   \   00000050   C800A0E3           MOV      R0,#+200
   \   00000054   ........           BL       delayMs
    298          	  hzcode=hz1;
   \   00000058   9C409FE5           LDR      R4,??LCDtest_0   ;; hz1
    299          	  dishz(0,0,hzcode);
   \   0000005C   0420B0E1           MOVS     R2,R4
   \   00000060   0010A0E3           MOV      R1,#+0
   \   00000064   0000A0E3           MOV      R0,#+0
   \   00000068   ........           BL       dishz
    300          	  delayMs(100);
   \   0000006C   6400A0E3           MOV      R0,#+100
   \   00000070   ........           BL       delayMs
    301          	  dishz(0,16,hzcode);
   \   00000074   0420B0E1           MOVS     R2,R4
   \   00000078   1010A0E3           MOV      R1,#+16
   \   0000007C   0000A0E3           MOV      R0,#+0
   \   00000080   ........           BL       dishz
    302          	  delayMs(100);
   \   00000084   6400A0E3           MOV      R0,#+100
   \   00000088   ........           BL       delayMs
    303          	  dishz(2,0,hzcode);
   \   0000008C   0420B0E1           MOVS     R2,R4
   \   00000090   0010A0E3           MOV      R1,#+0
   \   00000094   0200A0E3           MOV      R0,#+2
   \   00000098   ........           BL       dishz
    304          	  delayMs(100);
   \   0000009C   6400A0E3           MOV      R0,#+100
   \   000000A0   ........           BL       delayMs
    305          	  dishz(2,64,hzcode);
   \   000000A4   0420B0E1           MOVS     R2,R4
   \   000000A8   4010A0E3           MOV      R1,#+64
   \   000000AC   0200A0E3           MOV      R0,#+2
   \   000000B0   ........           BL       dishz
    306          	  delayMs(100);
   \   000000B4   6400A0E3           MOV      R0,#+100
   \   000000B8   ........           BL       delayMs

⌨️ 快捷键说明

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