單片機(jī)原理及應(yīng)用-課程實(shí)施大綱_第1頁(yè)
單片機(jī)原理及應(yīng)用-課程實(shí)施大綱_第2頁(yè)
單片機(jī)原理及應(yīng)用-課程實(shí)施大綱_第3頁(yè)
單片機(jī)原理及應(yīng)用-課程實(shí)施大綱_第4頁(yè)
單片機(jī)原理及應(yīng)用-課程實(shí)施大綱_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、知識(shí)目標(biāo)1) 掌握MCS-51系列單片機(jī)原理與內(nèi)部結(jié)構(gòu),掌握其存儲(chǔ)器結(jié)構(gòu)、總線(xiàn)結(jié)構(gòu)、指令系統(tǒng)、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)和串行接口的相關(guān)知識(shí)點(diǎn)。2) 掌握MCS-51系列單片機(jī)的最小系統(tǒng)構(gòu)成及外圍接口技術(shù)。3) 掌握MCS-51系列單片機(jī)匯編指令和C51語(yǔ)言的指令格式、編程方法。4) 掌握MCS-51系列單片機(jī)應(yīng)用設(shè)計(jì)的基本步驟、思路和方法。5) 掌握MCS-51系列單片機(jī)系統(tǒng)開(kāi)發(fā)平臺(tái)的使用方法。第1章 單片機(jī)基礎(chǔ)知識(shí)概述單片機(jī)及其發(fā)展概況;單片機(jī)的特點(diǎn)和應(yīng)用;單片機(jī)的發(fā)展趨勢(shì);單片機(jī)學(xué)習(xí)的預(yù)備知識(shí);Proteus應(yīng)用簡(jiǎn)介。第2章 MCS-51單片機(jī)的結(jié)構(gòu)及原理MCS-51單片機(jī)的結(jié)構(gòu);引腳

2、功能;存儲(chǔ)器結(jié)構(gòu);CPU時(shí)序和工作方式;并行I/O口。第3章 單片機(jī)的匯編語(yǔ)言與程序設(shè)計(jì)MCS-51指令系統(tǒng)概述;尋址方式;數(shù)據(jù)傳送類(lèi)、算術(shù)運(yùn)算類(lèi)、邏輯運(yùn)算與移位類(lèi)控制轉(zhuǎn)移類(lèi)、位操作類(lèi)和I/O口訪(fǎng)問(wèn)指令。第4章 單片機(jī)的C51語(yǔ)言C51的程序結(jié)構(gòu);C51的數(shù)據(jù)結(jié)構(gòu);C51與匯編語(yǔ)言的混合編程;C51仿真開(kāi)發(fā)環(huán)境。第5章 單片機(jī)的中斷系統(tǒng)中斷的概念;中斷控制系統(tǒng);中斷處理過(guò)程;中斷的編程和應(yīng)用舉例。第6章 單片機(jī)的定時(shí)/計(jì)數(shù)器定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理;定時(shí)/計(jì)數(shù)器的控制;定時(shí)/計(jì)數(shù)器的工作方式;定時(shí)/計(jì)數(shù)器的編程和應(yīng)用。第7章 單片機(jī)的串行口及應(yīng)用 串行通信概述;MCS-51的串行口控制器;

3、串口工作方式及其應(yīng)用。第8章 單片機(jī)接口技術(shù)單片機(jī)的系統(tǒng)總線(xiàn);簡(jiǎn)單并行I/O口擴(kuò)展;可編程并行I/O口擴(kuò)展;D/A轉(zhuǎn)換與DAC0832應(yīng)用;A/D轉(zhuǎn)換與ADC0809應(yīng)用;開(kāi)關(guān)量功率接口技術(shù)。第9章 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)單片機(jī)系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)過(guò)程;單片機(jī)系統(tǒng)的可靠性技術(shù);單片機(jī)系統(tǒng)設(shè)計(jì)開(kāi)發(fā)應(yīng)用舉例智能儀器;單片機(jī)串行擴(kuò)展單元介紹。6.2教學(xué)重點(diǎn)、難點(diǎn)一、教學(xué)重點(diǎn)本課程教材的重點(diǎn)章是第18章,重點(diǎn)的知識(shí)點(diǎn)具體如下所列。1) 單片機(jī)的概念、特點(diǎn)和應(yīng)用;單片機(jī)的發(fā)展趨勢(shì);單片機(jī)學(xué)習(xí)的預(yù)備知識(shí)。2) MCS-51單片機(jī)的結(jié)構(gòu);引腳功能;存儲(chǔ)器結(jié)構(gòu);CPU時(shí)序和工作方式;并行I/O口。3) MCS-

4、51指令系統(tǒng)概述;尋址方式;數(shù)據(jù)傳送類(lèi)、算術(shù)運(yùn)算類(lèi)、邏輯運(yùn)算與移位類(lèi)控制轉(zhuǎn)移類(lèi)、位操作類(lèi)和I/O口訪(fǎng)問(wèn)指令。4) C51的程序結(jié)構(gòu);C51的數(shù)據(jù)結(jié)構(gòu);C51語(yǔ)言的編程應(yīng)用。5) 中斷的概念;中斷控制系統(tǒng);中斷處理過(guò)程;中斷的編程和應(yīng)用。6) 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理;定時(shí)/計(jì)數(shù)器的控制;定時(shí)/計(jì)數(shù)器的工作方式;定時(shí)/計(jì)數(shù)器的編程和應(yīng)用。7) 串行通信基本概念;MCS-51的串行口控制器;串口工作方式及其應(yīng)用。8) 單片機(jī)的系統(tǒng)總線(xiàn);簡(jiǎn)單并行I/O口擴(kuò)展;D/A轉(zhuǎn)換與DAC0832應(yīng)用;A/D轉(zhuǎn)換與ADC0809應(yīng)用。二、教學(xué)難點(diǎn)本課程屬于較為基礎(chǔ)的專(zhuān)業(yè)課,對(duì)于微機(jī)原理和C語(yǔ)言學(xué)得好的同學(xué)來(lái)

