單片機學習之二:單片機軟體使用簡明教程

2021-01-08 電子產品世界

  在我們開始單片機學習之前,我們有必要先來介紹一下單片機編程開發環境。我們現在常用的2種編程開發環境是:偉福WAVE和KEIL C軟體。我們這裡以大家最常用的KEIL C軟體為例,簡單介紹一下編程環境。

本文引用地址:http://www.eepw.com.cn/article/201609/296956.htm

  Keil uVision2 的使用:

  Keil uVision2是目前使用廣泛的單片機開發軟體,它集成了源程序編輯和程序調試於一體,支持彙編、C、PL/M語言。這裡我們僅僅介紹 Keil uVision2 的簡單使用。

  Keil C51 v6.12 的安裝:先運行單片機軟體setup.exe 安裝程序,選擇安裝「Eval Version」版進行安裝。一直點擊「Yes」或「Next」,直到「Finish」完成。之後運行同目錄中的 Keil uv2 漢化安裝.exe 安裝漢化程序。安裝好後,在桌面上會產生keil C51的快捷圖標,點擊桌面快捷圖標,可以直接進入主畫面。

  現在,我們來做個實際程序,請跟著我一步一步學著做,實際體驗一下從編輯源程序到程序調試的全過程。

  這裡讓我們做一個讓單片機 P0 口所驅動的 LED 燈隔一個亮隔一個滅 的程序。

  在Keil系統中,每做個獨立的程序,都視為工程(或者叫項目)。

  1、首先從菜單的「工程」中「新建工程...」,建立我們將要做的工程項目。新建的工程要起個與工程項目意義一致的名字,可以是中文名;我們這裡的程序是實驗測試程序,所以起的名字為 Test ,並將 Test 工程「保存」到 C:Keil 下。

  2、接下來,Keil環境要求我們為 Test 工程選擇一個單片機型號;我們選擇 Atmel公司的 89C51(雖然我們使用的是89S51,但由於89S51與89C51內、外部結構完全一樣,所以這裡依然選擇「89C51」)。「確定」後工程項目就算建立了。

  3、建立了工程項目,肯定要實施這個工程,現在就為工程添加程序;點擊「文件」中的「新建」,新建一個空白文檔;這個空白文檔就是讓我們編寫單片機程序的場所。在這裡你可以進行編輯、修改等操作。 根據我們要完成的任務,在文檔中寫入下列代碼:(下列代碼你暫時不要管什麼意思,只要照抄正確就可以,今後在學習彙編時你會明白的)

  mov p0,#01010101B ;將01010101二進位代碼送P0口

  ajmp $ ;程序在此原地踏步

  end ;程序結束標誌

  4、寫完後再檢查一下,並保存文件,保存文件時,其文件名最好與前面建立的工程名相同(當然這裡為 Test 了),其擴展名必須為 .Asm !「文件名」中一定要寫全,如:Test.Asm ;保存後的文檔彩色語法會起作用,將關鍵字實行彩色顯示。

  5、保存了Asm文件後,還要將其添加到工程中。具體做法如下:滑鼠右鍵點擊「Source Group 1」,在彈出的菜單中選「增加文件到組 Source Group 1」,在接下來出現的窗口中,選擇「文件類型」為「Asm源文件(*.a*,*.src)」(由於我們使用的是彙編語言,所以選擇Asm源文件),選中剛才保存的 Test.Asm,按「Add」,再按「關閉」,文件就添加到了工程中。

  6、向工程添加了源文件後,滑鼠右鍵點擊 「Target1」 ,在彈出的菜單中選「目標 Target 1 屬性」,在打開的話框中,選擇「輸出」選項卡,在這個選項卡中,「E生成HEX文件」選項前要打勾,按「確定」退出。

  7、最後,從菜單的「工程」中執行「R重新構造所有目標」,彙編、連接、創建Hex文件一氣呵成;在工程文件的目錄下就會生成與工程名相同的一些文件,其中大部分文件我們並不必關心,而生成的 Hex 文件是我們需要的!它是要燒寫到單片機中的最終代碼,也就是單片機可以執行的程序。

  8、若在下面的狀態窗中有錯誤提示,就需要再次編輯、修改源程序(如語法、字符有錯等)、保存、構造所有。直至沒有錯誤。

  在沒有語法錯誤的情況下,按下調試按鈕就可以進行模擬調試。在調試窗,由於我們的程序是讓 P0 口8個腳隔一個輸出0,隔一個輸出1,所以要從菜單的「外圍設備」中打開「Prot 0」 P0口窗,單擊「單步運行」按鈕,在P0窗中就可以看到我們原先設想的效果。

  到此,單片機的整個編譯開發環境就介紹完了!


