華科單片機(jī)復(fù)習(xí)考前突擊筆記(共40頁(yè))_第1頁(yè)
華科單片機(jī)復(fù)習(xí)考前突擊筆記(共40頁(yè))_第2頁(yè)
華科單片機(jī)復(fù)習(xí)考前突擊筆記(共40頁(yè))_第3頁(yè)
華科單片機(jī)復(fù)習(xí)考前突擊筆記(共40頁(yè))_第4頁(yè)
華科單片機(jī)復(fù)習(xí)考前突擊筆記(共40頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩51頁(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、第一章常用(chn yn)術(shù)語(yǔ) 總線(xiàn)(zn xin)BUSDB、CB、AB(傳輸?shù)刂?dzh)信息,位數(shù) 與存數(shù)量有關(guān):N跟-2N字節(jié))。 輸入輸出接口(I/O)連接外設(shè)CPU的電路。 數(shù)據(jù)發(fā)送與接收每個(gè)寄存器有兩個(gè)控制門(mén): E高-接收數(shù)據(jù),G高-發(fā)送數(shù)據(jù)。 計(jì)算機(jī)字長(zhǎng)計(jì)算機(jī)并行處理二進(jìn)制數(shù)字的 位數(shù)。位數(shù)越多,精確度越高。 微型計(jì)算機(jī)=CPU+半導(dǎo)體存儲(chǔ)器+外設(shè)硬件;單片機(jī)=微機(jī)壓縮在一塊電路板上。字節(jié)Byte:8位二進(jìn)制數(shù);字Word:16位二進(jìn)制。十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù)方法:(1) 整數(shù)部分: 除基取余法。分別用基數(shù) R 不斷 地去除 N 的整數(shù), 直到商為零為止, 每次所得的余數(shù)

2、依次排列即為相應(yīng)進(jìn)制的數(shù)碼。最 初得到的為最低有效數(shù)字, 最后得到的為最高有效數(shù)字。(2)小數(shù)部分: 乘基取整法。分 別用基數(shù) R(R=2或16)不斷地去乘N 的小數(shù),直到積的小數(shù)部分為零(或直到所要求的 位數(shù)) 為止, 每次乘得的整數(shù)依次排列即為相應(yīng)進(jìn)制的數(shù)碼。 最初得到的為最高有效 數(shù)字, 最后得到的為最低有效數(shù)字。 4、與運(yùn)算1011B1001B=1001B;或運(yùn)算:10101B+01101B=11101B;非運(yùn)算:;異或運(yùn)算:1010B0110B=1100B原碼X原:正數(shù)的符號(hào)位(最高位)用0表示,負(fù)數(shù)用1來(lái)表示,數(shù)值部分用真值; 0的原碼有兩個(gè);表示范圍從-127+127. 反碼X反

3、: 符號(hào)位不變,正數(shù)的數(shù)值部分反碼=原碼,負(fù)數(shù)的數(shù)值部分反碼=原碼取反。 補(bǔ)碼X補(bǔ):符號(hào)位不變,正數(shù)的數(shù)值部分補(bǔ)碼=原碼,負(fù)數(shù)的數(shù)值部分補(bǔ)碼=反碼+1. 補(bǔ)碼的作用在于把減法轉(zhuǎn)化為加法,如3-2為3原+-2補(bǔ)定點(diǎn)數(shù)小數(shù)點(diǎn)的位置是固定不變的數(shù)??杀硎炯冋麛?shù)、純小數(shù)和混合小數(shù)。特點(diǎn)是 表示的數(shù)的范圍有限。一般用得少。浮點(diǎn)則多用。 浮點(diǎn)數(shù)小數(shù)點(diǎn)的位置不是固定不變的數(shù)。表示(biosh)的方法:純小數(shù)2n=尾數(shù)(wish) 2階碼。 尾數(shù)(wish)帶符號(hào)的定點(diǎn)小數(shù); 階碼帶符號(hào)的純整數(shù).第二章Part 1控制器 程序計(jì)數(shù)器PC(16位):用來(lái)存放下一條即將執(zhí)行的指令的存儲(chǔ)單元的地址。系統(tǒng)將自動(dòng)將 P

4、C的內(nèi)容送到指令寄存器中。開(kāi)機(jī)或者復(fù)位,PC的內(nèi)容清零,計(jì)算機(jī)自動(dòng)從0000H地 址開(kāi)始執(zhí)行指令。執(zhí)行指令時(shí),CPU將自動(dòng)修改PC,PC=PC+1。 指令寄存器IR(9):用來(lái)存放從存儲(chǔ)器送來(lái)的即將執(zhí)行的指令的地址。是一個(gè)9位寄存器。 指令譯碼器ID:對(duì)指令寄存器的指令進(jìn)行譯碼,轉(zhuǎn)變?yōu)檫壿嬰娐匪璧倪壿嬰娦盘?hào)。 堆棧指示器SP:存放特殊數(shù)據(jù)的8位專(zhuān)用的片內(nèi)RAM存儲(chǔ)器空間。又稱(chēng)堆棧指針。運(yùn)算器 算數(shù)邏輯單元ALU:可以實(shí)現(xiàn)對(duì)8位二進(jìn)制數(shù)據(jù)信息的算術(shù)運(yùn)算和邏輯運(yùn)算。 累加器ACC(A):8位寄存器,通過(guò)暫存器TMP2與ALU相連,在A(yíng)LU進(jìn)行運(yùn) 算時(shí)用于提供操作數(shù)和存放中間(zhngjin)結(jié)果

5、。 寄存器B:與ACC配合(pih)使用,執(zhí)行乘除法。乘法運(yùn)算時(shí),一般將被乘數(shù)存放在A(yíng)CC中, 乘數(shù)(chn sh)(即第二個(gè)操作數(shù))放在B中。將乘機(jī)的低位結(jié)果放在A(yíng)CC中,高位結(jié)果放在B中; 除法運(yùn)算時(shí),將被除數(shù)放在A(yíng)CC中,除數(shù)放在B中。商放在A(yíng)CC中,余數(shù)放在B中。B 也可以作為普通寄存器使用。 程序狀態(tài)寄存器PSWD7D6D5D4D3D2D1D0CACF0RS1RS0OVF1P C進(jìn)位標(biāo)志位:D7有進(jìn)位或借位時(shí)C=1,否則C=0 AC輔助進(jìn)位標(biāo)志:D6有進(jìn)位或借位時(shí)AC=1(包括半個(gè)字節(jié)進(jìn)位),否則為0。用于BCD碼運(yùn)算。 FO、F1軟件標(biāo)志:用戶(hù)定義。 RS1、RS0工作寄存器選擇位

6、:選擇四個(gè)工作寄存器組中的一組投入工作。 OV溢出標(biāo)志:用于有符號(hào)數(shù)運(yùn)算,超出-128+127時(shí),OV=1.否則OV=0。 P奇偶標(biāo)志:A中1的個(gè)數(shù)為奇數(shù)P=1,否則P=0。I/O接口:4個(gè)8位并行輸入輸出(I/O)接口,即P0, P1,P2和P3口,用來(lái)傳送數(shù)據(jù)或地 址信號(hào)。它們是準(zhǔn)雙向輸出輸入口。P0和P2口除了可以傳送數(shù)據(jù),還可以在擴(kuò)展存儲(chǔ) 器系統(tǒng)時(shí)作為地址總線(xiàn)。4、串行接口:集成了一對(duì)可編程全雙工串行通信接口。可以實(shí)現(xiàn)單片機(jī)的串行通信。5、定時(shí)/計(jì)數(shù)器:集成2個(gè)16位的可編程定時(shí)/計(jì)數(shù)器T0和T1。其主要部件是一個(gè)16位 加法計(jì)數(shù)器。計(jì)滿(mǎn)了就清零,再重新計(jì)數(shù)。中斷系統(tǒng)數(shù)據(jù)指針DPTR:

7、16位,訪(fǎng)問(wèn)片外ROM、 RAM和擴(kuò)展I/O時(shí)用。振蕩器:CS-51系列單片機(jī)內(nèi)含一個(gè)高增益反相放大器,外接晶體和微調(diào)電容,便成為 自激振蕩器。其功能是為系統(tǒng)提供時(shí)鐘信號(hào)源。 Part 2MCS-51存儲(chǔ)空間分程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器。 程序存儲(chǔ)空間:片內(nèi)片外為同意的地址(dzh)范圍0000H0FFFFH,共有64KB存儲(chǔ)單元 數(shù)據(jù)(shj)存儲(chǔ)空間:片內(nèi)地址為00H0FFH,256B;片外為0000HOFFFFH,64KB。 MCS-51單片機(jī)采用哈佛(Harvard)結(jié)構(gòu),把程序和數(shù)據(jù)存儲(chǔ)器分開(kāi),各自獨(dú)立,各有自己的尋址系統(tǒng)、控制信號(hào)和功能(gngnng)。因訪(fǎng)問(wèn)指令不

