單片機c語言編程入門教程說難不難,說易不易,學習單片機c語言首先就要明白這兩樣東西是啥?單片機入門編程主要是學C語言,其次就是電路跟編程語言。
單片機c語言編程學習必看的關於模電,數電,電路這三本書,為接下來的學習做鋪墊。看書的目的是因為網上的教程太多太混雜,容易帶偏,做單片機軟體開發其實只要看得懂電路原理就可以了。
簡介
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。
概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。
從二十世紀九十年代開始,單片機技術就已經發展起來,隨著時代的進步與科技的發展,目前該技術的實踐應用日漸成熟,單片機被廣泛應用於各個領域。現如今,人們越來越重視單片機在智能電子技術方面的開發和應用,單片機的發展進入到新的時期。
無論是自動測量還是智能儀表的實踐,都能看到單片機技術的身影。當前工業發展進程中,電子行業屬於新興產業,工業生產中人們將電子信息技術成功運用,讓電子信息技術與單片機技術相融合,有效提高了單片機應用效果。
作為計算機技術中的一個分支,單片機技術在電子產品領域的應用,豐富了電子產品的功能,也為智能化電子設備的開發和應用提供了新的出路,實現了智能化電子設備的創新與發展。
以上內容參考:網路-單片機
Ⅱ 什麼是單片機技術
單片機,是一種晶元,它可以根據不同的用途向它寫入程序然後放到電路中,它廣泛用於工業的各領域,
Ⅲ 單片機技術
#include <reg52.h>
//點亮八位共陽
unsigned char led=0xfe; //8個bit位的數
unsigned int counter=0;
void time_init()
{
TMOD=0x01;//定時器0,工作模式1,16位定時器
TH0=0xb4;
TL0=0x00; //定時器初始值46080,定時50ms;
EA=1;//開總中斷
ET0=1;//開定時器中斷
TR0=1;//運行定時器
}
void main()
{
time_init();
for(;;)
{
P1=led;
}
}
void time_inter() interrupt 1
{
IT0=1;//清除中斷標志
TH0=0xb4;
TL0=0x00;
counter++;
if(counter==10) //500ms延時
{
counter=0;
led=led<<1;//點亮下一個燈
}
}
//點亮八位共陰
/*
unsigned char led=0x01,led1=0x01; //8個bit位的數
unsigned int counter=0;
void time_init()
{
TMOD=0x01;//定時器0,工作模式1,16位定時器
TH0=0xb4;
TL0=0x00; //定時器初始值46080,定時50ms;
EA=1;//開總中斷
ET0=1;//開定時器中斷
TR0=1;//運行定時器
}
void main()
{
time_init();
for(;;)
{
P1=led;
}
}
void time_inter() interrupt 1
{
IT0=1;//清除中斷標志
TH0=0xb4;
TL0=0x00;
counter++;
if(counter==10) //500ms延時
{
counter=0;
led1=led;
led1=led1<<1;//點亮下一個燈
led=led|led1;
}
}
*/
Ⅳ 單片機應用技術的內容簡介
《單片機應用技術》以STC125410AD增強型8051內核單片機MSC1211為對象,介紹了單片機的硬體結構、匯編語言程序設計及調試、單片機的C語言及編程調試方法,以功能強大的KeilμVision2集成開發環境作為程序設計和調試環境。通過典型應用案例,詳細介紹了單片機各部分的硬體功能和應用設計,以及相關的匯編語言和C語言程序設計。
《單片機應用技術》共20章。每章後,都給出相應的習題,便於教學。以典型應用案例為教學實例,便於讀者掌握和應用單片機技術。
Ⅳ 單片機技術及應用的介紹
單片機技術及應用是 清華大學出版社出版的書籍。《單片機技術及應用》以MCS-51系列單片機為模型,主要介紹單片機的基本結構、工作原理、指令系統、程序設計以及系統擴展與工程應用。《單片機技術及應用》從第8章開始專門介紹了C51編程技術及其應用,在講解單片機原理的同時也介紹了單片機C語言程序設計方法,特別在講解部分實例時,給出匯編語言和C語言兩種語言的編寫方法,目的是通過比較匯編語言與C語言的編寫特點,使學生能夠有比較性地選擇一種語言的學習,並且認識另一種語言。《單片機技術及應用》依據高職教育培養高技能型人才的要求和辦學特點來編寫,內容系統、全面、深入淺出,重點突出動手能力的培養。在講授基本工作原理的同時,編者結合自己多年的教學和項目開發經驗,給出了許多實際項目,在項目的設置上力求做到難易程度循序漸進,使學生能夠輕松掌握相關的技能與知識。
Ⅵ 單片機應用技術的目錄
序
前言
第1章單片機技術概述
1.1微型計算機的基本概念、組成及分類
1.1.1微型計算機的組成
1.1.2微型計算機的分類
1.2單片機技術發展的特點
1.3常見的單片機
1.3.18051內核的單片機
1.3.2其他單片機
1.4單片機的應用
1.4.1單片機的應用范圍
1.4.2單片機應用系統的設計
1.5習題
第2章STC12C5410AD的增強型8051內核
2.1STC12C5410AD單片機的引腳
2.2STC12C5410AD單片機的結構
2.2.1STC12C5410AD單片機的內部結構
2.2.2CPU結構
2.3STC12C5410AD單片機的存儲器
2.3.1存儲器空間及存儲器
2.3.2數據Flash存儲器的操作
2.4習題
第3章數字輸入/輸出埠
3.1STC12C5410AD單片機的I/O口及工作模式
3.2STC12C5410AD單片機I/O口的結構
3.3STC12C5410AD單片機I/O口的使用
3.4習題
第4章指令系統
4.1助記符語言
4.1.1助記符語言概述
4.1.2操作碼
4.1.3操作數
4.2指令格式及分類
4.2.1匯編語言的概念及格式
4.2.2指令代碼的存儲格式
4.2.3指令中的符號約定
4.3定址方式
4.4數據傳送類指令
4.4.1數據傳送指令
4.4.2數據交換指令
4.4.3棧操作指令
4.5邏輯操作類指令
4.5.1對累加器A進行的邏輯操作
4.5.2雙操作數邏輯操作指令
4.6算術運算類指令
4.6.1加減運算指令
4.6.2乘除運算指令
4.6.3增量、減量指令
4.6.4二一十進制調整指令
4.7位操作指令
4.7.1位數據傳送指令
4.7.2位狀態控制指令
4.7.3位邏輯操作指令
4.7.4位條件轉移指令
4.8控制轉移類指令
4.9習題
第5章匯編語言程序設計及模擬調試
5.1匯編語言程序設計基礎知識
5.1.1偽指令
5.1.2匯編語言程序設計的一般步驟和基本框架
5.2匯編語言程序設計舉例
5.3利用KeilμVision2集成開發環境調試程序
5.3.1KeilμVision2集成開發環境簡介
5.3.2KeilμVision2集成開發環境中調試8051單片機匯編語言程序的方法
5.4利用ISP工具將程序下載到單片機中驗證程序
5.4.1ISP下載程序的運行過程
5.4.2使用ISP工具下載程序的步驟
5.5習題
第6章C語言程序設計及模擬調試
6.1C語言程序設計基礎
6.1.1數據類型
6.1.2基本運算符和表達式
6.1.3C語言程序設計
6.1.4函數
6.1.5指針
6.1.6結構與聯合
6.1.7枚舉和位運算
6.1.8預處理
6.2KeilC對ANSIC的擴展
6.2.1KeilC51擴展關鍵字
6.2.2KeilC51指針
6.2.3KeilC51函數
6.2.4STC12C5410AD單片機C51程序框架
6.3習題
第7章中斷
7.1中斷的概念
7.2STC12C5410AD單片機的中斷系統及其管理
7.2.1中斷源及其優先順序管理
7.2.2單片機中斷處理過程
7.2.3中斷請求的撤除
7.2.4關於外部中斷
7.2.5中斷程序編程舉例
7.2.6中斷使用過程中需要注意的問題
7.3習題
第8章定時/計數器
8.1STC12C5410AD單片機的定時/計數器
8.1.1定時/計數器的結構及工作原理
8.1.2定時/計數器方式和控制寄存器
8.1.3定時/計數器的工作方式
8.1.4定時/計數器量程的擴展
8.1.5定時/計數器編程舉例
8.1.6定時/計數器應用中應注意的問題
8.2STC12C5410AD的PCA/PWM模塊
8.2.1PCA/PWM模塊的結構
8.2.2PCA/PWM模塊的特殊功能寄存器
8.2.3PCA/PWM模塊的工作模式
8.2.4PCA/PWM模塊韻應用
8.3習題
第9章串列通信
9.1通信的一般概念
9.1.1並行通信與串列通信
9.1.2串列通信的兩種基本方式
9.2STC12C5410AD單片機的串列介面
9.2.1串列介面的控制寄存器
9.2.2串列介面的工作方式
9.2.3多處理機通信
9.2.4波特率的設定
9.2.5串列介面通信應用舉例
9.2.6計算機與單片機之間的串列通信
9.3STC112C5410AD單片機的SPI介面
9.3.1SPI介面的結構
9.3.2SPI介面的數據通信
9.3.3SPI介面的應用舉例
9.4習題
第10章模數轉換器
10.1模數轉換器的結構及相關寄存器
10.1.1模數轉換器的結構
10.1.2參考電壓源
10.1.3與ADC有關的特殊功能寄存器
10.2模數轉換器的應用
10.3習題
第11章復位、省電方式和時鍾
11.1復位
11.2省電方式
11.2.1省電方式的控制
11.2.2省電方式的應用
11.3時鍾
11.4習題
第12章單片機應用系統設計舉例
12.1系統要求
12.2需求分析
12.3系統硬體設計
12.4系統軟體設計
12.5習題
附錄
附錄ASTC12C5410AD單片機指令表
附錄BSTC12C5410單片機寄存器定義文件STC12.INC內容
附錄CSTC12C5410AD單片機寄存器頭文件STC12.H內容
附錄DMSComm控制項簡介
附錄E邏輯符號對照表
附錄FASCII碼表
參考文獻
……
Ⅶ 什麼是單片機,單片機有什麼作用
什麼是單片機?單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶片,而是把一個電腦系統集成到一個晶片上。概括的講:一塊晶片就成了一台電腦。它的體積小、品質輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是瞭解電腦原理與結構的最佳選擇。
什麼是單片機?可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人電腦,簡稱PC機。它由主機、鍵盤、顯示器等組成(如圖1所示)。還有一類電腦,大多數人卻不怎麼熟悉。這種電腦就是把智慧賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種電腦的最小系統只用了一片積體電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」裏。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智慧型儀器表、即時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智慧型」,如智慧型洗衣機等。現在有些工廠的技術人員或其他業餘電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用單片機或其他可編程邏輯器件上。
單片機有什麼用途?
單片機的應用領域
:
1.單片機在智慧型儀器器儀表中的應用;
2.單片機在工業測控中的應用;
3.單片機在電腦網路和通訊技術中的應用;
4.單片機在日常生活及家電中的應用;
5.單片機在辦公自動化方面。
單片機有什麼用途?目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,電腦的網路通訊與資料傳輸,工業自動化過程的即時控制和資料處理,廣泛使用的各種智慧IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智慧型儀器表、醫療器械了。因此,單片機的學習、開發與應用將造就一批電腦應用與智慧化控制的科學家、工程師。
Ⅷ 單片機解釋
單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統所決定的,一條指令對應著一種基本操作;單片機所能執行的全部指令,就是該單片機的指令系統,不同種類的單片機,其指令系統亦不同。為使單片機能自動完成某一特定任務,必須把要解決的問題編成一系列指令(這些指令必須是選定單片機能識別和執行的指令),這一系列指令的集合就成為程序,程序需要預先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出並執行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然後再被執行。 程序通常是順序執行的,所以程序中的指令也是一條條順序存放的,單片機在執行程序時要能把這些指令一條條取出並加以執行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數器PC(包含在CPU中),在開始執行程序時,給PC賦以程序中第一條指令所在的地址,然後取得每一條要執行的命令,PC在中的內容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執行。 單片機介紹 單片微型計算機簡稱單片機,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機,它最早是被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。 早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端[1]的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。 單片機比專用處理器更適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的總和,甚至比人類的數量還要多。 單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。 單片機內部也用和電腦功能類似的模塊,比如CPU,內存,並行匯流排,還有和硬碟作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電裡面都可以看到它的身影!......它主要是作為控制部分的核心部件。 它是一種在線式實時控制計算機,在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區別。 單片機晶元
單片機是靠程序運行的,並且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性! 由於單片機對成本是敏感的,所以目前占統治地位的軟體還是最低級匯編語言,它是除了二進制機器碼以上最低級的語言了,既然這么低級為什麼還要用呢?很多高級的語言已經達到了可視化編程的水平為什麼不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬碟那樣的海量存儲設備。一個可視化高級語言編寫的小程序裡面即使只有一個按鈕,也會達到幾十K的尺寸!對於家用PC的硬碟來講沒什麼,可是對於單片機來講是不能接受的。 單片機在硬體資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統和應用軟體拿到家用PC上來運行,家用PC的也是承受不了的。 可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用單片機或其它可編程邏輯器件上。
編輯本段單片機歷史
單片機誕生於20世紀70年代末,經歷了SCM、MCU、SoC三大階段。
單片機的基本結構
單片機由運算器、控制器、存儲器、輸入輸出設備構成
起初模型
1.SCM即單片微型計算機(Single Chip Microcomputer)階段,主要是尋求最佳的單片形態嵌入式系統的最佳體系結構。「創新模式」獲得成功,奠定了SCM與通用計算機完全不同的發展道路。在開創嵌入式系統獨立發展道路上,Intel公司功不可沒。 Micro Controller Unit
2.MCU即微控制器(Micro Controller Unit)階段,主要的技術發展方向是:不斷擴展滿足嵌入式應用時,對象系統要求的各種外圍電路與介面電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。從這一角度來看,Intel逐漸淡出MCU的發展也有其客觀因素。在發展MCU方面,最著名的廠家當數Philips公司。 Philips公司以其在嵌入式應用方面的巨大優勢,將MCS-51從單片微型計算機迅速發展到微控制器。因此,當我們回顧嵌入式系統發展道路時,不要忘記Intel和Philips的歷史功績。
嵌入式系統
單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在晶元上的最大化解決;因此,專用單片機的發展自然形成了SoC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基於SoC的單片機應用系統設計會有較大的發展。因此,對單片機的理解可以從單片微型計算機、單片微控制器延伸到單片應用系統。
單片機發展史
[2] 1971年intel公司研製出世界上第一個4位的微處理器;Intel公司的霍夫研製成功世界上第一塊4位微處理器晶元Intel 4004,標志著第一代微處理器問世,微處理器和微機時代從此開始。因發明微處理器,霍夫被英國《經濟學家》雜志列為「二戰以來最有影響力的7位科學家」之一 。 1971年11月,Intel推出MCS-4微型計算機系統(包括4001 ROM晶元、4002 RAM晶元、4003移位寄存器晶元和4004微處理器 )其中4004(下圖)包含2300個晶體管,尺寸規格為3mm×4mm,計算性能遠遠超過當年的ENIAC,最初售價為200美元。 1972年4月,霍夫等人開發出第一個8位微處理器Intel 8008。由於8008採用的是P溝道MOS微處理器,因此仍屬第一代微處理器。 1973年intel公司研製出8位的微處理器8080;1973年8月,霍夫等人研製出8位微處理器Intel 8080,以N溝道MOS電路取代了P溝道,第二代微處理器就此誕生。 主頻2MHz的8080晶元運算速度比8008快10倍,可存取64KB存儲器,使用了基於6微米技術的6000個晶體管,處理速度為0.64MIPS(Million Instructions Per Second )。 1975年4月,MITS發布第一個通用型Altair 8800,售價375美元,帶有1KB存儲器。這是世界上第一台微型計算機。 1976年intel公司研製出MCS-48系列8位的單片機,這也是單片機的問世。 Zilog公司於1976年開發的Z80微處理器,廣泛用於微型計算機和工業自動控制設備。當時,Zilog、Motorola和Intel在微處理器領域三足鼎立。 20世紀80年代初,Intel公司在MCS-48系列單片機的基礎上,推出了MCS-51系列8位高檔單片機。MCS-51系列單片機無論是片內RAM容量,I/O口功能,系統擴展方面都有了很大的提高。
編輯本段單片機的硬體特性
1、單片機集成度高。單片機包括CPU、4KB容量的ROM(8031 無)、128 B容量的RAM、 2個16位定時/計數器、4個8位並行口、全雙工串口行口。 2、系統結構簡單,使用方便,實現模塊化; 3、單片機可靠性高,可工作到10^6 ~10^7小時無故障; 4、處理功能強,速度快。
編輯本段單片機的應用
單片機的應用 目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械以及各種智能機械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。 單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇: 1.在智能儀器儀表上的應用 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同類型的感測器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。採用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起採用電子或數字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。 2.在工業控制中的應用 用單片機可以構成形式多樣的控制系統、數據採集系統。例如工廠流水線的智能化管 晶元
理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。 3.在家用電器中的應用 可以這樣說,現在的家用電器基本上都採用了單片機控制,從電飯煲、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。 4.在計算機網路和通信領域中的應用 現代的單片機普遍具備通信介面,可以很方便地與計算機進行數據通信,為在計算機網路和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程式控制交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的行動電話,集群移動通信,無線電對講機等。 5.單片機在醫用設備領域中的應用 單片機在醫用設備中的用途亦相當廣泛,例如醫用呼吸機,各種分析儀,監護儀,超聲診斷設備及病床呼叫系統等等。 6.在各種大型電器中的模塊化應用 某些專用單片機設計用於實現特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內部結構。如音樂集成單片機,看似簡單的功能,微縮在純電子晶元中(有別於磁帶機的原理),就需要復雜的類似於計算機的原理。如:音樂信號以數字的形式存於存儲器中(類似於ROM),由微控制器讀出,轉化為模擬音樂電信號(類似於音效卡)。 在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便於更換。 7.單片機在汽車設備領域中的應用 單片機在汽車電子中的應用非常廣泛,例如汽車中的發動機控制器,基於CAN匯流排的汽車發動機智能電子控制器,GPS導航系統,abs防抱死系統,制動系統等等。 此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。
編輯本段學習應用六大重要部分
單片機學習應用的六大重要部分
一、匯流排:
我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線並不成為一個問題,因為各器件間一般是串列關系,各器件之間的連線並不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了匯流排的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有多個器件同時接收)。器件的數據線也就被稱為數據匯流排,器件所有的控制線被稱為控制匯流排。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由於存儲單元比較多,所以,用於地址分配的線也較多,這些線被稱為地址匯流排。
二、數據、地址、指令:
之所以將這三者放在一起,是因為這三者的本質都是一樣的——數字,或者說都是一串『0』和『1』組成的序列。換言之,地址、指令也都是數據。指令:由單片機晶元的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關系,不可以由單片機的開發者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由晶元設計者規定好,不可更改,外部的單元可以由單片機開發者自行決定,但有一些地址單元是一定要有的(詳見程序的執行過程)。數據:這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況: 1?地址(如MOV DPTR,1000H),即地址1000H送入DPTR。 2?方式字或控制字(如MOV TMOD,#3),3即是控制字。 3?常數(如MOV TH0,#10H)10H即定時常數。 4?實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實際輸出的值。 理解了地址、指令的本質,就不難理解程序運行過程中為什麼會跑飛,會把數據當成指令來執行了。
三、P0口、P2口和P3的第二功能用法:
初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各埠的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上『不能作為通用I/O口使用』也並不是『不能』而是(使用者)『不會』將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這么去做,因為這通常會導致系統的崩潰。
四、程序的執行過程:
單片機在通電復位後8051內的程序計數器(PC)中的值為『0000』,所以程序總是從『0000』單元開始執行,也就是說:在系統的ROM中一定要存在『0000』這個單元,並且在『0000』單元中存放的一定是一條指令。
五、堆棧:
堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的『先進後出,後進先出』,並且堆棧有特殊的數據傳輸指令,即『PUSH』和『POP』,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就是把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的混亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區後,並不意味著該區域成為一種專用內存,它還是可以象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。
六、單片機的開發過程:
這里所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好硬體,下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其地址也就被確定了,當器件的功能被確定下來後,其控制字也就被確定了。然後用文本編輯器(如EDIT、CCED等)編寫軟體,編寫好後,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用模擬機對軟體進行調試,直到程序運行正確為止。運行正確後,就可以寫片(將程序固化在EPROM中)。在源程序被編譯後,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明: 單片機試驗板
ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;設堆棧 LOOP: NOP LJMP LOOP ;循環 END ;結束
編輯本段單片機學習
目前,很多人對匯編語言並不認可。可以說,掌握用C語言單片機編程很重要,可以大大提高開發的效率。不過初學者可以不了解單片機的匯編語言,但一定要了解單片機具體性能和特點,不然在單片機領域是比較致命的。如果不考慮單片機硬體資源,在KEIL中用C胡亂編程,結果只能是出了問題無法解決!可以肯定的說,最好的C語言單片機工程師都是從匯編走出來的編程者,因為單片機的C語言雖然是高級語言,但是它不同於台式機個人電腦上的VC++什麼的。單片機的硬體資源不是非常強大,不同於我們用VC、VB等高級語言在台式PC上寫程序,畢竟台式電腦的硬體非常強大,所以才可以不考慮硬體資源的問題。還有就是在單片機編程中C語言雖然編程方便,便於人們閱讀,但是在執行效率上是要比匯編語言低10%到20%,所以用什麼語言編寫程序是要看具體用在什麼場合下。總的來說做單片機編程要靈活使用匯編語言與C語言,讓單片機的強大功能以最高是效率展示給用戶。 以8051單片機為例講解單片機的引腳及相關功能; 《單片機引腳圖》 40個引腳按引腳功能大致可分為4個種類:電源、時鍾、控制和I/O引腳。 ⒈ 電源: ⑴ VCC - 晶元電源,接+5V; ⑵ VSS - 接地端; 註:用萬用表測試單片機引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在單片機程序正在工作時候測試結果並不是這個值而是介於0v-5v之間,其實這是萬用表的響應速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者5v。 ⒉ 時鍾:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。 ⒊ 控制線:控制線共有4根, ⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖 ① ALE功能:用來鎖存P0口送出的低8位地址 ② PROG功能:片內有EPROM的晶元,在EPROM編程期間,此引腳輸入編程脈沖。 ⑵ PSEN:外ROM讀選通信號。 ⑶ RST/VPD:復位/備用電源。 ① RST(Reset)功能:復位信號輸入端。 ② VPD功能:在Vcc掉電情況下,接備用電源。 ⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。 ① EA功能:內外ROM選擇端。 ② Vpp功能:片內有EPROM的晶元,在EPROM編程期間,施加編程電源Vpp。 ⒋ I/O線 80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。 P3口還具有第二功能,用於特殊信號輸入輸出和控制信號(屬控制匯流排) 5. P3口第二功能 P30 RXD 串列輸入口 P31 TXD 串列輸出口 P32 INT0 外部中斷0(低電平有效) P33 INT1 外部中斷1(低電平有效) P34 T0 定時計數器0 P35 T1 定時計數器1 P36 WR 外部數據存儲器寫選通(低電平有效) P37 RD 外部數據存儲器讀選通(低電平有效)