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