- 單片機技術及應用(C語言版)
- 周永東主編
- 3435字
- 2019-01-09 13:43:51
第一單元 單片機基礎知識
綜合教學目標
了解單片機的相關常識,掌握AT89S52單片機的構造與原理。
主要內容
計算機的基礎知識,單片機的發展歷史、類型以及應用,以及AT89S52單片機的CPU、存儲器、引腳功能及標識。
崗位技能綜合職業素質要求:學會識別AT89S52單片機的標識。
隨著電子技術的發展,生產生活中的設備、儀器、電器等的智能化水平越來越高,如微電腦洗衣機、智能冰箱、遙控電視、公交車刷卡器、公交車報站器等,這些設備都內嵌了極小型化的計算機——單片機。
單片機是單片微型計算機的簡稱,它將構成計算機的基本部件集成到一塊芯片上,組成一個小巧卻完善的計算機系統。因此學習單片機除了要掌握它的硬件電路原理,還要學習計算機程序設計。
本教材講解的AT89S52單片機是美國ATMEL公司生產的低功耗、高性能CMOS8位單片機,它采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統及引腳,其照片如圖1-1所示。

圖1-1 AT89S52單片機
1.1 初步了解單片機
一、計算機的常用術語
1.位(bit)
位是計算機數據存儲的最基本、最小的數據單位。計算機采用二進制,因此位就是1個二進制位,若干二進制位的組合就可以表示各種數據、字符等。
2.字(word)和字長
字是計算機內部進行數據處理的基本單位。通常它與計算機內部寄存器、算術邏輯單元、數據總線的長度一致。一個字所包含的二進制位數稱為字長。
3.字節(byte)
相鄰的8位二進制數構成1個字節,可以用字節作為計算機字長的單位。8位計算機的字長等于1個字節,16位計算機的字長等于2個字節,32位計算機的字長等于4個字節。習慣上把1個字節定為8位,把1個字定為16位,把1個雙字定為32位。
字節也是計算機數據存儲的單位。1KB=1024B(B表示字節byte),1MB=1024KB,1GB=1024MB。
4.指令
指令是規定計算機進行某種操作的命令,由一串二進制數碼組成,是計算機自動控制的依據。
5.程序
程序是指令的有序組合,是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列。
6.機器語言
用二進制(或十六進制)數表示的指令和數據總和稱為機器語言,是計算機能直接識別和執行的。
7.匯編語言
用助記符號表達的指令稱為匯編語言,是機器語言的符號表示。
8.高級語言
高級語言是采用接近人類自然語言的習慣表達的程序設計語言,例如BASIC、C語言。現在一般使用C51語言設計51單片機程序。
二、計算機的數制
計算機由觸發器、計數器、加法器、邏輯門等基本的數字電路構成。數字電路具有兩種不同的穩定狀態且能相互轉換,用“0”和“1”表示最為方便,因此計算機處理一切信息(包括數據、指令、字符、顏色、語音、圖像等)均用二進制數表示。但是二進制數書寫起來太長,且不便于閱讀和記憶,所以一般都將二進制數轉換成十六進制數來呈現。另外,人們最常用的是十進制數,因此我們將對這三種數制及其之間的轉換進行介紹。
1.數制介紹
(1)十進制(Decimal)
數碼:0,1,2,3,4,5,6,7,8,9
① 十進制有0~9十個不同的數碼。
② 十進制數逢十進一,即當低位滿十則向相鄰高位進一。
(2)二進制(Binary)
數碼:0,1
① 二進制有0,1兩個不同的數碼。
② 二進制數逢二進一。
(3)十六進制(Hexadecimal)
數碼:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
① 十六進制有0~F十六個不同的數碼。
② 十六進制數逢十六進一。
為方便起見,現將部分十進制、二進制、十六進制數的對照表列于表1-1中。
表1-1 部分十進制、二進制、十六進制數的對照表

2.數制的書寫
為區別不同數制,要求在書寫時要注意規范,數制書寫一般有以下方法。
(1)可以給數加括號,并在括號右下角標注數制代號,例如:
十進制數,(32)10,(1000)10
二進制數,(1001)2,(0100)2
十六進制數,(123)16,(A1EF)16
(2)匯編語言中,可以在數后面用英文字母標記。
十進制數以字母D結尾,例如:32D,1000D。
二進制數以字母B結尾,例如:1001B,0100B。
十六進制數以字母H結尾,例如:123H,A1EFH。
(3)C51語言中,可以在數前面標記。
十六進制數以0x開頭,例如:0x64,0xfffe等。
3.不同數制之間的轉換
(1)二進制數與十進制數相互轉換
① 二進制數轉換成十進制數,將二進制數按權展開后相加,例如:

② 十進制數轉換成二進制數,采用“除2取余法”。即用2連續去除十進制數,直到商為0為止,然后把各次余數按最后得到的為最高位、最早得到的為最低位(從下至上),依次排列起來,所得到的數便是所求的二進制數。
例:試求出十進制數125的二進制數。
把125連續除以2,直到商為0,相應豎式如下:

按照逆序將各余數記下,得到轉換后的二進制數為:1111101B。
(2)十六進制數與十進制數相互轉換
① 十六進制數轉換成十進制數,采用將十六進制數按權展開后相加的方法,例如:

② 十進制數轉換成十六進制數,采用“除16取余法”,即用16連續去除要轉換的十進制數,直到商為0為止,然后把各次余數按得到順序的逆序依次排列起來,所得的數便是所求的十六進制數。
(3)二進制數與十六進制數相互轉換
① 二進制數轉換成十六進制數,采用“4位合1位”的方法,即從二進制數最低位開始,每4位一組,不足4位以0補足,然后分別把每組用十六進制數表示,并按序相連。
例:把二進制數1101111100110B轉換成十六進制數,則有

所以,1101111100110B=1BE6H
② 十六進制數轉換成二進制數,采用“1位分4位”的方法,即把十六進制數的每一位分別用4位二進制數表示,然后將其按序連成一體。
例:把十六進制數2AE5H轉換成二進制數,則有

所以,2AE5H=0010101011100101B
三、單片機的概念
單片機,全稱為單片微型計算機,就是在一塊芯片上集成了微處理器(CPU)、程序存儲器(ROM)、數據存儲器(RAM)、定時/計數器以及多種I/O接口電路的具有一定規模的微型計算機,因最早被應用在工業控制領域,所以又被稱為微控制器。
四、單片機的發展歷史
單片機誕生于20世紀70年代末,經歷了SCM、MCU、SOC三大發展階段。
(1)SCM即單片微型計算機(SingleChipMicrocomputer)階段,主要尋求單片形態嵌入式系統的最佳體系結構。因受集成度和工藝的限制,常采用雙片形式的單片機。例如:仙童公司的F8須外接一塊3851電路才能構成一個完整的計算機。
(2)MCU即微控制器(MicroControllerUnit)階段,主要致力于不斷擴展滿足嵌入式應用的對象系統要求而采用的各種外圍電路與接口電路,突顯其對象的智能化控制能力。它所涉及的領域都與對象系統相關,因此,發展MCU的重任不可避免地落在電氣、電子技術廠家。在發展MCU方面,最著名的當數Philips公司。Philips公司以其在嵌入式應用方面的巨大優勢,將80C51從單片微型計算機迅速發展到微控制器。
(3)SOC即專用化片上系統(SystemOnChip)階段,是指將微處理器、模擬IP核、數字IP核和存儲器(或片外存儲控制接口)集成在單一芯片上,它通常是客戶定制的,或是面向特定用途的標準產品。單片機是嵌入式系統的獨立發展之路,向MCU階段發展的重要因素,就是尋求應用系統在芯片上的最大化解決。因此,標準化專用單片機的發展自然形成了SOC化趨勢。隨著微電子技術、IC設計、EDA工具的發展,基于SOC的單片機應用系統設計會有較大的發展。
五、單片機的分類
單片機按用途可分為兩類:專用型單片機和通用型單片機。
專用型單片機用途專一,內部程序在出廠時已經固化,不能被再次修改,例如電子表里的單片機,其生產成本很低。
通用型單片機的用途廣泛,程序可以不斷修改,用戶可以根據需要給此類單片機植入不同的程序,配合不同接口的輸入和輸出來完成所需功能。小到家用電器、儀器儀表,大到機器設備和整套生產線都可用通用型單片機來實現自動化控制。通用型單片機按位數分為4位機、8位機、16位機和32位機等。
單片機還可按生產廠家分類,我國目前最常用的單片機有如下幾家:
● Intel——MCS51系列、MCS96系列;
● Atmel——AT89系列、MCS51內核;
● Microchip——PIC系列;
● Motorola——68HCXX系列;
● Zilog——Z86系列;
● Philips——87、80系列,MCS51內核;
● Siemens——SAB80系列,MCS51內核;
● NEC——78系列。
六、單片機的應用范圍
在信息化高速發展的時代,單片機以其體積小、功耗低、控制功能強等優勢迅速滲透到我們生活的各個領域。單片機廣泛應用于儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分為如下幾個范疇。
1.在智能儀器儀表上的應用
結合不同類型的傳感器,單片機可實現諸如電壓、濕度、流量、溫度、壓力等物理量的測量。采用單片機控制使儀器儀表更加數字化、智能化、微型化,且功能更加強大。例如精密的測量設備,功率計、溫濕度計、各種分析儀。
2.在工業控制中的應用
用單片機可以構成形式多樣的控制系統、數據采集系統。例如工廠流水線的智能化管理,電梯智能化控制,各種報警系統,與計算機聯網構成二級控制系統。
3.在醫療設備領域中的應用
醫療行業的智能化系統都用到了單片機。例如醫用呼吸機,各種分析儀,監護儀,超聲診斷設備及病床呼叫系統等。
4.在汽車設備領域中的應用
單片機的使用使得汽車智能電子控制系統越來越發達,汽車也變得越來越聰明。駕駛汽車時,行車電腦能夠自動處理大量的信息,比如當車輛轉彎時,助力轉向會助你一臂之力;當急剎車時,ABS會自動啟動,防止側滑。
5.在計算機及網絡和通信領域中的應用
現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為計算機網絡和通信設備間的應用提供了極好的物質條件?,F在的通信設備基本上都實現了單片機智能控制,例如手機、電話機、小型程控交換機、樓宇自動通信呼叫系統、列車無線通信、集群移動通信、無線電對講機等。
6.在家用電器中的應用
現在,很多家用電器中都采用了單片機控制,例如電飯煲、洗衣機、電冰箱、空調機、彩電,音視頻器材、電子秤量設備等,五花八門,無處不在。
此外,單片機在工商、金融、科研、教育、國防、航空航天等領域都有著十分廣泛的用途。