![單片機基礎(chǔ)知識資料_第1頁](http://file4.renrendoc.com/view/7716aa106e0c54db0f8035d14d4dc781/7716aa106e0c54db0f8035d14d4dc7811.gif)
![單片機基礎(chǔ)知識資料_第2頁](http://file4.renrendoc.com/view/7716aa106e0c54db0f8035d14d4dc781/7716aa106e0c54db0f8035d14d4dc7812.gif)
![單片機基礎(chǔ)知識資料_第3頁](http://file4.renrendoc.com/view/7716aa106e0c54db0f8035d14d4dc781/7716aa106e0c54db0f8035d14d4dc7813.gif)
![單片機基礎(chǔ)知識資料_第4頁](http://file4.renrendoc.com/view/7716aa106e0c54db0f8035d14d4dc781/7716aa106e0c54db0f8035d14d4dc7814.gif)
![單片機基礎(chǔ)知識資料_第5頁](http://file4.renrendoc.com/view/7716aa106e0c54db0f8035d14d4dc781/7716aa106e0c54db0f8035d14d4dc7815.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機基礎(chǔ)知識資料第1頁/共151頁21.電子計算機的發(fā)展概述2.單片機的發(fā)展過程及產(chǎn)品近況
3.單片機的特點4.單片機應(yīng)用系統(tǒng)開發(fā)簡介第1、3章單片機應(yīng)用概述與開發(fā)步驟單片機簡介第2頁/共151頁3單片機及其展過程單片機是什么?單片機是單片微型計算機的簡稱,它是在一塊半導(dǎo)體芯片上,集成了CPU、半導(dǎo)體存儲器、I/O(Input/Output)接口、中斷系統(tǒng)和定時器等計算機必備部件,所構(gòu)成的一個完整的數(shù)字電子計算機。第1、3章單片機應(yīng)用概述與開發(fā)步驟第3頁/共151頁4單片機現(xiàn)狀單片機經(jīng)過約30年的發(fā)展,已經(jīng)形成有幾千種型號上百種品牌的半導(dǎo)體產(chǎn)業(yè),對電子信息技術(shù)、工業(yè)控制技術(shù)、軍事技術(shù)的發(fā)展起到巨大的推動作用。目前主流的單片機:51內(nèi)核的系列單片機Microchip公司的PIC系列單片機Motorola公司的68系列TexasInstrument公司的MSP16bit系列單片機ARM內(nèi)核的32bit系列單片機第1、3章單片機應(yīng)用概述與開發(fā)步驟第4頁/共151頁5單片機應(yīng)用系統(tǒng)開發(fā)簡介單片機應(yīng)用系統(tǒng)是以單片機為核心構(gòu)成的智能化產(chǎn)品。為了實現(xiàn)產(chǎn)品的智能化處理與智能化控制,還要嵌入相應(yīng)的控制程序,稱之為單片機應(yīng)用軟件。嵌入了應(yīng)用軟件的單片機系統(tǒng)稱為單片機應(yīng)用系統(tǒng)。單片機是單片機系統(tǒng)中的一個器件,單片機系統(tǒng)是構(gòu)成某一單片機應(yīng)用系統(tǒng)的全部硬件電路,單片機應(yīng)用系統(tǒng)是單片機系統(tǒng)和應(yīng)用軟件相結(jié)合的產(chǎn)物。
第1、3章單片機應(yīng)用概述與開發(fā)步驟第5頁/共151頁6單片機應(yīng)用系統(tǒng)的研制步驟和方法單片機應(yīng)用系統(tǒng)開發(fā)的軟硬件環(huán)境KeilC51高級語言集成開發(fā)環(huán)境基于Proteus的單片機系統(tǒng)仿真4.單片機應(yīng)用系統(tǒng)開發(fā)簡介Proteus開發(fā)環(huán)境第1、3章單片機應(yīng)用概述與開發(fā)步驟第6頁/共151頁7單片機應(yīng)用系統(tǒng)的研制流程如圖所示:第1、3章單片機應(yīng)用概述與開發(fā)步驟第7頁/共151頁8硬件系統(tǒng)
根據(jù)總體設(shè)計中確立的功能特性要求,確定單片機的型號、所需外圍擴展芯片、存儲器、I/O電路、驅(qū)動電路,可能還有A/D和D/A轉(zhuǎn)換電路以及其它模擬電路,設(shè)計出應(yīng)用系統(tǒng)的電路原理圖。第1、3章單片機應(yīng)用概述與開發(fā)步驟第8頁/共151頁9硬件設(shè)計硬件電路做成目標板運用PROTEUS、PROTEL等軟件第1、3章單片機應(yīng)用概述與開發(fā)步驟第9頁/共151頁10軟件系統(tǒng)系統(tǒng)資源分配程序結(jié)構(gòu)數(shù)學(xué)模型程序流程編制程序第1、3章單片機應(yīng)用概述與開發(fā)步驟第10頁/共151頁11程序設(shè)計通常是C語言或者匯編語言,在特定的集成開發(fā)環(huán)境(IDE)中編程調(diào)試,比如應(yīng)用最廣泛的KEILuVision3第1、3章單片機應(yīng)用概述與開發(fā)步驟第11頁/共151頁12單片機應(yīng)用系統(tǒng)的研制步驟和方法簡介。第1、3章單片機應(yīng)用概述與開發(fā)步驟第12頁/共151頁13
一個典型的單片機系統(tǒng)開發(fā)環(huán)境組成如圖所示。
單片機系統(tǒng)開發(fā)環(huán)境組成第1、3章單片機應(yīng)用概述與開發(fā)步驟第13頁/共151頁144.1MCS-51系列及80C51系列單片機簡介4.280C51系列單片機外引腳功能4.380C51單片機內(nèi)部結(jié)構(gòu)4.4低功耗運行方式4.580C51單片機最小系統(tǒng)4.80C51單片機硬件基礎(chǔ)知識重點重點重點第14頁/共151頁154.1MCS-51系列及80C51系列單片機簡介MCS-51系列和80C51系列單片機Intel公司推出的系列單片機有:MCS-48、MCS-51、MCS-96系列。Intel公司單片機系列的符號包括51和52兩個子系列。第4章
80C51單片機硬件基礎(chǔ)知識第15頁/共151頁16基于HMOS工藝,它們的指令系統(tǒng)與芯片引腳完全兼容,只是片內(nèi)程序存儲器(ROM)有所不同。51系列單片機80318051875l80C3180C5187C5l第4章
80C51單片機硬件基礎(chǔ)知識第16頁/共151頁17MCS-51系列單片機內(nèi)部組成8位CPU。片內(nèi)帶振蕩器及時鐘電路。128B片內(nèi)數(shù)據(jù)存儲器。4KB片內(nèi)程序存儲器(8031/80C31無)。程序存儲器的尋址范圍為64KB。片外數(shù)據(jù)存儲器的尋址范圍為64KB。21B特殊功能寄存器。4×8根I/O線。1個全雙工串行I/O接口,可多機通信。2個16位定時器/計數(shù)器。中斷系統(tǒng)有5個中斷源,可編程為兩個優(yōu)先級。111條指令,含乘法指令和除法指令。布爾處理器。使用單+5V電源。51子系列的主要功能為:第4章
80C51單片機硬件基礎(chǔ)知識第17頁/共151頁18與51子系列的不同之處在于:片內(nèi)數(shù)據(jù)存儲器增至256B,片內(nèi)程序存儲器增至8KB(8032/80C32無),有26B的特殊功能寄存器,有3個16位定時器/計數(shù)器,有6個中斷源。其他性能均與5l子系列相同。52系列單片機80328052875280C3280C5287C52第4章
80C51單片機硬件基礎(chǔ)知識第18頁/共151頁19Intel80C51系列單片機產(chǎn)品命名規(guī)則
第4章
80C51單片機硬件基礎(chǔ)知識第19頁/共151頁204.280C51系列單片機外引腳功能常用兩種封裝為雙列直插式DIP40和方形封裝式LCC44P1口P3口P0口P2口
時鐘端
復(fù)位端控制信號
接VCC(+5V)
接地端第20頁/共151頁214.280C51系列單片機外引腳功能第4章
80C51單片機硬件基礎(chǔ)知識第21頁/共151頁22地址、數(shù)據(jù)和控制:三總線結(jié)構(gòu)80C51三總線具有以下特點:
(1)P0口的地址/數(shù)據(jù)復(fù)用。(2)兩個獨立的并行擴展空間。(3)外圍數(shù)據(jù)存儲器擴展的統(tǒng)一編址。
鎖存器第4章
80C51單片機硬件基礎(chǔ)知識第22頁/共151頁2380C51單片機內(nèi)部結(jié)構(gòu)框圖第23頁/共151頁24中央處理器CPU
單片機最核心的部分是CPU,可以說CPU是單片機的大腦和心臟。第4章
80C51單片機硬件基礎(chǔ)知識第24頁/共151頁25存儲器組織(哈佛結(jié)構(gòu))第25頁/共151頁26在程序存儲器中,以下單元具有特殊功能0000H:80C51復(fù)位后,PC=0000H,即程序從0000H開始執(zhí)行指令。0003H:外部中斷0入口。000BH:定時器0溢出中斷入口。0013H:外部中斷1入口。001BH:定時器1溢出中斷入口。0023H:串行口中斷入口。002BH:定時器2入口(僅52子系列有)。
程序存儲器(51子序列)程序存儲器用于存放編好的程序或表格常數(shù)第26頁/共151頁27數(shù)據(jù)存儲器
數(shù)據(jù)存儲器用于存放中間運算結(jié)果、數(shù)據(jù)暫存和緩沖、標志位等。
80C51系列單片機數(shù)據(jù)存儲器有片內(nèi)和片外之分。片內(nèi)又有RAM和SFR之分,這幾個部分的訪問指令不同的,從這一點看,數(shù)據(jù)存儲器的使用比程序存儲器略微復(fù)雜點。采用C51語言編程則要簡單許多。第4章
80C51單片機硬件基礎(chǔ)知識第27頁/共151頁28
這樣可把數(shù)據(jù)存儲器分為片外數(shù)據(jù)存儲器、片內(nèi)數(shù)據(jù)存儲器、特殊功能存儲器,以下分別加以介紹。1)片內(nèi)數(shù)據(jù)存儲器
片內(nèi)數(shù)據(jù)存儲器分為工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖器區(qū)等三個區(qū)域。第4章
80C51單片機硬件基礎(chǔ)知識第28頁/共151頁29工作寄存器區(qū)00H~1FH單元為工作寄存器區(qū)。工作寄存器也稱通用寄存器,供用戶編程時使用,臨時寄存8位信息。
80c51單片機片內(nèi)RAM配置1)片內(nèi)數(shù)據(jù)存儲器
第29頁/共151頁30位尋址區(qū)
20H~2FH單元是位尋址區(qū),該區(qū)的每一位都賦予了一個位地址。數(shù)據(jù)緩沖區(qū)
30H~7FH是數(shù)據(jù)緩沖區(qū),即用戶RAM區(qū),共80個單元。堆棧與堆棧指針
片內(nèi)RAM的部分單元還可以用作堆棧。1)片內(nèi)數(shù)據(jù)存儲器
第30頁/共151頁312)特殊功能寄存器
所有單片機片內(nèi)外設(shè)是依靠對內(nèi)部特殊功能寄存器的操作實現(xiàn)其功能的,80C51也不例外,特殊功能寄存器(SFR,SpecialFunctionRegister)也稱專用寄存器,專用于控制、管理單片機內(nèi)部算術(shù)邏輯部件、并行I/O口、串行I/O口、定時器/計數(shù)器、中斷系統(tǒng)等功能模塊的工作,用戶在編程時可以置數(shù)設(shè)定,不能移作他用。
通過特殊功能寄存器可實現(xiàn)對單片機內(nèi)部資源的操作和管理。第4章
80C51單片機硬件基礎(chǔ)知識第31頁/共151頁32常用特殊功能寄存器第32頁/共151頁33常用特殊功能寄存器第4章
80C51單片機硬件基礎(chǔ)知識第33頁/共151頁34端口P0~P3特殊功能寄存器P0~P3分別是I/O端口P0~P3的鎖存器。80C51單片機是把I/O當(dāng)作一般的特殊功能寄存器使用,不專設(shè)端口操作指令,使用方便。常用特殊功能寄存器第4章
80C51單片機硬件基礎(chǔ)知識第34頁/共151頁354.580C51單片機最小系統(tǒng)單片機最小系統(tǒng)就是能使單片機工作的最少的器件構(gòu)成的系統(tǒng),是大多數(shù)控制系統(tǒng)所必不可少的關(guān)鍵部分。第35頁/共151頁36圖為80C32單片機的外部擴展總線。擴展外部接口電路第4章
80C51單片機硬件基礎(chǔ)知識第36頁/共151頁37將80C32單片機的外部擴展總線接到外部程序存儲器的地址總線、數(shù)據(jù)總線和控制總線,即構(gòu)成80C32單片機最小系統(tǒng)。擴展外部接口電路第4章
80C51單片機硬件基礎(chǔ)知識第37頁/共151頁385.1計算機語言概述5.280C51單片機尋址方式5.380C51單片機指令系統(tǒng)5.480C51匯編語言程序設(shè)計5.580C51單片機C51程序設(shè)計語言5.6C51的運算符和表達式5.7C51的庫函數(shù)5.8C51的應(yīng)用技巧暫時不講580C51單片機軟件基礎(chǔ)知識第38頁/共151頁39單片機應(yīng)用系統(tǒng)硬件軟件程序設(shè)計的最終結(jié)果是軟件。第5章
80C51單片機軟件基礎(chǔ)知識第39頁/共151頁40機器語言是計算機唯一能識別的語言,用匯編語言和高級語言編寫的程序(稱為源程序)最終都必須翻譯成機器語言的程序(稱為目標程序),計算機才能識別。計算機語言e10033f6bf020b510f3a58cc85025068131cbe1fbea11bf01
e11b657b8111bb21138974b4b4879f9ad86e08bc8bdffffe820
e13403d01741a7f3aaebf32dff050e8f05af7d88bd8268a1aa
e14f4a75f9ebdecb57bb21138bc140f727f7f58bfbba1114f4f4a
e1683957ff9528bc5f725f7372bc895f7652f737952be8feefe
e18110796c66fe10746d014d1d1d1e579ec5ab8111ff74b4b48
e19b3bd075f75fc383f783a65d5982cdb284246957a9c5caaa1b
e1b44f52b4923fab6e9ea81dc63fce6ae7aebb5f7b10b8b4f78
e1cde2bf364e399d79293faf9365216fb5e8e5a6c2e9b043d3a3
e1e6cfd3fdfdcbd14c5ee0635886bb3e9c120bccc91a3478170b3
e1ffd61a9ec2c912e74eadf45fe330e9939d7e8f9f4d244e8d722
e218bee2ce8825cf304aa829ae3f47c62d85e9735413be6e03465第5章
80C51單片機軟件基礎(chǔ)知識第40頁/共151頁41匯編語言是能夠利用單片機所有特性直接控制硬件的唯一語言,對于一些需要直接控制硬件的場合,匯編語言是必不可少的。
但匯編語言不是一種結(jié)構(gòu)化的程序設(shè)計語言,對于較復(fù)雜的單片機應(yīng)用系統(tǒng),它的編寫效率很低。
第5章
80C51單片機軟件基礎(chǔ)知識第41頁/共151頁42許多型號的單片機內(nèi)部ROM已經(jīng)達到64KB甚至更大,且具備在系統(tǒng)編程(ISP,InSystemProgrammable)功能,進一步推動了C語言在單片機應(yīng)用系統(tǒng)開發(fā)中的應(yīng)用。
開發(fā)人員首先必須對C語言有較透徹的掌握,其次還應(yīng)該對實際單片機硬件系統(tǒng)有深入的理解。高級語言第5章
80C51單片機軟件基礎(chǔ)知識第42頁/共151頁43C51的特點和功能主要是80C51單片機自身特點引起的。頭文件:為了實現(xiàn)這些功能,只需將相應(yīng)的功能寄存器的頭文件加載在程序中,就可實現(xiàn)指定的功能。因此,C51系列頭文件集中體現(xiàn)了各系列芯片的不同功能。數(shù)據(jù)類型:由于80C51系列器件包含了位操作空間和豐富的位操作指令,因此C51比ANSIC多一種位類型。
C51特點:第5章
80C51單片機軟件基礎(chǔ)知識第43頁/共151頁44數(shù)據(jù)存儲類型:80C51系列單片機有程序存儲器和數(shù)據(jù)存儲器。數(shù)據(jù)存儲器又分片內(nèi)和片外數(shù)據(jù)存儲器。片內(nèi)數(shù)據(jù)存儲器還分直接尋址區(qū)和間接尋址區(qū),分別對應(yīng)code、data、idata、xdata以及根據(jù)80C51系列特點而設(shè)定的pdata類型。
第5章
80C51單片機軟件基礎(chǔ)知識C51特點:第44頁/共151頁45數(shù)據(jù)運算操作和程序控制:從數(shù)據(jù)運算操作和程序控制語句以及函數(shù)的使用上來講,它們幾乎沒有什么明顯的區(qū)別。只是在函數(shù)的使用上,由于單片機系統(tǒng)的資源有限,它的編譯系統(tǒng)不允許太多的程序嵌套。C51與標準ANSIC庫函數(shù):部分庫函數(shù)不適合單片機處理系統(tǒng),因此被排除在外,如字符屏幕和圖形函數(shù)。第5章
80C51單片機軟件基礎(chǔ)知識第45頁/共151頁46C51的標識符和關(guān)鍵字標識符用來標識源程序中某個對象的名字,這些對象可以是語句、數(shù)據(jù)類型、函數(shù)、變量、數(shù)組等。標識符區(qū)分大小寫,第一個字符必須是字母或下劃線。C51中有些庫函數(shù)的標識符是以下劃線開頭的,所以一般不要以下劃線開頭命名標識符。
第5章
80C51單片機軟件基礎(chǔ)知識第46頁/共151頁47表5.2C51編譯器的擴展關(guān)鍵字bdatacharIB0_at_0X2C;
bitb2;
unsignedintcodeunid[2]={0x1234,0x752b};
intfunc(inti,intj)compact;
第5章
80C51單片機軟件基礎(chǔ)知識第47頁/共151頁48表5.2C51編譯器的擴展關(guān)鍵字(續(xù))voidtimer0(void)interrupt1{……};
sbitp1_1=p1^1;
sfrp1=0x90;
第5章
80C51單片機軟件基礎(chǔ)知識第48頁/共151頁495.5.2C51編譯器能識別的數(shù)據(jù)類型數(shù)據(jù)類型長度大小unsignedchar1B0~255char1B-128~+127unsignedint2B0~65535int2B-32768~+32767unsignedlong4B0~4294967295long4B-2147483648~+2147483647float4B1.175494E-38~3.402823E+38*1B~3B對象的地址bit位0或1sfr1B0~255sfr162B0~65535sbit位0或1第5章
80C51單片機軟件基礎(chǔ)知識第49頁/共151頁50sfr特殊功能寄存器作用:利用它可以訪問51單片機內(nèi)部所有特殊功能寄存器。說明:定義的變量占用一個內(nèi)存單元,值域為0-255。例如:sfrp1=0x90;定義P1為P1端口在片內(nèi)的寄存器。P1=255;對P1端口的所有引腳置高電平。從而來操作特殊功能寄存器。第5章
80C51單片機軟件基礎(chǔ)知識第50頁/共151頁51第5章
80C51單片機軟件基礎(chǔ)知識第51頁/共151頁52sfr特殊功能寄存器80C52特殊功能寄存器表第5章
80C51單片機軟件基礎(chǔ)知識第52頁/共151頁53注:帶*號的特殊功能寄存器都是可位尋址的寄存器。80C52特殊功能寄存器表(續(xù))第5章
80C51單片機軟件基礎(chǔ)知識第53頁/共151頁54sbit定義可位尋址位的特殊功能寄存器的位尋址對象有三種方法:(1)sbit位變量名=位地址
將位的絕對地址賦給位變量,位地址必須位于0x80H-0xFF之間。如:sbitCY=0xD7;第5章
80C51單片機軟件基礎(chǔ)知識第54頁/共151頁55Sbit定義可位尋址位的特殊功能寄存器的位尋址對象有三種方法:(2)sbit位變量名=特殊功能寄存器名^位位置當(dāng)可尋址位位于特殊功能寄存器中時,可采用這種方法。0-7之間的常數(shù)。例如:sfrSCON=0X98;sbitRI=SCON^0;sbitTI=SCON^1;sbitRB8=SCON^2;sbitTB8=SCON^3;sbitREN=SCON^4;sbitSM2=SCON^5;sbitSM1=SCON^6;sbitSM0=SCON^7;/*定義SCON*//*定義SCON的各位*/第5章
80C51單片機軟件基礎(chǔ)知識第55頁/共151頁56(3)sbit位變量名=字節(jié)地址^位位置字節(jié)地址必須在0x80H-0xFF之間。Sbit定義可位尋址位的特殊功能寄存器的位尋址對象有三種方法:例如:
sbitCY=0XD0^7;第5章
80C51單片機軟件基礎(chǔ)知識第56頁/共151頁575.5.3變量的存儲種類和存儲器類型變量是一種在程序執(zhí)行過程中,其數(shù)值不斷變化的量。同ANSIC一樣,C51規(guī)定變量必須先定義后使用。C51對變量的進行定義的格式如下:
[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表可選項。第5章
80C51單片機軟件基礎(chǔ)知識第57頁/共151頁58存儲器類型
定義變量時,除了說明存儲種類外,還允許說明變量的存儲器類型。存儲器類型和存儲種類是完全不同的概念,存儲器類型指明該變量所處的單片機的內(nèi)存空間。C51編譯器可識別以下存儲器類型,如下表所示。第5章
80C51單片機軟件基礎(chǔ)知識第58頁/共151頁59存儲器類型描述data直接尋址的片內(nèi)數(shù)據(jù)存儲器低128B,訪問速度最快bdata可位尋址的片內(nèi)數(shù)據(jù)存儲器(地址20H~2FH共16B)允許位和字節(jié)混合訪問idata間接尋址片內(nèi)數(shù)據(jù)存儲器256B。允許訪問片內(nèi)全部地址pdata分頁尋址片外數(shù)據(jù)存儲器256B,使用指令MOVX@Rn訪問,需要2個指令周期xdata尋址片外數(shù)據(jù)存儲器64KB,使用指令MOVX@DPTR訪問code尋址程序存儲器區(qū)64KB,使用指令MOVC@A+DPTR訪問第5章
80C51單片機軟件基礎(chǔ)知識第59頁/共151頁60存儲模式C51編譯器允許采用三種存儲模式:小編譯模式SMALL、緊湊編譯模式COMPACT、大編譯模式LARGE。第5章
80C51單片機軟件基礎(chǔ)知識第60頁/共151頁615.5.4絕對地址的訪問1.使用指針采用指針的方法,可實現(xiàn)在C51程序中對任意指定的存儲器地址進行操作。ucharidataivar1;ucharxdata*xdp;/*定義一個指向xdata存儲器空間的指針*/chardata*dp;/*定義一個指向DATA存儲器空間的指針*/ucharidata*idp;/*定義一個指向idata存儲器空間的指針*/xdp=0x1000;/*xdata指針賦值,指向xdata存儲器地址1000H處*/*xdp=0x5A;/*將數(shù)據(jù)5AH送到xdata的1000H單元*/dp=0x61; /*DATA指針賦值,指向DATA存儲器地址61H處*/*dp=0x23; /*將數(shù)據(jù)23H送到DATA的61H單元*/idp=&ivar1; /*idp指向idata區(qū)變量ivar1*/*idp=0x16; /*等價于ivar1=0x16*/第5章
80C51單片機軟件基礎(chǔ)知識第61頁/共151頁622.使用C51運行庫中預(yù)定義宏#defineCBYTE((unsignedcharvolatile*)0x50000L)#defineDBYTE((unsignedcharvolatile*)0x40000L)#definePBYTE((unsignedcharvolatile*)0x30000L)#defineXBYTE((unsignedcharvolatile*)0x20000L)#defineCWORD((unsignedintvolatile*)0x50000L)#defineDWORD((unsignedintvolatile*)0x40000L)#definePWORD((unsignedintvolatile*)0x30000L)#defineXWORD((unsignedintvolatile*)0x20000L)第5章
80C51單片機軟件基礎(chǔ)知識第62頁/共151頁633.使用C51擴展關(guān)鍵字_at_使用_at_對指定的存儲器空間的絕對地址進行定位,一般格式如下:
[存儲器類型]數(shù)據(jù)類型標識符_at_常數(shù)ucharxdataxram[0x8000]_at_0x0000;/*在外部RAM空間0000H處定義了一個一維數(shù)組例如使用_at_定義的變量只能為全局變量。第5章
80C51單片機軟件基礎(chǔ)知識第63頁/共151頁645.5.5中斷服務(wù)程序80C51的中斷系統(tǒng)十分重要,C51編譯器允許在C語言源程序中聲明中斷和編寫中斷服務(wù)程序,從而減輕了采用匯編程序編寫中斷服務(wù)程序的繁瑣程度。第5章
80C51單片機軟件基礎(chǔ)知識第64頁/共151頁65通過使用interrupt關(guān)鍵字來實現(xiàn)。定義中斷服務(wù)程序的一般格式如下:void函數(shù)名()interruptn[usingm]usingm指明該中斷服務(wù)程序所對應(yīng)的工作寄存器組,取值范圍:0~3。指定工作寄存器組的缺點是所有被中斷調(diào)用的過程都必須使用同一個寄存器組,否則參數(shù)傳遞會發(fā)生錯誤。通常不設(shè)定usingm。
第5章
80C51單片機軟件基礎(chǔ)知識第65頁/共151頁66關(guān)鍵字interrupt后面的n是中斷號,n的取值范圍:0~31。編譯程序從8n+3處產(chǎn)生中斷向量,即在程序存儲器8n+3地址處形成一條長跳轉(zhuǎn)指令,轉(zhuǎn)向中斷號n的中斷服務(wù)程序。中斷號n中斷源中斷向量0外部中斷00003H1定時器0000BH2外部中斷10013H3定時器1001BH4串行口0023H第5章
80C51單片機軟件基礎(chǔ)知識第66頁/共151頁675.6C51的運算符和表達式運算符就是完成某種特定運算的符號。運算符按其表達式中與運算符的關(guān)系可分為單目運算符、雙目運算符和三目運算符。第5章
80C51單片機軟件基礎(chǔ)知識第67頁/共151頁685.6.1賦值運算符使用“=”的賦值語句格式如下:變量=表達式;需要注意“==”與“=”兩個符號的區(qū)別,有時編譯報錯,往往就是錯在if(b=0xff)之類的語句中,錯將“==”用為“=”?!?=”符號是用來進行相等關(guān)系的運算。第5章
80C51單片機軟件基礎(chǔ)知識第68頁/共151頁695.6.2算術(shù)運算符+
加或取正值運算符-
減或取負值運算符* 乘運算符/
除運算符%
模(取余)運算符,如8%5=3,即8除以5的余數(shù)是3第5章
80C51單片機軟件基礎(chǔ)知識第69頁/共151頁705.6.3關(guān)系運算符C51中有6種關(guān)系運算符:>
大于<
小于>=
大于等于<=
小于等于==
測試等于!=
測試不等于第5章
80C51單片機軟件基礎(chǔ)知識第70頁/共151頁715.6.4邏輯運算符邏輯與:條件式1&&條件式2。邏輯或:條件式1||條件式2。邏輯非:!條件式。第5章
80C51單片機軟件基礎(chǔ)知識第71頁/共151頁725.6.5位運算符C51中共有6種位運算符:&
按位與|
按位或^
按位異或~
按位取反<<
左移>>
右移第5章
80C51單片機軟件基礎(chǔ)知識第72頁/共151頁735.6.6復(fù)合運算符復(fù)合運算符就是在賦值運算符“=”的前面加上其他運算符。以下是C51語言中的復(fù)合賦值運算符:+=
加法賦值 >>=
右移位賦值-=
減法賦值 &=
邏輯與賦值*=
乘法賦值 |=
邏輯或賦值/=
除法賦值 ^=
邏輯異或賦值%=
取模賦值 ~=
邏輯非賦值<<=
左移位賦值第5章
80C51單片機軟件基礎(chǔ)知識第73頁/共151頁745.6.7指針和地址運算符指針是C語言中十分重要的概念,也是學(xué)習(xí)C51語言中的一個難點。C51語言中提供的兩個專門用于指針和地址的運算符:
*取內(nèi)容
&取地址取內(nèi)容和取地址運算的一般形式分別為:
變量=*指針變量 指針變量=&目標變量第5章
80C51單片機軟件基礎(chǔ)知識第74頁/共151頁755.7C51的庫函數(shù)C51的強大功能及其高效率的重要體現(xiàn)之一在于,其提供了豐富的可直接調(diào)用的庫函數(shù)。使用庫函數(shù)使程序代碼簡單、結(jié)構(gòu)清晰、易于調(diào)試和維護,下面介紹C51的庫函數(shù)系統(tǒng)。第5章
80C51單片機軟件基礎(chǔ)知識第75頁/共151頁765.7.2幾類重要的庫函數(shù)C51提供了豐富的庫函數(shù)資源,包括大量的關(guān)于I/O操作、內(nèi)存分配、字符串操作、數(shù)據(jù)類型轉(zhuǎn)換、數(shù)學(xué)計算等函數(shù)庫。它們是以執(zhí)行代碼的形式出現(xiàn),供用戶在連接定位時用。在用預(yù)處理器命令#include包含相應(yīng)的頭文件后,就可以在程序中使用這些函數(shù)。第5章
80C51單片機軟件基礎(chǔ)知識第76頁/共151頁771.內(nèi)部函數(shù)intrins.h這個庫中提供的是一些用匯編語言編寫的函數(shù)。用匯編語言編寫非常直接簡單且目代碼很短,而用C51編寫則代碼很長。這些函數(shù)主要有:_crol_/_cror_無符號字符型變量左/右移位函數(shù)_irol_/_iror_無符號整型變量左/右移位函數(shù)_lrol_/_lror_無符號長整型變量左/右移位函數(shù)_nop_空操作函數(shù)_testbit_位測試函數(shù)第5章
80C51單片機軟件基礎(chǔ)知識第77頁/共151頁782.絕對地址訪問函數(shù)absacc.h用預(yù)處理器偽指令#define為各空間的絕對地址定義宏數(shù)組名如下:#defineCBYTE((unsignedchar*)0x500000L)/*code空間*/#defineDBYTE((unsignedchar*)0x400000L)/*data空間*/#definePBYTE((unsignedchar*)0x300000L)/*pdata空間*/#defineXBYTE((unsignedchar*)0x200000L)/*xdata空間*/以上存取對象是char類型字節(jié)。第5章
80C51單片機軟件基礎(chǔ)知識第78頁/共151頁793.緩沖區(qū)處理函數(shù)string.h如:計算字符串s的長度strlen原型:externintstrlen(char*s);說明:返回s的長度,不包括結(jié)束符NULL。舉例:#include<string.h>main(){char*s="GoldenGlobalView";
printf("%shas%dchars",s,strlen(s));getchar();return0;}第5章
80C51單片機軟件基礎(chǔ)知識第79頁/共151頁806.1中斷系統(tǒng)和外中斷6.2定時器/計數(shù)器
6.3串行通信
第6章80C51單片機內(nèi)部資源及應(yīng)用第80頁/共151頁81單片機內(nèi)部又集成了許多功能單元,如中斷、定時器/計數(shù)器、串行通信、模擬/數(shù)字轉(zhuǎn)換(ADC)、脈沖寬度調(diào)制(PWM)等單元。我們把這些單片機內(nèi)部的功能單元統(tǒng)稱為單片機內(nèi)部資源。
80C51單片機片內(nèi)RAM的80H~FFH空間有21個特殊功能寄存器SFR,通過這些特殊功能寄存器可實現(xiàn)對全部內(nèi)部資源的運行操作。第6章
80C51單片機內(nèi)部資源及應(yīng)用第81頁/共151頁82第5章
80C51單片機軟件基礎(chǔ)知識注:帶*號的特殊功能寄存器都是可位尋址的寄存器。第82頁/共151頁83TCON中的中斷標志位位地址8F8E8D8C8B8A8988位符號TF1TR1TF0TR0IE1IT1IE0IT0這個寄存器既有定時器/計數(shù)器的控制功能又有中斷控制功能,其中與中斷有關(guān)的控制位共6位:IE0和IE1、IT0和IT1以及TF0和TF1。
第83頁/共151頁84定時控制寄存器TCON各位的功能位地址位符號功能8FHTF1定時器/計數(shù)器T1溢出標志位8EHTR1定時器/計數(shù)器T1運行控制位8DHTF0定時器/計數(shù)器T0溢出標志位8CHTR0定時器/計數(shù)器T0運行控制位8BHIE1外部中斷1請求標志位8AHIT1外部中斷1觸發(fā)類型選擇位89HIE0外部中斷0請求標志位88HIT0外部中斷0觸發(fā)類型選擇位第84頁/共151頁85SCON中的串行中斷標志位SCON寄存器地址98H,位地址9FH~98H,其中的低2位RI和TI鎖存串行口的接收中斷和發(fā)送中斷的申請標志位,如表所示。位地址9FH9EH9DH9CH9BH9AH99H98H位符號TIRI第85頁/共151頁86位地址9FH9EH9DH9CH9BH9AH99H98H位符號TIRITI:串行口發(fā)送中斷請求標志位。串行口每發(fā)送完一幀串行數(shù)據(jù)后,由內(nèi)部硬件置1,表示串行口發(fā)送器向CPU申請中斷。注意:CPU響應(yīng)該中斷,轉(zhuǎn)入串行口中斷入口時,對TI位不清0,TI必須由用戶在程序中清0。80C51單片機復(fù)位后,TCON和SCON各位均被清0。RI:串行口接收中斷請求標志位。串行口每接收完一幀串行數(shù)據(jù)后,RI由硬件置1。第86頁/共151頁87EX0:允許/禁止外部中斷0申請中斷EX1:允許/禁止外部中斷1申請中斷ET0:允許/禁止定時器T0申請中斷ET1:允許/禁止定時器T1申請中斷ES:允許/禁止串口申請中斷EA:中斷總控位=1,允許中斷
=0,禁止任何中斷1:允許0:禁止允許哪些中斷?不允許哪些中斷?中斷控制位地址AFHAEHADHACHABHAAHA9HA8H位符號EA--ESET1EX1ET0EX0中斷控制主要通過中斷允許寄存器IE和中斷優(yōu)先級寄存器IP實現(xiàn)。中斷允許控制寄存器第87頁/共151頁88中斷優(yōu)先級控制80C51有兩個中斷優(yōu)先級,每個中斷源均可通過軟件設(shè)置為高優(yōu)先級或低優(yōu)先級中斷,實現(xiàn)2級中斷嵌套。中斷優(yōu)先級控制寄存器位地址BFHBEHBDHBCHBBHBAHB9HB8H位符號---PSPT1PX1PT0PX01:優(yōu)先0:滯后PX0H(IP0H.0):外部中斷0優(yōu)先級高位設(shè)定位PT0H(IP0H.1):定時/計數(shù)器T0優(yōu)先級高位設(shè)定位PX1H(IP0H.2):外部中斷1優(yōu)先級高位設(shè)定位PT1H(IP0H.3):定時/計數(shù)器T1優(yōu)先級高位設(shè)定位PSH(IP0H.4):串行口優(yōu)先級高位設(shè)定位第88頁/共151頁89控制寄存器TCON
TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。TR1(TCON.6):T1起/??刂莆弧?:啟動0:停止TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。TR0(TCON.4):T0起/??刂莆弧?:啟動0:停止第89頁/共151頁90GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時器/計數(shù)器工作;(即需要一個啟動條件)GATE=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時器/計數(shù)器工作,即需要兩個啟動條件。C/T:定時/計數(shù)模式選擇位。C/T=0為定時模式;C/T=1為計數(shù)模式。M1M0:工作方式設(shè)置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時器T1定時器T0工作方式寄存器(TMOD)第90頁/共151頁91計數(shù)器工作方式選擇M1 M0工作方式功能說明00方式013位計數(shù)器01方式116位計數(shù)器10方式2自動重裝8位計數(shù)器11方式3定時器0:分成兩個8位定時器1:停止計數(shù)M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時器T1定時器T0第91頁/共151頁92T2CON的格式如表所示??刂萍拇嫫鱐2CON控制溢出中斷標識位外部中斷標識位串行口接收時鐘標識位串行口發(fā)送時鐘標識位外部允許標識位運行控制位功能選擇位捕捉/重裝載標識位第92頁/共151頁93串行控制寄存器SCON
位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRI①串行口工作方式選擇位②多機通信控制位
③允許接收位④發(fā)送數(shù)據(jù)位8⑤接收數(shù)據(jù)位8⑥發(fā)送中斷標志⑦接收中斷標志第93頁/共151頁94(2)電源控制寄存器PCON
PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器。單元地址為87H。其內(nèi)容如表所示。位序D7D6D5D4D3D2D1D0位符號SMOD———GF1GF0PDIDL串行口波特率的倍增位,當(dāng)SMOD=1時串行口波特率加倍。系統(tǒng)復(fù)位時,SMOD=0。
第94頁/共151頁95中斷允許控制寄存器IE中斷允許控制寄存器IE在前面的中斷系統(tǒng)中已詳細介紹過,IE的地址是A8H,其內(nèi)容如表所示。其中與串行口允許中斷的控制位為ES,當(dāng)ES=1,允許串行口中斷;當(dāng)ES=0,禁止串行中斷。位地址AFHAEHADHACHABHAAHA9HA8H位符號EA--ESET1EX1ET0EX0第95頁/共151頁961.中斷由于中斷源的請求,CPU暫停當(dāng)前程序而執(zhí)行中斷處理程序,完畢后返回原程序繼續(xù)執(zhí)行的過程稱為中斷。中斷過程分為中斷請求、響應(yīng)、處理、返回四個階段。第6章
80C51單片機內(nèi)部資源及應(yīng)用第96頁/共151頁97中斷允許控制寄存器IE中斷允許控制寄存器IE在前面的中斷系統(tǒng)中已詳細介紹過,IE的地址是A8H,其內(nèi)容如表所示。其中與串行口允許中斷的控制位為ES,當(dāng)ES=1,允許串行口中斷;當(dāng)ES=0,禁止串行中斷。位地址AFHAEHADHACHABHAAHA9HA8H位符號EA--ESET1EX1ET0EX0第97頁/共151頁98TCON中的中斷標志位位地址8F8E8D8C8B8A8988位符號TF1TR1TF0TR0IE1IT1IE0IT0這個寄存器既有定時器/計數(shù)器的控制功能又有中斷控制功能,其中與中斷有關(guān)的控制位共6位:IE0和IE1、IT0和IT1以及TF0和TF1。
第6章
80C51單片機內(nèi)部資源及應(yīng)用第98頁/共151頁99SCON中的串行中斷標志位SCON寄存器地址98H,位地址9FH~98H,其中的低2位RI和TI鎖存串行口的接收中斷和發(fā)送中斷的申請標志位,如表所示。位地址9FH9EH9DH9CH9BH9AH99H98H位符號TIRI第6章
80C51單片機內(nèi)部資源及應(yīng)用第99頁/共151頁100EX0:允許/禁止外部中斷0申請中斷EX1:允許/禁止外部中斷1申請中斷ET0:允許/禁止定時器T0申請中斷ET1:允許/禁止定時器T1申請中斷ES:允許/禁止串口申請中斷EA:中斷總控位=1,允許中斷
=0,禁止任何中斷1:允許0:禁止允許哪些中斷?不允許哪些中斷?中斷控制位地址AFHAEHADHACHABHAAHA9HA8H位符號EA--ESET1EX1ET0EX0中斷控制主要通過中斷允許寄存器IE和中斷優(yōu)先級寄存器IP實現(xiàn)。中斷允許控制寄存器第6章
80C51單片機內(nèi)部資源及應(yīng)用第100頁/共151頁101中斷優(yōu)先級控制80C51有兩個中斷優(yōu)先級,每個中斷源均可通過軟件設(shè)置為高優(yōu)先級或低優(yōu)先級中斷,實現(xiàn)2級中斷嵌套。中斷優(yōu)先級控制寄存器位地址BFHBEHBDHBCHBBHBAHB9HB8H位符號---PSPT1PX1PT0PX01:優(yōu)先0:滯后PX0H(IP0H.0):外部中斷0優(yōu)先級高位設(shè)定位PT0H(IP0H.1):定時/計數(shù)器T0優(yōu)先級高位設(shè)定位PX1H(IP0H.2):外部中斷1優(yōu)先級高位設(shè)定位PT1H(IP0H.3):定時/計數(shù)器T1優(yōu)先級高位設(shè)定位PSH(IP0H.4):串行口優(yōu)先級高位設(shè)定位第6章
80C51單片機內(nèi)部資源及應(yīng)用第101頁/共151頁102當(dāng)多個中斷源同時發(fā)中斷請求時,CPU先響應(yīng)優(yōu)先級最高的中斷源,處理完畢后,再響應(yīng)優(yōu)先級次之的中斷源,最后響應(yīng)優(yōu)先級最低的中斷源,這就是中斷判優(yōu)的任務(wù)。80C51單片機有兩個優(yōu)先級:高優(yōu)先級與低優(yōu)先級,各中斷源的優(yōu)先級是通過優(yōu)先級寄存器IP中相應(yīng)位實現(xiàn)的,位取1設(shè)置高優(yōu)先級,位取0設(shè)置低優(yōu)先級。C51中只要設(shè)置IE和IP,C51編譯器會自動為中斷的各個階段產(chǎn)生最合適的代碼。第6章
80C51單片機內(nèi)部資源及應(yīng)用第102頁/共151頁1032.定時器/計數(shù)器80C51單片機的定時器/計數(shù)器是能定時、計數(shù),具有2~3個通道、4種工作方式可編程器件。定時器/計數(shù)器3個通道分別為T0、T1與定時器/計數(shù)器2,其中定時器/計數(shù)器2僅52子系列單片機才有。第6章
80C51單片機內(nèi)部資源及應(yīng)用第103頁/共151頁104定時器/計數(shù)器內(nèi)的核心器件是加1計數(shù)器,加1計數(shù)器由兩個特殊功能寄存器TH與TL組成。當(dāng)定時器/計數(shù)器工作于定時方式,加1脈沖由系統(tǒng)時鐘fosc經(jīng)12分頻后產(chǎn)生。當(dāng)定時器/計數(shù)器工作于計數(shù)方式,加1脈沖由T0或T1引腳直接提供。在使用定時器/計數(shù)器前必須進行初始化,即設(shè)置其工作方式。
第6章
80C51單片機內(nèi)部資源及應(yīng)用第104頁/共151頁105控制寄存器TCON
TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。TR1(TCON.6):T1起/停控制位。1:啟動0:停止TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。TR0(TCON.4):T0起/停控制位。1:啟動0:停止第105頁/共151頁106GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時器/計數(shù)器工作;(即需要一個啟動條件)GATE=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時器/計數(shù)器工作,即需要兩個啟動條件。C/T:定時/計數(shù)模式選擇位。C/T=0為定時模式;C/T=1為計數(shù)模式。M1M0:工作方式設(shè)置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時器T1定時器T0工作方式寄存器(TMOD)第106頁/共151頁107計數(shù)器工作方式選擇M1 M0工作方式功能說明00方式013位計數(shù)器01方式116位計數(shù)器10方式2自動重裝8位計數(shù)器11方式3定時器0:分成兩個8位定時器1:停止計數(shù)M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定時器T1定時器T0第107頁/共151頁108T2CON的格式如表所示??刂萍拇嫫鱐2CON控制溢出中斷標識位外部中斷標識位串行口接收時鐘標識位串行口發(fā)送時鐘標識位外部允許標識位運行控制位功能選擇位捕捉/重裝載標識位第108頁/共151頁1093.串行通信
與80C51單片機串行通信有關(guān)的控制寄存器共有3個:SBUF、SCON和PCON。第6章
80C51單片機內(nèi)部資源及應(yīng)用第109頁/共151頁11080C51單片機的串行接口有四種通信方式。方式0為同步通信方式,其波特率是固定的方式2為異步通信方式,其波特率也是固定的BR=2SMOD×fosc/64方式1和方式3的波特率是可變的,其波特率由定時器1的計數(shù)溢出來決定,公式為:BR=(2SMOD×Td)/32第6章
80C51單片機內(nèi)部資源及應(yīng)用第110頁/共151頁111定時器2的溢出脈沖經(jīng)16分頻后作為串行口發(fā)送脈沖、接收脈沖。發(fā)送脈沖、接收脈沖的頻率稱為波特率。其計算公式如下第6章
80C51單片機內(nèi)部資源及應(yīng)用第111頁/共151頁112方式1是10位為一幀的異步串行通信方式。方式2和方式3是11位為一幀的異步串行通信方式,而第9數(shù)據(jù)D8位既可作為奇偶校驗位使用,也可為控制位使用。在多機通信方式中經(jīng)常把該位用作數(shù)據(jù)幀和地址幀的標志。SM2為多機通信控制位,當(dāng)SM2=1時,80C51單片機只接收第9數(shù)據(jù)為1的地址幀,而對第9數(shù)據(jù)為0的數(shù)據(jù)幀自動丟棄;SM2=0時,地址幀和數(shù)據(jù)幀全部接收。利用此特性可實現(xiàn)多機通信。第6章
80C51單片機內(nèi)部資源及應(yīng)用第112頁/共151頁113串行控制寄存器SCON
位地址9FH9EH9DH9CH9BH9AH99H98H位符號SM0SM1SM2RENTB8RB8TIRI①串行口工作方式選擇位②多機通信控制位
③允許接收位④發(fā)送數(shù)據(jù)位8⑤接收數(shù)據(jù)位8⑥發(fā)送中斷標志⑦接收中斷標志第113頁/共151頁114(2)電源控制寄存器PCON
PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器。單元地址為87H。其內(nèi)容如表所示。位序D7D6D5D4D3D2D1D0位符號SMOD———GF1GF0PDIDL串行口波特率的倍增位,當(dāng)SMOD=1時串行口波特率加倍。系統(tǒng)復(fù)位時,SMOD=0。
第114頁/共151頁115中斷允許控制寄存器IE中斷允許控制寄存器IE在前面的中斷系統(tǒng)中已詳細介紹過,IE的地址是A8H,其內(nèi)容如表所示。其中與串行口允許中斷的控制位為ES,當(dāng)ES=1,允許串行口中斷;當(dāng)ES=0,禁止串行中斷。位地址AFHAEHADHACHABHAAHA9HA8H位符號EA--ESET1EX1ET0EX0第115頁/共151頁1167.1
外部擴展資源和擴展編址技術(shù)概述7.2
并行I/O口擴展7.3
大容量閃速存儲器Flash的擴展7.4
單片機系統(tǒng)中的鍵盤接口技術(shù)7.5
單片機系統(tǒng)中的LED數(shù)碼顯示器7.6
單片機系統(tǒng)中的LCD液晶顯示器7.7
日歷時鐘接口芯片及應(yīng)用7.8
單片機數(shù)據(jù)采集系統(tǒng)7.9I2C總線接口電路EEPROM及應(yīng)用7.10RS-232C和RS-485/422通信接口第七章單片機外部擴展資源及應(yīng)用
第116頁/共151頁117單片機外部擴展資源包含有:外部RAM/ROM、鍵盤、顯示、A/D、D/A、I/O擴展、中斷擴展、串行通信、總線驅(qū)動、電源監(jiān)控、看門狗等一些最基本的模塊,它們都是大多數(shù)單片機應(yīng)用系統(tǒng)必不可少的關(guān)鍵部分。單片機系統(tǒng)是指以單片機為核心,根據(jù)其應(yīng)用目標擴展相關(guān)的外圍電路所構(gòu)成的硬件系統(tǒng),外部擴展是和應(yīng)用緊密聯(lián)系的。7.1外部擴展資源和擴展編址技術(shù)概述第117頁/共151頁118單片機系統(tǒng)擴展結(jié)構(gòu)與編址技術(shù)7.1外部擴展資源和擴展編址技術(shù)概述第118頁/共151頁119圖7.1AT89C52單片機通過三總線的擴展系統(tǒng)結(jié)構(gòu)圖7.1.2單片機系統(tǒng)擴展結(jié)構(gòu)與編址技術(shù)譯碼器產(chǎn)生地址譯碼信號,在任一時刻其輸出的有效片選信號使得單片機只能訪問RAM、I/O和CLOCK其中之一,避免了總線競爭現(xiàn)象。7.1外部擴展資源和擴展編址技術(shù)概述第119頁/共151頁1208255內(nèi)部結(jié)構(gòu)如圖所示。7.2并行I/O口擴展第120頁/共151頁1218255初始化工作方式選擇字8255工作方式選擇字共8位,存放在8255控制寄存器中。1表示控制寄存器中存放的是工作方式選擇字,0表示控制寄存器中存放的是C口置位/復(fù)位控制字。
7.2并行I/O口擴展第121頁/共151頁1228255應(yīng)用舉例【例7.2】
用8255C口的PC3引腳向外輸出連續(xù)的正方波信號,頻率為500Hz。解:(1)軟件延時方式實現(xiàn)將C口設(shè)置為基本I/O輸出方式,先從PC3引腳輸出高電平1,間隔1ms后向PC3輸出低電平0,再間隔1ms后向PC3輸出高電平1,周而復(fù)始,則可實現(xiàn)從PC3輸出頻率為500Hz正方波的目的。7.2并行I/O口擴展第122頁/共151頁1237.2并行I/O口擴展第123頁/共151頁124【例7.2】源程序。/*采用軟件延時實現(xiàn)*/#include"common.h"definePA8255XBYTE[0xe000]; /*定義8255A口地址*/definePB8255XBYTE[0xe001]; /*定義8255B口地址*/definePC8255XBYTE[0xe002]; /*定義8255C口地址*/defineCOM8255XBYTE[0xe003]; /*定義8255控制寄存器地址*/voidinit8255(void){COM8255=0x80;/*工作方式選擇字送入8255控制寄存器,設(shè)置A、B、C口為基本I/O輸出方式*//***********main函數(shù)************/voidmain(void){init8255();while(TRUE){COM8255=0x07;/*PC3置1*/time(1);/*延時1ms*/COM8255=0x06;/*PC3清0*/time(1);/*延時1ms*/}}7.2并行I/O口擴展第124頁/共151頁1257.4單片機系統(tǒng)中的鍵盤接口技術(shù)鍵盤是單片機應(yīng)用系統(tǒng)最常用的輸入設(shè)備,操作人員可以通過鍵盤向單片機系統(tǒng)輸入指令、地址和數(shù)據(jù),實現(xiàn)簡單的人機通信。第125頁/共151頁126獨立式按鍵。7.4單片機系統(tǒng)中的鍵盤接口技術(shù)第126頁/共151頁127【例7.4】源程序。第127頁/共151頁128行列式鍵盤電路。7.4單片機系統(tǒng)中的鍵盤接口技術(shù)第128頁/共151頁129【例7.5】按照下圖的電路,使用兩步掃描法,編寫的鍵掃描程序。有鍵按下,掃描函數(shù)返回值為鍵值,若無鍵按下,返回值為0xff。要求每10ms定時檢測一次按鍵,使用定時器中斷實現(xiàn)定時。按鍵信息由printf輸出到串口。7.4單片機系統(tǒng)中的鍵盤接口技術(shù)第129頁/共151頁130【例7.5】源程序。第130頁/共151頁1317.5單片機系統(tǒng)中的LED數(shù)碼顯示器7.5.1LED顯示器的結(jié)構(gòu)與原理第131頁/共151頁132【例7.6】按照下圖顯示電路編寫顯示驅(qū)動程序。第132頁/共151頁133【例7.6】按照圖7.19顯示電路編寫顯示驅(qū)動程序。第133頁/共151頁134【例7.6】源程序。#include"common.h"voiddisplay(void);/*顯示0,1,,7*//********main函數(shù)*********/voidmain(void){ SCON=0x00; /*串行口方式0工作*/ ES=0; /*禁止串行中斷*/ for(;;){ display(); }}voiddisplay(void) /*顯示0,1,,7*/{unsignedcharcodeLEDValue[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};unsignedchari;TI=0;for(i=1;i<=8;i++){/*8位數(shù)碼管依次顯示1,2,,8*/ SBUF=LEDValue[9-i]; while(TI==0);TI=0; time(1000);/*狀態(tài)維持*/ }}第134頁/共151頁135【例7.7】按照下圖電路,編寫在8個數(shù)碼管依次顯示0,1,…,7的程序。7.5單片機系統(tǒng)中的LED數(shù)碼顯示器第135頁/共151頁136【例7.7】源程序。#include"common.h"voiddisplay(void);/*顯示0,1,,7*//********main函數(shù)*********/voidmain(void){ SCON=0x00; /*串行口方式0工作*/ ES=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DBCO-C3-amide-PEG6-NHS-ester-生命科學(xué)試劑-MCE-2122
- 二零二五年度新能源汽車產(chǎn)業(yè)鏈入股合同協(xié)議書
- 二零二五年度旅游巴士駕駛員雇傭協(xié)議
- 二零二五年度自動售賣機智能物流配送與倉儲服務(wù)合同
- 2025年度二零二五年度餐飲品牌形象授權(quán)租賃合同
- 二零二五年度水電工程合同糾紛處理合同
- 2025年度時尚主題飯店出租運營合同
- 二零二五年度個人信用貸款合作協(xié)議書
- 施工現(xiàn)場施工防外部干擾制度
- 施工現(xiàn)場冬季掃雪方案
- 城市基礎(chǔ)設(shè)施修繕工程的重點與應(yīng)對措施
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學(xué)模擬卷1(南京專用)
- 【??途W(wǎng)】2024秋季校園招聘白皮書
- 2024-2025銀行對公業(yè)務(wù)場景金融創(chuàng)新報告
- 2025屆鄭州市高三一診考試英語試卷含解析
- 《我國個人所得稅制下稅收征管問題研究》
- 腫瘤中醫(yī)治療及調(diào)養(yǎng)
- DB21-T 1720-2017海水源熱泵系統(tǒng)工程技術(shù)規(guī)程
- 組長競選課件教學(xué)課件
- 2022年公務(wù)員多省聯(lián)考《申論》真題(遼寧A卷)及答案解析
評論
0/150
提交評論