片機(jī)基礎(chǔ)知識課件_第1頁
片機(jī)基礎(chǔ)知識課件_第2頁
片機(jī)基礎(chǔ)知識課件_第3頁
片機(jī)基礎(chǔ)知識課件_第4頁
片機(jī)基礎(chǔ)知識課件_第5頁
已閱讀5頁,還剩1191頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

單片機(jī)及其發(fā)展?fàn)顩r

1.單片機(jī)名稱的來源

根據(jù)單片機(jī)的物理形態(tài)和內(nèi)容,早期的單片機(jī)稱為Single-ChipMicrocomputer。從仙童公司的第一款單片機(jī)F-8開始,甚至到MCS-51時期,這些單片機(jī)確實(shí)準(zhǔn)確地體現(xiàn)了Single-ChipMicrocomputer的形態(tài)和內(nèi)容。但是,隨著單片機(jī)發(fā)展到MCS-96、新一代80C51、M68HC05等系列單片機(jī)時,這些單片機(jī)面向?qū)ο螅怀隹刂乒δ?,在片?nèi)集成了許多外圍電路及外設(shè)接口,如A/D、PWM、WDT等,突破了傳統(tǒng)意義的單片機(jī)結(jié)構(gòu),發(fā)展成Microcontroller的體系結(jié)構(gòu),因此,目前國外已經(jīng)逐步統(tǒng)一稱單片機(jī)為MCU(MicroControllerUnit)。由于它實(shí)行嵌入式應(yīng)用,因此也稱為嵌入式微控制器。單片機(jī)及其發(fā)展?fàn)顩r1.單片機(jī)名稱的來源1系列單片機(jī)簡介

盡管各類單片機(jī)很多,但無論從世界范圍還是從國內(nèi)范圍來看,使用最為廣泛的還是MCS-51型單片機(jī),因此本書也將以MCS-51型系列為主,來介紹單片機(jī)的原理及應(yīng)用。MCS-51型系列單片機(jī)共有十幾種芯片,表1-1列舉了比較典型的幾種芯片的型號及主要技術(shù)性能指標(biāo)。

表1-1:系列單片機(jī)簡介盡管各類單片機(jī)很多,但無論從世界范2子系列片內(nèi)ROM形式ROM容量RAM容量計(jì)數(shù)器并行口串行口中斷源制造工藝無ROM掩膜ROMEPROM片內(nèi)片外片內(nèi)片外51子系列8031805187514KB60KB128B64KB2×164×815HMOS80C3180C5187C514KB60KB128B64KBCHMOS52子系列8032805287528KB56KB256B64KB3×164×817HMOS83C25280C25287C2528KB56KB256B64KBCHMOS子片內(nèi)ROM形式ROM容量RAM容量計(jì)數(shù)器并行口串行口中斷3

80C51型單片機(jī)屬于Intel公司的MCS-51系列單片機(jī),MCS-51系列單片機(jī)采用兩種半導(dǎo)體工藝生產(chǎn)。一種是HMOS工藝,即高密度短溝道MOS工藝。另外一種是CHMOS工藝,即互補(bǔ)金屬氧化物的HMOS工藝。表1-1的芯片型號中帶有“C”的都為CHMOS工藝,其余的為一般的HMOS工藝。CHMOS是CMOS和HMOS的結(jié)合,除具有HMOS高速度、高密度的特點(diǎn)外,還具有CMOS低功耗的優(yōu)點(diǎn)。比如8051型的功耗為630mW,而80C51的功耗只有120mW。80C51型單片機(jī)屬于Intel公司的MCS4

目前,Intel公司將80C51型單片機(jī)的內(nèi)核使用權(quán)以專利互換或者出售的形式轉(zhuǎn)讓給其他的著名IC制造商,如Philips、ATMEL、AMD、Dallas、Siemens、LG、華邦等。這些公司在80C51內(nèi)核基礎(chǔ)上,擴(kuò)展了針對不同需求的外圍電路,如A/D、PWM、WDT,引入使用方便并且價格便宜的FlashROM等,使80C51的功能更加齊全、針對性更強(qiáng),鞏固并發(fā)展了Intel公司單片機(jī)的地位,成為當(dāng)今世界8位單片機(jī)的主流。目前,Intel公司將80C51型單片機(jī)的內(nèi)核使用權(quán)5單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域單片機(jī)的主要特點(diǎn)如下:(1)很高的性價比。目前許多單片機(jī)的價格只要幾元人民幣。(2)集成度高,體積小,可靠性好。內(nèi)部采用總線結(jié)構(gòu),減少各芯片間的連線。(3)控制能力強(qiáng)。單片機(jī)的指令豐富,能滿足各種工業(yè)控制的要求。(4)低功耗、低電壓,一般在3V~6V范圍內(nèi)工作,低電壓供電的單片機(jī)電源下限可達(dá)1V~2V,1V以下供電的單片機(jī)也已誕生,便于生產(chǎn)便攜式設(shè)備。(5)易擴(kuò)展??筛鶕?jù)需要進(jìn)行并行或者串行擴(kuò)展,形成網(wǎng)絡(luò)控制系統(tǒng)。單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域單片機(jī)的主要特點(diǎn)如下:6

由于單片機(jī)的特點(diǎn)比較突出,因此,在各個應(yīng)用領(lǐng)域都可以見到它的身影,主要的應(yīng)用領(lǐng)域有:(1)工業(yè)自動化控制。這是最早采用單片機(jī)控制的領(lǐng)域之一,如各種測控系統(tǒng)、PLC等。(2)智能化家用電器。用單片機(jī)控制來替代傳統(tǒng)的電子線路控制是當(dāng)前家用電器的發(fā)展趨勢,如空調(diào)、洗衣機(jī)、電視機(jī)等。(3)智能化儀表。采用單片機(jī)的智能化儀表,加強(qiáng)了數(shù)據(jù)處理能力和網(wǎng)絡(luò)數(shù)據(jù)傳送能力,提高了儀表的檔次,如各種探測儀表、自動抄表系統(tǒng)等。(4)辦公自動化設(shè)備。目前的辦公設(shè)備中多數(shù)都嵌入了單片機(jī)系統(tǒng),如打印機(jī)、復(fù)印機(jī)、掃描儀等。(5)軍用航空等尖端領(lǐng)域的應(yīng)用更加突出。由于單片機(jī)的特點(diǎn)比較突出,因此,在各個應(yīng)用領(lǐng)7Y軸數(shù)據(jù)送入0832(2)并鎖存SJMP MAIN圖7-18TLC1549工作方式1時序SUBBA,@Ri;A→(R1), (50H)=30H。如果關(guān)系不成立,說明通信過程數(shù)據(jù)出錯,給PC機(jī)發(fā)送“3FH”,要求重發(fā)指令,另外從接收到第一個“$”后定時器開始定時,來設(shè)定每次總的通信時間,以免雙方之間“我等你,你等我”而出現(xiàn)無休止的等待,同時,如一方出現(xiàn)死機(jī)或其他原因可以及時結(jié)束本次通信,進(jìn)入重新接收狀態(tài)。INC R1 ;MOV 38H,#10其次是電路的內(nèi)部有上拉電阻,與場效應(yīng)管共同組成輸出驅(qū)動電路。DPL(82H) 代表DPTR低位字節(jié)當(dāng)作為計(jì)數(shù)器使用時,把計(jì)數(shù)器計(jì)滿為零所需要的計(jì)數(shù)值設(shè)定為C,計(jì)數(shù)初值設(shè)定為TC,由此可得到公式:如果程序中沒有中斷優(yōu)先級設(shè)置指令,則中斷源按自然優(yōu)先級進(jìn)行排列。ORG 0023HRD24_4: LCALL STOP ;在自動控制系統(tǒng)中,各控制參量可能隨機(jī)地在任何時刻向計(jì)算機(jī)發(fā)出請求,要求進(jìn)行某種處理?!纠?-11】已知累加器A的內(nèi)容為A7H,R0=30H,(30H)=5BH,Cy=1,則指出執(zhí)行指令A(yù)DDA,@R0后的結(jié)果和各標(biāo)志位的狀態(tài)。在計(jì)算機(jī)中,除了處理數(shù)字信息外,還必須處理用來組織、控制或表示數(shù)據(jù)的字母和符號,這些字母或符號也必須按照特定的規(guī)則用二進(jìn)制來編碼。MOV 2AH,#0 ;這些數(shù)據(jù)在程序運(yùn)行過程中需要被讀出來,參與程序的處理過程。1.2單片機(jī)系統(tǒng)的組成

當(dāng)單片機(jī)內(nèi)部的計(jì)算機(jī)外圍功能單元不能滿足對象控制要求的時候,通過系統(tǒng)擴(kuò)展,在外部并行總線上擴(kuò)展相應(yīng)的計(jì)算機(jī)外圍功能單元所構(gòu)成的系統(tǒng),稱為單片機(jī)系統(tǒng)。這個定義強(qiáng)調(diào)的是單片機(jī)系統(tǒng)的硬件組成,而一個完整的單片機(jī)系統(tǒng)應(yīng)該包括硬件系統(tǒng)和軟件系統(tǒng)兩大部分,如圖1-2所示。圖1-2單片機(jī)系統(tǒng)結(jié)構(gòu)框圖Y軸數(shù)據(jù)送入0832(2)并鎖存1.2單片機(jī)系統(tǒng)的組成8