8、同,地址可以重疊。A-程序存儲(chǔ)器以程序計(jì)數(shù)器PC為指針,運(yùn)行時(shí)通過(guò)16根AB,可尋址范圍為 片內(nèi)片外 64KB(0000H0FFFFH)。 通過(guò)MOVC指令進(jìn)行訪(fǎng)問(wèn) 編址規(guī)律:先片內(nèi)、后片外,片內(nèi)片外地址連續(xù),二者一般不作重疊。 EA0,只訪(fǎng)問(wèn)片外程序存儲(chǔ)器。 EA1,先訪(fǎng)問(wèn)片內(nèi)程序存儲(chǔ)器。當(dāng)程序計(jì)數(shù)器PC0FFFH(51子系統(tǒng))或PC1FFFH (52 子系統(tǒng)),再去訪(fǎng)問(wèn)片外程序存儲(chǔ)器。 地址分配:片內(nèi)4K(0000H0FFFH):對(duì)于小程序,片內(nèi)的空間已經(jīng)夠用,可以存放2000 多條指令。對(duì)于大程序,需要擴(kuò)展到片外:片外64K(0000HFFFFH); 復(fù)位:復(fù)位后PC里的內(nèi)容為0000H

9、。0000H是程序啟動(dòng)地址,通常在該單元放一條絕對(duì) 跳轉(zhuǎn)指令,跳向主程序的入口地址; 程序存儲(chǔ)器有7個(gè)單元留作特殊用途。不能存放其他指令。第一單元為0000H。復(fù)位后程序執(zhí)行起始地址(PC0000H)。另外6個(gè)對(duì)應(yīng)于6個(gè)中斷源(51子系列僅有5個(gè)),作為中斷服務(wù)程序入口地址(在64K存儲(chǔ)器中)7個(gè)單元相隔很近,放不下稍長(zhǎng)程序代碼。它們實(shí)際存放一條無(wú)條件轉(zhuǎn)移(zhuny)指令,分別轉(zhuǎn)移到用戶(hù)程序真正起始地址或?qū)?yīng)中斷服務(wù)程序真正入口地址:主程序?qū)嶋H從0030H開(kāi)始存放,復(fù)位后,通過(guò)跳轉(zhuǎn)指令(zhlng)LJMP轉(zhuǎn)移至0030H開(kāi)始執(zhí)行。B-數(shù)據(jù)(shj)存儲(chǔ)器 片外數(shù)據(jù)存儲(chǔ)器有64K,用MOVX

10、訪(fǎng)問(wèn); 片內(nèi)數(shù)據(jù)存儲(chǔ)器有256字節(jié)的RAM(00H0FFH),用MOV訪(fǎng)問(wèn)。 低128B(00H7FH)供用戶(hù)使用,分為三個(gè)區(qū)域: 工作寄存器(00H1FH)32單元分為4組每組8個(gè)單元,用R0R7表示,由PSW選擇工作組(右圖所示) 位尋址區(qū)(20H2FH)16個(gè)單元,每個(gè)單元8位,每一位都規(guī)定了一個(gè)地址,稱(chēng)為位地址 數(shù)據(jù)緩沖區(qū)(30H7FH)共80個(gè)單元,為用戶(hù)RAM區(qū),可以根據(jù)需要使用,只能做字節(jié)尋址。 高128B(80HFFH)作為特殊功能寄存器SFR區(qū) ACCBPSW 數(shù)據(jù)指針DPTR,16位,高位字節(jié)用DPH、低位字節(jié)用DPL。既可以用作一個(gè)16位DPTR寄存器,也可以分DPHDP

11、L兩個(gè)八位寄存器使用。 SP,系統(tǒng)復(fù)位時(shí)SP初始值07H,堆棧實(shí)際(shj)從08H開(kāi)始。為避免工作寄存器區(qū),最好將SP設(shè)為1FH或更大。 端口寄存器P0P3。 串行數(shù)據(jù)緩沖器SBUF:串行口對(duì)外鏈接的寄存器,用于存放(cnfng)欲發(fā)送和已接受的數(shù)據(jù)。 定時(shí)器/計(jì)數(shù)器T0和T1,16位,分別(fnbi)由兩個(gè)八位寄存器組成,T0分TH0TL0,T1分TH1TL1??梢杂弥噶顚?duì)這四個(gè)8位寄存器尋址,不能對(duì)16位T0/T1尋址、 中斷優(yōu)先級(jí)控制寄存器IP 10IE 11TMOD/TCON 12SCON/PCON 13外部數(shù)據(jù)存儲(chǔ)器Part 3振蕩周期:振蕩器輸出脈沖頻率對(duì)應(yīng)的周期 T振=1/fs

12、oc時(shí)鐘周期(狀態(tài)周期):振蕩器輸出脈沖經(jīng)二分頻后成為內(nèi)部時(shí)鐘信號(hào),用作于單片機(jī)內(nèi)部各功能部件按序協(xié)調(diào)工作的控制信號(hào) T時(shí)=T狀=2/fosc機(jī)器周期:六個(gè)時(shí)鐘周期構(gòu)成一個(gè)機(jī)器周期 Tcy=T機(jī)=6T時(shí)指令周期:CPU執(zhí)行一條指令的時(shí)間,以機(jī)器周期為計(jì)量單位,單周期指令、雙周期CPU時(shí)序:以S1S6表示一個(gè)機(jī)器周期的6個(gè)T時(shí),以P1 P2表示每個(gè)T時(shí)的兩個(gè)節(jié)拍,則一個(gè)T機(jī)依次有S1P1、S1P2S6P1、S6P2 12個(gè)T振。除訪(fǎng)問(wèn)片外RAM時(shí),ALE(地址鎖存信號(hào))脈沖每個(gè)Tcy的S1P2至S2P1及S4P2至S5P1期間發(fā)生一次。它包含有單字節(jié)、雙字節(jié)指令。兩者都在S1P2期間由CPU取指

13、令(讀指令),PC自動(dòng)加1;雙字節(jié)指令在同一個(gè)T機(jī)的S4再讀第二字節(jié),PC+1PC,而單字節(jié)指令在S4也讀操作碼,因是單字節(jié)指令讀后丟棄不用。PC不加1。兩種指令在S6P2結(jié)束時(shí)都完成操作。若是單字節(jié)雙周期指令在兩個(gè)T機(jī)內(nèi)讀4次,后3次讀后丟棄(diq)。Part 41、復(fù)位電路:MCS-51單片機(jī)的RST腳上出現(xiàn)10ms以上(yshng)高電平,持續(xù)時(shí)間大于兩個(gè)機(jī)器周期,實(shí)現(xiàn)復(fù)位。有兩種方式:上電復(fù)位、手動(dòng)復(fù)位。(又稱(chēng),加電復(fù)位、按復(fù)位按鈕復(fù)位) 復(fù)位(f wi)后,SP07H,P0P3都為FFH,其余都為0 Part 5 單片機(jī)引腳與功能 AB總線(xiàn)(地址總線(xiàn))由P0、P2組成16位DB總線(xiàn)

14、(數(shù)據(jù)總線(xiàn))由P0分時(shí)復(fù)用8位CB總線(xiàn)(控制總線(xiàn))有ALE、PSEN、RST、 EA、INT0、INT1、T0、T1、WR、RD等10根。第三章1.1指令系統(tǒng)概述CPU指令兩種形式:二進(jìn)制代碼(機(jī)器語(yǔ)言指令)、助記符(匯編語(yǔ)言指令)。格式:機(jī)器指令-操作碼(一個(gè)字節(jié)) 操作數(shù)(02個(gè)字節(jié)); 匯編指令-操作碼 目的操作數(shù) 源操作數(shù)3種。操作數(shù)類(lèi)型:#立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù)、位操作數(shù)(寄存器或存儲(chǔ)單元中二進(jìn)制數(shù)的某一位,只取“真”或“偽”兩個(gè)值;可以對(duì)片內(nèi)RAM中20H2FH單元中128位和地址為8的倍數(shù)的特殊功能寄存器中的各位進(jìn)行操作)堆棧,SP寄存器。1.2指令(zhlng)符號(hào)

