欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4500|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

怪事了,同一個C文件,為何編譯出來的HEX文件不同?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:290381 發(fā)表于 2018-3-11 14:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
首先我看了教學(xué)視頻后,估計打算不看源程序就自己編寫一下先
  1. #include <reg52.h>

  2. void main()
  3. {
  4.         P0 = ~0x3f;
  5.         while(1);
  6. }
復(fù)制代碼
結(jié)果LED 不亮。

對比一下光盤里的源程序,覺得功能實現(xiàn)上沒多大區(qū)別啊。

然后copy源程序來編譯,就得出下面兩種結(jié)果。
/**************************************************************************************
*                              靜態(tài)數(shù)碼管顯示實驗                                                                                                  *
實現(xiàn)現(xiàn)象:下載程序后數(shù)碼管靜態(tài)顯示0。
注意事項:                                                                                                                                                                  
***************************************************************************************/

#include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器

typedef unsigned int u16;          //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;


u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值


/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
*******************************************************************************/
void main()
{        
        P0=~smgduan[0];
        while(1);
}
HEX 文件1:把源程序copy到我的工程文件里編譯,LED不亮。
  1. :01000F0022CE
  2. :03000000020003F8
  3. :0C000300787FE4F6D8FD75810702000F3D
  4. :00000001FF
復(fù)制代碼
HEX 文件2: 打開光盤的工程文件編譯。LED 亮。 這是光盤里源程序編譯出來的HEX文件
  1. :100003003F065B4F666D7D077F6F777C395E797145
  2. :0100130000EC
  3. :0A002000900003E493F4F58080FEE5
  4. :03000000020014E7
  5. :0C001400787FE4F6D8FD7581070200201B
  6. :00000001FF
復(fù)制代碼


這是何故?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:290381 發(fā)表于 2018-3-11 15:00 | 只看該作者
另附上兩個M51文件。
HEX 1 的M51文件
  1. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                    03/11/2018  01:12:24  PAGE 1


  2. BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
  3. C:\KEIL51\C51\BIN\BL51.EXE main.obj TO template


  4. MEMORY MODEL: SMALL


  5. INPUT MODULES INCLUDED:
  6.   main.obj (MAIN)
  7.   C:\KEIL51\C51\LIB\C51S.LIB (?C_STARTUP)


  8. LINK MAP OF MODULE:  template (MAIN)


  9.             TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
  10.             -----------------------------------------------------

  11.             * * * * * * *   D A T A   M E M O R Y   * * * * * * *
  12.             REG     0000H     0008H     ABSOLUTE     "REG BANK 0"
  13.             IDATA   0008H     0001H     UNIT         ?STACK

  14.             * * * * * * *   C O D E   M E M O R Y   * * * * * * *
  15.             CODE    0000H     0003H     ABSOLUTE     
  16.             CODE    0003H     000CH     UNIT         ?C_C51STARTUP
  17.             CODE    000FH     0001H     UNIT         ?PR?MAIN?MAIN



  18. OVERLAY MAP OF MODULE:   template (MAIN)


  19. SEGMENT
  20.   +--> CALLED SEGMENT
  21. ---------------------
  22. ?C_C51STARTUP
  23.   +--> ?PR?MAIN?MAIN



  24. SYMBOL TABLE OF MODULE:  template (MAIN)

  25.   VALUE           TYPE          NAME
  26.   ----------------------------------

  27.   -------         MODULE        MAIN
  28.   C:0000H         SYMBOL        _ICE_DUMMY_
  29.   D:0090H         PUBLIC        P1
  30.   D:00B0H         PUBLIC        P3
  31.   D:00A8H         PUBLIC        IE
  32.   D:00B8H         PUBLIC        IP
  33.   C:000FH         PUBLIC        main
  34.   D:0098H         PUBLIC        SCON
  35.   D:0088H         PUBLIC        TCON
  36.   D:00C8H         PUBLIC        T2CON
  37.   D:00D0H         PUBLIC        PSW
  38.   -------         PROC          MAIN
  39.   C:000FH         LINE#         3
  40. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                  03/11/2018  01:12:24  PAGE 2


  41.   C:000FH         LINE#         4
  42.   C:000FH         LINE#         6
  43.   -------         ENDPROC       MAIN
  44.   -------         ENDMOD        MAIN

  45. Program Size: data=9.0 xdata=0 code=16
  46. LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
復(fù)制代碼