單片機(jī)系統(tǒng)的硬件由單片機(jī)芯片和外部接口電路及設(shè)備組成。而單片機(jī)芯片則包括了中央處理器(CPU)、存儲器(ROM/RAM)、I/O接口及其他功能單元(定時計(jì)數(shù)器、中斷系統(tǒng)、串行接口)。它們通過AB(地址總線)、DB(數(shù)據(jù)總線)、CB(控制總線)相互連接,如圖1-3所示。單片機(jī)系統(tǒng)的硬件組成圖1-3單片機(jī)系統(tǒng)的硬件結(jié)構(gòu)圖單片機(jī)系統(tǒng)的硬件由單片機(jī)芯片和外部接口電路及設(shè)備組成。而9

1.微處理器(CPU)

CPU主要由兩部分組成:運(yùn)算器和控制器。(1)運(yùn)算器:運(yùn)算器主要完成算術(shù)運(yùn)算和邏輯運(yùn)算并進(jìn)行邏輯測試,如零值測試和兩個值的比較,通常算術(shù)操作產(chǎn)生一個運(yùn)算結(jié)果,而一個邏輯操作產(chǎn)生一個判決。運(yùn)算器主要由以下幾部分組成。①累加器A:用來存放參與算術(shù)或者邏輯運(yùn)算的一個操作數(shù)和運(yùn)算結(jié)果。②暫存器TMP:用來暫時存放參與算術(shù)或者邏輯運(yùn)算的另一個操作數(shù)。該操作數(shù)主要來自其他數(shù)據(jù)寄存器或者內(nèi)存單元中。1.微處理器(CPU)10MOV A, 12H;在方式1處于接收時,若SM2=1,則只有收到有效的停止位后,RI才置1。(1)軟件結(jié)構(gòu)清晰、簡捷、流程合理。A+(Ri)+Cy→A,(i=0、1) 有進(jìn)位,Cy=1,無進(jìn)位,Cy=02.16位數(shù)據(jù)傳送指令(1條)(5)若同一個四位出現(xiàn)兩種修正條件,則只需修正一次即可。【例4-9】兩個無符號數(shù)大小的比較:有兩個無符號數(shù)分別放在30H和31H單元,若(30H)≥(31H),則P1.對端口的操作比RAM復(fù)雜,和接口芯片8255A一樣,芯片8155I/O口的工作方式的確定也是通過對8155的命令寄存器寫入控制字來實(shí)現(xiàn)的,8155控制字的格式如圖7-39所示。由于簡單I/O芯片沒有專門的地址線,但沒有地址線就不等于不要地址(實(shí)際上,沒有地址會造成任何向外部RAM的讀、寫都會影響該端口)所以我們常常將控制線(、)與地址線“混合”后接到I/O芯片的控制端,使它具有相應(yīng)的地址,如例2-3中的“或門”就是起到了這種混合作用。圖5-4撤除外部中斷請求的電路在上述入口地址區(qū)域不能放置用戶的程序和建立數(shù)據(jù)表格,原因是:由于兩個中斷入口地址間僅有8個單元(如0003H到000BH),用來存放中斷發(fā)生后的用戶程序(一般稱中斷服務(wù)程序)顯然是不夠的,我們將中斷服務(wù)程序放在程序存儲器的其他“自由”空間,在這些入口地址放一條跳轉(zhuǎn)指令(如:LJMPXXXX,其中“XXXX”就是實(shí)際中斷服務(wù)程序的起始地址或標(biāo)號),由這條跳轉(zhuǎn)指令去“找到”實(shí)際的中斷服務(wù)程序。上面兩個程序中的開頭用了ORG程序定位指令,盡管在這樣簡單的程序中省掉也沒什么影響,但對于養(yǎng)成規(guī)范的編程習(xí)慣是有好處的,否則看到一個具體應(yīng)用程序時就會無所適從,同時也與第2.外部中斷0為遙控輸入,設(shè)置成邊沿中斷NOPINC 1FH ;LJMP PINT0 ;圖6-4同步通信的數(shù)據(jù)塊TH1=FFH;JNB 20h.addr16——16位目的地址。SETB TR1 ;圖7-5動態(tài)方式應(yīng)用實(shí)例

③算術(shù)邏輯單元ALU:主要完成把傳送到微處理器的數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算。ALU具有兩個主要的輸入來源,一個累加器,一個來自數(shù)據(jù)寄存器,它能夠完成這兩個數(shù)的相加和相減,也能夠完成某些邏輯運(yùn)算。④標(biāo)志寄存器F:用來存放ALU運(yùn)算結(jié)果的標(biāo)志位,如進(jìn)位標(biāo)志、溢出標(biāo)志等。例如:將兩個數(shù)12H和31H相加,在相加之前,操作數(shù)12H存放在累加器A中,31H存放在數(shù)據(jù)寄存器中,執(zhí)行兩個數(shù)相加的控制線發(fā)出“加”操作信號,ALU就把兩個數(shù)相加,所加結(jié)果存入累加器A中,覆蓋原來累加器A中的內(nèi)容,執(zhí)行完后,累加器A中的內(nèi)容就是43H。MOV A, 12H;③算術(shù)邏輯單元ALU:主要完11

(2)控制器控制器主要是協(xié)調(diào)和控制整個計(jì)算機(jī)系統(tǒng)的操作,主要由以下幾部分組成。①程序計(jì)數(shù)器PC:為了能夠保證程序能夠連續(xù)地運(yùn)行下去,CPU必須具備某種手段來確定一條指令的地址,程序計(jì)數(shù)器就是執(zhí)行這項(xiàng)工作。當(dāng)執(zhí)行程序時,CPU將自動修改PC的內(nèi)容,使之總是指向下一條指令的存放地址。②指令寄存器IR:保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時,先把它從程序存儲器中取出,然后再傳送到指令寄存器。(2)控制器12

③指令譯碼器ID:要執(zhí)行給定指令的操作,必須給操作碼譯碼,以便確定所要求的操作,指令譯碼器就是負(fù)責(zé)這項(xiàng)工作。操作碼一經(jīng)譯碼后就向操作控制器發(fā)出具體操作的特定信號。④時序產(chǎn)生器:用來產(chǎn)生脈沖序列和各種節(jié)拍脈沖,每個節(jié)拍脈沖對應(yīng)于一種操作,就像是體育老師的口令、交響樂團(tuán)的指揮一樣。⑤操作控制器:根據(jù)指令譯碼器的信號,產(chǎn)生相應(yīng)的操作控制信號,以便啟動規(guī)定的動作,比如一次內(nèi)存讀寫操作,一次算術(shù)邏輯操作,一次輸入/輸出操作,指揮并控制CPU、內(nèi)存和輸入/輸出設(shè)備之間的數(shù)據(jù)流向。相對控制器而言,運(yùn)算器的動作是接受控制器的命令而動作的,即運(yùn)算器所進(jìn)行的所有操作都是由控制器發(fā)出的控制信號來指揮的。③指令譯碼器ID:要執(zhí)行給定指令的操作,必須給操作碼譯碼13

2.總線總線(BUS)是計(jì)算機(jī)各部件之間傳送信息的公共通道。微機(jī)中有內(nèi)部總線和外部總線兩類。內(nèi)部總線是CPU內(nèi)部之間的連線,外部總線是指CPU與其他部件之間的連線。外部總線有三種:數(shù)據(jù)總線DB(DataBus)、地址總線AB(AddressBus)和控制總線CB(ControlBus)。(1)地址總線(AB):地址總線寬度根據(jù)尋址范圍來確定的,當(dāng)尋址范圍是4KB=212B時,需要的地址線寬度為12位,由于80C51單片機(jī)的尋址范圍最多可達(dá)64KB,因此地址總線寬度為16位,由P0口經(jīng)地址鎖存器提供低8位地址(A0~A7);P2口直接提供高8位地址(A8~A15)。因地址信號是由CPU發(fā)出的,故地址總線是單方向的。(2)數(shù)據(jù)總線(DB):由于80C51單片機(jī)為8位機(jī),故數(shù)據(jù)總線寬度為8位,用于傳送數(shù)據(jù)和指令,由P0口提供。(3)控制總線(CB):控制總線隨時掌控各種部件的狀態(tài),并根據(jù)需要向有關(guān)部件發(fā)出控制命令。2.總線14

3.存儲器存儲器的主要功能就是用來存放程序代碼和數(shù)據(jù)。(1)存儲器的分類①按照存儲器的存取功能分,可分為:隨機(jī)存取存儲器(RandomAccessMemory,RAM)。它可以隨機(jī)寫入和讀出,讀寫速度快,但是斷電后,存儲的數(shù)據(jù)就要丟失。主要用來存放各種處理數(shù)據(jù)。只讀存儲器(ReadOnlyMemory,ROM)。它在一般情況下只能讀不能寫,當(dāng)然,在滿足一定條件下也可以完成寫入操作,否則,讀的數(shù)據(jù)又從何而來呢?它的另外一個特點(diǎn)就是掉電不丟失,能長期保存數(shù)據(jù)。從寫入方式來看,ROM也有很多分類,主要有:掩膜ROM、EPROM、EEPROM、FLASHROM和OTPROM(一次性編程ROM)。3.存儲器15