15、說(shuō)明Ri(i=07)表示(biosh)工作寄存器中8個(gè)工作寄存器R0R7之一.Rj(j=01)表示工作(gngzu)寄存器中可作地址寄存器的R0或R1。direct代表8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址或特殊功能寄存器地址.#data表示8位常數(shù).#data16代表16位常數(shù).addr16代表16位目的地址。addr11:表示11位目的地址。rel:相對(duì)地址,一般用標(biāo)號(hào)表示,匯編程序自動(dòng)計(jì)算rel的值bit:代表內(nèi)部RAM或特殊功能寄存器中的直接尋址位。/bit取反。DPTR:16位地址寄存器(X):片內(nèi)X單元或X寄存器中內(nèi)容(X):X所指向存儲(chǔ)單元中內(nèi)容2.1尋址方式立即尋址方式(23字節(jié))MOV

16、 A,#0A6H直接尋址方式 MOV A,38H 可訪(fǎng)問(wèn)片內(nèi)RAM的低128字節(jié)(高不能用)和特殊功能寄存器SFR;SFR只能用直接尋址;寄存器尋址 MOV A,R1 該指令兩個(gè)操作數(shù)均采用寄存器,涉及寄存器有A,B,R0R7。寄存器間接尋址 MOV A,R1 片內(nèi)高128位只能用寄存器間接尋址方式;訪(fǎng)問(wèn)片內(nèi)RAM的低128字節(jié)或片外RAM 中的256字節(jié)時(shí),需要用工作寄存器組中的RO或R1作為間接地址寄存器;訪(fǎng)問(wèn)片外的64K數(shù)據(jù)存儲(chǔ)器時(shí),用DPTR?;拇嫫骷幼冎芳拇嫫骱?jiǎn)介尋址 MOVC A,A+DPTR 基寄存器為DPTR或PC,變址寄存器為A。訪(fǎng)問(wèn)以基寄存器為基準(zhǔn)的0255個(gè)單元。相對(duì)尋

17、址 目標(biāo)地址=PC+rel=指令存儲(chǔ)地址+指令的字節(jié)數(shù)+rel等價(jià)于JC TEST1 相對(duì)地址用標(biāo)號(hào)標(biāo)出,由匯編程序或人工計(jì)算出rel位尋址方式 MOV C ,0AH 該尋址方式用于訪(fǎng)問(wèn)內(nèi)部RAM中位尋址區(qū)的128位和SFR中的93位。兩個(gè)操作數(shù)均采用為尋址方式。3.1數(shù)據(jù)傳遞指令Part 1數(shù)據(jù)傳輸類(lèi)指令數(shù)據(jù)傳送類(lèi)指令29條dataA directRiRj directMOV類(lèi)指令(zhlng)(本筆記中Ri對(duì)應(yīng)書(shū)上Rn,Rj對(duì)應(yīng)書(shū)上Ri) 用于內(nèi)部8位數(shù)據(jù)(shj)傳遞:除R之間不能傳遞,#data只能(zh nn)做源操作數(shù),其余皆可以雙向傳遞,而且direct可以傳遞給direct。

18、16位二進(jìn)制數(shù)傳遞只有一條:MOV DPTR,#DATA16.執(zhí)行之后 DPH=高八位,DPL=低八位。MOVC指令,2條 訪(fǎng)問(wèn)片外RAM 16位的傳送指令,是查表指令,用于將程序存儲(chǔ)器中的數(shù)據(jù)傳送至A。 MOVC A,A+DPTR:DPTR可以等于任何值,尋址范圍為64K MOVC A.A+PC:PC指向下一條指令,所以尋址范圍為該指令以下256個(gè)單元MOVX類(lèi)指令,4條 用于在累加器A與I/O口或外部擴(kuò)展的RAM之間傳送數(shù)據(jù) 1)MOVX A,DRTR 和 MOVX DPTR,A用于A(yíng)與外部數(shù)據(jù)存儲(chǔ)器或I/O口之間,地址16位 2)MOVX A,Rj 和 MOVX Rj,A用于兩種情況:與

19、I/O口或外部擴(kuò)展的RAM的地址空間由CPU的低8位確定;或者與I/O口或外部擴(kuò)展的RAM的地址空間由16位線(xiàn)確定,此時(shí)16位地址號(hào)的低8位由Rj指示,高8位由P2口輸出。 如MOV P2,#48H MOV R1,#60H = MOV DPTR, #4860H MOVX A,R1 MOVX A,DPTR 堆棧操作指令(操作數(shù)可以采用直接尋址或寄存器尋址如A,Ri,PSW等) 進(jìn)棧指令PUSH direct :SP+1 出棧指令POP direct : SP-1交換指令XCH指令(zhlng),交換A和源操作數(shù)內(nèi)容 XCH A,direct XCH A,Ri XCH A,RjXCHD和SWAP指

20、令(zhlng):半字節(jié)交換指令 XCHD A,Rj ;低半字節(jié)(z ji)交換,高半字節(jié)不變 SWAP A ;高四位第四位互相交換 Part 2算數(shù)運(yùn)算類(lèi)指令針對(duì)8位二進(jìn)制數(shù),包括無(wú)符號(hào)數(shù)、有符號(hào)數(shù)(補(bǔ)碼)、壓縮BCD碼和非壓縮BCD碼;MCS-51單片機(jī)的ALU僅執(zhí)行無(wú)符號(hào)二進(jìn)制數(shù)的算術(shù)運(yùn)算,借助進(jìn)位標(biāo)志,可進(jìn)行多精度加減運(yùn)算,也可以對(duì)壓縮BCD碼運(yùn)算;借助溢出標(biāo)志,可以對(duì)有符號(hào)數(shù)進(jìn)行2的補(bǔ)碼運(yùn)算。不帶進(jìn)位位的加法 ADD A, Ri ADD A, Rj ADD A, direct ADD A, #data 帶進(jìn)位的加法指令,注意CLR C ADDC A, Ri ; AA+Ri+C ADD

21、C A, Rj ; AA+(Rj)+C ADDC A, direct ; AA+direct+C ADDC A, #data ; AA+#data+C 帶借位的減法指令 SUBB A, Ri ;AA-C-Ri (i=07) SUBB A,Rj ;AA-C-(Rj)(j=01) SUBB A, direct ;AA-C-direct SUBB A, #data ;AA-C- #data 乘除 MUL AB ;乘積低八位放A,高八位放B DIV AB;A/B,商放A,余數(shù)放B 十進(jìn)制調(diào)整指令 DA A;因?yàn)锽CD碼中10101111在十進(jìn)制中沒(méi)有對(duì)應(yīng)項(xiàng),當(dāng)運(yùn)算結(jié)果大于9時(shí),會(huì)產(chǎn)生錯(cuò)誤。DA指令就是

22、對(duì)BCD碼十進(jìn)制數(shù)加法運(yùn)算結(jié)果作加6進(jìn)行修正,調(diào)整為2位BCD碼數(shù)。 只能用在對(duì)BCD碼數(shù)進(jìn)行ADD或ADDC操作后使用,減法不適用。有進(jìn)位時(shí)C=1增、減量指令(zhlng)(僅影響P) INC 目的(md)操作數(shù) ;A Ri Rj direct,注意INC對(duì)C無(wú)影響(yngxing),需要進(jìn)位時(shí)不能使用 DEC 目的操作數(shù) ; 同上 注意:所讀入的端口內(nèi)容來(lái)自端口的鎖存器而不是端口的引腳。Part 3 邏輯運(yùn)算類(lèi)指令1、與或異或,8位與運(yùn)算(可用于屏蔽某些信號(hào),需要屏蔽用0,不需要用1) ANL A,源操作數(shù);Ri direct Rj #data ANL direc,源操作數(shù);A #data

23、或指令(可用于置位,需要需要置位與1或,不需置位與0或) ORL A,源操作數(shù);Ri direct Rj #data ORL direc,源操作數(shù);A #data異或指令(用于對(duì)目的操作數(shù)某些部位取反,需要取反與1異或,不需要與0異或) XRL A,源操作數(shù);Ri direct Rj #data XRL direc,源操作數(shù);A #data對(duì)累加器A的單操作數(shù)邏輯操作指令A(yù)的取反 CPL AA的清零 CLR AA的左循環(huán)移位指令 RL A;An+1An, A0A7 (A循環(huán)左移1次)A的右循環(huán)移位指令 RR A;AnAn+1, A7A0 (A循環(huán)右移1次)A的帶進(jìn)位左循環(huán)移位指令 RLC A;

