參考資料:
https://www.jianshu.com/p/88dfc09e7403
https://blog.csdn.net/feit2417/article/details/80890218
零、前言
我一直認為看資料還不如先動手試試,在“做”的過程中“學”,先打下基礎、建立興趣,再戒驕戒躁好好看看書,搞明白一些常識。但是網上的教程往往都比較片面,要么給幾張圖、幾段代碼就算完事了,環境如何安裝、細節小問題是怎么回事都講的不是很詳細,所以這篇文章就是要把每一步都講的詳細了,真正0基礎也能看得懂、學的會,不用再去搜其他資料,真的手把手也就這個效果了。
一、准備
1 硬件:需要有一台電腦,筆記本、台式機都行
2 環境:請使用官方原版(不要用ghost、精簡系統)的XP或WIN7,很多莫名其妙的問題都是缺少一些dll文件,所以一定要用官方原版的系統,若不想重裝電腦可以使用VMware安裝虛擬機。另外盡量使用32位的系統,畢竟這些軟件都比較老了
3 軟件:
1)Proteus 8.4 SP0
下載地址:http://www.ddooo.com/softdown/26979.htm 注意看破解方法,其中針對WIN7 X64有部分有誤的地方:
1)第七步:正確路徑可能是“C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional”,將破解包中的BIN目錄覆蓋到這里即可
2)第八步:正確路徑可能是“C:\ProgramData\Labcenter Electronics\Proteus 8 Professional”,將破解包中的MODELS目錄覆蓋到這里即可
(不要修改默認安裝位置,找不到正確路徑的話可以搜索下“Proteus 8 Professional”這個關鍵詞)
2)Proteus 8.4 漢化包
下載地址:本文末尾處
3)Keil 5
下載地址:http://www.ddooo.com/softdown/79273.htm 需要注意的是:
1)使用注冊機生成注冊碼時,因為現在Keil 5是針對ARM的所以在注冊機的Target欄需選擇為ARM而不是C51
4)Keil 5 C51依賴包
下載地址:https://share.weiyun.com/5WSwsJv(密碼:0000)
(Keil 5是默認不支持51單片機的,但是可以通過依賴包實現,安裝和使用方法:https://blog.csdn.net/feit2417/article/details/80890218)
4 安裝:按下載頁面的方法安裝好,如果安裝過程中有什么問題,一定要注意你操作系統的版本,以及是否是原生系統
二、在proteus繪制硬件電路
這里我們只實現最簡單的功能:點亮一個LED燈
1、打開proteus,點擊首頁的“新建工程”新建一個項目
2、在新建工程向導里依次操作如下:
1)輸入項目名稱、選擇項目存儲位置
2)原理圖:DEFAULT
3)PCB布板設計:不創建
4)固件:沒有固件的項目
5)點擊“完成”按鈕完成新項目的創建
3、在電路圖中放置我們需要的三個器件:51單片機、LED燈、電源並連線
1)51單片機
在界面中點擊“P”(P和L代表的是元件模式)
在元器件選擇窗口中輸入51單片機的型號進行搜索,關鍵字“C52”(51單片機的常用型號是AT89C52)。
選擇需要的型號后點擊右下角的“確認”按鈕,然后將其放置到電路圖中即可
2)LED
重復前面的操作,關鍵字改為“LED”即可,這里選擇的是“LED-YELLOW”,將LED放到單片機旁邊
3)電源
電源在界面左側選擇“終端模式”,然后找到POWER這個元件即是電源。將電源也拖到單片機旁邊
4)連接電路
使用鼠標將LED一端與電源連接,另一端連接單片機的P0.1,要注意LED的方向不要接反了。
三、Keil編寫控制代碼
1、啟動Keil
2、新建項目
1)點擊“Project->New μVersion Project”
2)輸入項目名稱
3)在新窗口中Search關鍵字“C51”,找到Atmel下的AT89C51,點擊OK按鈕完成項目創建
3、添加代碼文件
1)右鍵“Source Group 1”
2)點擊下圖中畫紅線的地方
3)新彈出的窗口中選擇C File,Name欄輸入“main”
4)在main.c中輸入下述代碼,然后保存(畫紅圈的地方)
4、生成HEX文件(單片機運行使用的文件格式)
1)右鍵左側的Target按鈕,選擇Opention for Target 'Target 1'
2)新彈出的窗口中選擇Output選項卡,把“Creat HEX File”勾上,點擊OK按鈕即可(這一步是設置程序編譯時要輸出HEX文件)
3)點擊下圖畫紅線的按鈕,編譯程序,注意下側“Build Output”欄是否有提示錯誤,輸出 0 Error即是OK了
4)找到生成的HEX文件備用(在項目目錄下的Objects目錄內)
四、Proteus仿真運行
1、導入HEX文件
1)再次打開Proteus,右鍵單片機,點擊“編輯屬性”按鈕
2)新窗口中點擊“Program File”會彈出尋找HEX文件的小窗口,找到前面生成的HEX文件
2、點擊Proteus左下角的啟動按鈕,開始仿真
3、運行結果:LED燈被點亮啦!
五、思考
1、為什么代碼中LED=0,電源要加在LED的一側
實際上,代碼中LED=1,電路中LED旋轉180度,LED一側接地而不是電源也可以將LED點亮。但一般不這么做,因為單片機啟動時會進行初始化,初始化過程中各引腳會出現瞬間的通電、斷電,如果LED一側不接電源而接地,單片機初始化時會導致LED閃爍。
2、代碼中引用的reg52.h是什么文件
C語言中.h是頭文件,reg52.h是51單片機的通用頭文件,里面是單片機的寄存器聲明
六、相關資料
看完本文你就已經學會了如何使用Proteus+Keil進行51單片機的開發啦!不過這只是最最基礎的內容,后面進階的學習還需要你多多動手,不過毛大閑已經為你准備了后續學習的必備資料。
關注公眾號“零基礎愛學習”回復“51”可獲得下面的資料
1、本文所述的Proteus8安裝包、Proteus8漢化包、Keil5安裝包、Keil5 C51支持包
2、上述軟件安裝方法的PDF文檔
3、Proteus8中文使用手冊
4、AT89C52中文說明書
5、51單片機入門實例(仿真電路圖+C代碼)
后續還會繼續補充更多學習資料,敬請關注“零基礎愛學習”!