5、說(shuō)應(yīng)該不困難,下文所列的只是相對(duì)較難的知識(shí)點(diǎn)。1) 單片機(jī)的特點(diǎn)和應(yīng)用;單片機(jī)的發(fā)展趨勢(shì)。2) MCS-51單片機(jī)的基本結(jié)構(gòu);引腳功能;存儲(chǔ)器結(jié)構(gòu);CPU時(shí)序和工作方式。3) MCS-51指令系統(tǒng)概述;尋址方式;數(shù)據(jù)傳送類(lèi)、算術(shù)運(yùn)算類(lèi)、邏輯運(yùn)算與移位類(lèi)控制轉(zhuǎn)移類(lèi)、位操作類(lèi)和I/O口訪(fǎng)問(wèn)指令。4) C51的程序結(jié)構(gòu);C51的數(shù)據(jù)結(jié)構(gòu);C51語(yǔ)言的編程應(yīng)用。5) 中斷控制系統(tǒng);中斷處理過(guò)程;中斷的編程和應(yīng)用。6) 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)與工作原理;定時(shí)/計(jì)數(shù)器的控制;定時(shí)/計(jì)數(shù)器的工作方式;定時(shí)/計(jì)數(shù)器的編程和應(yīng)用。7) 串行通信基本概念;MCS-51的串行口控制器;串口工作方式及其應(yīng)用。8) D/A

6、轉(zhuǎn)換與DAC0832應(yīng)用;A/D轉(zhuǎn)換與ADC0809應(yīng)用。教學(xué)內(nèi)容重點(diǎn):?jiǎn)纹瑱C(jī)的概念和特點(diǎn);單片機(jī)的主要發(fā)展方向和主流技術(shù);幾種常見(jiàn)的單片機(jī)產(chǎn)品。難點(diǎn):?jiǎn)纹瑱C(jī)基本概念;單片機(jī)、微控制器、嵌入式系統(tǒng)等概念的區(qū)分與聯(lián)系。教學(xué)方法多媒體演示、實(shí)物演示作業(yè)安排及課后反思作業(yè):P16,第1、2題。思考:試分析一下今后單片機(jī)將向那個(gè)方向發(fā)展,為什么?課前準(zhǔn)備情況及其他相關(guān)特殊要求預(yù)習(xí)1.1參考資料(具體到哪一章節(jié)或頁(yè)碼)教材第1-3頁(yè)謝維成,楊加國(guó). 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第3版)M. 北京: 清華大學(xué)出版社,2014. 第1章7.2教學(xué)單元二教學(xué)日期第2次課教學(xué)目標(biāo)梳理單片機(jī)學(xué)習(xí)的基本知識(shí),

7、掌握數(shù)制、編碼等基礎(chǔ)知識(shí);了解單片機(jī)開(kāi)發(fā)環(huán)境Proteus及Keil的使用方法。教學(xué)內(nèi)容1.2 單片機(jī)學(xué)習(xí)的預(yù)備知識(shí)1.3 Proteus應(yīng)用簡(jiǎn)介重點(diǎn):十進(jìn)制、二進(jìn)制、十六進(jìn)制直接的轉(zhuǎn)換;基礎(chǔ)門(mén)電路的功能和使用方法。難點(diǎn):十進(jìn)制小數(shù)和整數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)。教學(xué)過(guò)程1.2 單片機(jī)學(xué)習(xí)的預(yù)備知識(shí)一、計(jì)算機(jī)中數(shù)的表示計(jì)算機(jī)只識(shí)別和處理數(shù)字信息,數(shù)字是以二進(jìn)制數(shù)表示的;它易于物理實(shí)現(xiàn),同時(shí),資料存儲(chǔ)、傳送和處理簡(jiǎn)單可靠;運(yùn)算規(guī)則簡(jiǎn)單,使邏輯電路的設(shè)計(jì)、分析、綜合、方便,使計(jì)算器具有邏輯性。(一)數(shù)制及數(shù)制之間的轉(zhuǎn)換1、各種進(jìn)位計(jì)數(shù)及其表示方法數(shù)字符號(hào):0、1、2、9 數(shù)碼。數(shù)碼的個(gè)數(shù)基數(shù)。進(jìn)位規(guī)則:逢十

8、進(jìn)一例如,十進(jìn)制數(shù),10個(gè)數(shù)碼;采用“逢十進(jìn)一”30681 = 3104+0103+6102+8101+1100例如,二進(jìn)制數(shù),2個(gè)數(shù)碼,采用“逢二進(jìn)一”(11010100)2 = 127+126+025+124+023+122+021+020總之,N進(jìn)制數(shù),N個(gè)數(shù)碼,“逢N進(jìn)一”二進(jìn)制數(shù)與十六進(jìn)制數(shù)的相互轉(zhuǎn)換a)二進(jìn)制轉(zhuǎn)換十六進(jìn)制:規(guī)律是:以小數(shù)點(diǎn)為界限,分別往前往后每四位二進(jìn)制數(shù)一組進(jìn)行分組,(整數(shù)部分不夠的位直接在高位補(bǔ)0,小數(shù)部分不夠的位在往其低位補(bǔ)0),之后把每一組轉(zhuǎn)換成對(duì)應(yīng)得到十六進(jìn)制數(shù)碼即可。b)十六進(jìn)制轉(zhuǎn)換二進(jìn)制: 規(guī)律是:上述轉(zhuǎn)換的“逆”,即把每位十六進(jìn)制數(shù)碼都轉(zhuǎn)換成對(duì)應(yīng)四位

9、二進(jìn)制數(shù),按照十六進(jìn)制數(shù)正常的順序排列即可。c)十進(jìn)制轉(zhuǎn)換十六進(jìn)制: 方法:可以先轉(zhuǎn)換成二進(jìn)制數(shù),在轉(zhuǎn)換成十六進(jìn)制數(shù)(較簡(jiǎn)單些)。(二) 有符號(hào)數(shù)表示方法1、 機(jī)器數(shù)與真值機(jī)器只認(rèn)識(shí)二進(jìn)制數(shù):0、1。這是因?yàn)椋娐窢顟B(tài)常有兩個(gè),如通、斷;高電平、低電平;可用0、1表示。這種0、1、0、11在機(jī)器中的表現(xiàn)形式機(jī)器數(shù)。一般為8位。 無(wú)符號(hào)數(shù):00000000B、11111111B即00H FFH機(jī)器數(shù)有:帶符號(hào)數(shù):+1010110B、-1101001 真值符號(hào)位和數(shù)值位:計(jì)算機(jī)中通常都是用最高位來(lái)表示一個(gè)數(shù)的符號(hào)。并且分別用“0”和“1”表示正和負(fù)。有符號(hào)數(shù)有三種表示方法。原碼、反碼和補(bǔ)碼。a)、

