51 單片機C 語言學習雜記學習單片機實在不是件易事,一來要購買高價格的編程器,仿真器,二來要學習編程語言,還有眾多種類的單片機選擇真是件讓人頭痛的事。在眾多單片機中51 架構的芯片風行很久,學習資料也相對很多,是初學的較好的選擇之一。51 的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C 語言在大多數情況下其機器代碼生成效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C 語言還可以嵌入匯編來解決高時效性的代碼編寫問題。對于開發周期來說,中大型的軟件編寫用C 語言的開發周期通常要小于匯編語言很多。綜合以上C 語言的優點,我在學習時選擇了C 語言。以后的教程也只是我在學習過程中的一些學習筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學習,一起進步。*注:可以肯定的說這個教程只是為初學或入門者準備的,筆者本人也只是菜鳥一只,第一課 建立您的第一個C 項目使用C 語言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機器碼,這樣單片機才能執行編寫好的程序。KEIL uVISION2 是眾多單片機應用開發軟件中優秀的軟件之一,它支持眾多不同公司的MCS51 架構的芯片,它集編輯,編譯,仿真等于一體,同時還支持,PLM,匯編和C 語言的程序設計,它的界面和常用的微軟VC++的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。因此很多開發51 應用的工程師或普通的單片機愛好者,都對它十分喜歡。以上簡單介紹了KEIL51 軟件,要使用KEIL51 軟件,必需先要安裝它。KEIL51 是一個商業的軟件,對于我們這些普通愛好者可以到KEIL 中國代理周立功公司的網站上下載一份能編譯2K 的DEMO 版軟件,基本可以滿足一般的個人學習和小型應用的開發。(安裝的方法和普通軟件相當這里就不做介紹了)安裝好后,您是不是迫不及待的想建立自己的第一個C 程序項目呢?下面就讓我們一起來建立一個小程序項目吧。或許您手中還沒有一塊實驗板,甚至沒有一塊單片機,不過沒有關系我們可以通過KEIL 軟件仿真看到程序運行的結果。首先當然是運行KEIL51 軟件。怎么打開?噢,天!那您要從頭學電腦了。呵呵,開個玩笑,這個問題我想讀者們也不會提的了:P。運行幾秒后,出現如圖1-1 的屏幕。
上傳時間: 2014-01-23
上傳用戶:yyyyyyyyyy
PIC 單片機C 語言編程簡介用C 語言來開發單片機系統軟件最大的好處是編寫代碼效率高、軟件調試直觀、維護升級方便、代碼的重復利用率高、便于跨平臺的代碼移植等等,因此C 語言編程在單片機系統設計中已得到越來越廣泛的運用。針對PIC 單片機的軟件開發,同樣可以用C 語言實現。但在單片機上用C 語言寫程序和在PC 機上寫程序絕對不能簡單等同。現在的PC 機資源十分豐富,運算能力強大,因此程序員在寫PC 機的應用程序時幾乎不用關心編譯后的可執行代碼在運行過程中需要占用多少系統資源,也基本不用擔心運行效率有多高。寫單片機的C 程序最關鍵的一點是單片機內的資源非常有限,控制的實時性要求又很高,因此,如果沒有對單片機體系結構和硬件資源作詳盡的了解,以筆者的愚見認為是無法寫出高質量實用的C 語言程序。這就是為什么前面所有章節中的的示范代碼全部用基礎的匯編指令實現的原因,希望籍此能使讀者對PIC 單片機的指令體系和硬件資源有深入了解,在這基礎之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機來展開討論,Microchip 公司自己沒有針對中低檔系列PIC單片機的C 語言編譯器,但很多專業的第三方公司有眾多支持PIC 單片機的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC 編譯器,它穩定可靠,編譯生成的代碼效率高,在用PIC 單片機進行系統設計和開發的工程師群體中得到廣泛認可。其正式完全版軟件需要購置,但在其網站上有限時的試用版供用戶評估。另外,Hitech 公司針對廣大PIC 的業余愛好者和初學者還提供了完全免費的學習版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機型號限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機因其所具備的豐富的片上資源而最適用于單片機學習入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機的C 語言編程。
上傳時間: 2013-11-17
上傳用戶:15527161163
單片機的C 語言輕松入門隨著單片機開發技術的不斷發展,目前已有越來越多的人從普遍使用匯編語言到逐漸使用高級語言開發,其中主要是以C 語言為主,市場上幾種常見的單片機均有其C 語言開發環境。這里以最為流行的80C51 單片機為例來學習單片機的C 語言編程技術。本書共分六章,每章一個專題,以一些待完成的任務為中心,圍繞該任務介紹C 語言的一些知識,每一個任務都是可以獨立完成的,每完成一個任務,都能掌握一定的識,等到所有的任務都完成后,即可以完成C 語言的入門工作。C 語言概述及其開發環境的建立學習一種編程語言,最重要的是建立一個練習環境,邊學邊練才能學好。Keil 軟件是目前最流行開發80C51 系列單片機的軟件,Keil 提供了包括C 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部份組合在一起。在學會使用匯編語言后,學習C 語言編程是一件比較容易的事,我們將通過一系列的實例介紹C 語言編程的方法。圖1-1 所示電路圖使用89S52 單片機作為主芯片,這種單片機性屬于80C51 系列,其內部有8K 的FLASH ROM,可以反復擦寫,并有ISP 功能,支持在線下載,非常適于做實驗。89S52 的P1 引腳上接8 個發光二極管,P3.2~P3.4 引腳上接4 個按鈕開關,我們的任務是讓接在P1 引腳上的發光二極管按要求發光。
上傳時間: 2013-11-04
上傳用戶:467368609
這是一本關于Intel 80C51 以及廣大的51 系列單片機的書這本書介紹給讀者一些新的技術使你的8051 工程和開發過程變得簡單請注意這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰在適當的地方給出了程序代碼我們以討論項目的方法來說明每章碰到的問題所有的代碼都可在附帶的光盤上找到你必須熟系C 和8051 匯編因為本書不是一本C 和匯編的指導書你可以買到不少關于ANSI C 的書最佳選擇當然是Intel的數據書可從你的芯片供應商處免費索取和隨編譯工具附送的手冊附送光盤中有我為這本書編寫和收集的程序這些程序已經通過測試這并不意味著你可以隨時把這些程序加到你的應用系統或工程中有些地方必須首先經過修改才能結合到你的程序中這本書將教你充分使用你的工具如果你只有8051 的匯編程序你也可以學習該書和使用這些例子但是你必須把C 語言的程序裝入你的匯編程序中這對懂得C 語言和8051匯編程序指令的人來說并不是一件困難的事如果你有C 編譯器的話那恭喜你使用C 語言進行開發是一個好的決定你會發現使用C 進行開發將使你的工程開發和維護的時間大大減少如果你已經擁有Keil C51 那你已經選擇了一個非常好的開發工具我發現Keil 軟件包能夠提供最好的支持本書支持Keil C 的擴展如果你有其它的開發工具像Archimedes 和Avocet 這本書也能很好地為你服務但你必須根據你所用的開發工具改變一些Keil 的特殊指令在書的一些地方有硬件圖實例程序在這些硬件上運行這些圖繪制地不是很詳細主要是方框圖但足以使讀者明白軟件和硬件之間的接口讀者應該把這本書看成工具書而不是用來學習各種系統設計通過本書你可以了解給定一定的硬件和軟件設計之后8051 的各種性能希望你能從本書中獲取靈感并有助于你的設計使你豁然開朗當然我希望你也能夠從本書中學到有用的知識使之能夠提升你的設計 這本書向你展示了用8051進行工程設計時的許多問題希望你讀完本書后對8051的認識能有較大的提高如果你現在還沒有夠買C編譯器你應該馬上去買一個采用C語言可是你的系統設計更簡單維護更方便這本書覆蓋面較大從C和匯編的代碼優化到8051的網絡設計再到模糊控制希望你從本書中學到的知識對你今后的系統設計有所幫助
上傳時間: 2013-10-12
上傳用戶:ommshaggar
光盤內容1.1例 程 “例程”文件夾中為各章節的程序代碼,均在作者的目標板上(自行開發)調試通過,以確保程序正確。n Keil C對中文文件、目錄以及空格等可能無法編譯連接,所以若要正確調試,須確保所有文件、目錄為連續英文名或數字。n 這些程序應用到其他C8051Fxxx系列單片機時,要確保各個操作寄存器的名稱、地址與各個控制位相一致,否則需要修改。很多寄存器位的位置并不相同,所以移植程序時,使用者要參考F040寄存器和移植對象單片機的寄存器,以確保正確操作。1.2 原理圖及pcb封裝“原理圖及pcb封裝”文件夾里包含作者制作的C8051F040PCB封裝和原理圖引腳定義文件c8051f040.ddb。其中PCB封裝與Silicon Laboratories公司(原Cygnal公司)提供的TQ100封裝稍有不同(在cygnalpcb文件中): 作者所做引腳長為2.5 mm,而cygnalpcb文件中的引腳長為1.3 mm。加長引腳焊盤是為了方便手工焊芯片。用戶可根據需要和習慣選擇封裝。
上傳時間: 2013-11-19
上傳用戶:
EEPROM為ATMEL公司的AT24C01A。單片機為ATMEL公司的AT89C51。2. 軟件說明 C語言為Franklin C V3.2。將源程序另存為testi2c.c,用命令C51 testi2c.cL51 TESTI2C.OBJOHS51 TESTI2C編譯,連接,得到TESTI2C.HEX文件,即可由編程器讀入并進行寫片,實驗。3.源程序#include <reg51.h>#include <intrins.h> #define uchar unsigned char#define uint unsigned int#define AddWr 0xa0 /*器件地址選擇及寫標志*/#define AddRd 0xa1 /*器件地址選擇及讀標志*/#define Hidden 0x0e /*顯示器的消隱碼*/
上傳時間: 2013-10-09
上傳用戶:hjshhyy
第一章 51單片機c語言編程介紹這是一本關于 Intel 80C51 以及廣大的 51 系列單片機的書 這本書介紹給讀者一些新的技術 使你的 8051 工程和開發過程變得簡單 請注意 這本書的目的可不是教你各種8051 嵌入式系統的解決方法為使問題討論更加清晰 在適當的地方給出了程序代碼 我們以討論項目的方法來說明每章碰到的問題 所有的代碼都可在附帶的光盤上找到 你必須熟系 C 和 8051匯編 因為本書不是一本C和匯編的指導書 你可以買到不少關于ANSI C的書 最佳選擇當然是Intel的數據書 可從你的芯片供應商處免費索取 和隨編譯工具附送的手冊附送光盤中有我為這本書編寫和收集的程序 這些程序已經通過測試 這并不意味著你可以隨時把這些程序加到你的應用系統或工程中 有些地方必須首先經過修改才能結合到你的程序中這本書將教你充分使用你的工具 如果你只有 8051 的匯編程序 你也可以學習該書和使用這些例子 但是你必須把 C 語言的程序裝入你的匯編程序中 這對懂得 C 語言和 8051匯編程序指令的人來說并不是一件困難的事如果你有 C 編譯器的話 那恭喜你 使用 C 語言進行開發是一個好的決定 你會發現使用 C 進行開發將使你的工程開發和維護的時間大大減少 如果你已經擁有 Keil C51 那你已經選擇了一個非常好的開發工具 我發現 Keil 軟件包能夠提供最好的支持 本書支持Keil C 的擴展 如果你有其它的開發工具像 Archimedes 和 Avocet 這本書也能很好地為你服務 但你必須根據你所用的開發工具改變一些 Keil 的特殊指令在書的一些地方有硬件圖 實例程序在這些硬件上運行 這些圖繪制地不是很詳細主要是方框圖 但足以使讀者明白軟件和硬件之間的接口讀者應該把這本書看成工具書 而不是用來學習各種系統設計 通過本書 你可以了解給定一定的硬件和軟件設計之后 8051 的各種性能 希望你能從本書中獲取靈感 并有助于你的設計 使你豁然開朗 當然 我希望你也能夠從本書中學到有用的知識 使之能夠提升你的設計
上傳時間: 2013-11-16
上傳用戶:穿著衣服的大衛
第1章 單片機系統概述1.1 AVR系列單片機的特點1.2 AT90系列單片機簡介第2章 AT90LS8535單片機的基礎知識2.1 AT90LS8535單片機的總體結構2.1.1 AT90LS8535單片機的中央處理器2.1.2 AT90LS8535單片機的存儲器組織2.1.3 AT90LS8535單片機的I/O接口2.1.4 AT90LS8535單片機的內部資源2.1.5 AT90LS8535單片機的時鐘電路2.1.6 AT90LS8535單片機的系統復位2.1.7 AT90LS8535單片機的節電方式2.1.8 AT90LS8535單片機的芯片引腳2.2 AT90LS8535單片機的指令系統2.2.1 匯編指令格式2.2.2 尋址方式2.2.3 偽指令2.2.4 指令類型及數據操作方式2.3 應用程序設計2.3.1 程序設計方法2.3.2 應用程序舉例第3章 AT90LS8535單片機的C編程3.1 支持高級語言編程的AVR系列單片機3.2 AVR的C編譯器3.3 ICC AVR介紹3.3.1 安裝ICC AVR3.3.2 設置ICC AVR3.4 用ICC AVR編寫應用程序3.5 下載程序文件第4章 數據類型、運算符和表達式4.1 ICC AVR支持的數據類型4.2 常量與變量4.2.1 常量4.2.2 變量4.3 AT90LS8535的存儲空間4.4 算術和賦值運算4.4.1 算術運算符和算術表達式4.4.2 賦值運算符和賦值表達式4.5 邏輯運算4.6 關系運算4.7 位操作4.7.1 位邏輯運算4.7.2 移位運算4.8 逗號運算第5章 控制流5.1 C語言的結構化程序設計5.1.1 順序結構5.1.2 選擇結構5.1.3 循環結構5.2 選擇語句5.2.1 if語句5.2.2 switch分支5.2.3 選擇語句的嵌套5.3 循環語句5.3.1 while語句5.3.2 do…while語句5.3.3 for語句5.3.4 循環語句嵌套5.3.5 break語句和continue語句第6章 函數6.1 函數的定義6.1.1 函數的定義的一般形式6.1.2 函數的參數6.1.3 函數的值6.2 函數的調用6.2.1 函數的一般調用6.2.2 函數的遞歸調用6.2.3 函數的嵌套使用6.3 變量的類型及其存儲方式6.3.1 局部變量6.3.2 局部變量的存儲方式6.3.3 全局變量6.3.4 全局變量的存儲方式6.4 內部函數和外部函數6.4.1 內部函數6.4.2 外部函數第7章 指針第8章 結構體和共用體第9章 AT90LS8535的內部資源第10章 AT90LS8535的人機接口編程第11章 AT90LS8535的外圍擴展第12章 AT90LS8535的通信編程第13章 系統設計中的程序處理方法
上傳時間: 2013-10-31
上傳用戶:smthxt
8051單片機c語言pdf
上傳時間: 2014-04-02
上傳用戶:皇族傳媒
C語言實時操作系統源代碼
上傳時間: 2013-10-17
上傳用戶:zgz317