24、CD7D0CA的帶進(jìn)位右循環(huán)移位指令 RRC A;CD7D0C 注:左移1相當(dāng)于乘2,右移相當(dāng)于除2Part 4 位操作類(lèi)指令 內(nèi)部RAM中20H2FH單元是位尋址區(qū),該區(qū)的每一位都賦予了一個(gè)位地址,位地址為:00H7FH;P0、P1、P2、P3、TCON、SCON、IE、IP、PSW、A、B的每一位都有一個(gè)位地址;位地址00H7FH在內(nèi)部RAM中,地址連續(xù),位地址80HFFH在特殊功能寄存器中,地址不連續(xù)。位地址的表示方法:直接地址方式如50H等;點(diǎn)操作符方式如PSW.5;位名稱(chēng)方式如RS0,RS1,TR0,TR1等;用戶(hù)定義名方式,偽指令bit,定義某個(gè)位地址的標(biāo)號(hào)。格式: 符號(hào) bit

25、位地址 FLG bit F0; 經(jīng)定義,指令中用FLG代替F0。 AL bit P0.0; P0.0的位地址賦予給AL。位傳送指令:要想傳送位數(shù)據(jù),只能通過(guò)C來(lái)完成。 MOV C,bit MOV bit,CCPL CCLR CSETB CCPL bitCLR bitSETB bitANL C,bitANL C, /bitORL C, /bitORL C,bitC的其他(qt)指令;取反;清零;置1; bit取反; bit 0(清零); bit 1(置1); C C bit(C和bit相與); CC /bit,“/”表示取反,但; 不改變?cè)瓉?lái)bit中的值; CC /bit (位相或,bit值不變

26、); C C bit (C和bit相或)位條件(tiojin)轉(zhuǎn)移指令 若條件(tiojin)滿(mǎn)足則PC值改變,實(shí)現(xiàn)程序的轉(zhuǎn)移。否則,順序執(zhí)行后面程序 位變量可以是C或內(nèi)部RAM單元中可直接尋址的位。JC rel ;當(dāng)C=1時(shí), 轉(zhuǎn)移到目標(biāo)地址: PC+2+relPCJNC rel ;當(dāng)C=0時(shí), 轉(zhuǎn)移到目標(biāo)地址: PC+2+relPCJB bit, rel ;當(dāng)bit=1時(shí), 轉(zhuǎn)移到目標(biāo)地址: PC+3+relPCJNB bit, rel ;當(dāng)bit=0時(shí), 轉(zhuǎn)移到目標(biāo)地址: PC+3+relPCJBC bit, rel ;若bit1 則清bit=0,并轉(zhuǎn)移到目標(biāo)地址: PC+3+relPC

27、Part 5 控制轉(zhuǎn)移類(lèi)指令1、無(wú)條件轉(zhuǎn)移指令A(yù)JMP addr11;絕對(duì)短跳轉(zhuǎn)指令:該指令執(zhí)行時(shí),先把PC+2,然后把a(bǔ)ddr11送入PC低11位,高五位不變??梢詫?shí)現(xiàn)2KB以?xún)?nèi)無(wú)條件轉(zhuǎn)移。編程時(shí),addr11用標(biāo)號(hào)代替。LJMP addr16;長(zhǎng)跳轉(zhuǎn)指令:將PC=addr16。編程時(shí),addr16用標(biāo)號(hào)代替即可。SJMP rel;相對(duì)短跳轉(zhuǎn)指令:目標(biāo)地址=源地址+2+rel,偏移量用8位補(bǔ)碼-128127,編程時(shí)用標(biāo)號(hào)。JMP A+DPTR;間接跳轉(zhuǎn)指令:PC=A+DPTR條件指令轉(zhuǎn)移判別A JZ rel;A=0轉(zhuǎn)移 JNZ rel;A0轉(zhuǎn)移比較不相等則轉(zhuǎn)移的指令 CJNE A, #dat

28、a, rel ; #data=A, PC=PC+3, C =0 ;A #data, PC=PC+3+rel, C =0 ; A后者, 0C; 否則(fuz), 1C。通過(guò)查詢(xún)(chxn)C,可以判斷大小。減一不為零則跳轉(zhuǎn) DJNZ Ri, rel DJNZ direct, rel將Ri(direct)中8位無(wú)符號(hào)數(shù)中的內(nèi)容減1并送回Ri(direct)。若新的Ri(direct)不為0,則PC+2+rel形成新地址,送給PC,程序便轉(zhuǎn)向指定的目標(biāo)地址去執(zhí)行。否則結(jié)束循環(huán),順序執(zhí)行程序。調(diào)用和返回指令子程序調(diào)用指令 ACALL addr11;絕對(duì)調(diào)用指令:先將PC+2,然后將斷點(diǎn)壓入堆棧,再將a

29、ddr11送入PC低11位,高5位保持不變,實(shí)現(xiàn)2k內(nèi)跳轉(zhuǎn)。 LCALL addr16;長(zhǎng)調(diào)用指令:先將PC+3,然后將斷點(diǎn)送入堆棧,將addr16送入PC,實(shí)現(xiàn)64K隨意跳轉(zhuǎn)子程序返回指令 RET ;子程序返回指令:子程序最后一條指令,將堆棧頂端相鄰兩個(gè)單元(高8位先出來(lái)+低8位后出來(lái))內(nèi)容彈出至PC,SP-2,回到斷點(diǎn)處 RETI;中斷返回指令:中斷程序最后一條指令,與RET功能相似。NOP空操作指令Part 6 偽指令(不產(chǎn)生目標(biāo)代碼)定位偽指令ORG ORG nn;nn為此指令后第一條指令或第一個(gè)數(shù)據(jù)的存放地址,多條ORG之間不重疊賦值偽指令EQU 字符串 EQU 常數(shù)值 CHECK

30、EQU 28H;使CHECK=28H ADD A CHECK;(A)+(28H)定義字節(jié)偽指令DB 標(biāo)號(hào):DB 字節(jié)常數(shù)或字符串 功能是將8位數(shù)據(jù)(或8位數(shù)據(jù)組)x1, x2, xn依次存放在從當(dāng)前程序存儲(chǔ)器地址開(kāi)始的存儲(chǔ)單元中。xi可以是8位數(shù)據(jù)、ASCII碼(加)、表達(dá)式,也可以是括在單引號(hào)內(nèi)的字符串。兩個(gè)數(shù)據(jù)之間用逗號(hào)“,”分隔。 DATA: DB 2AH,30H,9DH ;將2AH等3個(gè)數(shù)據(jù)裝入DATA開(kāi)始的3個(gè)單元中。 定義字偽指令DW 標(biāo)號(hào):DW 字或字串 功能是將雙字節(jié)數(shù)據(jù)或雙字節(jié)數(shù)據(jù)組依次存放在從標(biāo)號(hào)指定地址單元開(kāi)始的存儲(chǔ)單元中。其中,xi為16位數(shù)值常數(shù),占兩個(gè)存儲(chǔ)單元,先存

31、高8位(存入低位地址單元中),后存低8位(存入高位地址單元中)。該偽指令經(jīng)常(jngchng)用于定義一個(gè)地址表。ATA: DW 2AB6H,1E02H ;將2AB6H等2個(gè)數(shù)據(jù)裝入DATA開(kāi)始(kish)的4個(gè)單元中。 5、定義(dngy)位地址符號(hào)偽指令BIT 字符名稱(chēng)X BIT 位地址n 功能是用于定義某特定位的標(biāo)號(hào),將位地址n的值賦予字符名稱(chēng)x。程序中凡出現(xiàn)該字符名稱(chēng)x就代表該位地址。即用指令中的標(biāo)號(hào)來(lái)代替項(xiàng)所指出的位。位地址n可以是絕對(duì)地址,也可以是符號(hào)地址。 P11 BIT P1.1 ;P1口位1地址91H賦給P11定義存儲(chǔ)空間偽指令DS DS n 功能是從標(biāo)號(hào)指定地址單元開(kāi)始,預(yù)