10、原碼(Primary Code)正數(shù)的原碼與原來(lái)的數(shù)相同。負(fù)數(shù)的原碼符號(hào)位“置1”,數(shù)值位不變。舉例(略:+5、-5、+0、-0)原碼數(shù)的范圍:-127+127b)、反碼(Diminished Radix Complement)正數(shù)的反碼與原來(lái)的數(shù)相同。負(fù)數(shù)的反碼符號(hào)位“置1”,數(shù)值位按位取反得到。舉例(略:+5、-5、+0、-0)反碼數(shù)的范圍:-127+127c)、補(bǔ)碼(Complementary Code)正數(shù)的補(bǔ)碼與原來(lái)的數(shù)相同。負(fù)數(shù)的補(bǔ)碼由它的絕對(duì)值求反加1后得到,符號(hào)位“置1”。舉例(略:+5、-5、0)數(shù)的范圍:-128+127(三)8421BCD碼(Binary Coded De

11、cimal Code)由于人們習(xí)慣上用十進(jìn)制數(shù)通過(guò)計(jì)算機(jī)輸入輸出數(shù)據(jù),而計(jì)算機(jī)需要用二進(jìn)制進(jìn)行分析計(jì)算,因此需要計(jì)算機(jī)將十進(jìn)制轉(zhuǎn)換成二進(jìn)制,影響計(jì)算機(jī)的工作速度。用二進(jìn)制數(shù)對(duì)每位十進(jìn)制數(shù)進(jìn)行編碼稱(chēng)為BCD碼,或叫二十進(jìn)制數(shù)。用標(biāo)識(shí)符 BCD表示1、 BCD碼與十進(jìn)制數(shù)的轉(zhuǎn)換BCD碼與二進(jìn)制不能直接轉(zhuǎn)換,一般先轉(zhuǎn)換成十進(jìn)制,再轉(zhuǎn)成二進(jìn)制。0100 0011B=67D=0110 0111BCD注意:不能將BCD碼看成是二進(jìn)制數(shù)。1.3 Proteus應(yīng)用簡(jiǎn)介開(kāi)發(fā)工具PROTEUS單片機(jī)仿真軟件開(kāi)發(fā)工具 Keil集成開(kāi)發(fā)環(huán)境軟件仿真運(yùn)行效果教學(xué)方法多媒體演示,仿真軟件演示。作業(yè)安排及課后反思作業(yè):P

12、16,第5、6、7題。思考:試分析一下今后單片機(jī)將向那個(gè)方向發(fā)展,為什么?課前準(zhǔn)備情況及其他相關(guān)特殊要求預(yù)習(xí)1.2,1.3節(jié);閱讀教材204頁(yè)(閱讀材料1)參考資料(具體到哪一章節(jié)或頁(yè)碼)教材第3-16頁(yè)。謝維成, 楊加國(guó). 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第3版)M. 北京: 清華大學(xué)出版社, 2014. 第1章。單片機(jī)課程學(xué)習(xí)網(wǎng)站(各大電子類(lèi)專(zhuān)業(yè)網(wǎng)站。7.3教學(xué)單元三教學(xué)日期第3次課教學(xué)目標(biāo)掌握MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)與復(fù)位方式,引腳功能,內(nèi)部結(jié)構(gòu)和工作原理。教學(xué)內(nèi)容第2章 MCS-51單片機(jī)的結(jié)構(gòu)及原理2.1 MCS-51單片機(jī)的結(jié)構(gòu)2.2 MCS-51的存儲(chǔ)器結(jié)構(gòu)2.3 單片機(jī)

13、的復(fù)位、時(shí)鐘與時(shí)序2.4 并行I/O口重點(diǎn):80C51單片機(jī)的引腳功能和內(nèi)部結(jié)構(gòu),單片機(jī)的存儲(chǔ)器結(jié)構(gòu)與復(fù)位方式。難點(diǎn):?jiǎn)纹瑱C(jī)的內(nèi)部結(jié)構(gòu)和工作原理。教學(xué)過(guò)程MCS-51單片機(jī)的基本結(jié)構(gòu)2.1.1 MCS-51單片機(jī)硬件結(jié)構(gòu)特點(diǎn)1內(nèi)部程序存儲(chǔ)器(ROM)和內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)容量(如表2-1所示)。2輸入/輸出(I/O)端口3外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器尋址空間4中斷與堆棧5定時(shí)/計(jì)數(shù)器與寄存器區(qū)6指令系統(tǒng)2.1.2 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)1運(yùn)算器運(yùn)算器由8位算術(shù)邏輯運(yùn)算單元ALU(Arithmetic Logic Unit)、8位累加器ACC(Accumulator)、8位寄存器B、程

14、序狀態(tài)字寄存器PSW(Program Status Word)、8位暫存寄存器TMP1和TMP2等組成。2控制器主要由程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、堆棧指針SP、數(shù)據(jù)指針DPTR、時(shí)鐘發(fā)生器及定時(shí)控制邏輯等組成。2.2 MCS-51單片機(jī)的存儲(chǔ)器配置2.2.1 片內(nèi)數(shù)據(jù)存儲(chǔ)器2.2.2 片外數(shù)據(jù)存儲(chǔ)器2.2.3 程序存儲(chǔ)器2.2.1 片內(nèi)數(shù)據(jù)存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)如圖2-9(a)所示;其具體位地址單元如表2-3所示;專(zhuān)用寄存器的地址映像如表2-4所示。單片機(jī)復(fù)位電路及復(fù)位狀態(tài)1復(fù)位電路單片機(jī)復(fù)位電路包括片內(nèi)、片外兩部分。外部復(fù)位電路就是為內(nèi)部復(fù)位電路提供兩個(gè)機(jī)器周期以上的高

15、電平而設(shè)計(jì)的。MCS-51單片機(jī)通常采用上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。如圖2-14所示。2單片機(jī)復(fù)位后的狀態(tài)單片機(jī)運(yùn)行出錯(cuò)或進(jìn)入死循環(huán)時(shí),可按復(fù)位鍵重新運(yùn)行。21個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值,如表2-6所示。 3、時(shí)鐘電路(1)振蕩周期 / 時(shí)鐘周期:為單片機(jī)提供時(shí)鐘信號(hào)的振蕩源的周期。(3)機(jī)器周期:通常將完成一個(gè)基本操作所需的時(shí)間稱(chēng)為機(jī)器周期。(4)指令周期:是指CPU執(zhí)行一條指令所需要的時(shí)間。一個(gè)指令周期通常含有14個(gè)機(jī)器周期。若80C51單片機(jī)外接晶振為12MHz時(shí),則單片機(jī)的四個(gè)周期的具體值為:振蕩周期1/12MHz1/12s0.0833s時(shí)鐘周期1/6s0.167s機(jī)

