新聞中心

        EEPW首頁 > 專題 > 學51單片機必看!51單片機導論

        學51單片機必看!51單片機導論

        作者: 時間:2016-08-19 來源:網絡 收藏

        一:引腳

        本文引用地址:http://www.104case.com/article/201608/295775.htm

        http://www.21ic.com/d/file/201607/3cfd1d9aaf7ae3f39319e6f084589ac2.jpg

        STC89C52

        全稱單片微型計算機;它內部有存儲器、處理器、輸入輸出接口,具有計算機的屬性。

        STC代表生產公司,8代表80內核,9代表Flash內存,C代表屬于CMOS類,5(表示單片機)固定不變,2的位置可由1-16任意數字代替,代表存儲區大小為4KB的倍數。

        引腳功能:VCC(40)是單片機電源正,GND(20)是電源正;P0P1P2P3是四組輸入輸出口,顯高電阻狀態,對外能發出高電平和低電平;10腳是串行輸入口,11腳是串行接收口;1213腳是外部中斷輸入;1819腳用于外接時鐘;9腳是復位引腳,有兩個機器周期以上的高電平則使單片機復位;其它引腳不要求掌握。

        晶振,11.0592MHz

        晶振全稱為晶體振蕩器,是用電損耗很小的石英晶體經精密切割磨削并鍍上電極、焊上引線做成。這種晶體有一個很重要的特性,如果給它通電,它就會產生機械振蕩,反之,如果給它機械力,它又會產生電,這種特性叫機電效應。在工作時,他們的機電效應是機---..的不斷轉換,因而產生周期性的振蕩。他們有一個很重要的特點,其振蕩頻率與他們的形狀,材料,切割方向等密切相關。利用石英晶體可以產生想要的非常穩定的振蕩。

        注意點:

        1、區分集成電路芯片的引腳。我們觀察單片機的表面(如右圖),有一個凹進去的半圓缺口,它所對應的左邊第一個腳就是這個芯片的腳1。然后按逆時針的方向數下去,依次為2,3,???40(如左圖)

        2、電容、晶振離單片機越近越好,因為晶振的頻率非常高,易受影響。

        3、單片機應該安在鎖緊座上,而不是直接焊在板上。

        4、單片機P0口要接上10kΩ的上拉電阻。

        二:

        電路圖:

        http://www.21ic.com/d/file/201607/3d361aeb173b5f6d32d2ed58d372eb8c.jpg

        燒寫模塊:

        http://www.21ic.com/d/file/201607/9556c4cf4a71e3b4fad50ef366a5b348.jpg

        材料清單:

        1:燒寫電路:

        DB9母座一個 USB串口線一個

        MAX232芯片及芯片座各一個

        104瓷片電容 5 

        2:單片機接觸電路:

        40PDIP 鎖緊座一個

        10K排阻1排針4

        3:時鐘電路:

        11.0592晶振一個

        30pF瓷片電容 2

        4:復位電路:

        10uF點解電容一個

        10K電阻一個

        按鍵一個

        5:便于調試電路

        發光二極管8 1K電阻8

        6:導線焊錫若干,電路板一塊

        7:如果用USB供電,需要D形口及USB方口線一條。(推薦~)

        8:總開關

        自鎖式開關一個,LED一枚 1K電阻1~

        主要元件:

        RS232(DB9)接口:

        RS232接口是一種串行通訊的標準。該標準規定采用一個25個腳的DB25連接器,對連接器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。之后出現了代替DB25DB9接口,現在都把RS232接口叫做DB9DB9如圖

        http://www.21ic.com/d/file/201607/71825c484fd604192d2f518f3c6b8533.jpg

        MAX232

        是美信公司生產的一款專用于電平轉換的芯片。詳見注意點。

        注意點:

        1、電平。通常數據是采用二進制來存儲、傳輸的,可以用電平信號表示邏輯的01,這種表示邏輯01的電平叫邏輯電平。在TTL電平信號系統里,+5V等價于邏輯“1”0V等價于邏輯“0”。當然,實際使用時不可能這么嚴格;一般數據輸出時,高電平>2.4V,低電平<0.4V;輸入時,高電平>2.0V,低電平<0.8V(數據來源網絡)RS232采用負邏輯電平,-15~-3V為邏輯1+15~+3V為邏輯0。用MAX232芯片可完成TTL電平←→RS232所用邏輯電平的雙向電平轉換。

        29針串口(DB9)除了235腳外其余的都不連入電路。不要讓其余腳碰到練習版上高電平或低電平,碰到的話可能會使不穩定。

        3、筆記本電腦沒有DB9接口,因此我們選用USBRS232串口線。建議網購,WIN7系統選用型號HL340XP系統可選HL340PL2303

        4MAX232不要直接焊接在練習板上,應該把芯片座焊在電路板上,注意引腳的序號。

        三:Keil入門

        Keil

        Keil C是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發系統,該軟件包括C器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內,全Windows界面。Keil C51生成的目標代碼效率非常高,多數語句生成的匯編代碼很緊湊,容易理解。本教程講解的Keil版本為V8.02

        Keil的使用:

        一、進入Keil工作界面

        http://www.21ic.com/d/file/201607/135d31cc9f93fc0c157ffd068907135c.jpg

        二、建立工程

        點擊“Project”→“NewProject”。如下圖所示。

        http://www.21ic.com/d/file/201607/be8144e936509afb8a1933be4d0c3b53.jpg

        在彈出的窗口選擇工程要保存的路徑,輸入工程文件名。然后點擊保存按鈕。

        http://www.21ic.com/d/file/201607/1112f75732329826d9b265e3e368607f.jpg

        在彈出的對話框要求選擇單片機的型號,因為51內核單片機具有通用性,所以我們任選一款89C52就行。在這里我們選擇Atmel89C52,然后點擊確定按鈕。

        http://www.21ic.com/d/file/201607/d40d3ef983767b659df88af33173c3db.jpg

        完成上一步后,窗口界面如圖所示。

        http://www.21ic.com/d/file/201607/ab311f4f731f01858289e6680ade2308.jpg

        至此,我們已經建立一個工程,但工程中還沒有任何文件及代碼。

        三、添加文件及代碼

        1、添加代碼到文件

        點擊“File” →“New”或者點擊按鈕來新建文件。

        http://www.21ic.com/d/file/201607/e029e763e641f6785d7f818733ba11c3.jpg

        新建文件后,窗口界面如圖所示。

        http://www.21ic.com/d/file/201607/50fc23c937bf58ed08b41884f0a0f29a.jpg

        點擊“File” →“Save”或者點擊,彈出窗口如圖所示,在文件名處輸入要保存的文件名(例:pmd.c),必須輸入正確的擴展名(如果用C語言編寫程序,則擴展名必須是.c;如果用匯編語言編寫程序,則擴展名必須是 .asm)。這里的文件名不一定和工程名相同,可以隨意填寫文件名,然后單擊保存按鈕。

        http://www.21ic.com/d/file/201607/b384091c3ad5b644ab3063aace55a11c.jpg

        此時這個新建文件格式就變成了C語言源文件,與我們剛剛建的工程還沒有直接聯系。

        比較好的習慣是先將其添加到工程,再編寫代碼

        單擊“Target 1”前面的“+”號,然后右鍵單擊“Source Group 1”,選擇“Add Files to Group ‘SourceGroup 1’”,如圖所示。

        http://www.21ic.com/d/file/201607/2553940695dc40c071e043d6272f012f.jpg

        在彈出對話框中,選中pmd.c,單擊“Add”按鈕,再單擊“Close”按鈕,然后再單擊左側“Source Group 1”前面的“+”號,屏幕窗口如圖所示。

        http://www.21ic.com/d/file/201607/2a9a6afaa216ca2f6a976c772eb15945.jpg

        這時,源代碼文件就與工程關聯起來了。

        然后就可以放心的去編碼了~~

        如果要看昨天上課用P1口實現的

        流水燈代碼,請移步至http://blog.csdn.net/metalseed/article/details/8196727

        編碼完成后。

        四、、連接

        點擊“Project”→“Rebuild all target files”或者點擊http://www.21ic.com/d/file/201607/1db82eca5b40a4eeef3594f80c34636c.jpg信息輸出窗口中顯示了過程和編譯結果,如圖所示。

        http://www.21ic.com/d/file/201607/a64900c9d022b5b215ad802ad6fc08f1.jpg

        如果源代碼中有語法錯誤,會有錯誤報告出現,雙擊該行,可以定位到出錯的位置,對源程序反復修改之后,最終會得到“”pmd”- 0 Error(s),0 Warning(s).”的結果。

        五、生成HEX文件

        單擊“Project” →“Options for Target ‘Target 1’”或者單擊,彈出窗口,選擇“Output”,然后選中“Create HEX File”,使程序編譯后產生HEX代碼,供下載器下載到單片機中。

        http://www.21ic.com/d/file/201607/53a536a11ee71797daa8c025ba7aa14e.jpg

        再次單擊http://www.21ic.com/d/file/201607/1d776c8f84ff5661818611790cc1ccd5.jpg,編譯工程,編譯過程和編譯結果如圖所示。

        http://www.21ic.com/d/file/201607/49e04157207634e517f5872f273a193b.jpg

         

        我們發現編譯過程多出一行“creating hex file from“pmd”…”。當創建并編譯一個工程時,生成的HEX文件名與工程名是相同的。

        現在,我們就可以把HEX文件燒到單片機內使用了。

        四、用STC-ISP燒錄

        這個程序用于將二進制程序(hex文件,詳見KEIL軟件的使用)燒錄到STC單片機中。具體的步驟,該軟件標明了操作步驟,一看便知。

        1:選擇單片機類型(我們用的是STC89C52RC)

        2:選擇hex文件(Keil生成的那個)

        3:選擇COM口。選擇COM口時,可以查看設備管理器,如圖。要改端口號,雙擊劃線的項、選擇端口設置選項卡、單擊高級、選擇COM端口號下拉菜單中的項。(如果是無法識別,則需要安裝串口線的驅動,百度或者問賣家要)

        http://www.21ic.com/d/file/201607/a552fcfc4efff1dcedeb028ae157dabc.jpg

        步驟4可以跳過。

        5:點Download然后重新啟動單片機(握手連接)

        http://www.21ic.com/d/file/201607/126d76319f5d855ce7e2e321d47a0381.png

        也可嚴格按照軟件界面上的說明步驟來搞~

        燒錄程序時,要在單片機電源未開的狀態下點擊步驟5里的“Download/下載,然后再給單片機上電(因為此處我們用的STC89c51/STC89c52不支持在線可編程ISP)。點了“Download/下載之后,若USBRS232串口線沒問題,則步驟三的串口指示燈應該亮。當燒錄不成功時,要檢查硬件電路的焊接,當檢查好幾遍沒有問題時,我們才可以開始懷疑芯片、單片機的質量問題。

         



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 启东市| 汝南县| 新闻| 绥化市| 哈密市| 韶山市| 乌兰县| 高密市| 西安市| 梅河口市| 宁南县| 依兰县| 双峰县| 阿瓦提县| 翼城县| 延寿县| 颍上县| 麻城市| 祁东县| 平果县| 汉源县| 修水县| 左权县| 洪雅县| 乾安县| 喀什市| 平潭县| 襄樊市| 宁武县| 鄯善县| 尼玛县| 义马市| 宁河县| 舞钢市| 文安县| 阳江市| 土默特左旗| 海原县| 巴林左旗| 监利县| 成武县|