32、留n個(gè)存儲(chǔ)單元,匯編時(shí)不對(duì)這些存儲(chǔ)單元賦值。標(biāo)號(hào)可以用其他形式表示。n可以是數(shù)據(jù),也可以是表達(dá)式。 ORG 1000H DATA: DS O7H ;從地址1000H開(kāi)始保留7個(gè)單元匯編結(jié)束偽指令END 功能是放在匯編語(yǔ)言源程序的末尾,表明源程序的匯編到此結(jié)束,其后的任何內(nèi)容不予理睬。 第四章Part 1概述格式標(biāo)號(hào):操作碼 操作數(shù) 1,操作數(shù)2 ;注釋 標(biāo)號(hào)第一個(gè)字符必須是英文字母操作數(shù)有三種類(lèi)型:立即數(shù)、寄存器操作數(shù)、存儲(chǔ)器操作數(shù);有五種合法表示形式:2B、10D、16H進(jìn)制,工作寄存器或特殊功能寄存器,符號(hào)地址如ATM、LOOP1(在某處已定義),帶加減算符的表達(dá)式如ATM+3(MOV A

33、,DTM+3),$(SJMP $;跳轉(zhuǎn)到自身)匯編語(yǔ)言程序設(shè)計(jì)步驟:分析問(wèn)題確定數(shù)學(xué)模型確定算法設(shè)計(jì)程序流程圖安排寄存器和存儲(chǔ)空間編制匯編語(yǔ)言源程序上機(jī)調(diào)試技巧模塊化的程序設(shè)計(jì)方法(劃分模塊的原則):每個(gè)模塊具有獨(dú)立的功能,產(chǎn)生一個(gè)明確的結(jié)果;模塊之間的控制偶合(指模塊的進(jìn)入和退出條件及方式)應(yīng)盡量簡(jiǎn)單;模塊之間的數(shù)據(jù)偶合(指信息交換的方式, 交換量的多少及頻繁程度)應(yīng)盡量少;模塊長(zhǎng)度適中。太長(zhǎng)調(diào)試?yán)щy失去了其優(yōu)越性;太短則模塊連接又太復(fù)雜。編程技巧:盡量采用循環(huán)結(jié)構(gòu)和子程序??梢源蟠鬁p少程序的總?cè)萘?,提高效率,?jié)省空間;盡量少用無(wú)條件轉(zhuǎn)移指令,使程序條理更清楚,減少錯(cuò)誤;累加器是信息傳遞的樞

34、紐,在子程序中一般不必把累加器內(nèi)容壓入堆棧。Part 2程序設(shè)計(jì)(chn x sh j)要將書(shū)上的程序都看看!1、順序程序設(shè)計(jì)(shj)2、分支(fnzh)程序設(shè)計(jì)具有兩個(gè)或兩個(gè)以上流向的程序,特點(diǎn)是程序中含有轉(zhuǎn)移指令。分無(wú)條件轉(zhuǎn)移和有條件轉(zhuǎn)移,有條件轉(zhuǎn)移分A判別轉(zhuǎn)移、比較條件轉(zhuǎn)移、減一條件轉(zhuǎn)移和位控制條件轉(zhuǎn)移等。3、循環(huán)程序設(shè)計(jì)步驟:初始化部分:設(shè)計(jì)循環(huán)計(jì)數(shù)器、建立地址指針、設(shè)計(jì)除變量等 循環(huán)體:反復(fù)循環(huán)的那部分 循環(huán)控制部分:修改指針、修改變量、進(jìn)行判斷決定繼續(xù)循環(huán)或者結(jié)束 結(jié)束部分技巧:先處理后判斷,還是先判斷后處理 (RRCRLC) 循環(huán)次數(shù)已知,用計(jì)數(shù)器控制;未知,可以按問(wèn)題的條件控

35、制循環(huán),還有邏輯尺 單重循環(huán)或多重循環(huán)(不允許交叉,不允許從外部跳入循環(huán)內(nèi)部) 查表程序設(shè)計(jì)(已知變量X,通過(guò)查找表格求該函數(shù)值。) MOVC A,A+DPTR(查表前保護(hù)DPTR:PUSH DPH;PUSH DPLPOP DPL;POP DPH) MOVC A,A+PC DB子程序設(shè)計(jì)(子程序調(diào)用ACALL/LCALL或中斷調(diào)用)簡(jiǎn)化主程序 第一條語(yǔ)句有子程序名稱(chēng)標(biāo)號(hào) 子程序以返回指令RET為結(jié)尾 在主程序中設(shè)置堆棧(若需調(diào)用子程序,必定使用堆棧,所以主程序要設(shè)置堆棧棧底,將棧底送至SP) 保護(hù)和恢復(fù)現(xiàn)場(chǎng)(保護(hù)現(xiàn)場(chǎng)是將主程序中需要保護(hù)的內(nèi)容送到閑置的寄存器或堆棧,恢復(fù)現(xiàn)場(chǎng)是逆過(guò)程,一般在子程

36、序結(jié)尾部分完成)運(yùn)算程序設(shè)計(jì) n字節(jié)無(wú)符號(hào)加法;有符號(hào)單字節(jié)加法(兩個(gè)加數(shù)擴(kuò)展為一個(gè)字來(lái)表示,如果是負(fù)數(shù)則高八位為11111111B,正數(shù)為00000000H;高八位的和數(shù)的進(jìn)位舍棄)第五章Part 1存儲(chǔ)器的概述(i sh)存儲(chǔ)器的性能指標(biāo):存儲(chǔ)容量(cn ch rn lin)、存取時(shí)間、功耗、可靠性等;存儲(chǔ)器用來(lái)存放程序和數(shù)據(jù)(shj)的,分為 普林斯頓結(jié)構(gòu)CISC和哈佛結(jié)構(gòu)RISC。存儲(chǔ)容量是指其能存儲(chǔ)的二進(jìn)制數(shù)的位數(shù)。位bit表達(dá)一個(gè)二進(jìn)制信息1/0;字節(jié)Byte,一字節(jié)由8bit組成,作為一個(gè)存儲(chǔ)單元,計(jì)算機(jī)信息大多以字節(jié)形式存放;字Word,他的長(zhǎng)度叫字長(zhǎng),2字節(jié),計(jì)算機(jī)處理數(shù)據(jù)時(shí)

37、,一次存取、加工和傳遞的一組二進(jìn)制數(shù)。 存儲(chǔ)器的容量通常用“芯片單元數(shù)數(shù)據(jù)線(xiàn)位數(shù)”(即=字?jǐn)?shù)字長(zhǎng)=字節(jié)數(shù)X 2 X字長(zhǎng))表示。例如:某存儲(chǔ)器芯片有8192個(gè)單元,數(shù)據(jù)線(xiàn)為8位,則容量為8192x8位,8192B,8KB(1024記為1K);存儲(chǔ)器單元數(shù)與地址線(xiàn)有關(guān):?jiǎn)卧獢?shù)=2地址線(xiàn)根數(shù),所以容量M=2地址線(xiàn)根數(shù)B 綜上M=2地址線(xiàn)根數(shù) x 8位=2地址線(xiàn)根數(shù)B=2(地址線(xiàn)根數(shù)-10)KB 芯片前兩位為程序,后23位為容量如27128,27程序,128=16K x 8B=16KB存儲(chǔ)器分類(lèi) A.內(nèi)存儲(chǔ)器:簡(jiǎn)稱(chēng)內(nèi)存,位于計(jì)算機(jī)主機(jī)內(nèi)部,是計(jì)算機(jī)的主要存儲(chǔ)器,所以,也稱(chēng)主存儲(chǔ)器或主存。用來(lái)存放CPU

38、當(dāng)前使用的或經(jīng)常使用的程序和數(shù)據(jù),CPU可以隨時(shí)直接對(duì)主存進(jìn)行訪(fǎng)問(wèn)(讀/寫(xiě)),內(nèi)存通常由半導(dǎo)體存儲(chǔ)器組成。受CPU地址線(xiàn)所限,容量小但速度快。B.外存儲(chǔ)器:也稱(chēng)輔助存儲(chǔ)器,簡(jiǎn)稱(chēng)外存,通過(guò)專(zhuān)用設(shè)備與CPU相連,用于存放待運(yùn)行的程序和數(shù)據(jù)。存儲(chǔ)容量大速度慢,起擴(kuò)充存儲(chǔ)容量作用。半導(dǎo)體存儲(chǔ)器(內(nèi)存)的分類(lèi)隨機(jī)存取存儲(chǔ)器RAM:RAM也稱(chēng)讀寫(xiě)存儲(chǔ)器,RAM中存放的信息當(dāng)關(guān)閉電源時(shí)會(huì)全部丟失,只能用來(lái)存放暫時(shí)性的輸入輸出數(shù)據(jù)、中間運(yùn)算結(jié)果、用戶(hù)程序,也常用它來(lái)與外存交換信息或用作堆棧。通常人們所說(shuō)的微機(jī)內(nèi)存容量就是指RAM存儲(chǔ)器的容量。動(dòng)態(tài)DRAM(成本低、功耗小,但需要刷新電路,接口電路復(fù)雜一般不用)