16、器周期1s指令周期14s4、80C51指令時(shí)序特殊功能寄存器通用RAM區(qū)位尋址區(qū)00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位尋址外部ROM內(nèi)部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH內(nèi)部數(shù)據(jù)存儲(chǔ)器(a)外部數(shù)據(jù)存儲(chǔ)器(b)程序存儲(chǔ)器(c)工作寄存器區(qū)P1P2S1P2振蕩周期時(shí)鐘周期機(jī)器周期機(jī)器周期指令周期(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1

17、P2P2P2P2P2P2P2P2P2P2P2二、80C51單片機(jī)的引腳功能結(jié)構(gòu)框圖(如上圖)1主電源引腳VCC和VSS2外接晶振引腳XTAL1和XTAL23控制或其他電源復(fù)用引腳RST/ VPD、ALE/、和/VPP4輸入/輸出引腳P0、P1、P2、P3(共32根)三、引腳功能(1) 主電源引腳Vcc和Vss VCC: 接+5 V電源正端; VSS: 接+5 V電源地端。 (2) 外接晶體引腳XTAL1和XTAL2 XTAL1: 接外部石英晶體的一端。 在單片機(jī)內(nèi)部, 它是一個(gè)反相放大器的輸入端, 這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。 當(dāng)采用外部時(shí)鐘時(shí), 對(duì)于HMOS單片機(jī), 該引腳接地; 對(duì)于CHM

18、OS單片機(jī), 該引腳作為外部振蕩信號(hào)的輸入端。 XTAL2: 接外部晶體的另一端。 在單片機(jī)內(nèi)部, 接至片內(nèi)振蕩器的反相放大器的輸出端。 當(dāng)采用外部時(shí)鐘時(shí), 對(duì)于HMOS單片機(jī), 該引腳作為外部振蕩信號(hào)的輸入端; 對(duì)于CHMOS芯片, 該引腳懸空不接。(3)輸入/輸出(I/O)引腳P0口、 P1口、 P2口及P3口 (a) P0口(39腳32腳): P0.0P0.7統(tǒng)稱(chēng)為P0口。 (b) P1口(1腳8腳): P1.0P1.7統(tǒng)稱(chēng)為P1口,可作為準(zhǔn)雙向I/O接口使用。 (c) P2口(21腳28腳): P2.0P2.7統(tǒng)稱(chēng)為P2口,一般可作為準(zhǔn)雙向I/O接口。 (d) P3口(10腳17腳):

19、 P3.0P3.7統(tǒng)稱(chēng)為P3口。教學(xué)方法多媒體演示作業(yè)安排及課后反思作業(yè):P34,第5、6、8、9題。 課前準(zhǔn)備情況及其他相關(guān)特殊要求預(yù)習(xí)第2章參考資料(具體到哪一章節(jié)或頁(yè)碼)教材第17-34頁(yè)。謝維成, 楊加國(guó). 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第3版)M. 北京: 清華大學(xué)出版社, 2014. 第2章。單片機(jī)課程學(xué)習(xí)網(wǎng)站(7.4教學(xué)單元四教學(xué)日期第4次課教學(xué)目標(biāo)掌握單片機(jī)的尋址方式,指令特點(diǎn),功能和使用。教學(xué)內(nèi)容第3章 單片機(jī)的匯編語(yǔ)言與程序設(shè)計(jì)3.1 匯編語(yǔ)言概述3.2 MCS-51指令系統(tǒng)簡(jiǎn)介重點(diǎn):51單片機(jī)匯編語(yǔ)言的指令系統(tǒng);指令表的查閱方法和指令功能的描述。難點(diǎn):51單片機(jī)匯編語(yǔ)

20、言的指令系統(tǒng)。教學(xué)過(guò)程3.1 匯編語(yǔ)言概述MCS-51單片機(jī)指令系統(tǒng)有如下特點(diǎn):(1)指令執(zhí)行時(shí)間快。(2)指令短,約有一半的指令為單字節(jié)指令。(3)用一條指令即可實(shí)現(xiàn)2個(gè)一字節(jié)的相乘或相除。(4)具有豐富的位操作指令。 (5)可直接用傳送指令實(shí)現(xiàn)端口的輸入輸出操作。3.1 MCS-51指令系統(tǒng)的分類(lèi)、格式及一般說(shuō)明3.1.1 指令分類(lèi)3.1.2 指令格式3.1.3 指令描述符號(hào)介紹3.1.1 指令分類(lèi)按指令功能,MCS-51指令系統(tǒng)分為數(shù)據(jù)傳遞與交換、算術(shù)運(yùn)算、邏輯運(yùn)算、程序轉(zhuǎn)移、布爾處理操作、CPU控制等6類(lèi)。布爾處理操作類(lèi)指令又稱(chēng)位操作指令。3.1.2 指令格式在MCS-51指令中,一般

21、指令主要由操作碼、操作數(shù)組成。指令應(yīng)具有以下功能:(1)操作碼指明執(zhí)行什么性質(zhì)和類(lèi)型的操作。例如,數(shù)的傳送、加法、減法等。(2)操作數(shù)指明操作的數(shù)本身或者是操作數(shù)所在的地址。(3)指定操作結(jié)果存放的地址。3.1.3 指令描述符號(hào)介紹Rn當(dāng)前選中的寄存器區(qū)中的8個(gè)工作寄存器R0R7(n=07)。Ri當(dāng)前選中的寄存器區(qū)中的2個(gè)工作寄存器R0、R1(i=0,1)。direct8位的內(nèi)部數(shù)據(jù)存儲(chǔ)器單元中的地址。#data包含在指令中的8位常數(shù)。#data16包含在指令中的16位常數(shù)。addr1616位目的地址。addr1111位目的地址。rel8位帶符號(hào)的偏移字節(jié),簡(jiǎn)稱(chēng)偏移量。DPTR數(shù)據(jù)指針,可用作

22、16位地址寄存器。bit內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺弧累加器。B專(zhuān)用寄存器,用于乘法和除法指令中。C進(jìn)位標(biāo)志或進(jìn)位位,或布爾處理機(jī)中的累加器。間址寄存器或基址寄存器的前綴,如Ri,DPTR。/ 位操作數(shù)的前綴,表示對(duì)該位操作數(shù)取反,如/bit。片內(nèi)RAM的直接地址或寄存器。()由尋址的單元中的內(nèi)容。箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容所代替。3.2 尋址方式3.2.1 立即尋址3.2.2 直接尋址3.2.3 寄存器尋址3.2.4 寄存器間接尋址3.2.5 變址尋址3.2.6 相對(duì)尋址3.2.7 位尋址3.2.1 立即尋址指令中直接給出操作數(shù)的尋址方式。立即操作數(shù)用前面加有#號(hào)的8位或16位

23、數(shù)來(lái)表示。例如:MOVA,# 60H;A#60H MOVDPTR,# 3400H;DPTR#3400HMOV30H,# 40H;30H單元#40H 上述三條指令執(zhí)行完后,累加器A中數(shù)據(jù)為立即數(shù)據(jù)60H,DPTR寄存器中數(shù)據(jù)為3400H,30H單元中數(shù)據(jù)為立即數(shù)40H。3.2.2 直接尋址指令中直接給出操作數(shù)地址的尋址方式,能進(jìn)行直接尋址的存儲(chǔ)空間有SFR寄存器和內(nèi)部數(shù)據(jù)RAM。例如:MOVPSW,# 20H; PSW#20H PSW為直接尋址寄存器的符號(hào)地址。 MOVA,30H;A30H內(nèi)部RAM單元中的內(nèi)容30H為直接給出的內(nèi)部RAM的地址。3.2.3 寄存器尋址以通用寄存器的內(nèi)容為操作數(shù)的

24、尋址方式。通用寄存器指A、B 、DPTR以及R0R7 。 例如:CLR A;A0 INC DPTR;DPTRDPTR+1 ADDR5,# 20H;R5#20H+R53.2.4 寄存器間接尋址以寄存器中內(nèi)容為地址,以該地址中內(nèi)容為操作數(shù)的尋址方式。間接尋址的存儲(chǔ)器空間包括內(nèi)部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM。能用于寄存器間接尋址的寄存器有R0,R1,DPTR,SP。其中R0、R1必須是工作寄存器組中的寄存器。SP僅用于堆棧操作。例如:MOV R0,A ;內(nèi)部RAM(R0)A其指令操作過(guò)程示意圖如圖3-1所示。又如:MOVX A,R1;A外部RAM(P2R1)其指令操作過(guò)程示意圖如圖3-2所示。再如:M

25、OVX DPTR,A;外部RAM(DPTR)A 其指令操作過(guò)程示意圖如圖3-3所示。3.2.5 變址尋址變址尋址只能對(duì)程序存儲(chǔ)器中數(shù)據(jù)進(jìn)行操作。由于程序存儲(chǔ)器是只讀的,因此變址尋址只有讀操作而無(wú)寫(xiě)操作,在指令符號(hào)上采用MOVC的形式(如圖3-4所示)。例如:MOVC A, A+DPTR;A(A+DPTR)又如,MOVC A, A+PC ;A(A+PC) 這條指令與上條指令不同的是,基址寄存器是PC。3.2.6 相對(duì)尋址以當(dāng)前程序計(jì)數(shù)器PC的內(nèi)容為基礎(chǔ),加上指令給出的一字節(jié)補(bǔ)碼數(shù)(偏移量)形成新的PC值的尋址方式。相對(duì)尋址用于修改PC值,主要用于實(shí)現(xiàn)程序的分支轉(zhuǎn)移。 例如,SJMP 08H ;P

26、CPC+2+08H 指令操作示意圖如圖3-5所示。3.2.7 位尋址位尋址只能對(duì)有位地址的單元作位尋址操作。位尋址其實(shí)是一種直接尋址方式,不過(guò)其地址是位地址。 例如:SETB 10H ;將10H位置1若22H單元中存放著數(shù)據(jù)40H,22H單元的D0位的位地址為10H,執(zhí)行上述指令后(22H)=41H。 又如:MOV 32H,C ;32H進(jìn)位位C ORL C ,32H ;CC32H教學(xué)方法多媒體演示,借助軟件做演示實(shí)驗(yàn),增強(qiáng)學(xué)生對(duì)知識(shí)的理解,提高他們對(duì)本課程的興趣。作業(yè)安排及課后反思作業(yè):P56,第1、6題。課前準(zhǔn)備情況及其他相關(guān)特殊要求課前預(yù)習(xí)3.1,3.2節(jié)參考資料(具體到哪一章節(jié)或頁(yè)碼)教

27、材第35-51頁(yè)。謝維成, 楊加國(guó). 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第3版)M. 北京: 清華大學(xué)出版社, 2014. 第3章。各大電子類(lèi)專(zhuān)業(yè)網(wǎng)站。7.5教學(xué)單元五教學(xué)日期第5次課教學(xué)目標(biāo)掌握單片機(jī)的尋址方式,指令特點(diǎn),功能和使用。教學(xué)內(nèi)容3.3匯編語(yǔ)言的編程方法重點(diǎn):51單片機(jī)匯編語(yǔ)言的指令系統(tǒng);指令表的查閱方法和指令功能的描述。難點(diǎn):51單片機(jī)匯編語(yǔ)言的指令系統(tǒng)。教學(xué)過(guò)程3.3.1 數(shù)據(jù)傳送類(lèi)指令數(shù)據(jù)傳送類(lèi)指令共28條,是將源操作數(shù)送到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。數(shù)據(jù)傳送類(lèi)指令用到的助記符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PU

