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

📄 flash.lst

📁 楼宇对讲系统里用的文字信息接收。用可视对讲话机的TFT屏可看到从管理中心发过来的广播信息和本户的特发信息
💻 LST
📖 第 1 页 / 共 4 页
字号:
 222   1      }
 223          
 224          
 225          /*******************************************************/
 226          /*******************************************************/
 227          void Write_flash_hd(void)
 228          {
 229   1         if(write_F == 1)
 230   1         {
 231   2            if(write_delay_time != 0)
 232   2                   write_delay_time--;
 233   2      
 234   2                if(write_delay_time == 0)
 235   2                    write_F = 0;
 236   2         }
 237   1      }
 238          
 239          /*******************************************************/
 240          /* 此函数用于测试硬件线路所用,向特定的RAM和FLASH中写入*/
 241          /* 特定的数据,然后读出,就可据此判别硬件线路是否正常  */
C51 COMPILER V7.06   FLASH                                                                 06/10/2005 13:26:30 PAGE 5   

 242          /*******************************************************/
 243          /*
 244          unsigned char  Test_hardware(void)
 245          {
 246              unsigned char hard_status = 0;
 247              unsigned char test_step = 0;
 248                  while(test_step<3)
 249                  {
 250                      switch(test_step)
 251                      {
 252                         case 0:                     //测试RAM硬件线路
 253                            test_ram_adr1 = 0x00;
 254                                test_ram_adr2 = 0x55;
 255                                test_ram_adr3 = 0xaa;
 256          
 257                                if((test_ram_adr1 == 0x00)&&(test_ram_adr2 == 0x55)
 258                                            &&(test_ram_adr3 == 0xaa))
 259                  
 260                                 test_step++;  //如果RAM硬件没问题,再测试FLASH硬件线路
 261          
 262                                else                      //RAM硬件有问题,
 263                                        {
 264                                hard_status = 1;
 265                                                test_step = 3;
 266                                        }
 267                                    break;
 268                          case 1:                  // 先测试FLASH的首64K的硬件线路
 269                                 Page_switch(PAGE_0); 
 270                                             special_addr1 = 0xaa;
 271                             special_addr2 = 0x55;
 272                             special_addr1 = 0xa0;
 273                                 test_flash_adr1 = 0x00;
 274                                 Delay_10ms();
 275                                             special_addr1 = 0xaa;
 276                             special_addr2 = 0x55;
 277                             special_addr1 = 0xa0;
 278                                 test_flash_adr2 = 0x55;
 279                                 Delay_10ms();
 280                                                special_addr1 = 0xaa;
 281                             special_addr2 = 0x55;
 282                             special_addr1 = 0xa0;
 283                                 test_flash_adr3 = 0xaa;
 284                                 Delay_10ms();
 285          
 286                                 if((test_flash_adr1 == 0x00)&&(test_flash_adr2 == 0x55)
 287                                            &&(test_flash_adr3 == 0xaa))   //FLASH 硬件没问题
 288                                test_step++;
 289                                         else
 290                                         {
 291                                               hard_status = 2;
 292                                   test_step = 3;
 293                                             }
 294                                         break;
 295                              case 2:
 296                                     Page_switch(PAGE_1);   // 测试FLASH的次64K的硬件线路
 297                                              special_addr1 = 0xaa;
 298                             special_addr2 = 0x55;
 299                             special_addr1 = 0xa0;
 300                                         test_flash_adr1 = 0x00;
 301                                 Delay_10ms();
 302                                                special_addr1 = 0xaa;
 303                             special_addr2 = 0x55;
C51 COMPILER V7.06   FLASH                                                                 06/10/2005 13:26:30 PAGE 6   

 304                             special_addr1 = 0xa0;
 305                                 test_flash_adr2 = 0x55;
 306                                 Delay_10ms();
 307                                                special_addr1 = 0xaa;
 308                            special_addr2 = 0x55;
 309                            special_addr1 = 0xa0;
 310                                 test_flash_adr3 = 0xaa;
 311                                 Delay_10ms();
 312          
 313                                 if((test_flash_adr1 == 0x00)&&(test_flash_adr2 == 0x55)
 314                                            &&(test_flash_adr3 == 0xaa))
 315                                test_step++;
 316                                         else
 317                                         {
 318                                                hard_status = 3;
 319                                    test_step++;
 320                                             }
 321                                             Page_switch(PAGE_0);    //切换回正常状态
 322                                         break;
 323                               default:
 324                                           test_step = 3;
 325                                      break;
 326                       }
 327                  }
 328                  Page_switch(PAGE_0);
 329              return(hard_status);
 330          }*/