②按照存儲器結(jié)構(gòu)分,可分為:普林斯頓結(jié)構(gòu)。一般微機(jī)只有一個地址空間,ROM和RAM可以隨意安排在這一地址范圍內(nèi)不同的空間,即ROM和RAM的地址在同一個隊(duì)列里分配不同的地址空間。CPU訪問存儲器時,一個地址對應(yīng)唯一的存儲空間,可以是ROM,也可以是RAM,并用同一種指令訪問。哈佛結(jié)構(gòu)。如80C51的存儲器結(jié)構(gòu)分程序存儲器空間和數(shù)據(jù)存儲器空間,總共有4個物理存儲空間,即片內(nèi)程序存儲器空間、片外程序存儲器空間、片內(nèi)數(shù)據(jù)存儲器空間、片外數(shù)據(jù)存儲器空間,并用不同的指令訪問程序存儲器和數(shù)據(jù)存儲器,這種程序存儲器和數(shù)據(jù)存儲器分開的結(jié)構(gòu)就稱為哈佛結(jié)構(gòu)。②按照存儲器結(jié)構(gòu)分,可分為:16

(2)存儲器的操作存儲器的操作分為讀操作和寫操作。例如,將數(shù)據(jù)存儲器30H中的內(nèi)容03H讀出到累加器A中。其步驟如下:①CPU將要讀存儲空間的地址碼30H送到地址總線上,選通地址為30H的存儲單元。②CPU的控制器發(fā)出“讀”信號,建立存儲器到CPU的數(shù)據(jù)流向。③存儲器將地址為30H的存儲單元中的內(nèi)容03H釋放到數(shù)據(jù)總線上。④CPU將數(shù)據(jù)總線上的數(shù)據(jù)03H讀入到累加器A中。注意:讀操作不影響原來單元內(nèi)容,即30H中的內(nèi)容還是03H,類似計(jì)算機(jī)操作中的“復(fù)制”。(2)存儲器的操作17

例如,將數(shù)據(jù)10H送到地址為40H的內(nèi)部數(shù)據(jù)存儲單元中。其步驟如下:

①CPU將要寫入的存儲空間的地址碼40H送到地址總線上,選通地址為40H的存儲單元。②將數(shù)據(jù)10H送到數(shù)據(jù)總線上。③CPU控制器發(fā)出“寫”信號,建立CPU到存儲器的數(shù)據(jù)流向。④存儲器將數(shù)據(jù)10H送入到地址為40H的存儲單元中。注意:寫操作要改變原來單元的內(nèi)容,類似計(jì)算機(jī)操作中的“粘貼”,如果40H單元中原來的內(nèi)容是20H,經(jīng)過這次寫操作后,40H單元中的內(nèi)容就改為10H。例如,將數(shù)據(jù)10H送到地址為40H的內(nèi)部數(shù)據(jù)存儲單元中18(3)堆棧堆棧就是在單片機(jī)RAM中,專門劃出一個區(qū)域用來臨時存放一些重要數(shù)據(jù)碼或者地址碼。對于堆棧,應(yīng)主要掌握以下幾點(diǎn)。①棧底地址:用來確定堆棧的深度,一般可在程序初始化部分通過對堆棧指針SP的賦值來確定,如MOVSP,#60H,就是將堆棧的棧底設(shè)定為60H(深度為32B)。②堆棧指針:用來指出當(dāng)前棧頂?shù)拇鎯卧牡刂贰"鄱褩T瓌t:堆棧操作遵循“先進(jìn)后出”的原則。(3)堆棧19

如圖1-4是一堆棧的結(jié)構(gòu)圖。通過這個圖可以了解以下幾點(diǎn):①這個堆棧的棧底為50H,在程序初始化過程中可以通過指令MOVSP,#50H來指定,同時確定堆棧深度為51H~7FH,在具體使用中的堆棧深度根據(jù)實(shí)際需要保存的數(shù)據(jù)個數(shù)來確定。②當(dāng)前堆棧指針SP的值為54H,即當(dāng)前棧頂為54H。③這4個數(shù)據(jù)的壓棧順序?yàn)?0H、14H、58H、64H,根據(jù)“先進(jìn)后出”原則,這4個數(shù)據(jù)的出棧順序?yàn)?4H、58H、14H、10H。從上面幾點(diǎn)看,堆棧與手槍彈夾的結(jié)構(gòu)和工作原理十分相似。如圖1-4是一堆棧的結(jié)構(gòu)圖。通過這個圖可以了解以下幾20

圖1-4堆棧結(jié)構(gòu)示意圖圖1-4堆棧結(jié)構(gòu)示意圖21地址鎖存線,高電平有效。(3)SCL:時鐘輸入。5.簡述單片機(jī)內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)。②定時器T1計(jì)數(shù)單元TH1、TL1JZ LOOP2 ;INC R1 ;ADDA,#data ;MOVDPTR,#PORT_4 ;當(dāng)=0,IO/=1時,可以對8155片內(nèi)3個I/O端口以及命令/狀態(tài)寄存器和定時/計(jì)數(shù)器進(jìn)行操作。MOV A,50H ;從仙童公司的第一款單片機(jī)F-8開始,甚至到MCS-51時期,這些單片機(jī)確實(shí)準(zhǔn)確地體現(xiàn)了Single-ChipMicrocomputer的形態(tài)和內(nèi)容。另外,散轉(zhuǎn)程序也可以連續(xù)用“CJNE”指令來實(shí)現(xiàn),只是程序顯得“肥”,不夠精簡。在需要同時驅(qū)動的繼電器數(shù)量比較多時,可以選用專用的驅(qū)動芯片ULN2003A/ULN2003,其內(nèi)部含有7路獨(dú)立的驅(qū)動電路(還包含了繼電器線包回路的續(xù)流二極管),使用起來十分方便。③若將定時/計(jì)數(shù)器用于計(jì)數(shù)功能,則外部事件脈沖必須從P3.SQWE=0使SQW恒為低電平。fosc/64或fosc/32A∧(direct)→A, 如ANLA,50H16個數(shù)據(jù)是否發(fā)完判斷對于獨(dú)立按鍵式鍵盤程序,按鍵不做編碼也可以。SET=0時,每秒后數(shù)據(jù)更新一次;圖8-8TC9148發(fā)射芯片典型應(yīng)用圖(2)各功能程序?qū)崿F(xiàn)模塊化、系統(tǒng)化。

4.輸入/輸出設(shè)備及其接口電路單片機(jī)系統(tǒng)的輸入/輸出設(shè)備也稱作I/O設(shè)備,比如鍵盤、鼠標(biāo)、顯示器、微型打印機(jī)等。輸入/輸出(I/O)接口由大規(guī)模集成電路組成的I/O器件構(gòu)成,用來連接主機(jī)和相應(yīng)的I/O設(shè)備(如:鍵盤、鼠標(biāo)、顯示器、打印機(jī)等),使得這些設(shè)備和主機(jī)之間傳送的數(shù)據(jù)、信息在形式上和速度上都能匹配。不同的I/O設(shè)備必須配置與其相適應(yīng)的I/O接口。通常,這些接口電路集成在一塊芯片上。如8255A、8155、8253、DAC0832、ADC0809等擴(kuò)展芯片。地址鎖存線,高電平有效。4.輸入/輸出設(shè)備及22單片機(jī)系統(tǒng)軟件組成

只配備硬件設(shè)備的單片機(jī)系統(tǒng),并不能完成我們所需要實(shí)現(xiàn)的功能,硬件是實(shí)現(xiàn)功能的載體,而軟件是硬件的靈魂,目前用來設(shè)計(jì)軟件的語言分為三類。1.機(jī)器語言機(jī)器語言的主要特點(diǎn)是:(1)由一組二進(jìn)制碼組成,直接能被計(jì)算機(jī)識別并執(zhí)行。(2)不同的微處理器,采用不同的機(jī)器語言。(3)可讀性差,直觀性差,容易出錯,目前基本不采用。單片機(jī)系統(tǒng)軟件組成只配備硬件設(shè)備的單片機(jī)系統(tǒng),并不能23

2.匯編語言匯編語言的主要特點(diǎn)是:(1)用助記符代替機(jī)器語言中的操作碼。(2)匯編語言翻譯成機(jī)器語言的方法有兩種:一種是手工查表匯編,一種是機(jī)器匯編。由于機(jī)器匯編方便,目前基本上都是采用機(jī)器匯編。(3)不同的微處理器采用不同的匯編語言。(4)較直觀,可讀性好,占用內(nèi)存少,速度快。2.匯編語言24