39、靜態(tài)SRAM(常用)6264RAM芯片 8K x 8靜態(tài)RAM芯片(13根地址線(xiàn),8根數(shù)據(jù)線(xiàn),統(tǒng)一+5V電源)A0A12:13根地址線(xiàn),與單片機(jī)地址總線(xiàn)低13位相連I0/O0I7/O7:8根雙向數(shù)據(jù)線(xiàn),與單片機(jī)數(shù)據(jù)總線(xiàn)相連WE:寫(xiě)信號(hào),低電平允許數(shù)據(jù)總線(xiàn)上的數(shù)據(jù)寫(xiě)入選定的片內(nèi)存儲(chǔ)單元中,連單片機(jī)寫(xiě)信號(hào)OE:數(shù)據(jù)輸出允許信號(hào),內(nèi)部單元數(shù)據(jù)總線(xiàn)供CPU讀取,與CPU的讀RD線(xiàn)連接CS和CS(教材(jioci)上是CE和CE):是片選信號(hào)線(xiàn),CS=1,CS=0時(shí),選中該芯片。Vcc、GNDB. 只讀存儲(chǔ)器ROM:ROM是一種當(dāng)寫(xiě)入信息之后,就只能讀出而不能改寫(xiě)的固定存儲(chǔ)器(又稱(chēng)程序(chngx)存儲(chǔ)

40、器)。斷電后,ROM中所存信息仍保留不變,所以,ROM是非易失性存儲(chǔ)器。因此,微機(jī)系統(tǒng)中常用ROM來(lái)存放固定的程序和數(shù)據(jù),如監(jiān)控程序、操作系統(tǒng)中的BI0S(基本輸出輸出系統(tǒng))、BASIC解釋程序或用戶(hù)需要固化的程序。掩膜ROM由存儲(chǔ)器生產(chǎn)廠(chǎng)家根據(jù)(gnj)用戶(hù)要求進(jìn)行編程,一經(jīng)制作完成就不能更改其內(nèi)容可編程PROM出廠(chǎng)時(shí)為空白存儲(chǔ)器,用戶(hù)用特殊方法寫(xiě)入程序和數(shù)據(jù),只能寫(xiě)一次可擦除可編程EPROM 允許用戶(hù)按規(guī)定的方法和設(shè)備多次編程修改典型芯片是27系列產(chǎn)品2764EPROM芯片 8k x 8用單一的+5V電源,所有的輸入端和輸出端都與TTL電路兼容。CS為片選信號(hào),同6264連接法OE為輸出允

41、許信號(hào)(注意與CPU的PSEN程序存儲(chǔ)器選通信號(hào)線(xiàn))PGM為編程脈沖輸入(50ms寬負(fù)脈沖作用下程序?qū)懭脒x中單元)VPP為編程電壓。正常工作(只讀)時(shí),VPP =VCC =+5V 。編程時(shí),VPP =+2125V(高壓),PGM端加入寬度為50ms的正/負(fù)脈沖(N溝道器件為正脈沖,P溝道器件為負(fù)脈)。A0A12為13根地址線(xiàn)D0D7為8位數(shù)據(jù)線(xiàn)。電可擦除可編程EEPROM 能以字節(jié)為單位進(jìn)行擦除和改寫(xiě),而不是像EPROM那樣整體擦除,也不需要把芯片從用戶(hù)系統(tǒng)中撥下來(lái)用編程器編程,在用戶(hù)系統(tǒng)即可進(jìn)行。2817 2K 8閃速存儲(chǔ)器,也稱(chēng)閃存,屬于EEPROM電改寫(xiě)電擦除,可實(shí)現(xiàn)大規(guī)模電擦除;可高速

42、編程;閃速存儲(chǔ)器可重復(fù)使用28F040 512k x 8Part 2 存儲(chǔ)器的地址編碼方法 CPU與地址總線(xiàn)的連接問(wèn)題。CPU如何尋找所需要的單元?找出哪個(gè)芯片片選(線(xiàn)選法,全譯碼法,部分譯碼法);找到該芯片指定的單元地址,又叫做字選。線(xiàn)選法 將存儲(chǔ)器芯片的地址線(xiàn)與單片機(jī)地址總線(xiàn)(A0A15)低位依次連接,選用一根未連接的單片機(jī)地址總線(xiàn)作為存儲(chǔ)器的片選信線(xiàn),該線(xiàn)為1時(shí)選中該芯片,芯片CE低電平有效,故片選線(xiàn)上加一非門(mén)。 特點(diǎn):連線(xiàn)簡(jiǎn)單、地址重疊(n個(gè)未使用的地址線(xiàn),每個(gè)單元有2n個(gè)地址)、地址空間浪費(fèi)(Ak作為片選線(xiàn)且其為高電平選中該芯片,在選擇其他芯片時(shí)Ak只能(zh nn)為0而造成的浪費(fèi)

43、)外設(shè)(I/O)端口的編址有兩種方式:存儲(chǔ)器映射法(和存儲(chǔ)器統(tǒng)一編址,我們用)和I/O映射法(獨(dú)立空間單獨(dú)編址)一個(gè)端口用一個(gè)地址(dzh)線(xiàn)作為尋址線(xiàn)。全譯碼法 將剩余的所有地址線(xiàn)經(jīng)譯碼電路(譯碼器)產(chǎn)生(chnshng)片選信號(hào)。 特點(diǎn):避免了線(xiàn)選法的浪費(fèi)地址空間和地址重疊部分譯碼法 由剩余部分地址線(xiàn)中的部分經(jīng)譯碼電路產(chǎn)生片選信號(hào)。 特點(diǎn):折中。Part 3 存儲(chǔ)器與CPU的連接(芯片的速度要快于CPU)1、存儲(chǔ)器與CPU的信號(hào)線(xiàn)連接地址線(xiàn)的連接:按前面介紹的方法片選和字選連接。數(shù)據(jù)總線(xiàn)的連接:根據(jù)數(shù)據(jù)量的大小來(lái)決定。通常是一個(gè)字節(jié)8位數(shù)據(jù)。如果擴(kuò)展為一個(gè)字16位,則需要改變連接方式??刂?/p>

44、總線(xiàn)的連接:主要是指諸如寫(xiě),讀等這類(lèi)信號(hào)線(xiàn)的連接。一般都是將CPU的寫(xiě)控制WR連接芯片的寫(xiě)允許WR端口,將CPU的讀控制ED與芯片的讀選通端口OE連接,程序存儲(chǔ)器芯片的讀選通信號(hào)OE則與CPU的PSEN相連!存儲(chǔ)器系統(tǒng)設(shè)計(jì)中常用的接口電路地址鎖存器:用來(lái)分配地址信號(hào)和數(shù)據(jù)信號(hào)給CPU74LS373鎖存器具有8路(8D)的芯片。有1個(gè)使能端G、1個(gè)輸出控制端OE、8個(gè)輸入D,8個(gè)輸出Q。該芯片又稱(chēng)透明的D型鎖存器(這是指當(dāng)使能端G=1時(shí),輸出Q將跟隨輸入D的變化)。當(dāng)使能端G=0時(shí),輸出端Q與輸入D斷開(kāi),Q的數(shù)據(jù)保存。這就是鎖存的作用。功能見(jiàn)右圖總線(xiàn)緩沖器:用于地址總線(xiàn)和控制信號(hào)的緩沖它有2個(gè)使

45、能端GA和GB,分別控制2組輸入A/B和輸出端YA/YB并決定數(shù)據(jù)流向方向地址譯碼器:地址譯碼器的功能是對(duì)系統(tǒng)的高位地址進(jìn)行譯碼,以譯碼后的輸出作為存儲(chǔ)芯片的片選信號(hào)。主要用于全譯碼法和部分譯碼法的譯碼輸出。74LS138譯碼器有3個(gè)輸入,因?yàn)?3=8, 所以它有8個(gè)輸出。另外,還有3個(gè)使能端,E1,E2,和E3 (或用G1,GA和GB表示),當(dāng)E1=1,E2=E3=0時(shí),才能進(jìn)行譯碼輸出 。CBA的值決定哪個(gè)口Y=0有效,其他都無(wú)效。74LS139譯碼器是雙2-4譯碼器。每個(gè)譯碼器有2個(gè)輸入BA決定哪個(gè)輸出端為0有效,因?yàn)?2=4, 所以它有4個(gè)輸出。有1個(gè)使能端G,當(dāng)G=0時(shí),才能進(jìn)行譯碼

