在指令“MOV A,#12H”中,立即數(shù)#12H是源操作數(shù),緊隨操作碼74H之后存放在ROM中。該指令執(zhí)行時(shí),單片機(jī)先從ROM中讀取操作碼74H,對(duì)操作碼74H解碼后,確定要進(jìn)行的操作是將一個(gè)8位立即數(shù)送入累加器A,接下來單片機(jī)從緊鄰操作碼的下一個(gè)存儲(chǔ)單元中取得立即數(shù)12H并送入累加器A。另外,該指令的目的操作數(shù)累加器A隱含在操作碼中,沒有明確給出。
MCS-51單片機(jī)的匯編語(yǔ)言程序由若干條匯編語(yǔ)言指令和偽指令構(gòu)成。指令存放在程序存儲(chǔ)器中,被單片機(jī)讀取并執(zhí)行,且執(zhí)行結(jié)果將影響單片機(jī)自身的狀態(tài)。
單片機(jī)由中央處理器(含部分特殊功能寄存器)、內(nèi)部RAM、程序存儲(chǔ)器、各種外設(shè)(IO端口、定時(shí)器、串行接口、中斷處理電路等等)及對(duì)應(yīng)控制寄存器、時(shí)鐘電路、復(fù)位電路等幾部分組成。
MCS-51單片機(jī)4個(gè)并行I/O端口引腳的內(nèi)部結(jié)構(gòu)如圖2-10所示,每個(gè)端口有8個(gè)相互獨(dú)立且內(nèi)部結(jié)構(gòu)完全相同的引腳。圖2-10中的字母X代表引腳序號(hào),是0~7的整數(shù)。接下來將分別介紹P0、P1、P2和P3口的引腳特性。
MCS-51系列單片機(jī)產(chǎn)品有8051,8031,8751,80C51,80C31等型號(hào)(前三種為CMOS芯片,后兩種為CHMOS芯片)。它們的結(jié)構(gòu)基本相同,其主要差別反映在存儲(chǔ)器的配置上。8051內(nèi)部設(shè)有4K字節(jié)的掩模ROM程序存儲(chǔ)器,8031片內(nèi)沒有程序存儲(chǔ)器,而8751是將8051片內(nèi)的ROM換成EPROM。由ATMEL公司生產(chǎn)的89C51將EPROM改成了4K的閃速存儲(chǔ)器。
它是80C51單片機(jī)中最具有特色的部分,幾乎所有80C51系列功能的增加和擴(kuò)展都是通過增加特殊功能寄存器來達(dá)到目的的。英文縮寫為SFR,是Special Function Register(特殊功能寄存器)的縮寫。
MCS-51單片機(jī)的CPU字長(zhǎng)為8位,內(nèi)部包含運(yùn)算器、控制器和特殊功能寄存器。由于特殊功能寄存器在功能和使用方法方面與存儲(chǔ)器比較相似,因此將與存儲(chǔ)器一同講解。本小節(jié)僅介紹運(yùn)算器和控制器的基本情況。
MCS-51單片機(jī)內(nèi)部集成了微處理器、存儲(chǔ)器、輸入接口和輸出接口,其體系結(jié)構(gòu)如圖2-1所示。在MCS-51單片機(jī)中,ROM存放程序代碼,RAM存放數(shù)據(jù),因此ROM和RAM分別被稱為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。因?yàn)椋绦虼鎯?chǔ)器和數(shù)據(jù)存儲(chǔ)器是獨(dú)立分開的,所以MCS-51單片機(jī)屬于哈佛體系結(jié)構(gòu)。
在微型計(jì)算機(jī)中,所有信息(如數(shù)值、符號(hào)和圖像等)均以二進(jìn)制形式存儲(chǔ)、傳輸和計(jì)算。由于二進(jìn)制數(shù)冗長(zhǎng)、不方便讀寫和辨認(rèn),因此,現(xiàn)代微型計(jì)算機(jī)也支持編程時(shí)使用書寫長(zhǎng)度更短的十六進(jìn)制數(shù)和十進(jìn)制數(shù),同時(shí)也為各種非數(shù)值信息提供了相應(yīng)的數(shù)值編碼(即用數(shù)值表示非數(shù)值信息)方法。
I2 C總線是Philips公司開發(fā)的一種簡(jiǎn)單、雙向二線制同步串行總線。它只需要兩根線(串行時(shí)鐘線和串行數(shù)據(jù)線)即可在連接于總線上的器件之間傳送信息。這種總線的主要特性如下:
中斷系統(tǒng)是計(jì)算機(jī)的重要組成部分。實(shí)時(shí)控制、故障自動(dòng)處理、計(jì)算機(jī)與外圍設(shè)備間的數(shù)據(jù)傳送往往采用中斷系統(tǒng)。中斷系統(tǒng)的應(yīng)用大大提高了計(jì)算機(jī)效率。
Philips公司生產(chǎn)的與MCS 51單片機(jī)兼容的CMOS型單片機(jī)中,8XC552的功能最強(qiáng),最具有代表性。它除了具有8051單片機(jī)的全部功能之外,又增加了大量的硬件:高速I/O、PWM、A/D、WDT、計(jì)數(shù)器的捕獲/比較邏輯、串行總線I2CBUS等都集成在片內(nèi)。
定時(shí)器T2和連接到這個(gè)寄存器上的4個(gè)16位捕捉寄存器及1個(gè)比較器組成定時(shí)器T2與捕捉比較邏輯。當(dāng)在相應(yīng)引腳上電平發(fā)生變化時(shí),捕捉寄存器將捕捉定時(shí)器T2的內(nèi)容,比較邏輯是以固定的時(shí)間去設(shè)置、復(fù)位和觸發(fā)P4口的輸出。
Philips公司生產(chǎn)的與MCS 51單片機(jī)兼容的CMOS型單片機(jī)中,8XC552的功能最強(qiáng),最具有代表性。它除了具有8051單片機(jī)的全部功能之外,又增加了大量的硬件:高速I/O、PWM、A/D、WDT、計(jì)數(shù)器的捕獲/比較邏輯、串行總線I2CBUS等都集成在片內(nèi)。
8XC51GB有15個(gè)中斷源,對(duì)應(yīng)有15個(gè)固定的中斷矢量地址(見圖10.8)。其中有7個(gè)外部中斷是INT0~INT6,外部中斷引腳與端口3和端口5引腳的功能復(fù)用;有8個(gè)內(nèi)部中斷,它們分別是3個(gè)定時(shí)器中斷(定時(shí)器T0、T1、T2)、2個(gè)可編程定時(shí)計(jì)數(shù)器陣列中斷(PCA、PCA1)、1個(gè)串行口中斷、1個(gè)SEP中斷和1個(gè)A/D中斷。下面分別對(duì)各個(gè)中斷作簡(jiǎn)要介紹。