3.高級語言高級語言的主要特點(diǎn)是:(1)采用類似人類自然語言的程序設(shè)計(jì)語言。(2)通過專門的編譯程序翻譯成機(jī)器語言。(3)通用性強(qiáng),移植性好,不隨微處理器的不同而不同。(4)目前較流行的有C51、PL/M和BASIC語言。三種語言各有特點(diǎn),本書介紹的是匯編語言,雖然不同類型單片機(jī)的匯編語言有所不同,但還是有很多相似之處,可以舉一反三。同時,在掌握匯編語言的基礎(chǔ)上,再去掌握高級語言的編程,能達(dá)到事半功倍的效果。3.高級語言251.3單片機(jī)中數(shù)的表示及編碼

在日常生活中,我們經(jīng)常使用的是十進(jìn)制數(shù),而在單片機(jī)中,二進(jìn)制機(jī)器編碼是它的基本語言,考慮到二進(jìn)制在書寫和閱讀方面的缺點(diǎn),在單片機(jī)軟件編寫過程中,常引入十六進(jìn)制數(shù)來表示。如何進(jìn)行十進(jìn)制、二進(jìn)制、十六進(jìn)制之間的相互轉(zhuǎn)換,是基本的數(shù)字處理能力,這里不再詳述。對此有疑問的初學(xué)者,可以參考有關(guān)的數(shù)字電路基礎(chǔ)的數(shù)據(jù),本書主要介紹正負(fù)數(shù)在計(jì)算機(jī)中的表示方法和有關(guān)編碼知識。1.3單片機(jī)中數(shù)的表示及編碼在日常生活中,26正數(shù)和負(fù)數(shù)在單片機(jī)中的表示方法

在日常數(shù)字表示中,有符號數(shù)的正負(fù)性可以用“+”、“-”來表示,但是在計(jì)算機(jī)數(shù)字表示中,有符號數(shù)的正負(fù)根據(jù)其最高位是“0”還是“1”來區(qū)分。如在8位微機(jī)中,D7位表示這個數(shù)的符號,是“1”,表示負(fù)數(shù),是“0”,表示正數(shù),其余位表示數(shù)值位的大小,如圖1-5所示。圖1-58位有符號數(shù)的表示方法正數(shù)和負(fù)數(shù)在單片機(jī)中的表示方法在日常數(shù)字表示中,有符號數(shù)27【例1-1】指出N1和N2的值?!纠?-1】指出N1和N2的值。28解:由于N1的D7位為1,是負(fù)數(shù),后面的數(shù)值位的值為6,則N1=-6;由于N2的D7位為0,是正數(shù),后面的數(shù)值位的值為7,則N2=+7。那么,在計(jì)算機(jī)中,-6和+7的存儲形式真的如此嗎?我們來看一下下面的例子。【例1-2】求S=N1+N2=-6+7。解:根據(jù)例1-1的結(jié)果,-6=10000110B,+7=00000111B,則運(yùn)算過程如下:

10000110BN1+00000111BN210001101BS=-13解:29

S=-13,很明顯,結(jié)果錯誤,那么問題出在哪里呢?主要是因?yàn)橛蟹枖?shù)在計(jì)算機(jī)中的表示方法出現(xiàn)錯誤。在計(jì)算機(jī)中,有符號數(shù)的表示方法有3種:原碼、反碼和補(bǔ)碼。我們上面兩個例子采用的都是原碼,但是,計(jì)算機(jī)中,負(fù)數(shù)是以補(bǔ)碼形式存儲并參與運(yùn)算的。下面我們來具體了解正負(fù)數(shù)的原碼、反碼和補(bǔ)碼。S=-13,很明顯,結(jié)果錯誤,那么問題出在哪30

1.正數(shù)的原碼、反碼、補(bǔ)碼正數(shù)的表示最簡單,它的原碼、反碼和補(bǔ)碼都一樣,即【X】原=【X】反=【X】補(bǔ)=X【例1-3】X=+9,求其原碼、反碼、補(bǔ)碼。解:+9=00001001B,則【+9】原=【+9】反=【+9】補(bǔ)=00001001B1.正數(shù)的原碼、反碼、補(bǔ)碼31

2.負(fù)數(shù)的原碼、反碼和補(bǔ)碼負(fù)數(shù)的原碼:符號位為1,其余位為數(shù)值位?!纠?-4】X=-9,求X的原碼。解:符號位為1,數(shù)值位為9=0001001所以,【-9】原=10001001B。負(fù)數(shù)的反碼:原碼的符號位不變,其余位取反?!纠?-5】X=-9,求X的反碼。解:【-9】原=10001001B,根據(jù)符號位不變,其余位取反的方法可得,【-9】反=11110110B負(fù)數(shù)的補(bǔ)碼:反碼加1,即【X】補(bǔ)=【X】反+1?!纠?-6】X=-9,求X的補(bǔ)碼。解:【-9】原=10001001B,【-9】反=11110110B,根據(jù)補(bǔ)碼等于反碼加1,則【-9】補(bǔ)=【-9】反+1=11110110B+1=11110111B2.負(fù)數(shù)的原碼、反碼和補(bǔ)碼32

3.零的原碼、反碼和補(bǔ)碼零的原碼:由于零分為+0和-0,則其原碼有兩種:【+0】原=00000000B【-0】原=10000000B零的反碼也有兩種:【+0】反=00000000B【-0】反=11111111B零點(diǎn)補(bǔ)碼:由于+0的補(bǔ)碼等于原碼,-0的補(bǔ)碼等于其反碼加1,所以,不管是+0還是-0,它的補(bǔ)碼只有一個:【+0】補(bǔ)=【-0】補(bǔ)=00000000B綜上所述,歸納如下。對于正數(shù):【X】原=【X】反=【X】補(bǔ)=X對于負(fù)數(shù):【X】反=【X】原數(shù)值位取反,符號位不變【X】補(bǔ)=【X】反+13.零的原碼、反碼和補(bǔ)碼33MOV R0,#30H ;T0初值=216-100000μs/2μs=65536-50000=15536=3CB0HSCL BIT P1.LCALL指令和ACALL指令的區(qū)別:清除發(fā)送完成標(biāo)志,以備下次發(fā)送MCS-51型系列單片機(jī)共有十幾種芯片,表1-1列舉了比較典型的幾種芯片的型號及主要技術(shù)性能指標(biāo)。將y7y6y5y4y3y2y1y0傳送到A不是K3鍵,結(jié)束鍵盤程序由于第二功能信號有輸入和輸出兩類,因此分兩種情況說明,結(jié)構(gòu)如圖2-6所示。要求編寫鍵盤處理程序,其中鍵值由另外的鍵值程序獲得,存放在累加器A中。上述計(jì)算中,未用的線均取“1”。在這里,要提醒讀者的是,通過RS-232通信接口進(jìn)行數(shù)據(jù)通信時,其實(shí)際的通信距離一般在15m左右,而且波特率越高,其有效的距離越短,否則很難保證通信的可靠性。①CPU將要讀存儲空間的地址碼30H送到地址總線上,選通地址為30H的存儲單元。A=0,即R1=FFH,繼續(xù)不斷減1SJMP START2.簡述單片機(jī)的特點(diǎn)及主要應(yīng)用領(lǐng)域,并舉例說明。低8位保存在20H單元中在編程前,首先要給各從機(jī)定義地址編號,如分別為00H、01H、02H等。清除標(biāo)志,以備下次接收在道口的后100m,也有一檢測裝置,在火車經(jīng)過時,輸出信號為高電平,當(dāng)火車離開時,輸出為低電平,與P3.ZDX0_2:MOV 31H,#00H ;NOP

學(xué)會了補(bǔ)碼的運(yùn)算,我們回過來看例1-2,采用補(bǔ)碼運(yùn)算,【-6】補(bǔ)=11111010B【+7】補(bǔ)=00000111B則S=-6+7的運(yùn)算如下:

11111010BN1+00000111BN200000001BS=1結(jié)果正確,至此,大家應(yīng)該明白在計(jì)算機(jī)中,有符號數(shù)的運(yùn)算采用的是數(shù)的補(bǔ)碼形式。MOV R0,#30H ;學(xué)會了補(bǔ)碼的運(yùn)算,我們34常用編碼

1.BCD碼

采用二進(jìn)制碼對每一個十進(jìn)制數(shù)進(jìn)行編碼,稱為BCD碼,用【......】BCD表示,例如:51=【01010001】BCD,在這里,【01010001】BCD不能認(rèn)為是二進(jìn)制碼01010001B,因?yàn)?1010001B的十進(jìn)制為81,而【01010001】BCD的十進(jìn)制為51,顯然存在區(qū)別。具體的十進(jìn)制與BCD碼之間的關(guān)系如表1-2所示。表1-28421BCD編碼表十進(jìn)制數(shù)8421BCD碼十進(jìn)制數(shù)8421BCD碼00000501011000160110200107011130011810004010091001常用編碼1.BCD碼十進(jìn)制數(shù)842135

2.BCD碼的加法運(yùn)算BCD碼的加法運(yùn)算與二進(jìn)制碼的加法運(yùn)算規(guī)則一樣,但有時候會出錯,例如:

【01011001】BCD59+【00101000】BCD28【10000001】BCD81顯然,運(yùn)算結(jié)果是錯誤的,因?yàn)樵谶\(yùn)算過程中,低四位向高四位有進(jìn)位,所以要進(jìn)行修正,具體的修正條件和方法如下:(1)低四位向高四位有進(jìn)位,低四位加6修正。(2)高四位向更高位有進(jìn)位,高四位加6修正。(3)低四位出現(xiàn)非法BCD碼,低四位加6修正。(4)高四位出現(xiàn)非法BCD碼,高四位加6修正。(5)同一個四位出現(xiàn)兩種修正條件,則只需修正一次即可。2.BCD碼的加法運(yùn)算36

【例1-7】已知X=【01100001】BCD,Y=【00100110】BCD,求S=X+Y。解:

【01100001】BCDX(61)+【00100110】BCDY(26)

【10000111】BCDS(87)不滿足要修正的條件,無需修正,結(jié)果正確?!纠?-7】已知X=【01100001】B37

【例1-8】已知X=【01001000】BCD,Y=【01011001】BCD,求S=X+Y。解:【01001000】BCDX(48)+【01011001】BCDY(59)【10100001】BCD;滿足(1)、(4)修正條件,進(jìn)行加6修正+01100110【000100000111】BCDS(107)結(jié)果:S=【000100000111】BCD,由于高四位加6后,向更高位有進(jìn)位1,其實(shí)也就是向百位有進(jìn)位,所以最后的結(jié)果應(yīng)為107。【例1-8】已知X=【01001000】B38

3.BCD碼減法

BCD碼在進(jìn)行減法運(yùn)算時,也會出現(xiàn)需要修正的現(xiàn)象,其修正條件和方法如下:(1)低四位向高四位有借位,低四位減6修正。(2)高四位向更高位有借位,高四位減6修正。(3)低四位出現(xiàn)非法BCD碼,低四位減6修正。(4)高四位出現(xiàn)非法BCD碼,高四位減6修正。(5)若同一個四位出現(xiàn)兩種修正條件,則只需修正一次即可。3.BCD碼減法39

【例1-9】已知X=【00100010】BCD,Y=【00010001】BCD,求S=X-Y。解:【00100010】BCDX(22)-【00010001】BCDY(11)【00010001】BCDS(11);不滿足修正條件,無需修正【例1-9】已知X=【00100010】B4011000110AJMP T0INT ;A=24H(乘2的結(jié)果,沒有超過低8位)單發(fā)鍵發(fā)送規(guī)則:按下單發(fā)鍵時,輸出的12位碼共發(fā)送兩個周期(12位碼為一個周期),中間間隔80a,如圖8-12所示。120字符/秒×10位/字符=1200位/秒MOVCA,@A+DPTR ;3.將外部RAM1000H單元中的數(shù)據(jù)的低4位屏蔽后送回。0592MHz,試編寫程序。P2:在擴(kuò)展時作為地址高8位線,擴(kuò)展不用時作為用戶I/O線。INACK:SETB SDA ;0053H 782FRn-1→Rn,n=0~7OUTACK: CLR SDA ;啟動后出現(xiàn)如圖4-11所示的界面。選擇了有內(nèi)置程序存儲器的CPU后,一般不必?cái)U(kuò)展程序存儲器了,當(dāng)然,對于特殊的系統(tǒng),如包含很多字庫的系統(tǒng),還需要外部的EPROM芯片(如8KB的2764、16KB的27128和32KB的27256等)來存儲字型碼。ORLA,Rn ;INCA ;INC R1 ;由于散轉(zhuǎn)表中采用AJMP指令,每條轉(zhuǎn)移指令相差2個字節(jié)單元,所以在開始的時候,A要乘以2,否則,不能轉(zhuǎn)到相對應(yīng)的功能程序。片選有效時,在時鐘信號作用下數(shù)據(jù)從高位到低位依次輸出。ANLdirect,A ;圖7-14ADC0809內(nèi)部結(jié)構(gòu)

【例1-10】已知X=【00100001】BCD,Y=【01011001】BCD,求S=X-Y。解:【00100001】BCDX(21)-【01011001】BCDY(59)【11001000】BCD;滿足(1)、(2)、(4)修正條件,進(jìn)行減6修正-011001101(借位)【01100010】BCDS(62)BCD碼是無符號數(shù),這里的結(jié)果S=62,不符合條件,但是,由于向更高位(百位)借位了,所以,結(jié)果應(yīng)該是62-100=-38。11000110【例1-10】41

4.ASCII碼在計(jì)算機(jī)中,除了處理數(shù)字信息外,還必須處理用來組織、控制或表示數(shù)據(jù)的字母和符號,這些字母或符號也必須按照特定的規(guī)則用二進(jìn)制來編碼。目前這種編碼規(guī)則普遍采用的是ASCII碼(AmericanStandardCodeforInformationInterchange,美國信息交換標(biāo)準(zhǔn)碼),由7位二進(jìn)制碼組成,可以表示128個字符,包括數(shù)字(0~9)、大小寫英文字母、標(biāo)點(diǎn)符號和控制字符,具體如表1-3所示。4.ASCII碼42表1-3ASCII編碼表

表1-3ASCII編碼表43

根據(jù)此表,我們應(yīng)該掌握以下幾點(diǎn):(1)根據(jù)已知道某個數(shù)字、字母、標(biāo)點(diǎn)符號或控制字符,能夠找出其ASCII碼。(2)大寫英文字母的ASCII碼比小寫英文字母的ASCII碼小20H,如,“A”的ASCII碼為41H,“a”的ASCII碼為61H。(3)數(shù)字0~9的ASCII碼為30H~39H。根據(jù)此表,我們應(yīng)該掌握以下幾點(diǎn):441.4習(xí)題

1.PC機(jī)和單片機(jī)都是屬于微型機(jī),它們之間有什么區(qū)別?2.簡述單片機(jī)的特點(diǎn)及主要應(yīng)用領(lǐng)域,并舉例說明。3.MCS-51單片機(jī)的51子系列和52子系列有哪些主要區(qū)別?4.單片機(jī)系統(tǒng)的硬件組成由哪幾部分組成?并說明各個部分的主要功能。5.什么叫總線?總線可以分為哪幾種?6.堆棧的操作原則是什么?如何來確定堆棧的棧底地址?7.機(jī)器語言、匯編語言和高級語言各有什么優(yōu)缺點(diǎn)?8.在8位單片機(jī)中,有符號數(shù)的正負(fù)號如何表示?9.原碼、反碼、補(bǔ)碼之間的換算關(guān)系是怎么樣的?10.什么叫BCD碼?BCD碼和二進(jìn)制碼之間有何區(qū)別?1.4習(xí)題1.PC機(jī)和單片機(jī)都是45

11.分別求出下列各數(shù)的原碼、反碼和補(bǔ)碼,分別用二進(jìn)制和十六進(jìn)制數(shù)表示。(1)+37 (2)-54 (3)+121 (4)-21612.將下列數(shù)轉(zhuǎn)換成BCD碼。(1)123 (2)864 (3)56.75 (4)34913.已知十進(jìn)制數(shù)X、Y,求S=X+Y,用十六進(jìn)制表示。(1)X=45,Y=89;(2)X=-65,Y=78;(3)X=-76,Y=34。11.分別求出下列各數(shù)的原碼、反碼和補(bǔ)碼,分46

14.已知BCD碼X、Y,求S=X+Y,T=X-Y。(1)X=【00110100】BCD,Y=【01010010】BCD(2)X=【01010110】BCD,Y=【00101001】BCD(3)X=【10000110】BCD,Y=【01000010】BCD15.查表寫出下列字符的ASCII碼。(1)D (2)7 (3)? (4)e14.已知BCD碼X、Y,求S=X+Y,T=47第2章MCS-51單片機(jī)硬件與系統(tǒng)擴(kuò)展2.1MCS-51外部引腳2.2P0、P1、P2、P3口的內(nèi)部結(jié)構(gòu)及使用2.3單片機(jī)內(nèi)部硬件資源2.4時鐘與復(fù)位電路2.5單片機(jī)系統(tǒng)擴(kuò)展2.6習(xí)題第2章MCS-51單片機(jī)硬件與系統(tǒng)擴(kuò)展2.1MCS-48