46、輸出 。Part 4 MCS-51單片機(jī)程序(chngx)存儲(chǔ)器的擴(kuò)展CPU的PESN提供外部(wib)程序存儲(chǔ)器ROM的讀信號(hào)控制RD;CPU的RD提供外部數(shù)據(jù)存儲(chǔ)器RAM的讀信號(hào)控制RD。擴(kuò)展時(shí)常用的控制(kngzh)信號(hào)ALE:地址鎖存選通信號(hào)(高電平有效)。連接鎖存器的使能端G。PSEN :擴(kuò)展程序存儲(chǔ)器(外部ROM)讀選通信號(hào)(低電平有效)。連接ROM輸出允許端OE。CE:外程序存儲(chǔ)器的選擇信號(hào),即片選信號(hào)(低電平有效)。RD和WR:擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器(RAM)的讀、寫(xiě)選通信號(hào)(低電平有效)。EA:內(nèi)外程序存儲(chǔ)器的選擇。高電平為先內(nèi)后外;低電平為只選外。內(nèi)部無(wú)ROM區(qū)EA接地!由圖所

47、示:數(shù)據(jù)總線(xiàn)DB是雙向粗箭頭;地址總線(xiàn)AB是又CPU流向外存的單箭頭;其余都是無(wú)箭頭細(xì)線(xiàn)。Part 5 單片機(jī)數(shù)據(jù)(shj)存儲(chǔ)器的擴(kuò)展訪(fǎng)問(wèn)(fngwn)程序存儲(chǔ)器MOVC ROM訪(fǎng)問(wèn)(fngwn)數(shù)據(jù)存儲(chǔ)器MOV RAM ; MOVC RAM控制線(xiàn)的連接RAM和ROM也不同。RAM的WR信號(hào)線(xiàn)與CPU的WR信號(hào)線(xiàn)連接;RAM的OE (數(shù)據(jù)輸出允許)與CPU的RD(讀)信號(hào)連接。對(duì)于ROM的OE線(xiàn)也是數(shù)據(jù)輸出允許,它與CPU的PSEN(程序存儲(chǔ)器選通)信號(hào)線(xiàn)連接。Part 6 程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的綜合擴(kuò)展書(shū)上P148頁(yè)的圖!必考!【此處留白手繪】系統(tǒng)圖畫(huà)(thu)過(guò)程(線(xiàn)見(jiàn)上頁(yè))1、單片機(jī)

48、CPUP0.0P0.7輸出低八位(b wi)地址信號(hào),與鎖存器輸入D0D7相連P2.0P2.7輸出剩余高位地址信號(hào)(xnho),可直接與外部RAM或ROM相連P2.0P2.7中剩余線(xiàn)可連接譯碼器輸入,或者連接非門(mén)在連接片外RAM ROM的CE作為片選信號(hào)CPU內(nèi)部無(wú)ROM,則EA接地,否則接高電ALE接鎖存器的使能端GPSEN接片外ROM的OEWR接片外RAM和I/0端口的WR,RD接片外RAM和I/0端口的RD鎖存器D0D7輸入與CPU的P21.0P1.7連接輸出Q0Q7與片外RAM ROM 的低8位地址線(xiàn)連接使能端G與CPU的ALE連接OE接地有效譯碼器3-8譯碼器G1接+5V,G2AG2

49、B接地,C(高位)BA(低位)接P2.0P2.7作為片選信號(hào)的地址總線(xiàn),輸出Y0Y7位片選信號(hào)2-4譯碼器 G接地有效,B高A低,輸出Y0Y3片選信號(hào)I/0端口數(shù)據(jù)總線(xiàn)D0D7CE接片選信號(hào)WR接CPU的WROE接CPU的RD片外RAM: A0AX,D0D7,CE,OE,WR片外ROM: A0AX,D0D7,CE,OE各個(gè)存儲(chǔ)器芯片地址空間求取:RAM&ROM:片選有效信號(hào)+自身00001111書(shū)P147I/O口:由編址所用AB決定,若對(duì)于I/O口剩余n根AB未用,那一共2n個(gè)地址第六章Part 1輸入/輸出及接口技術(shù)的概述I/O接口是位于系統(tǒng)CPU與外設(shè)間,用來(lái)協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏

50、輯電路。 其功能:數(shù)據(jù)緩沖與鎖存,各輸入裝置不能直接掛到CPU的數(shù)據(jù)線(xiàn)上;實(shí)現(xiàn)高速CPU與慢速外設(shè)的協(xié)調(diào)信息轉(zhuǎn)換,實(shí)現(xiàn)CPU與外設(shè)之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配通信聯(lián)絡(luò):協(xié)調(diào)CPU與外設(shè)之間的信息交換避免丟失。提供外設(shè)狀態(tài)信息、CPU對(duì)外設(shè)的控制信號(hào)等。接口與端口的區(qū)別: 接口是指整個(gè)功能電路塊。端口是指該電路的某個(gè)輸入或輸出端口。一個(gè)電路可以有多個(gè)輸入輸出端口。比如,地址端口,數(shù)據(jù)端口,狀態(tài)端口以及控制端口等。I/O端口的編址方法(fngf):統(tǒng)一編址方法(寄存器映射編址)和獨(dú)立編址方式(I/O端口映射編址)Part 2 CPU與外設(shè)之間交換信息的控制(kngzh)方式無(wú)條件傳送(chun sn)

51、 在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是無(wú)條件傳送,或稱(chēng)立即傳送、同步傳送。有條件傳送/查詢(xún)傳送 CPU需要先了解情況,先查詢(xún)外設(shè)的工作狀態(tài),然后根據(jù)情況決定是否傳送數(shù)據(jù)。當(dāng)外設(shè)可以交換信息的情況時(shí)(就緒)實(shí)現(xiàn)數(shù)據(jù)輸入或輸出。若未就緒,則等待并繼續(xù)查其狀態(tài)。對(duì)多個(gè)外設(shè)的情況,則CPU按一定順序依次查詢(xún)(輪詢(xún))。先查詢(xún)的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換。中斷控制方式 CPU在執(zhí)行程序中,被內(nèi)部或外部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序;服務(wù)結(jié)束后,又返回原來(lái)的斷點(diǎn),繼續(xù)執(zhí)行原來(lái)的程序。直接存儲(chǔ)器方式 外設(shè)通過(guò)DMA控制器向cpu提出

52、總線(xiàn)請(qǐng)求。cpu在當(dāng)前總線(xiàn)周期結(jié)束后,響應(yīng)DMA請(qǐng)求,把總線(xiàn)控制權(quán)下放給DMA控制器,實(shí)現(xiàn)外設(shè)和內(nèi)存直接交換數(shù)據(jù),不需要cpu干預(yù)。Part 3 中斷技術(shù)概述 中斷的發(fā)生是由CPU外部因素決定的,無(wú)法在程序中事先安排,調(diào)用中斷服務(wù)子程序的過(guò)程是由硬件自動(dòng)完成的。這不同于程序設(shè)計(jì)中的“調(diào)用子程序”!計(jì)算機(jī)系統(tǒng)中,用于實(shí)現(xiàn)中斷功能的硬件和軟件的集合,稱(chēng)為中斷系統(tǒng)。中斷的管理 可屏蔽中斷,除了手中斷源本身的屏蔽標(biāo)志控制外,還有一個(gè)總的屏蔽標(biāo)志控制。不可屏蔽中斷直通CPU。 中斷優(yōu)先級(jí):比較、中斷嵌套、多級(jí)嵌套 中斷矢量:存放中斷服務(wù)程序入口的存儲(chǔ)單元的地址 中斷過(guò)程:中斷申請(qǐng)后的三個(gè)過(guò)程,中斷響應(yīng)、

