1、首先在電腦上用proteus軟體打開目標文件。然後用滑鼠左鍵雙擊51單片機圖標,如圖所示。然後在出現的窗口中,點擊下圖中的文件夾圖標。然後在電腦文件夾中找到編譯好的HEX文件導入。
2、keil里編譯時,設置輸出文件為.HEX文件格式。然後在proteus中打開CPU屬性,在程序設定欄填入HEX文件路徑及名稱(也可以通過後面的瀏覽按鈕找到該文件,選中即可)。然後運行即可。
3、proteus里,雙擊單片機,跳出一對話框,點擊programFile邊上的文件夾按鈕,找到你的那個HEX文件,就可以載入。
4、先在keil中把程序編好,在PROTEUS中雙擊單片機,之後出現這個頁面在對話框中找到你keil編寫的程序的文件即可。
5、,用keil生成.hex文件,在isis中右擊at89c51,再左擊,出現相應元件的屬性對話框「ProgramFile」一項中選擇要加入的.hex文件。
6、工具/原料windowsXPPROTEUS生成的HEX文件方法/步驟PROTEUS安裝好後,默認不會在桌面上產生快捷方式。
2. 51單片機出編譯出錯,錯在哪裡
用 ^ 定義位是不能用define的需要改成sbit
直接用define就相當於P3^(5=0);常量不能給常量賦值,所以就會報錯
#define LCM_RS P3^5
#define LCM_E P3^4
改成
sbit LCM_RS= P3^5;
sbit LCM_E = P3^4;
sbit LCM_RW = P3^1;
即可
3. 單片機程序經過匯編後生成什麼文件,用它來存放什麼
單片機程序經過編譯後生成HEX代碼文件,不是匯編後,這個HEX代碼文件就是單片機可以執行的機器碼。
如下圖所示的HEX文件就是,給單片機燒錄程序時,就是要打開這種HEX代碼文件的,做模擬時也是給單片機載入這個HEX文件。
4. 主流C51單片機編譯器比對
int short 的大小是因機器而異嘛(准確點應該是編譯器)。你都說了人家規定的是「最小」為16位,又不是只能是16位,也沒有說兩者應該相等(事實上是short不超過int就OK啦)。所以當然可以short類型為半個機器字長,而int類型則為一個機器字長的啦。
「C++標准規定了每個算術類型的最小存儲空間,但他並不自知編譯器使用更大的存儲空間 」
說簡單點就是C++規定了個最小的值,但是將你的代碼編譯成機器碼的編譯器則確定了你這個長度值為多少。因為C++是一種語言,一個規范,或者說只是一種規定,然後要將你按這種規范寫的代碼編譯成能在機器上運行的代碼的是編譯器。而在不同的機器上運行的程序的實際結構是不一樣的,比如單片機與PC相差就很大。要將按相同規范寫的程序在各種各樣亂七八糟的機器上運行,就需要相應的編譯器了。所以實際的大小是由你編譯代碼的編譯器確定的。
PS:當然當前一般的PC上int都是32位,short16位的。因為現在32位的機子是主流嘛。如果你不寫什麼單片機的程序可以不用太在意這個問題。但是寫單片機程序時就要注意了,因為一般一個單片機的編譯器可以編譯很多種型號晶元的代碼,而這些型號有可能從8位到32位都有……
5. 單片機模擬器跟編譯器有什麼區別
單片機模擬器是指以調試單片機軟體為目的而專門設計製作的一套專用的硬體裝置;是可以通過軟體直接修改其程序的。
編譯器就是將「高級語言」翻譯為「機器語言(低級語言)」的程序。它只能對程序進行處理,不能實現程序的功能。