HEX2 的M51文件
  1. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                    03/11/2018  14:48:52  PAGE 1


  2. BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
  3. C:\KEIL51\C51\BIN\BL51.EXE main.obj TO template


  4. MEMORY MODEL: SMALL


  5. INPUT MODULES INCLUDED:
  6.   main.obj (MAIN)
  7.   C:\KEIL51\C51\LIB\C51S.LIB (?C_STARTUP)


  8. LINK MAP OF MODULE:  template (MAIN)


  9.             TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
  10.             -----------------------------------------------------

  11.             * * * * * * *   D A T A   M E M O R Y   * * * * * * *
  12.             REG     0000H     0008H     ABSOLUTE     "REG BANK 0"
  13.             IDATA   0008H     0001H     UNIT         ?STACK

  14.             * * * * * * *   C O D E   M E M O R Y   * * * * * * *
  15.             CODE    0000H     0003H     ABSOLUTE     
  16.             CODE    0003H     0011H     UNIT         ?CO?MAIN
  17.             CODE    0014H     000CH     UNIT         ?C_C51STARTUP
  18.             CODE    0020H     000AH     UNIT         ?PR?MAIN?MAIN



  19. OVERLAY MAP OF MODULE:   template (MAIN)


  20. SEGMENT
  21.   +--> CALLED SEGMENT
  22. ---------------------
  23. ?C_C51STARTUP
  24.   +--> ?PR?MAIN?MAIN

  25. ?PR?MAIN?MAIN
  26.   +--> ?CO?MAIN



  27. SYMBOL TABLE OF MODULE:  template (MAIN)

  28.   VALUE           TYPE          NAME
  29.   ----------------------------------

  30.   -------         MODULE        MAIN
  31.   C:0000H         SYMBOL        _ICE_DUMMY_
  32.   D:0080H         PUBLIC        P0
  33.   D:0090H         PUBLIC        P1
  34.   D:00B0H         PUBLIC        P3
  35.   D:00A8H         PUBLIC        IE
  36.   D:00B8H         PUBLIC        IP
  37.   C:0020H         PUBLIC        main
  38.   D:0098H         PUBLIC        SCON
  39. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                  03/11/2018  14:48:52  PAGE 2


  40.   D:0088H         PUBLIC        TCON
  41.   D:00C8H         PUBLIC        T2CON
  42.   C:0003H         PUBLIC        smgduan
  43.   D:00D0H         PUBLIC        PSW
  44.   -------         PROC          MAIN
  45.   C:0020H         LINE#         23
  46.   C:0020H         LINE#         24
  47.   C:0020H         LINE#         25
  48.   C:0028H         LINE#         26
  49.   -------         ENDPROC       MAIN
  50.   -------         ENDMOD        MAIN

  51. Program Size: data=9.0 xdata=0 code=42
  52. LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
復(fù)制代碼

抓狂了。
回復(fù)

使用道具 舉報

板凳
ID:290381 發(fā)表于 2018-3-11 15:02 | 只看該作者
HEX1 的M51 文件
  1. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                    03/11/2018  01:12:24  PAGE 1


  2. BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
  3. C:\KEIL51\C51\BIN\BL51.EXE main.obj TO template


  4. MEMORY MODEL: SMALL


  5. INPUT MODULES INCLUDED:
  6.   main.obj (MAIN)
  7.   C:\KEIL51\C51\LIB\C51S.LIB (?C_STARTUP)


  8. LINK MAP OF MODULE:  template (MAIN)


  9.             TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
  10.             -----------------------------------------------------

  11.             * * * * * * *   D A T A   M E M O R Y   * * * * * * *
  12.             REG     0000H     0008H     ABSOLUTE     "REG BANK 0"
  13.             IDATA   0008H     0001H     UNIT         ?STACK

  14.             * * * * * * *   C O D E   M E M O R Y   * * * * * * *
  15.             CODE    0000H     0003H     ABSOLUTE     
  16.             CODE    0003H     000CH     UNIT         ?C_C51STARTUP
  17.             CODE    000FH     0001H     UNIT         ?PR?MAIN?MAIN



  18. OVERLAY MAP OF MODULE:   template (MAIN)


  19. SEGMENT
  20.   +--> CALLED SEGMENT
  21. ---------------------
  22. ?C_C51STARTUP
  23.   +--> ?PR?MAIN?MAIN



  24. SYMBOL TABLE OF MODULE:  template (MAIN)

  25.   VALUE           TYPE          NAME
  26.   ----------------------------------

  27.   -------         MODULE        MAIN
  28.   C:0000H         SYMBOL        _ICE_DUMMY_
  29.   D:0090H         PUBLIC        P1
  30.   D:00B0H         PUBLIC        P3
  31.   D:00A8H         PUBLIC        IE
  32.   D:00B8H         PUBLIC        IP
  33.   C:000FH         PUBLIC        main
  34.   D:0098H         PUBLIC        SCON
  35.   D:0088H         PUBLIC        TCON
  36.   D:00C8H         PUBLIC        T2CON
  37.   D:00D0H         PUBLIC        PSW
  38.   -------         PROC          MAIN
  39.   C:000FH         LINE#         3
  40. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                  03/11/2018  01:12:24  PAGE 2


  41.   C:000FH         LINE#         4
  42.   C:000FH         LINE#         6
  43.   -------         ENDPROC       MAIN
  44.   -------         ENDMOD        MAIN

  45. Program Size: data=9.0 xdata=0 code=16
  46. LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