53、中斷處理(保護(hù)和恢復(fù)現(xiàn)場(chǎng),完成服務(wù))、中斷返回(回?cái)帱c(diǎn))Part 4 MCS-51單片機(jī)的中斷系統(tǒng)及其應(yīng)用1、51單片機(jī)中斷系統(tǒng)結(jié)構(gòu)中斷允許(ynx)控制器IE(A8H):允許該中斷源中斷則該位置1,禁止中斷則該位0 。D7D0中斷請(qǐng)求標(biāo)志及外部中斷方式選擇(xunz)控制寄存器TCON(88H)TR0、TR1 為定時(shí)器T0T1 工作啟動(dòng)和停止控制(kngzh)。與中斷無(wú)關(guān)。觸發(fā)(chf)清零 外部中斷:IT1=0電平觸發(fā),CPU在每個(gè)周期的S5P2期間對(duì)INTI(P3.3)采樣;IT1=1下降沿觸發(fā)(硬件清零)。電平觸發(fā)方式下,只要INT1為低電平,CPU響應(yīng)中斷后不會(huì)(b hu)由軟件或硬

54、件清除IE1標(biāo)志,所以在中斷返回之前必須撤銷(xiāo)INT1上的低電平,否則CPU有進(jìn)入中斷服務(wù)。IT0(P3.2)也是。 定時(shí)/計(jì)數(shù)器中斷:計(jì)數(shù)溢出(回零)時(shí),硬件置TF0=1,提出(t ch)中斷;CPU響應(yīng)中斷后,硬件自動(dòng)清TF0 串行口中斷:串行口發(fā)送完1幀信息,硬件置TI/RI=1申請(qǐng)中斷,CPU響應(yīng)中斷后,不會(huì)自動(dòng)清除TI或RI!串行口的中斷標(biāo)志在特殊功能寄存器SCON(串行口控制寄存器)中。 8051系統(tǒng)復(fù)位后,寄存器TCON和SCON的所有位都會(huì)被清零。 中斷優(yōu)先級(jí)控制寄存器IP(8BH)IP寄存器管理五個(gè)中斷源的優(yōu)先級(jí)別,某中斷源優(yōu)先級(jí)別高則在相應(yīng)位置1,優(yōu)先級(jí)別低則置0。若同時(shí)有某

55、幾個(gè)中斷源在IP寄存器相應(yīng)位1或?yàn)榱銜r(shí),由內(nèi)部查詢(xún)確定同級(jí)別優(yōu)先級(jí),查詢(xún)的順序是(即優(yōu)先級(jí)外中斷0最高,串口最低)INTO-TO-INT1-T1-串行口,復(fù)位清零中斷請(qǐng)求的撤除 CPU響應(yīng)中斷后,在中斷返回(執(zhí)行RETI)前,必須清除中斷標(biāo)志,否則會(huì)錯(cuò)誤地再次引起中斷。6、中斷服務(wù)程序最后一條必須為RETI!執(zhí)行RETI指令:1)清相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器;(RET無(wú)此功能)2)返回?cái)帱c(diǎn)(彈出棧頂?shù)膬蓚€(gè)(lin )字節(jié)到PC)7、下列任何一種情況(qngkung)存在,中斷申請(qǐng)將被封鎖:1)CPU正在執(zhí)行一個(gè)(y )同級(jí)或高一級(jí)的中斷服務(wù)程序。2)當(dāng)前正在執(zhí)行的那條指令還未執(zhí)行完。3)當(dāng)前正在

56、執(zhí)行的指令是RETI或?qū)E,IP寄存器進(jìn)行讀/寫(xiě)指令,執(zhí)行這些指令后至少再執(zhí)行一條指令才會(huì)響應(yīng)中斷。第七章Part 1 MCS-51單片機(jī)并行I/O口的應(yīng)用51單片機(jī)總共有P0、P1、P2、P3四個(gè)8位并行準(zhǔn)雙向輸入輸出端口,每個(gè)端口都有鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器。在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為準(zhǔn)雙向通用I/O端口使用。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位地址線(xiàn),P0口分時(shí)作為低8位地址線(xiàn)和雙向數(shù)據(jù)總線(xiàn)。P0雙向輸入端口外部,P0首先作為地址總線(xiàn),輸出低八位地址,與P2一起尋址外部單元,然后自動(dòng)轉(zhuǎn)換為數(shù)據(jù)總線(xiàn),完成對(duì)外部數(shù)據(jù)的輸入和輸出。P1普通P2P

57、3作為通用I/O口與P1口類(lèi)似每一根口線(xiàn)(每一位)都有自己特定的作用p169.當(dāng)P3口的某一位作為第二功能使用時(shí),將不能再作為通用I/O接口作用,但是其余口線(xiàn)仍然可以作為普通口用。5、并行接口的應(yīng)用方法:一般的輸入/輸出指令(與A,Rj,其他P口發(fā)生關(guān)系)MOV A , P1 ; 相當(dāng)于輸入指令,也可用于其他口(8031的P0P2口不能用)MOV R1 , P1 ; 可以將P1輸入的數(shù)據(jù)直接送到片內(nèi)RAM的其它單元。MOVX A , Ri ; 既可從擴(kuò)展的RAM輸入,也可從擴(kuò)展的接口(看成RAM一樣)輸入,高位地址由P2提供,Ri只提供低位地址。本指令產(chǎn)生RD信號(hào)MOV P1,AMOV P1,

58、RiMOVX Ri,AMOVX DPTR,AMOV P3 , P1 ;直接(zhji)從一個(gè)口輸入,又向另一個(gè)口輸出,這是較為特殊的一種用法“讀修改(xigi)寫(xiě)”指令(zhlng)ANL P1,A 邏輯與ORL P2,A 邏輯或XRL P3,A 邏輯異或JBC P1.1 LOOP 如某位為,跳轉(zhuǎn)并清零CPL P3.0 對(duì)接口某位求反INC P2 接口鎖存器加DEC P1接口鎖存器內(nèi)容減DJNZ P3,LOOP 減后不為零則跳轉(zhuǎn)MOV P1.1,C 將進(jìn)位位送接口的某位CLR P1.1 清接口的某一位SETB P1.1 接口的某一位置位簡(jiǎn)單并行I/O接口擴(kuò)展 書(shū)P172圖Part 2定時(shí)/計(jì)數(shù)

59、器結(jié)構(gòu) 51子系列中有兩個(gè)16位可編程的定時(shí)/計(jì)數(shù)器T0、T1。任一個(gè)T在定時(shí)到或計(jì)數(shù)滿(mǎn)時(shí),可由程序決定是否產(chǎn)生中斷請(qǐng)求。它由加法計(jì)數(shù)器(加1計(jì)數(shù)器);TMOD(工作方式)寄存器;TCON(控制)寄存器組成(與中斷同)。加法計(jì)數(shù)器加法計(jì)數(shù)器為16位,用TH表示高8位,TL表示低8位 。作計(jì)數(shù)器用,加法計(jì)數(shù)器對(duì)芯片T0、T1腳上輸入脈沖計(jì)數(shù),每輸入一個(gè)脈沖,加法計(jì)數(shù)器加1 ;作定時(shí)器用,加法計(jì)數(shù)器通過(guò)機(jī)器周期(Tcy)計(jì)數(shù)間接實(shí)現(xiàn)定時(shí),每經(jīng)過(guò)一個(gè)Tcy,加法計(jì)數(shù)器自動(dòng)加1 。初值可由程序設(shè)定。控制寄存器TCON高4位用來(lái)控制定時(shí)/計(jì)數(shù)器0、1的運(yùn)行;低4位用來(lái)控制外部中斷。TR1 運(yùn)行控制位,用

60、于啟動(dòng)/停止 T1:TR1=1,啟動(dòng),工作TR1=0,停止。TF1 溢出中斷標(biāo)志位,定時(shí)/計(jì)數(shù)器1溢出時(shí),TF11,在中斷允許條件下,向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)后,TF10,在中斷屏蔽條件下,TF1可作查詢(xún)方式,TF1可由程序置位或清零當(dāng)IT0,IT11時(shí),選下降沿觸發(fā);當(dāng)IT0,IT10時(shí),選低電平觸發(fā); 當(dāng)有外中斷請(qǐng)求時(shí),IE0,IE1 = 1;當(dāng)沒(méi)有外中斷請(qǐng)求時(shí),IE0,IE1 = 0;3、方式寄存器TMOD選擇(xunz)定時(shí)/計(jì)數(shù)器0、1的工作方式C/T:功能選擇位,C/T1為計(jì)數(shù)功能(從 P3.4,P3.5輸入(shr),C/T0為定時(shí)功能 M1、M0:工作方式(fngsh)

溫馨提示

  • 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)論