28、SH、POP8種。源操作數(shù)可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。MCS-51單片機(jī)片內(nèi)數(shù)據(jù)傳送途徑如圖3-6所示。1以A為目的操作數(shù)MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A #data2以Rn為目的操作數(shù)MOV Rn,A;Rn AMOV Rn,direct;Rn (direct)MOV Rn,#data;Rn #data3以直接地址為目的操作數(shù)MOV Ri,A;(Ri) AMOV Ri,direct;(Ri) (direct)MO

29、V Ri,#data;(Ri) #data4以間接地址為目的操作數(shù)MOV Ri,A;(Ri) AMOV Ri,direct;(Ri) (direct)MOV Ri,#data;(Ri) #data例如:設(shè)(30H)=6FH,R1=40H,執(zhí)行MOV R1,30H后,30H單元中數(shù)據(jù)取出送入R1間接尋址的40H單元,(40H)=6FH。5以DPTR為目的操作數(shù)MOV DPTR,#data16 ;DPTR #data16例如執(zhí)行 MOV DPTR,#2000H 后,(DPTR)= 2000H。 6訪(fǎng)問(wèn)外部數(shù)據(jù)RAM MOVX A,DPTR;A (DPTR)MOVX DPTR,A;(DPTR) AM

30、OVX A,Ri;A (P2Ri)MOVX Ri,A;(P2Ri) A7讀程序存儲(chǔ)器MOVC A,A+DPTR;A (A+DPTR)MOVC A,A+PC;A (A+PC)例如已知A=30H,DPTR=3000H, 程序存儲(chǔ)器單元(3030H)=50H,執(zhí)行MOVC A, A+DPTR后,A=50H。8數(shù)據(jù)交換l 字節(jié)交換XCH A,Rn;A RnXCH A ,direct;A(direct)XCH A,Ri;A(Ri)l 半字節(jié)交換XCHD A,Ri;A03(Ri)03SWAP A;A03A479堆棧操作所謂堆棧是在片內(nèi)RAM中按“先進(jìn)后出,后進(jìn)先出”原則設(shè)置的專(zhuān)用存儲(chǔ)區(qū)。數(shù)據(jù)的進(jìn)棧出棧由指