對于硬件系統(tǒng)設(shè)計(jì)人員來說,掌握單片機(jī)硬件資源是十分重要的,只有熟悉了單片機(jī)的硬件“家底”,才能合理安排、正確使用現(xiàn)有資源,并做到物盡其用。MCS-51單片機(jī)是美國Intel公司的產(chǎn)品,但在實(shí)際應(yīng)用時常常選用美國ATMEL公司的產(chǎn)品,如AT89C51/52(40腳)和AT89C2051(20腳)。ATMEL公司AT系列單片機(jī)相當(dāng)于Intel公司單片機(jī)的Flash版本,兩者硬件結(jié)構(gòu)相同,指令兼容,但Flash版本可以使程序的修改、調(diào)整更加方便,所以ATMEL公司的產(chǎn)品幾乎成了MSC-51系列單片機(jī)的主流。對于硬件系統(tǒng)設(shè)計(jì)人員來說,掌握單片機(jī)硬件資源492.1MCS-51外部引腳AT89C51/52的外部有40個腳(與8051/8751相同,如圖2-1所示),這些管腳根據(jù)功能可以將它們分成三大組:2.1MCS-51外部引腳AT89C51/52的501.系統(tǒng)工作必需的引腳(5個腳)VCC(40腳)、VSS(20腳):電源5V和地(AT89LV系列芯片可以工作在2.7V~6V)。RST/VPD(9腳):RST即為RESET的縮寫,VPD為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機(jī)器周期的高電平,可以使單片機(jī)回復(fù)到初始狀態(tài)(復(fù)位)。上電時,考慮到振蕩器有一定的起振時間,該引腳上高電平必須持續(xù)10ms以上才能保證有效復(fù)位。XTAL1、XTAL2:接晶振,實(shí)際使用時還需加兩個30pF的補(bǔ)償電容,常用晶振頻率有6MHz、12MHz和11.0592MHz,AT89C51/52最高工作頻率達(dá)24MHz。上述管腳的電壓或波形不滿足要求的話,系統(tǒng)無法工作,一般表現(xiàn)為無法啟動。1.系統(tǒng)工作必需的引腳(5個腳)512.與外部電路聯(lián)絡(luò)的腳(32個腳)P0:在擴(kuò)展時作為數(shù)據(jù)總線/地址低8位線,擴(kuò)展不用時可以作為用戶I/O線。P1:僅作用戶I/O口。P2:在擴(kuò)展時作為地址高8位線,擴(kuò)展不用時作為用戶I/O線。P3:首先保證第二功能(如表2-1所示),若第二功能不用,則可作為用戶I/O線。2.與外部電路聯(lián)絡(luò)的腳(32個腳)52ZDX0_1:INC 30H ;對于"鍵盤掃描程序",為使按鍵時反應(yīng)更加靈敏,可以作為外部中斷來處理,即所謂中斷掃描,但需要硬件電路的支持,也可以用定時掃描法,沒有特殊要求,用戶不妨按以下的一般方法處理。NEXT: INC R0 ;二是在位操作中,作累加位使用。外圍元件少,電路簡單等特點(diǎn)。不滿足修正條件,無需修正(3)系統(tǒng)的動態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計(jì)要求?(Ri)+1→(Ri),i=0、1(1)A口、B口和C口:A口、B口和C口均為8位I/O數(shù)據(jù)口,但結(jié)構(gòu)上略有差別。③開中斷: EA=1,ET1=1在實(shí)際的單片機(jī)應(yīng)用系統(tǒng)軟件設(shè)計(jì)中,為了程序結(jié)構(gòu)更加清晰,易于設(shè)計(jì),易于修改,增強(qiáng)程序可讀性,同時便于程序的移植,基本上都要使用子程序結(jié)構(gòu)。③斷口地址高8位保存到堆棧中:SP+1→SP,(PC)8~15→(SP)。(2)DPTR一般用作16位間接尋址,如果是MOVX指令,則尋片外RAM地址,如果是MOVC指令,則尋ROM地址。定時/計(jì)數(shù)器的結(jié)構(gòu)和工作原理圖7-26送往TLC5615的數(shù)據(jù)結(jié)構(gòu)DEC 50H ;SETB EA ;T0控制位,與T1無關(guān)i=0、1,如XCHDA,@R0I/O接口芯片一般選用8155(兼帶256KB靜態(tài)RAM)或8255(3個8位口),這類芯片具有口線多、硬件接口電路簡單等特點(diǎn)。MOV 27H,#15 ;MOV 30H,#0 ;

ZDX0_1:INC 30H ;533.控制腳(3個腳)(1)/VPP(31腳):為片內(nèi)、片外ROM選擇控制腳,具體如圖2-2所示,早期的8031等內(nèi)部沒有ROM,故使用時接地,目前AT89C51/52內(nèi)部均有ROM(Flash),所以使用時直接接VCC。對于EPROM型單片機(jī)(如8751),在編程期間該腳用于提供編程電壓(VPP)。圖2-2MCS-51程序存儲器結(jié)構(gòu)3.控制腳(3個腳)圖2-2MCS-51程序存儲器結(jié)構(gòu)54(2)ALE/PROG(30腳):地址鎖存有效信號輸出端。ALE在每個機(jī)器周期內(nèi)輸出兩個脈沖,在訪問片外程序存儲器期間,下降沿用于控制鎖存P0輸出的低8位地址;在不訪問片外程序存儲器期間,可作為對外輸出的時鐘脈沖或用于定時目的,但要注意,在訪問片外數(shù)據(jù)存儲器期間,ALE脈沖會跳空一個,此時作為時鐘輸出就不妥了。對于片內(nèi)含有EPROM的機(jī)型,在編程期間,該引腳用作編程脈沖PROG的輸入端。(2)ALE/PROG(30腳):地址鎖存有效信號輸出端。A55(3)(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。當(dāng)從外部程序存儲器讀取指令或常數(shù)期間,每個機(jī)器周期該信號兩次有效,以通過數(shù)據(jù)總線P0口讀回指令或常數(shù)。要注意的是該腳與外部數(shù)據(jù)存儲器的讀、寫無關(guān)。用于控制的腳其實(shí)還有P3口的、,它們用于外部數(shù)據(jù)存儲器及I/O的讀、寫控制。盡管控制線數(shù)量不多,但在應(yīng)用系統(tǒng)中擔(dān)當(dāng)著十分重要的角色,在系統(tǒng)擴(kuò)展部分我們可以體會這一點(diǎn)。(3)(29腳):片外程序存儲器讀選通信號輸出端,低電平有效562.2P0、P1、P2、P3口的內(nèi)部結(jié)構(gòu)及使用口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)由圖2-3可見,電路中包含一個數(shù)據(jù)輸出鎖存器、兩個三態(tài)數(shù)據(jù)輸入緩沖器、一個數(shù)據(jù)輸出的驅(qū)動電路和一個輸出控制電路。當(dāng)對P0口進(jìn)行寫操作時,由鎖存器和驅(qū)動電路構(gòu)成數(shù)據(jù)輸出通路。由于通路中已有輸出鎖存器,因此數(shù)據(jù)輸出時可以與外設(shè)直接連接,而不需再加數(shù)據(jù)鎖存電路。圖2-3P0口一位結(jié)構(gòu)圖2.2P0、P1、P2、P3口的內(nèi)部結(jié)構(gòu)及使用口的內(nèi)部結(jié)57

在P0口的內(nèi)部有一個多路轉(zhuǎn)接電路MUX,在控制信號的作用下,多路轉(zhuǎn)接電路可以分別接通鎖存器輸出或地址/數(shù)據(jù)線,使P0口作為外部擴(kuò)展時的數(shù)據(jù)總線/兼地址低8位線。另外,P0口結(jié)構(gòu)的一大特點(diǎn)(不同于P1、P2、P3口)為輸出電路是漏極開路電路,當(dāng)P0口進(jìn)行一般的I/O輸出時必須外接上拉電阻才能有高電平輸出。當(dāng)P0口進(jìn)行一般的I/O輸入時,必須先向電路中的鎖存器寫入“1”,使場效應(yīng)管V2截止,以避免V2導(dǎo)通對引腳讀入的影響。在P0口的內(nèi)部有一個多路轉(zhuǎn)接電路MUX,在控制信號的58口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)