C51 COMPILER V7.06   FLASH                                                                 06/10/2005 13:26:30 PAGE 7   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _Write_sector (BEGIN)
                                           ; SOURCE LINE # 48
0000 8C00        R     MOV     s_adr,R4
0002 8D00        R     MOV     s_adr+01H,R5
;---- Variable 'dst_adr' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 49
                                           ; SOURCE LINE # 52
0004 900000      E     MOV     DPTR,#special_addr1
0007 74AA              MOV     A,#0AAH
0009 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 53
000A 900000      E     MOV     DPTR,#special_addr2
000D 7455              MOV     A,#055H
000F F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 54
0010 900000      E     MOV     DPTR,#special_addr1
0013 74A0              MOV     A,#0A0H
0015 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 58
0016 E4                CLR     A
0017 F500        R     MOV     i,A
0019 F500        R     MOV     i+01H,A
001B         ?C0001:
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
001B E500        R     MOV     A,s_adr+01H
001D 2500        R     ADD     A,i+01H
001F F582              MOV     DPL,A
0021 E500        R     MOV     A,s_adr
0023 3500        R     ADDC    A,i
0025 F583              MOV     DPH,A
0027 E0                MOVX    A,@DPTR
0028 FD                MOV     R5,A
0029 EF                MOV     A,R7
002A 2500        R     ADD     A,i+01H
002C F582              MOV     DPL,A
002E EE                MOV     A,R6
002F 3500        R     ADDC    A,i
0031 F583              MOV     DPH,A
0033 ED                MOV     A,R5
0034 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 61
0035 0500        R     INC     i+01H
0037 E500        R     MOV     A,i+01H
0039 7002              JNZ     ?C0040
003B 0500        R     INC     i
003D         ?C0040:
003D B400DB            CJNE    A,#00H,?C0001
0040 E500        R     MOV     A,i
0042 B401D6            CJNE    A,#01H,?C0001
                                           ; SOURCE LINE # 64
0045         ?C0004:
0045 22                RET     
             ; FUNCTION _Write_sector (END)

             ; FUNCTION Code_init (BEGIN)
                                           ; SOURCE LINE # 69
                                           ; SOURCE LINE # 70
                                           ; SOURCE LINE # 71
C51 COMPILER V7.06   FLASH                                                                 06/10/2005 13:26:30 PAGE 8   

0000 900000      E     MOV     DPTR,#init_code_b
0003 E0                MOVX    A,@DPTR
0004 900000      E     MOV     DPTR,#init_code
0007 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 72
0008 900000      E     MOV     DPTR,#init_code_b+01H
000B E0                MOVX    A,@DPTR
000C 900000      E     MOV     DPTR,#init_code+01H
000F F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 73
0010 900000      E     MOV     DPTR,#init_code_b+02H
0013 E0                MOVX    A,@DPTR
0014 900000      E     MOV     DPTR,#init_code+02H
0017 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 74
0018 22                RET     
             ; FUNCTION Code_init (END)

             ; FUNCTION Mes_init (BEGIN)
                                           ; SOURCE LINE # 77
                                           ; SOURCE LINE # 78
                                           ; SOURCE LINE # 80
0000 E4                CLR     A
0001 FF                MOV     R7,A
0002 120000      E     LCALL   _Page_switch
                                           ; SOURCE LINE # 82
0005 120000      R     LCALL   Code_init
                                           ; SOURCE LINE # 83
0008 900000      E     MOV     DPTR,#init_code
000B E0                MOVX    A,@DPTR
000C B4A50D            CJNE    A,#0A5H,?C0006
000F A3                INC     DPTR
0010 E0                MOVX    A,@DPTR
0011 B45A08            CJNE    A,#05AH,?C0006
0014 A3                INC     DPTR
0015 E0                MOVX    A,@DPTR
0016 B4AA03            CJNE    A,#0AAH,?C0006
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
0019 020000      R     LJMP    Copy_mem
                                           ; SOURCE LINE # 86
001C         ?C0006:
                                           ; SOURCE LINE # 88
                                           ; SOURCE LINE # 90
001C 120000      E     LCALL   Mes_tcb_init
                                           ; SOURCE LINE # 91
001F 900000      E     MOV     DPTR,#init_code
0022 74A5              MOV     A,#0A5H
0024 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 92
0025 A3                INC     DPTR
0026 745A              MOV     A,#05AH
0028 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 93
0029 A3                INC     DPTR
002A 74AA              MOV     A,#0AAH
002C F0                MOVX    @DPTR,A

⌨️ 快捷键说明

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