相關焦點

  • 學習單片機,為什麼我建議你從51單片機開始
    隨著物聯網的大潮,單片機的學習又有高潮,可是面對品類繁多的單片機,不知從何學起,不知道到底學習單片機需要哪些知識;是從8位單片機、16位單片機,還是現在正流行的32位單片機開始學習呢。學習沒有捷徑,只不過想更直接到達很多人的選擇是當下流行的32位單片機,覺得既然學當然需要學習主流的產品了,可是面對32位單片機複雜的庫文件,大量的資源,即使使用項目驅動的學習方法,
  • 單片機c語言教程:建立你的第一個KeilC51項目
    隨著單片機技術的不斷發展,以單片機C語言為主流的高級語言也不斷被更多的單片機愛好者和工程師所喜愛。使用C51肯定要使用到編譯器,以便把寫好的C程序編譯為機器碼,這樣單片機才能執行編寫好的程序。
  • 單片機二進位編碼對照
    一、二進位編碼的十進位數: BCD 碼( Binary-Coded Decimal ) 字母與字符的編碼 字母和各種字符( $ 、 # )也必須按特   二進位編碼在計算機中,是採用二進位數。因而,要在計算機中表示的數、字母、符號等都要以特定的二進位碼來表示,這就是二進位編碼。
  • 51單片機教程之基礎編(基於C語言)
    C語言是目前使用最廣泛的中級語言,就連現在的windows7也是C語言編寫的,C語言易讀性好,無需對單片機內部結構十分熟悉即會編程,可移植性高,便於維護。C語言只有32個關鍵字,9種控制語句,而且編譯器提供了很多函數庫,使用十分方便。而彙編語言達100多條指令,每條指令對應一個機器碼,跟單片機內部結構息息相關,而且不提供庫函數,每種東西都要自己寫。
  • 單片機學習的技巧分享,看完學好單片機不是事
    學習使用就是理解單片機硬體結構,以及內部資源的應用,在彙編或C語言中學會各種功能的初始化設置,以及實現各種功能的程序編制。以下是小編的一些經驗: 每使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻煩,所有的單片機都是這樣。要注意的是兩個功能使用同一組I/O口,比如LCD和LED例程眾都是使用PB這一組的,如果兩者結合,會有衝突,達不到預期的效果,建議不同的模塊使用不同的IO口。
  • 學習單片機1-單片機-電子工程世界網
    單片機教學(2)單片機的內部、外部結構(一)一、單片機的外部結構拿到一塊晶片,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為89C51的晶片,下面我們就看一下如何給它連線。 1、電源:這當然是必不可少的了。單片機使用的是5V電源,其中正極接40引腳,負極(地)接20引腳。
  • 淺談如何學習單片機
    什麼叫做單片機?既把計算機系統集成到一塊晶片上的單片微處理系統叫做單片機。下圖以STC89C52單片機為例學習單片機的核心目標小編認為就是做到人機互動。我們前期的準備無外乎學習了解如何與它進行溝通,通過那種媒介進行溝通。人機互動就好比人與人之間需要溝通而我們溝通的媒介就是通過說話語言描述進行。同理人機互動就是讓你的思想通過某種媒介轉達給你所面對的單片機,讓單片機運行你所表達的指令,從而得到結果。
  • C51單片機電子防丟器實例
    資源下載:關注我們「單片機」,回復「教程」獲取單片機電子書,回復
  • 單片機ISP編程器使用
    單片機ISP編程器就是用來把這個hex文件燒寫到單片機裡去的工具,這樣我們的程序才會被執行。簡單介紹一下我們使用的ISP編程器,什麼是在系統編程技術呢?在ISP系統編程使得單片機晶片壽命更長,超過普通晶片89C51的10倍以上,性能更高,寫入速度更快,穩定性更好,寫入完成後自動運行新程序,可以立即查看到程序運行結果,具有所見即所得特性,修改程序效率極高,易用性接近仿真器,學習使用更方便、更快捷!!
  • 單片機c語言教程:C51變量
    要在程序中使用變量必須先用標識符作為變量名,並指出所用的數據類型和存儲模式,這樣編譯系統才能為變量分配相應的存儲空間。定義一個變量的格式如下:本文引用地址:http://www.eepw.com.cn/article/170891.htm[存儲種類] 數據類型 [存儲器類型] 變量名表在定義格式中除了數據類型和變量名表是必要的,其它都是可選項。
  • 在8位單片機中使用Google Protobuf
    彙編軟體、PIC仿真器(軟體模擬仿真器或硬體在線仿真器)和PIC編程器。對於簡單的PIC源程序而言,若源程序已彙編而生成了擴展名hex文件時,即可直接使用編程器將源程序的目標碼hex固化到PIC晶片中,再通過實驗板驗證其源程序的功能。待深入學習時再補充學習PIC仿真的方法,這是一種快速學習PIC單片機的一條路徑。本版在今後適當的時候仍將以實例介紹PIC單片機在MPLAB集成開發環境下軟體模擬仿真的方法,以供讀者學習時參考。  PIC編程器又稱為PIC燒錄器或燒寫器。
  • Proteus軟體仿真與Keil的51單片機系統設計
    來自英國Labcenter Electronics公司的Proteus軟體很好地詮釋了利用現代EDA工具方便快捷開發單片機系統的優勢。本文講述PROTEUS VSM單片機系統的PROTEUS設計與仿真功能,圖2為基於PROTEUS仿真軟體的單片機系統設計流程,它極大地簡化了設計工作,得到眾多設計師的青睞。
  • 如何正確的學習STM32單片機
    如何正確的學習STM32單片機?不管學什麼單片機,了解這款晶片的系統結構是必須,而要了解晶片的系統結構,我們必須要閱讀晶片的閱讀書冊。所以學習STM32單片機,兩個手冊是必須認真閱讀的,它們分別是《STM32F103xxx參考手冊》和《STM32固件庫使用手冊》。
  • 吃透單片機編程軟體,IAR單片機編程軟體創建stm32工程
    Keil和IAR單片機編程軟體,是當前流通度龐大的兩款單片機編程軟體。而對於單片機編程軟體的使用,各自存在一定區別。本文中,將為大家講解IAR單片機編程軟體建立stm32工程的詳細方法,希望大家通過本文能夠有所收穫哦。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • 使用單片機做一個簡單的計數器
    上篇文章作者給大家介紹了單片機如何控制單個數碼管教程,感興趣的朋友可以點擊我的頭像進行觀看,接下來作者給大家介紹如何利用單片機控制多位數碼管顯示不同的數字,並且分享使用單片機實現一個簡單的計數器項目源碼。
  • AVR單片機驅動無源蜂鳴器C程序
    程序採用單任務方式,軟體延時。關於為什麼會有這種詭異的接法,這是設計時的失誤(也可能是不得已吧,畢竟單片機的32個IO已經佔滿了),參見:一個低電平引發的思考。協議1602與單片機之間是通過並行總線通信的。AVR單片機硬體上不支持並行總線,需要通過軟體模擬時序來實現。
  • arduino和單片機的區別
    通俗的講:arduino就是主要以以AVR單片機為核心控制器的單片機應用開發板(當然也有其他核心的例如STM32版本的但是不是官方的,還有intel的伽利略),或者是學習板啥的,但是Arduino開發人員開發了簡單的函數,還有許多應用庫,這樣就不用直接去操作寄存器了,使得沒有很好的單片機基礎的人員也可以使用Arduino做出自己想要的東西。
  • STC單片機和STM32單片機哪個更適合入門?
    在綜合收集網上相關信息後,我相信很多剛入行的朋友,都應該被支持51單片機和STM32單片機任一種硬體平臺作為入門的理由搞得不知所措。我雖不才,但是,也從事硬體研發工作十年之久。因此,我也想從自己的角度給各位剛入行或準備進入電子產品硬體研發行業的工程師和大中專學生一個儘可能全面的參考依據。當然,我發布的言論,也僅僅是代表我個人的觀點,各位朋友如何做出抉擇,依舊要考各位朋友自己斟酌。
  • 51單片機C語言延時函數
    C程序中可使用不同類型的變量來進行延時設計。經實驗測試,使用unsigned char類型具有比unsigned int更優化的代碼,在使用時應該使用unsigned char作為延時變量。