久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4507|回復: 5
打印 上一主題 下一主題
收起左側

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

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

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

對比一下光盤里的源程序,覺得功能實現上沒多大區別啊。

然后copy源程序來編譯,就得出下面兩種結果。
/**************************************************************************************
*                              靜態數碼管顯示實驗                                                                                                  *
實現現象:下載程序后數碼管靜態顯示0。
注意事項:                                                                                                                                                                  
***************************************************************************************/

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

typedef unsigned int u16;          //對數據類型進行聲明定義
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的值


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


這是何故?

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

使用道具 舉報

沙發
ID:290381 發表于 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)
復制代碼

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)
復制代碼

抓狂了。
回復

使用道具 舉報

板凳
ID:290381 發表于 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)
復制代碼

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)
復制代碼



回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

謝謝。

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

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清视频在线观看播放 | 亚洲一区在线免费观看 | 懂色av蜜桃av | 狠狠爱综合 | 成人国产精品 | 国产精品自产拍在线观看蜜 | 99热热99| 国产精品美女久久久久aⅴ国产馆 | 久在线视频 | 日韩一区二区在线视频 | 日韩在线免费视频 | 亚洲一级视频在线 | 欧美一区二区三区 | 艹逼网| 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 欧美成人免费在线视频 | 99riav国产一区二区三区 | 亚洲在线一区二区 | 国产精品视频网 | 亚洲成av | 亚洲成人免费av | 国产精品欧美一区二区 | 成人亚洲综合 | 国产欧美一区二区三区久久手机版 | 久久91精品久久久久久9鸭 | 午夜视频在线观看网站 | 国产精品精品视频一区二区三区 | 超碰美女在线 | 特黄毛片视频 | 一级高清视频 | 日韩久草 | 国产最好的av国产大片 | 国产欧美日韩精品一区二区三区 | 久久国产一区二区三区 | 亚洲一区二区在线播放 | 国产不卡视频在线 | 亚洲精品一区二区在线 | 性做久久久久久免费观看欧美 | 视频一区二区在线 | 久久久久久国模大尺度人体 | av在线黄|