復(fù)制代碼

HEX2 的M51文件
  1. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                    03/11/2018  14:48:52  PAGE 1


  2. BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
  3. C:\KEIL51\C51\BIN\BL51.EXE main.obj TO template


  4. MEMORY MODEL: SMALL


  5. INPUT MODULES INCLUDED:
  6.   main.obj (MAIN)
  7.   C:\KEIL51\C51\LIB\C51S.LIB (?C_STARTUP)


  8. LINK MAP OF MODULE:  template (MAIN)


  9.             TYPE    BASE      LENGTH    RELOCATION   SEGMENT NAME
  10.             -----------------------------------------------------

  11.             * * * * * * *   D A T A   M E M O R Y   * * * * * * *
  12.             REG     0000H     0008H     ABSOLUTE     "REG BANK 0"
  13.             IDATA   0008H     0001H     UNIT         ?STACK

  14.             * * * * * * *   C O D E   M E M O R Y   * * * * * * *
  15.             CODE    0000H     0003H     ABSOLUTE     
  16.             CODE    0003H     0011H     UNIT         ?CO?MAIN
  17.             CODE    0014H     000CH     UNIT         ?C_C51STARTUP
  18.             CODE    0020H     000AH     UNIT         ?PR?MAIN?MAIN



  19. OVERLAY MAP OF MODULE:   template (MAIN)


  20. SEGMENT
  21.   +--> CALLED SEGMENT
  22. ---------------------
  23. ?C_C51STARTUP
  24.   +--> ?PR?MAIN?MAIN

  25. ?PR?MAIN?MAIN
  26.   +--> ?CO?MAIN



  27. SYMBOL TABLE OF MODULE:  template (MAIN)

  28.   VALUE           TYPE          NAME
  29.   ----------------------------------

  30.   -------         MODULE        MAIN
  31.   C:0000H         SYMBOL        _ICE_DUMMY_
  32.   D:0080H         PUBLIC        P0
  33.   D:0090H         PUBLIC        P1
  34.   D:00B0H         PUBLIC        P3
  35.   D:00A8H         PUBLIC        IE
  36.   D:00B8H         PUBLIC        IP
  37.   C:0020H         PUBLIC        main
  38.   D:0098H         PUBLIC        SCON
  39. BL51 BANKED LINKER/LOCATER V6.22.2.0                                                  03/11/2018  14:48:52  PAGE 2


  40.   D:0088H         PUBLIC        TCON
  41.   D:00C8H         PUBLIC        T2CON
  42.   C:0003H         PUBLIC        smgduan
  43.   D:00D0H         PUBLIC        PSW
  44.   -------         PROC          MAIN
  45.   C:0020H         LINE#         23
  46.   C:0020H         LINE#         24
  47.   C:0020H         LINE#         25
  48.   C:0028H         LINE#         26
  49.   -------         ENDPROC       MAIN
  50.   -------         ENDMOD        MAIN

  51. Program Size: data=9.0 xdata=0 code=42
  52. LINK/LOCATE RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
復(fù)制代碼



回復(fù)

使用道具 舉報

地板
ID:130231 發(fā)表于 2018-3-11 15:17 | 只看該作者
你確定編譯時芯片有沒有選對?
回復(fù)

使用道具 舉報

5#
ID:290381 發(fā)表于 2018-3-11 15:45 | 只看該作者
搞定了,原來是選了不同的芯片,所以出現(xiàn)不同的編譯結(jié)果。
回復(fù)

使用道具 舉報

6#
ID:290381 發(fā)表于 2018-3-11 18:51 | 只看該作者
zqy181818 發(fā)表于 2018-3-11 15:17
你確定編譯時芯片有沒有選對?

謝謝。

我發(fā)現(xiàn)其實我芯片是選對的。在KEIL 4 設(shè)置的芯片是amtel 的at89c51,編譯出來的程序能把led點亮
后來我再裝了KEIL 5的最新版本,但這個版本沒有amtel 的at89c51可選,只好選了microchip的at89c51,結(jié)果編譯出來的結(jié)果就不能點亮LED了。

另我用的是普中科技的8600 V2.2 開發(fā)板。
奇怪
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表