31、針SP統(tǒng)一管理。堆棧的操作有如下兩條專(zhuān)用指令: PUSH direct;SP(SP+1),(SP)(direct) POPdirect;(direct)(SP),SP SP-1PUSH是進(jìn)棧(或稱(chēng)為壓入操作)指令。指令執(zhí)行過(guò)程如圖3-7所示?!纠?.1】 將片內(nèi)RAM 30H單元與40H單元中的內(nèi)容互換。方法1(直接地址傳送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(間接地址傳送法): MOVR0,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$方法3(字節(jié)交換傳送法): MOVA,30H

32、 XCHA,40H MOV30H,A SJMP$方法4(堆棧傳送法): PUSH30H PUSH40H POP30H POP40H SJMP$3.3.2 算術(shù)運(yùn)算類(lèi)指令1加法指令A(yù)DD A,Rn;A A + RnADD A,direct;A A +(direct)ADD A,Ri;A A +(Ri)ADD A,#data;A A + #data2帶進(jìn)位加指令A(yù)DDC A,Rn;A A + Rn + CADDC A,direct;A A +(direct)+ CADDC A,Ri;A A +(Ri)+ CADDC A,#data;A A + #data + CC為來(lái)自PSW狀態(tài)寄存器中的進(jìn)位位C

33、。例如,設(shè)A=20H,R0=21H,C=1,執(zhí)行指令 ADDC,R0后,A=42H。 3帶借位減指令SUBB A,Rn;A A - Rn - CSUBB A,direct;A A -(direct)- CSUBB A,Ri;A A -(Ri)- CSUBB A,#data;A A - #data C例如,設(shè)A=39H,R0=20H,(20H)=32H,C=1,執(zhí)行指令 SUBB,R0后,A=06H。4乘法指令MUL AB;BA ABA和B中各存放一個(gè)8位無(wú)符號(hào)數(shù),指令執(zhí)行后,16位乘積的高8位在B中,低8位存A中。例如,A=30H,B=60H,執(zhí)行 MUL AB 后,A=00H,B=12H。

34、5除法指令 DIV AB;AB商在A中,余數(shù)在B中 A和B中各存放一個(gè)8位無(wú)符號(hào)數(shù),A放被除數(shù),B放除數(shù)。指令執(zhí)行后,A中存放商,B中存入余數(shù)。若B=00H,則指令執(zhí)行后OV=1,A與B不變。 例如,A=30H,B=07H,執(zhí)行 DIV AB 后,A=06H,B=06H。6加1指令I(lǐng)NC A;A A + 1INC Rn;Rn Rn + 1INC direct;(direct) (direct)+ 1INC Ri;(Ri)(Ri)+ 1INC DPTR;DPTR DPTR + 1例如,(30H)=22H,執(zhí)行 INC 30H 后,(30H)=23H。7減1指令DEC A;A A - 1DEC R

35、n;Rn Rn - 1DEC direct;direct (direct)- 1DEC Ri;(Ri)(Ri)- 1例如,R0=30H,(30H)=22H,執(zhí)行 DEC R0 后,(30H)=21H。8十進(jìn)制調(diào)整指令DA A ;把A中按二進(jìn)制相加的結(jié)果調(diào)整成按BCD碼相加的結(jié)果例如,A=65BCD,B=78BCD,C=0,執(zhí)行下列語(yǔ)句ADDA,BDAA后,A=43 BCD,C=1?!纠?.2】 試把存放在R1R2和R3R4中的兩個(gè)16位數(shù)相加,結(jié)果存于R5R6中。解:參考程序如下: MOVA,R2;取第一個(gè)數(shù)的低8位 ADDA,R4;兩數(shù)的低8位相加 MOVR6,A;保存和的低8位 MOVA,

36、R1;取第一個(gè)數(shù)的高8位 ADDCA,R3;兩數(shù)的高8位相加,并把低8位相加時(shí)的進(jìn)位位加進(jìn)來(lái) MOVR5,A;把相加的高8位存入R5寄存器中 SJMP $ 教學(xué)方法多媒體演示,借助軟件做演示實(shí)驗(yàn),增強(qiáng)學(xué)生對(duì)知識(shí)的理解,提高他們對(duì)本課程的興趣。作業(yè)安排及課后反思作業(yè):P56,第8、9題。課前準(zhǔn)備情況及其他相關(guān)特殊要求課前預(yù)習(xí)3.3節(jié)。參考資料(具體到哪一章節(jié)或頁(yè)碼)教材第51-56頁(yè)。謝維成, 楊加國(guó). 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第3版)M. 北京: 清華大學(xué)出版社, 2014. 第3章。7.6教學(xué)單元六教學(xué)日期第6次課。教學(xué)目標(biāo)掌握C51語(yǔ)言的指令格式,數(shù)據(jù)結(jié)構(gòu),功能和使用。教學(xué)內(nèi)容第

37、4章單片機(jī)的C51語(yǔ)言 4.1C51的程序結(jié)構(gòu)重點(diǎn):C51語(yǔ)言的指令格式,數(shù)據(jù)結(jié)構(gòu)。難點(diǎn):C51語(yǔ)言與通用C語(yǔ)言的區(qū)別。教學(xué)過(guò)程一、C51 概述C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。目前,使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)已經(jīng)成為軟件開(kāi)發(fā)的一個(gè)主流。用C語(yǔ)言開(kāi)發(fā)系統(tǒng)既可以大大縮短開(kāi)發(fā)周期,明顯增強(qiáng)程序的可讀性,又便于改進(jìn)和擴(kuò)充。而且針對(duì)8051的C語(yǔ)言(C51)日趨成熟,已成為了專(zhuān)業(yè)化的實(shí)用高級(jí)語(yǔ)言。一般來(lái)說(shuō),C51有如下特點(diǎn):1)C語(yǔ)言作為一種非常方便的語(yǔ)言而得到廣泛的支持,國(guó)內(nèi)最通用的是Keil C51;2)C語(yǔ)言程序本身不依賴(lài)于機(jī)器硬件系統(tǒng),基本上不作修改