因?yàn)镻1口通常是作為通用I/O口使用的,所以在電路結(jié)構(gòu)上與P0口有一些不同之處,如圖2-4所示。首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電路的內(nèi)部有上拉電阻,與場效應(yīng)管共同組成輸出驅(qū)動電路。為此,P1口作為輸出口使用時,無需再外接上拉電阻。圖2-4P1口一位結(jié)構(gòu)圖口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)因?yàn)镻1口通常是作為通用I/O59口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)如圖2-5所示,P2口電路比P1口電路多了一個多路轉(zhuǎn)接電路MUX,這又正好與P0口一樣。P2口可以作為通用I/O口使用,這時多路轉(zhuǎn)接電路開關(guān)倒向鎖存器Q端,同時又可作為高位地址線使用,此時多路轉(zhuǎn)接電路開關(guān)應(yīng)倒向“地址”位置。圖2-5P2口一位結(jié)構(gòu)圖口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)如圖2-5所示,P2口電路比P1口電路60口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)P3口的特點(diǎn)在于,為適應(yīng)引腳信號第二功能的需要,增加了第二功能控制邏輯。由于第二功能信號有輸入和輸出兩類,因此分兩種情況說明,結(jié)構(gòu)如圖2-6所示。對于第二功能為輸出的信號引腳,當(dāng)作為I/O使用時,第二功能信號引線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。圖2-6P3口一位結(jié)構(gòu)圖口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)P3口的特點(diǎn)在于,為適應(yīng)引腳信號61(b)送往TLC5615的16位數(shù)據(jù)結(jié)構(gòu)CLR FM ;若口線要求很少,且僅需要簡單的輸入或輸出功能,則可選用不可編程的TTL電路或CMOS電路。在工作方式3下,T0被拆分成2個獨(dú)立的8位計(jì)數(shù)器TL0和TH0,如圖5-11所示。但由于方式2的計(jì)數(shù)范圍小,因此一般應(yīng)用于需要重復(fù)定時、而定時范圍不大的場合。將內(nèi)部RAM位尋址區(qū)中的3DH位置1,如圖3-7所示。(1)X=45,Y=89;代碼并放入34H、33H機(jī)械式按鍵在按下或釋放時,由于機(jī)械彈性作用的影響,通常伴隨有一定時間的觸點(diǎn)機(jī)械抖動,然后其觸點(diǎn)才穩(wěn)定下來。17.什么是最小系統(tǒng)?什么是系統(tǒng)擴(kuò)展?擴(kuò)展的基本方法是什么?將內(nèi)部RAM位尋址區(qū)中的3DH位置1,如圖3-7所示。MOV TH0, #00H ;③建議用LCALL指令,可以避免出現(xiàn)“TARGETOUTOFRANGE”(目標(biāo)出界)的錯誤。當(dāng)單片機(jī)與PC機(jī)通信時,常常采用PC機(jī)的RS-232接口進(jìn)行,由于雙方對邏輯“1”、“0”的定義不一致(單片機(jī)是正邏輯,RS-232采用負(fù)邏輯,而且電平也不一致),因此必須經(jīng)過轉(zhuǎn)換電路進(jìn)行邏輯轉(zhuǎn)換(好比我們與外國人溝通時,常常需要翻譯)。在這種情況下,定時/計(jì)數(shù)器T1一般用作串行口波特率發(fā)生器或不需要中斷的場合。(1)地址總線(AB):地址總線寬度根據(jù)尋址范圍來確定的,當(dāng)尋址范圍是4KB=212B時,需要的地址線寬度為12位,由于80C51單片機(jī)的尋址范圍最多可達(dá)64KB,因此地址總線寬度為16位,由P0口經(jīng)地址鎖存器提供低8位地址(A0~A7);圖2-16上電復(fù)位、手動復(fù)位下面以T1為例進(jìn)行分析(除方式3外)。CLR PT0盡管各類單片機(jī)很多,但無論從世界范圍還是從國內(nèi)范圍來看,使用最為廣泛的還是MCS-51型單片機(jī),因此本書也將以MCS-51型系列為主,來介紹單片機(jī)的原理及應(yīng)用。根據(jù)上面的編程要點(diǎn),程序如下:①LCALL可以調(diào)用存儲在64KBROM范圍內(nèi)任何地方的子程序,而ACALL只能調(diào)用與當(dāng)前PC同一2KB范圍內(nèi)的子程序。

對于第二功能為輸入的信號引腳,在口線的輸入通路上增加了一個緩沖器,輸入的第二功能信號就從這個緩沖器的輸出端取得。而作為I/O使用的數(shù)據(jù)輸入,仍取自三態(tài)緩沖器的輸出端。不管是作為輸入口使用還是第二功能信號輸入,輸出電路中的鎖存器輸出和第二功能輸出信號線都應(yīng)保持高電平。P3口作為輸入使用時,也必須先寫“1”,讓輸出電路的場效應(yīng)管截止。(b)送往TLC5615的16位數(shù)據(jù)結(jié)構(gòu)對于第二功能62、P1、P2、P3作I/O使用實(shí)例1.驅(qū)動LED實(shí)例驅(qū)動LED,幾乎是每個應(yīng)用系統(tǒng)中都會碰到的,分為低電平點(diǎn)亮和高電平點(diǎn)亮兩種。在高電平時,由于端口內(nèi)部結(jié)構(gòu)決定了輸出的電流不到1mA(使用時常常會在這里出錯,認(rèn)為既然是高電平就一定能點(diǎn)亮LED),而允許輸入的電流可以達(dá)20mA左右,因此兩種驅(qū)動LED的電路在結(jié)構(gòu)上會有較大差別。圖2-7(a)是低電平驅(qū)動LED的電路,LED上的電流可以用以下公式計(jì)算:I=(5-1.8)/R+5VR3+5V其中1.8V是普通型LED的壓降。圖2-7(b)是高電平驅(qū)動LED的電路,電流由R3決定。圖2-7(c)是錯誤的高電平驅(qū)動電路(輸出電流太小)。、P1、P2、P3作I/O使用實(shí)例1.驅(qū)動LED實(shí)例63

圖2-7驅(qū)動LED電路圖2-7驅(qū)動LED電路64

圖2-7驅(qū)動LED電路(續(xù))圖2-7驅(qū)動LED電路(續(xù))652.驅(qū)動繼電器實(shí)例繼電器的驅(qū)動,從電平角度來說也有高電平驅(qū)動和低電平驅(qū)動兩種,但實(shí)際使用的繼電器的工作電壓都是9V、12V甚至更高,所以除了考慮驅(qū)動電流是否足夠(繼電器所需的驅(qū)動電流可用繼電器的標(biāo)稱工作電壓除以標(biāo)稱電阻來估算,常見的大約在40mA~60mA,所以不管哪種結(jié)構(gòu)都需要三極管等電流放大電路)外,還要考慮低電平、高電平哪種驅(qū)動更容易實(shí)現(xiàn)。2.驅(qū)動繼電器實(shí)例66

圖2-8(a)是常常會犯錯誤的所謂低電平驅(qū)動電路,盡管低電平時繼電器確實(shí)能工作,但當(dāng)輸出為高電平而想使繼電器截止時,結(jié)果卻無法跳開,好像被粘住一樣,原因是CPU輸出的高電平只有5V,而繼電器的供電有12V,而且這時繼電器的供電12V將有可能使CPU損壞(在使用芯片時不允許輸入端的電壓超過電源電壓)。圖2-8(b)是用高電平驅(qū)動的電路,圖2-8(c)是低電平驅(qū)動。在需要同時驅(qū)動的繼電器數(shù)量比較多時,可以選用專用的驅(qū)動芯片ULN2003A/ULN2003,其內(nèi)部含有7路獨(dú)立的驅(qū)動電路(還包含了繼電器線包回路的續(xù)流二極管),使用起來十分方便。圖2-8(a)是常常會犯錯誤的所謂低電平驅(qū)動電路,盡67

(a)(b)(a)(b)68

(c)圖2-8驅(qū)動繼電器電路(c)693.光耦器件的接口電路單片機(jī)應(yīng)用在強(qiáng)電系統(tǒng)時,為提高抗干擾能力,隔離輸出級帶來的干擾和不安全性,常常使用光耦器件作為接口,常用光耦器件的內(nèi)部結(jié)構(gòu)如圖2-9所示。圖2-9常用光耦內(nèi)部結(jié)構(gòu)3.光耦器件的接口電路圖2-9常用光耦內(nèi)70

光耦器件的接口實(shí)例如圖2-10所示。圖中的7407是用來增加驅(qū)動能力的P1口為低電平時光耦導(dǎo)通,負(fù)載得電而工作。圖2-10光耦接口應(yīng)用實(shí)例光耦器件的接口實(shí)例如圖2-10所示。圖中的7407是用71設(shè)置首位數(shù)碼管工作的位狀態(tài),"0"選中LJMP ZDT0上述計(jì)算中,未用的線均取“1”。;MOV A,34H該指令常用來控制循環(huán)次數(shù),不影響標(biāo)志位。MOV R5,#0 ;XRLA,#data ;T1方式2分析:在數(shù)據(jù)送到TLC5615前,首先要將數(shù)據(jù)裝“拼”成TLC5615本身的數(shù)據(jù)格式,按照圖7-26(b)的16位的數(shù)據(jù)格式,只要將31H、30H單元聯(lián)合進(jìn)行左移2次就行,傳送時,先傳送31H高8位(含實(shí)際有效數(shù)據(jù)4位),再送30H低8位(含實(shí)際有效數(shù)據(jù)6位),程序如下:燒錄可以用專用編程器,有些CPU內(nèi)置了下載程序,可以在線燒錄,如宏晶公司的STC89C54RD+等。MOVDPTR,#TAB ;LCALL ARL_SDAMOV TL0, #0B0H74LS165的數(shù)據(jù)送到了內(nèi)部20H單元先將SP所指單元(棧頂?shù)刂罚┲械臄?shù)據(jù)彈出,送到指定的內(nèi)RAM單元;(3)當(dāng)轉(zhuǎn)移目標(biāo)超出轉(zhuǎn)移范圍時,編譯程序往往會有“TARGETOUTOFRANGE”(目標(biāo)出界)這樣的錯誤提示。注釋是對指令或程序功能的一種解釋說明,屬于用戶自己的行為,勤做注釋是一種好的習(xí)慣,其日后的回報遠(yuǎn)遠(yuǎn)超出注釋時的付出,需要注意的是前面必須加“;當(dāng)然程序也并非都由自己親手編制,現(xiàn)在的網(wǎng)絡(luò)資源非常豐富,利用網(wǎng)絡(luò)可以整合眾人的智慧,互相“借用”別人的“勞動成果”(比如現(xiàn)成的子程序)也是一種方法或途徑。POP PSW繼電器的驅(qū)動,從電平角度來說也有高電平驅(qū)動和低電平驅(qū)動兩種,但實(shí)際使用的繼電器的工作電壓都是9V、12V甚至更高,所以除了考慮驅(qū)動電流是否足夠(繼電器所需的驅(qū)動電流可用繼電器的標(biāo)稱工作電壓除以標(biāo)稱電阻來估算,常見的大約在40mA~60mA,所以不管哪種結(jié)構(gòu)都需要三極管等電流放大電路)外,還要考慮低電平、高電平哪種驅(qū)動更容易實(shí)現(xiàn)。另外,在每次按鍵判斷時,必須設(shè)立一個時間范圍,超過此時間后,取消本次接收,重新進(jìn)入第一個脈沖的接收。2.3單片機(jī)內(nèi)部硬件資源圖2-11是MCS-51單片機(jī)的內(nèi)部結(jié)構(gòu)框圖,從圖中可以看出,單片機(jī)內(nèi)部主要包括:圖2-11單片機(jī)內(nèi)部結(jié)構(gòu)框圖設(shè)置首位數(shù)碼管工作的位狀態(tài),"0"選中2.3單片機(jī)內(nèi)72(1)一個8位CPU(含運(yùn)算器、控制器)。(2)一個片內(nèi)振蕩器及時鐘電路。(3)片內(nèi)存儲器(RAM和ROM,AT89C系列是Flash)。(4)特殊功能寄存器(SFR)。(5)4個8位并行I/O口(P0、P1、P2、P3)。(6)一個全雙工可編程串行口。(7)定時器/計(jì)數(shù)器中斷系統(tǒng)。(1)一個8位CPU(含運(yùn)算器、控制器)。73片內(nèi)程序存儲器