38、就可將程序從不同的單片機(jī)中移植過(guò)來(lái);3)C提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開(kāi)發(fā)效率高,故可縮短開(kāi)發(fā)時(shí)間,增加程序可讀性和可維護(hù)性。而C51與ASM-51相比,有如下優(yōu)點(diǎn):1)對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì)8051 的存貯器結(jié)構(gòu)有初步了解;2)寄存器分配、不同存貯器的尋址及數(shù)據(jù)類(lèi)型等細(xì)節(jié)可由編譯器管理;3)程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;4)具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;5)提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;6)由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植。正是上述這些優(yōu)點(diǎn),C51如今已成為51

39、系列單片機(jī)的主流開(kāi)發(fā)語(yǔ)言。二、 C51的語(yǔ)法C51的語(yǔ)法與C語(yǔ)言基本相同,因此本書(shū)將著重介紹C51與C語(yǔ)言的不同之處,從而有利于讀者更好地把握兩者的相同之處與不同之處,為以后寫(xiě)C51源程序打好基礎(chǔ)。1)C51的常量和變量C51的常量和變量與C語(yǔ)言的常量和變量基本相同,其不同之處主要在于變量的聲明的形式,C語(yǔ)言的變量聲明的一般格式是:(存儲(chǔ)種類(lèi)) 數(shù)據(jù)類(lèi)型變量而在C51中,變量聲明的一般格式則是:(存儲(chǔ)種類(lèi)) 數(shù)據(jù)類(lèi)型(存儲(chǔ)器類(lèi)型)變量其中,“存儲(chǔ)種類(lèi)”和“存儲(chǔ)器類(lèi)型”是可選項(xiàng)。變量的存儲(chǔ)種類(lèi)有四種:自動(dòng)(auto)、外部(extern)、靜態(tài)(static)和寄存器(register)。在定義

40、一個(gè)變量時(shí)如果省略存儲(chǔ)種類(lèi)選項(xiàng),則該變量將為自動(dòng)(auto)變量。定義一個(gè)變量時(shí)除了需要說(shuō)明其數(shù)據(jù)類(lèi)型之外,C51編譯器還允許說(shuō)明變量的存儲(chǔ)器類(lèi)型。存儲(chǔ)器類(lèi)型的說(shuō)明就是指定該變量在C51硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,并在編譯時(shí)準(zhǔn)確的定位。關(guān)于C51的存儲(chǔ)器類(lèi)型,我們將在本章后面的小節(jié)做詳細(xì)的介紹。2)C51的數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)關(guān)鍵字所占位數(shù)數(shù)的表示范圍整型有(signed) int16-3276832767(signed) short16-3276832767(signed) long32-2147483648247483647無(wú)unsigned int16065535unsigned short

41、 int16065535unsigned long int3204294967295實(shí)型有Float323.4e-383.4e38有Double641.7e-3081.7e308字符型有Char8-128127無(wú)unsigned char80255除了上述的數(shù)據(jù)類(lèi)型,C51還有以下四種數(shù)據(jù)類(lèi)型擴(kuò)充定義:bit 位變量 位變量是C51的一種擴(kuò)充數(shù)據(jù)類(lèi)型,利用它可以定義一個(gè)位變量,但不能定義位指針,也不能定義位數(shù)組。它的值是一個(gè)二進(jìn)制位,不是就是0就是,類(lèi)似一些高級(jí)語(yǔ)言中的布爾類(lèi)型中的True和Flase。Sfr特殊功能寄存器Sfr也是一種擴(kuò)充數(shù)據(jù)類(lèi)型,占用一個(gè)內(nèi)存單元,值域?yàn)?255。利用它可以

42、訪(fǎng)問(wèn)51單片機(jī)內(nèi)部的所有特殊功能寄存器。例如Sfr=0X90上述語(yǔ)句定義了P1為P1端口在片內(nèi)的寄存器,在后面的語(yǔ)句中用P1=255(或P1=0FFH,對(duì)P1端口的所有引腳置高電平)之類(lèi)的語(yǔ)句來(lái)操作特殊功能寄存器。Sfr16 16位特殊功能寄存器Sfr16占用兩個(gè)內(nèi)存單元,值域?yàn)?65535。sfr16和sfr一樣用于操作特殊功能寄存器,所不同的是它用于操作占兩個(gè)字節(jié)的寄存器,比如定時(shí)器T0和T1。當(dāng)然sfr16也可以像sfr一樣用一個(gè)字的方式訪(fǎng)問(wèn),比如定時(shí)器T2,可以分別以TL2和TH2進(jìn)行訪(fǎng)問(wèn)。Sbit 可尋址位位是C51中的一種擴(kuò)充數(shù)據(jù)類(lèi)型,利用它可以訪(fǎng)問(wèn)芯片內(nèi)部的RAM中的可位尋址位或

43、特殊功能寄存器中的可位尋址位。例如定義sfr P1=0X90;sbit P1_1=P11;這樣在以后的程序語(yǔ)句中就可以用P1_1來(lái)對(duì)P1.1引腳進(jìn)行讀寫(xiě)操作了。3)C51的存儲(chǔ)類(lèi)型在C51中,存儲(chǔ)器類(lèi)型指定了該變量在硬件系統(tǒng)中所使用的存儲(chǔ)區(qū)域,并在編譯時(shí)準(zhǔn)確的定位。存儲(chǔ)類(lèi)型存儲(chǔ)位置長(zhǎng)度數(shù)據(jù)范圍Data直接尋址片內(nèi)RAM8位0255Bdata可位尋址片內(nèi)RAM1位0/1Idata間接尋址片內(nèi)RAM8位0255Pdata片外頁(yè)RAM8位0255Xdata片外RAM16位065535Code程序ROM16位065535data 區(qū) data區(qū)的尋址是最快的,所以應(yīng)該把經(jīng)常使用的變量放在data區(qū);但

44、是data區(qū)的空間是有限的。Data區(qū)聲明中的存儲(chǔ)器類(lèi)型標(biāo)識(shí)符為data ,通常指低128字節(jié)的內(nèi)部數(shù)據(jù)區(qū)存儲(chǔ)的變量,可直接尋址。bdata區(qū) bdata區(qū)實(shí)際就是data區(qū)的位尋址區(qū),在這個(gè)區(qū)聲明變量就可進(jìn)行位尋址。bdata區(qū)聲明中的存儲(chǔ)器類(lèi)型標(biāo)識(shí)符為bdata,指內(nèi)部可位尋址的16字節(jié)存儲(chǔ)區(qū)可位尋址的變量的數(shù)據(jù)類(lèi)型。idata區(qū) idata區(qū)也用于存放使用比較頻繁的變量,使用寄存器作為指針進(jìn)行尋址,即在存儲(chǔ)器中設(shè)置8位地址進(jìn)行間接尋址。Idata區(qū)聲明中的存儲(chǔ)類(lèi)型標(biāo)識(shí)符為idata,指內(nèi)部的256字節(jié)的存儲(chǔ)區(qū),但是只能間接尋址,速度比直接尋址慢。pdata區(qū)和xdata區(qū) pdata和x