在MCS-51單片機(jī)系列中,8031、8032內(nèi)部沒有程序存儲器,8051/8751/AT89C51內(nèi)部有4K的程序存儲器,8052/8752/AT89C52內(nèi)部有8K的程序存儲器。程序存儲器有不同版本,有些是ROM,如8051/8052等;有些是EPROM,如8751/8752等;有些是Flash,如AT89C51/AT89C52等。程序存儲器主要用來存放程序,同時也常常用來存放數(shù)據(jù)表格(通過DB指令建立數(shù)碼管字型表等),在具體存放程序和建立數(shù)據(jù)表格時應(yīng)該注意,程序存儲器的部分空間的使用是有規(guī)定的,主要如下。片內(nèi)程序存儲器在MCS-51單片機(jī)系列中,8031、74(1)0000H:稱為復(fù)位入口地址,系統(tǒng)復(fù)位后,程序計(jì)數(shù)器PC的內(nèi)容為0000H,程序就從0000H開始重新執(zhí)行。(2)0003H:外部中斷0入口地址,當(dāng)外部中斷0發(fā)生且被響應(yīng)后,CPU將停止原來的程序(會自動記錄停止時的程序位置,以便“回來”后能“繼續(xù)工作”),程序直接轉(zhuǎn)入0003H這個入口地址,進(jìn)而執(zhí)行中斷后需要執(zhí)行的任務(wù),0003H又稱為外部中斷0矢量地址。(3)000BH:定時器T0中斷入口地址。(4)0013H:外部中斷1入口地址。(5)001BH:定時器T1中斷入口地址。(6)0023H:串行口中斷入口地址。(1)0000H:稱為復(fù)位入口地址,系統(tǒng)復(fù)位后,程序計(jì)數(shù)器P75

在上述入口地址區(qū)域不能放置用戶的程序和建立數(shù)據(jù)表格,原因是:由于兩個中斷入口地址間僅有8個單元(如0003H到000BH),用來存放中斷發(fā)生后的用戶程序(一般稱中斷服務(wù)程序)顯然是不夠的,我們將中斷服務(wù)程序放在程序存儲器的其他“自由”空間,在這些入口地址放一條跳轉(zhuǎn)指令(如:LJMPXXXX,其中“XXXX”就是實(shí)際中斷服務(wù)程序的起始地址或標(biāo)號),由這條跳轉(zhuǎn)指令去“找到”實(shí)際的中斷服務(wù)程序。在上述入口地址區(qū)域不能放置用戶的程序和建立數(shù)據(jù)表格,76片內(nèi)部數(shù)據(jù)存儲器圖2-12是單片機(jī)內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)框圖,對于8031/8051/8751/AT89C51,內(nèi)部有128B(00H~7FH)的數(shù)據(jù)存儲器,80H地址以上的空間離散分布著SFR(特殊功能寄存器),沒有用戶可用的RAM;對于8032/8052/8752/AT89C52,內(nèi)部有256B數(shù)據(jù)存儲器,00H~7FH的單元與8051等相同,但在80H地址以上的空間則既有SFR(采用寄存器或直接尋址),同時也有用戶可用的RAM(采用寄存器間接尋址)。

圖2-12內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)片內(nèi)部數(shù)據(jù)存儲器圖2-12是單片機(jī)內(nèi)部數(shù)據(jù)存儲器結(jié)構(gòu)框圖,對771.通用工作寄存器區(qū)地址00H~1FH的空間為通用工作寄存器區(qū),32個單元又可以分成4個組,分別如下。(1)00H~07H:工作寄存器0組,符號為R0~R7。(2)08H~0FH:工作寄存器1組,符號為R0~R7。(3)10H~17H:工作寄存器2組,符號為R0~R7。(4)18H~1FH:工作寄存器3組,符號為R0~R7。上述4個組的寄存器符號都為R0~R7,也就是說,一個符號(如R0)可以對應(yīng)4個單元(如00H、08H、10H、18H),使用時是否會混淆呢?當(dāng)然不會,因?yàn)樵谑褂玫娜魏螘r候只能選中一個組,到底使用哪個組,由特殊功能寄存器PSW來指定(見SFR部分介紹)。1.通用工作寄存器區(qū)782.位尋址區(qū)什么是位尋址區(qū)呢?可以這么來理解,這些區(qū)除了每個單元都有確定的單元地址外,單元內(nèi)的8位數(shù)的每個位置也有地址。要理解這點(diǎn)我們不妨打個比方:一個單元好像一間宿舍,單元的地址對應(yīng)宿舍的房間號,而位則對應(yīng)宿舍內(nèi)的床,位地址正好對應(yīng)床鋪號,位尋址區(qū)的地址如表2-2所示。單元地址MSB位地址LSB2FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H07060504030201002.位尋址區(qū)單元地址MSB位79

位尋址區(qū)比普通用戶RAM相比具有的優(yōu)點(diǎn)是,它具有位尋址功能,常常用來做標(biāo)記,同時利用位操作功能可以使程序更加簡單,除了位尋址區(qū)有位地址之外,特殊功能寄存(SFR)中地址末位是0H或8H的12個單元也有位地址。在使用位地址時,容易與單元地址混淆,如地址“20H”,既可以理解成單元的地址,也可以理解成24H單元中的一個位地址(見表2-2倒數(shù)第5行),具體是指單元地址還是位地址,除了看文字表述外,在指令中看指令的類型和含義就可知道了。位尋址區(qū)比普通用戶RAM相比具有的優(yōu)點(diǎn)是,它具有位尋803.用戶RAM區(qū)

30H~7FH之間是普通的用戶RAM。對于8032/8052/8752/AT89C52還包括80H~FFH空間,這里的單元沒有通用寄存器中的符號(即具有寄存器尋址功能),也沒有位尋址區(qū)中的位地址,每個單元只有一個特定的地址與之相對應(yīng)。需要強(qiáng)調(diào)的是,30H~7FH可以采用直接尋址和寄存器間接尋址,而80H~FFH只能通過寄存器間接尋址,不能采用直接尋址。3.用戶RAM區(qū)814.特殊功能寄存器區(qū)特殊功能寄存器簡稱SFR(SpecialFunctionRegister),在單片機(jī)中扮演著十分重要的角色。它們離散地分布在地址為80H~FFH的空間中,特殊功能寄存器地址表如表2-3所示,這里先介紹幾個常用的特殊功能寄存器,其余的在相關(guān)章節(jié)應(yīng)用時介紹。4.特殊功能寄存器區(qū)82

83PUSH DPHIout1+Iout2=常數(shù)。口的內(nèi)部結(jié)構(gòu)及使用特點(diǎn)1.設(shè)計(jì)實(shí)例一:手機(jī)主板穩(wěn)壓芯片在線測試器DB 45H,66H2.“或”操作指令(6條)11000110MOVA,P2 ;RAM或I/O口的選擇線。1為輸入方式,紅、綠、黃燈滅CJNE A,#0A0H,NEXT1 ;INC R0F8H→41H,(41H)=F8HMOV 22H,A ;當(dāng)準(zhǔn)備完成后,外設(shè)發(fā)出中斷請求,請求CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去完成數(shù)據(jù)的輸入/輸出傳送。單片機(jī)工作所需要的時鐘信號有兩種產(chǎn)生方式,即內(nèi)部時鐘方式和外部時鐘方式。時間的長短除了與n1、n2有關(guān)之外,還可以用增加或減少“NOP”對時間進(jìn)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論