45、data區(qū)屬于外部存儲(chǔ)區(qū),外部數(shù)據(jù)區(qū)是可讀寫(xiě)的存儲(chǔ)區(qū),最多可有64KB。Pdata和xdata區(qū)聲明中的存儲(chǔ)器類(lèi)型標(biāo)識(shí)符分別為pdata和xdata,xdata存儲(chǔ)器類(lèi)型標(biāo)識(shí)符可以指定外部數(shù)據(jù)區(qū)64KB內(nèi)的任何地址,而pdata存儲(chǔ)器類(lèi)型標(biāo)識(shí)符僅指定1頁(yè)或256字節(jié)的外部數(shù)據(jù)區(qū)。code區(qū) 程序儲(chǔ)存器的數(shù)據(jù)是不可改變的,程序存儲(chǔ)器區(qū)code 聲明中的標(biāo)識(shí)符為code,在C51中用code存儲(chǔ)器類(lèi)型標(biāo)識(shí)符來(lái)訪(fǎng)問(wèn)程序存儲(chǔ)區(qū)。4)C51的運(yùn)算符C51的運(yùn)算符與C語(yǔ)言的運(yùn)算符基本相同,以下為C51常用的運(yùn)算符:算術(shù)運(yùn)算符:+ - * / % + -(加 減 乘 除 取模 自增自減)關(guān)系運(yùn)算符: = (

46、位右移 位左移)& | (按位與 按位或 按位異或 按位取反)5)C51的基本語(yǔ)句C51的基本語(yǔ)句與C語(yǔ)言的基本語(yǔ)句基本相同,如下所示:If-else 選擇語(yǔ)句 switch/case 多分支選擇語(yǔ)句 while 循環(huán)語(yǔ)句 do-while 循環(huán)語(yǔ)句 for 循環(huán)語(yǔ)句C51的基本語(yǔ)句與C語(yǔ)言的基本語(yǔ)句的使用方法和注意事項(xiàng)基本相同,在此不作多余敘述。6)C51的程序結(jié)構(gòu)與一般C語(yǔ)言的結(jié)構(gòu)相同,以main()函數(shù)為程序人口,程序體中包含若干語(yǔ)句還可以包含若干函數(shù),以下為C51函數(shù)的一般格式: 類(lèi)型 函數(shù)名(參數(shù)表) 數(shù)據(jù)說(shuō)明部分 語(yǔ)句執(zhí)行部分 其中,類(lèi)型指定函數(shù)值的類(lèi)型,即函數(shù)帶回來(lái)的值類(lèi)型。7)

47、C51的頭文件C51的頭文件與C語(yǔ)言的頭文件基本相同。但由于51系列單片機(jī)的結(jié)構(gòu)特點(diǎn),常有的頭文件主要有reg51.h math.h ctype.h stdio.h stdlib.h absacc.h。reg51.h主要定義了51系列單片機(jī)的特殊功能寄存器和位寄存器;math.h 主要定義了常用的數(shù)學(xué)運(yùn)算函數(shù);ctype.h主要定義了常用的字符函數(shù);stdio.h主要定義了一般I/O函數(shù);stdlib.h主要定義了常用的標(biāo)準(zhǔn)函數(shù);absacc.h則定義了絕對(duì)地址訪(fǎng)問(wèn)的函數(shù)。如果想進(jìn)一步了解上述各個(gè)頭文件包含的函數(shù),可以參照C51頭文件的相關(guān)技術(shù)手冊(cè)。例:include void main( )

48、數(shù)據(jù)說(shuō)明部分;語(yǔ)句執(zhí)行部分;8)中斷服務(wù)程序51單片機(jī)的中斷系統(tǒng)非常重要,可以用C51來(lái)聲明中斷和編寫(xiě)中斷服務(wù)程序,中斷過(guò)程通過(guò)使用interrupt關(guān)鍵字和中斷編號(hào)04實(shí)現(xiàn)。中斷服務(wù)程序聲明的一般格式為:返回值 函數(shù)名()interrupt n 其中,對(duì)應(yīng)著中斷源的編號(hào),中斷編號(hào)告訴編譯器中斷程序的入口地址,它對(duì)應(yīng)著IE寄存器的使能位,即IE寄存器中的0位對(duì)應(yīng)著外部中斷0,相應(yīng)的外部中斷0的中斷編號(hào)是0。8051單片機(jī)的中斷源以及中斷編號(hào)如下表所示:中斷編號(hào)中斷源入口地址0外部中斷00003H1定時(shí)器/計(jì)數(shù)器0溢出000BH2外部中斷10013H3定時(shí)器/計(jì)數(shù)器1溢出001BH4串行口中斷0

49、023H當(dāng)正在執(zhí)行一個(gè)特定的任務(wù)時(shí),可能有更緊急的事情需要CPU處理,這就涉及到了中斷優(yōu)先級(jí)。高的優(yōu)先級(jí)中斷可以中斷正在處理的低的優(yōu)先級(jí)中斷程序,因而最好給每種優(yōu)先程序分配不同的寄存器組。在C51中可使用using指定寄存器組,using后的變量為03的常整數(shù),分別表示51單片機(jī)內(nèi)的4個(gè)寄存器組。中斷服務(wù)程序的完整格式如下:返回值函數(shù)名()interrupt n using n 例:unsigned int interrputcnt;unsigned char second;void timer0 (void) interrupt 1 using 2if(+interruptcnt=4000)/*計(jì)數(shù)到4000*/second+;/*另一個(gè)計(jì)數(shù)器*/interruptcnt=0;/*計(jì)數(shù)器清零*/介紹完C51的基本語(yǔ)法之后,現(xiàn)在以?xún)蓚€(gè)實(shí)例作為參考,兩個(gè)實(shí)例都分別給出它們的匯編源程序和C51程序以便作比較。例1:清零程序 (將2000H20FFH的內(nèi)容清零) 匯編源程序 ORG 0000HSE01: MOV R0,#00H MOV DPTR,#2000H ;(0000H)送DPTRLOO1: CLR A MOVX DPTR,A ;0送(DPTR) INC DPTR ;DPTR+1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論