單片微型計算機原理及應(yīng)用參考答案_第1頁
單片微型計算機原理及應(yīng)用參考答案_第2頁
單片微型計算機原理及應(yīng)用參考答案_第3頁
單片微型計算機原理及應(yīng)用參考答案_第4頁
單片微型計算機原理及應(yīng)用參考答案_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE5《單片微型計算機原理及應(yīng)用》習(xí)題參考答案姜志海劉連鑫王蕾編著電子工業(yè)出版社目錄第1章微型計算機基礎(chǔ) 2第2章半導(dǎo)體存儲器及I/O接口基礎(chǔ) 4第3章MCS51系列單片機硬件結(jié)構(gòu) 11第4章MCS51系列單片機指令系統(tǒng) 16第5章MCS51系列單片機匯編語言程序設(shè)計 20第6章MCS51系列單片機中斷系統(tǒng)與定時器/計數(shù)器 26第7章MCS51系列單片機的串行口 32第8章MCS51系列單片機系統(tǒng)擴展技術(shù) 35第9章MCS51系列單片機鍵盤/顯示器接口技術(shù) 37第10章MCS51系列單片機模擬量接口技術(shù) 41第11章單片機應(yīng)用系統(tǒng)設(shè)計 45

第1章微型計算機基礎(chǔ)1.簡述微型計算機的結(jié)構(gòu)及各部分的作用微型計算機在硬件上由運算器、控制器、存儲器、輸入設(shè)備及輸出設(shè)備五大部分組成。運算器是計算機處理信息的主要部分;控制器控制計算機各部件自動地、協(xié)調(diào)一致地工作;存儲器是存放數(shù)據(jù)與程序的部件;輸入設(shè)備用來輸入數(shù)據(jù)與程序;輸出設(shè)備將計算機的處理結(jié)果用數(shù)字、圖形等形式表示出來。通常把運算器、控制器、存儲器這三部分稱為計算機的主機,而輸入、輸出設(shè)備則稱為計算機的外部設(shè)備(簡稱外設(shè))。由于運算器、控制器是計算機處理信息的關(guān)鍵部件,所以常將它們合稱為中央處理單元CPU(CentralProcessUnit)。2.微處理器、微型計算機、微型計算機系統(tǒng)有什么聯(lián)系與區(qū)別?微處理器是利用微電子技術(shù)將計算機的核心部件(運算器和控制器)集中做在一塊集成電路上的一個獨立芯片。它具有解釋指令、執(zhí)行指令和與外界交換數(shù)據(jù)的能力。其內(nèi)部包括三部分:運算器、控制器、內(nèi)部寄存器陣列(工作寄存器組)。微型計算機由CPU、存儲器、輸入/輸出(I/O)接口電路構(gòu)成,各部分芯片之間通過總線(Bus)連接。以微型計算機為主體,配上外部輸入/輸出設(shè)備、電源、系統(tǒng)軟件一起構(gòu)成應(yīng)用系統(tǒng),稱為微型計算機系統(tǒng)。3.微型計算機是以CPU為核心,配上存儲器、輸入/輸出接口和系統(tǒng)總線組成的計算機。4.在計算機內(nèi)部,一切信息的存取、處理和傳遞的形式是(C)。A.ASCII碼 B.BCD碼 C.二進(jìn)制 D.十六進(jìn)制5.0~9的ASCII碼是(C)。A.0~9 B.30~39 C.30H~39H D.40H~49H6.在微型計算機中,一般具有哪三類總線?試說出各自的特征(包括傳輸?shù)男畔㈩愋?、單向傳輸還是雙向傳輸)。所謂總線,就是在微型計算機各芯片之間或芯片內(nèi)部各部件之間傳輸信息的一組公共通信線。計算機元件級總線包括地址總線AB(AddressBus)、數(shù)據(jù)總線DB(DataBus)、控制總線CB(ControlBus)三種。(1)地址總線:地址總線是CPU用來向存儲器或I/O接口傳送地址信息的,是三態(tài)單②存取周期(AccessCycle,TAC):是指連續(xù)兩次存儲器讀/寫操作之間所需要的最小時間間隔。對于讀操作,就是讀周期時間;對于寫操作,就是寫周期時間。因為在一次數(shù)據(jù)訪問后,芯片不可能無間歇地進(jìn)入下一次訪問,所以存取周期TAC要略大于存取時間TA。表示上,該參數(shù)常表示為讀周期TRC或?qū)懼芷赥WC,存取時間TAC是其統(tǒng)稱。6.型號是1K×4位的靜態(tài)RAM,應(yīng)有多少條地址線?多少條數(shù)據(jù)線?10條地址線、4條數(shù)據(jù)線7.說明EPROM、PROM、ROM和Flash存儲器之間的主要區(qū)別。參考第5題。8.什么是“閃存”?它有哪些特點?用于哪些場合?參考第5題。9.簡述堆棧的作用與操作。所謂堆棧,是指在存儲器中開辟的一個區(qū)域,用來存放需要暫時保存的數(shù)據(jù)。(1)堆棧的作用用來存放斷點地址或保存臨時數(shù)據(jù)。在調(diào)用子程序和執(zhí)行中斷服務(wù)程序的過程中,要保留斷點地址,有時還要保護現(xiàn)場。只有保留了斷點地址,才能在子程序或中斷服務(wù)程序執(zhí)行后保證返回到主程序的斷點處,繼續(xù)執(zhí)行主程序。斷點地址與現(xiàn)場信息是送入堆棧保存的。在返回主程序前,要把保存在堆棧中的現(xiàn)場信息送回對應(yīng)的寄存器,這稱為恢復(fù)現(xiàn)場。(2)堆棧操作堆棧有兩種操作方式。將數(shù)據(jù)送入堆棧稱為推入操作,又稱為壓入操作,如壓入指令PUSH A把堆棧中內(nèi)容取出來的操作稱為彈出操作,如彈出指令POP A執(zhí)行把棧頂內(nèi)容送回A的操作。10.簡述I/O接口的功能。接口電路是專門為解決CPU與外設(shè)之間的不匹配、不能協(xié)調(diào)工作而設(shè)置的,它處在總線和外設(shè)之間,一般應(yīng)具有以下基本功能。(1)對輸入/輸出數(shù)據(jù)進(jìn)行緩沖、隔離和鎖存(2)對信號的形式和數(shù)據(jù)格式進(jìn)行交換與匹配(3)提供信息相互交換的應(yīng)答聯(lián)絡(luò)信號(4)根據(jù)尋址信息選擇相應(yīng)的外設(shè)由此可見,I/O電路是外設(shè)和計算機之間傳送信息的交換器件,也有人稱它為界面,它使兩者之間能很好地協(xié)調(diào)工作,每一個外設(shè)都要通過接口電路才能和計算機相連。11.CPU處理I/O操作有幾種方式?各自有什么特點和應(yīng)用范圍?CPU和外設(shè)之間的數(shù)據(jù)傳輸有4種方式,即無條件方式、查詢方式、中斷方式、直接存儲器存取方式(DMA方式)。(1)無條件傳輸方式所謂無條件傳輸方式,是指CPU對外設(shè)接口的讀寫隨時都可以進(jìn)行,不需要等待某種條件的滿足。無條件傳送方式也稱同步傳送方式,主要用于對簡單外設(shè)進(jìn)行操作,或者外設(shè)的定時是固定的或已知的場合。對于這類外設(shè),在任何時刻均以準(zhǔn)備好數(shù)據(jù)或處于接收數(shù)據(jù)狀態(tài),或者在某些固定時刻,它們處在數(shù)據(jù)就緒或準(zhǔn)備接收狀態(tài),因此程序可以不必檢查外設(shè)的狀態(tài),而在需要進(jìn)行輸入或輸出操作時,直接執(zhí)行輸入/輸出指令。當(dāng)輸入/輸出指令執(zhí)行后,數(shù)據(jù)傳送便立即進(jìn)行。這是一種最簡單的輸入/輸出傳送方式,所需要的硬件和軟件都非常小,一般用于控制CPU與低速I/O接口之間的數(shù)據(jù)交換。無條件傳輸方式的軟、硬件簡單,但一般的外設(shè)難以滿足上述條件,所以這種輸出方式用得較少,只用于一些簡單外設(shè),如開關(guān)、數(shù)碼管顯示等。(2)程序查詢傳輸方式程序查詢傳輸方式是指CPU在向外設(shè)傳遞數(shù)據(jù)前,首先查詢外設(shè)的狀態(tài)(即條件),若外設(shè)準(zhǔn)備好則傳送,若未準(zhǔn)備好,CPU就等待??梢姡涌陔娐烦擞袀魉蛿?shù)據(jù)的端口外,還有傳送狀態(tài)的端口。對于輸入過程,當(dāng)外設(shè)將數(shù)據(jù)準(zhǔn)備好時,則使接口的狀態(tài)端口中的“準(zhǔn)備好”標(biāo)志置1;對于輸出過程,外設(shè)取走一個數(shù)據(jù)后,接口便將狀態(tài)端口中的對應(yīng)標(biāo)志置1,表示當(dāng)前輸出寄存器已經(jīng)處于“空”狀態(tài),可以接收下一個數(shù)據(jù)。因此,對應(yīng)條件傳送,一個數(shù)據(jù)傳送過程由3個環(huán)節(jié)組成:①CPU從接口中讀出狀態(tài)字。②CPU檢測狀態(tài)字的對應(yīng)位是否滿足“就緒”條件,如果不滿足,則回到前一步讀出狀態(tài)字。③如果狀態(tài)字表明外設(shè)已處于“就緒”狀態(tài),則傳送數(shù)據(jù)。程序查詢傳輸方式接口電路中除了數(shù)據(jù)端口外,還必須有傳送狀態(tài)的端口,同時CPU要不斷查詢外設(shè)狀態(tài),占用大量CPU的時間,硬件比無條件傳輸方式復(fù)雜,并使用較多的端口地址。用查詢方式輸入數(shù)據(jù)時,在接口電路與外設(shè)間要交換數(shù)據(jù)、狀態(tài)和控制3種信息。查詢方式的缺點是CPU的利用受到影響,陷于等待和反復(fù)查詢,不能再做它用;而且,這種方法不能處理掉電、設(shè)備故障等突發(fā)事件。(3)中斷傳輸方式在中斷傳送方式下,外設(shè)具有申請CPU服務(wù)的主動權(quán),當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好或者輸出設(shè)備可以接收數(shù)據(jù)時,便可以向CPU發(fā)中斷請求,使CPU暫時停下目前的工作而和外設(shè)進(jìn)行一次數(shù)據(jù)傳輸,等輸入操作或者輸出操作結(jié)束以后,CPU繼續(xù)進(jìn)行原來的工作。即中斷傳送方式就是外設(shè)中斷CPU的工作,使CPU停止執(zhí)行當(dāng)前程序,而去執(zhí)行一個輸入/輸出程序,此程序稱為中斷處理子程序或中斷服務(wù)子程序。中斷服務(wù)子程序執(zhí)行完后,CPU又回來執(zhí)行原來的程序。采用中斷方式后,CPU平時可以執(zhí)行主程序,只有當(dāng)輸入設(shè)備將數(shù)據(jù)準(zhǔn)備好了,或者輸出端口的數(shù)據(jù)緩沖器已空時,才向CPU發(fā)出中斷請求。CPU響應(yīng)中斷后,暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去執(zhí)行管理外設(shè)的中斷服務(wù)程序。在中斷服務(wù)程序中,用輸入或輸出指令在CPU和外設(shè)之間進(jìn)行一次數(shù)據(jù)交換。等輸入或輸出操作完成后,CPU又回去執(zhí)行原來的程序。(4)DMA傳輸方式DMA方式要利用系統(tǒng)的數(shù)據(jù)總線、地址總線和控制總線來傳送數(shù)據(jù)。原先這些總線是由CPU管理的,但當(dāng)外設(shè)需要利用DMA方式進(jìn)行數(shù)據(jù)傳送時,接口電路可以向CPU提出請求,要求CPU讓出對總線的控制權(quán),用一種稱為DMA控制器的專用硬件接口電路來取代CPU臨時接管總線,控制外設(shè)和存儲器之間直接進(jìn)行高速的數(shù)據(jù)傳送,而不要CPU進(jìn)行干預(yù)。這種控制器能給出訪問內(nèi)存所需要的地址信息,并能自動修改地址指針,也能設(shè)定和修改傳送的字節(jié)數(shù),還能向存儲器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號。在DMA傳送結(jié)束后,它能釋放總線,把對總線的控制權(quán)交還給CPU??梢娪肈MA方式傳送數(shù)據(jù)時,不需要進(jìn)行保護和恢復(fù)斷點及現(xiàn)場之類的額外操作,一旦進(jìn)入DMA操作,就可直接在硬件的控制下快速完成一批數(shù)據(jù)的交換任務(wù),數(shù)據(jù)傳送的速度基本取決于外設(shè)和存儲器的存取速度。12.什么是中斷?什么是可屏蔽中斷?什么是非屏蔽中斷?CPU在什么條件下可以響應(yīng)中斷?所謂中斷,是指CPU正常運行程序時,由于微處理器內(nèi)部事件或外設(shè)請求,引起CPU中止正在運行的程序,轉(zhuǎn)去執(zhí)行請求中斷的外設(shè)(或內(nèi)部事件)的中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完畢,再返回被中止的程序。利用中斷可以避免不斷檢測外設(shè)狀態(tài),提高CPU的效率。可屏蔽中斷有時也稱為直接中斷。屏蔽是指CPU可以不處理的中斷請求。這種屏蔽實際上是CPU的一種工作方式,可以通過軟件(指令)來設(shè)置,也就是可以通過指令,使CPU或者允許接受中斷請求,或者不接受中斷請求。具體的指令由CPU的指令系統(tǒng)來決定。可屏蔽中斷是最常見的一種中斷方式,所有的微處理器都有這種中斷方式。對非屏蔽中斷來說,如果該中斷源申請了中斷,CPU是一定要處理的。CPU不可以也不能用軟件將該中斷屏蔽掉。一般一些緊急的情況,如掉電中斷申請,就可以安排為這種中斷方式,以保證緊急情況一定能得到處理。但并不是所有的微處理器的中斷系統(tǒng)都有這種中斷方式,MCS-51單片機的中斷系統(tǒng)就沒有非屏蔽中斷。一個完整的中斷處理的基本過程應(yīng)包括:中斷請求、中斷優(yōu)先權(quán)判別、中斷響應(yīng)、中斷處理及中斷返回。如果提出中斷請求的中斷源優(yōu)先權(quán)高,而且接口電路與CPU都中斷開放,CPU將響應(yīng)中斷,自動執(zhí)行下列工作:①保留斷點:中止正在執(zhí)行的程序,并對斷點進(jìn)行保護,即將斷點地址的值壓入堆棧保存,以便中斷服務(wù)程序執(zhí)行完后能返回斷點處繼續(xù)執(zhí)行程序。②轉(zhuǎn)入中斷服務(wù)程序:將中斷服務(wù)程序的人口地址送入PC,以轉(zhuǎn)到中斷服務(wù)程序。各中斷源要求服務(wù)的內(nèi)容不同,所以要編制不同的中斷服務(wù)程序,它們有不同的入口地址。CPU首先要確定是哪一個中斷源在申請中斷,然后將對應(yīng)的入口地址送入PC。13.DMA傳送的基本過程是什么?為什么DMA方式可以加快數(shù)據(jù)在外設(shè)和存儲器之間的傳送?參看第11題。14.什么是接口?什么是端口?一個接口電路是否可以有多個端口?所謂接口,是指在兩臺計算機之間、計算機與外設(shè)之間、計算機內(nèi)部各部件之間起連接作用的邏輯電路,是CPU與外界進(jìn)行信息交換的中轉(zhuǎn)站。所謂端口,是指I/O接口(包括芯片和控制卡)中供CPU直接存取訪問的那些寄存器或某些硬件特定電路。一個I/O接口總要包括若干端口,除常見的數(shù)據(jù)端口、命令端口和狀態(tài)端口外,還有特殊用途的端口,如方式控制端口、操作結(jié)果端口和地址索引端口等。端口的多少及相應(yīng)的功能完全取決于與I/O接口所關(guān)聯(lián)的I/O設(shè)備。15.CPU和外設(shè)之間傳輸?shù)男畔⒂心膸最??各有何特點?計算機與外設(shè)間的這種交換數(shù)據(jù)、狀態(tài)和控制命令的過程統(tǒng)稱為通信(Communication)。通信過程就是數(shù)據(jù)傳輸?shù)倪^程,在這個過程中要傳輸?shù)男畔⒂袛?shù)據(jù)信息、狀態(tài)信息、控制信息。(1)數(shù)據(jù)信息CPU和外設(shè)交換的基本信息就是數(shù)據(jù),數(shù)據(jù)通常為8位或16位。數(shù)據(jù)信息可分為以下三種類型。具體可分為數(shù)字量、模擬量、開關(guān)量。(2)狀態(tài)信息狀態(tài)信息反映了當(dāng)前外設(shè)所處的工作狀態(tài),是外設(shè)通過接口往CPU傳送的。對于輸入設(shè)備來說,通常用準(zhǔn)備好(READY)信號來表明輸入的數(shù)據(jù)是否準(zhǔn)備就緒;對于輸出設(shè)備來說,通常用忙(BUSY)信號表示輸出設(shè)備是否處于空閑,如為空閑,則可接收CPU送來的信息,否則CPU應(yīng)等待。(3)控制信息控制信息是CPU通過接口傳送給外設(shè)的,CPU通過發(fā)送控制信息控制外設(shè)的工作,如外設(shè)的啟動、停止就是常見的控制信息。16.串行傳送的特點是什么?數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,成本低但速度慢。計算機與外界的數(shù)據(jù)傳送大多數(shù)是串行的,其傳送的距離可以從幾米到幾千千米。17.串行通信和并行通信的主要區(qū)別是什么?各有什么優(yōu)缺點?計算機與外設(shè)之間或計算機之間的信息交換或數(shù)據(jù)傳輸稱為通信(Communication)?;镜耐ㄐ欧绞接袃煞N,一種是并行通信,另一種是串行通信。(1)并行通信并行通信是指數(shù)據(jù)的各位同時進(jìn)行傳送。在并行通信中,有多少位數(shù)據(jù),就需要多少條傳輸線,因此傳送速度較快,即在相同傳輸率的情況下,并行通信能夠提供高速、高信息率的傳輸。由于并行通信所需的傳輸線較多,如果傳輸距離增加,傳輸線的開銷會成為一個突出的問題,因而并行通信一般用于數(shù)據(jù)傳輸率要求較高、傳輸距離又比較短的場合。(2)串行通信串行通信是指數(shù)據(jù)一位一位地按順序傳送。串行通信時,要傳送的數(shù)據(jù)或信息必須按一定的格式編碼,然后在單根線上,按一位接一位的先后順序進(jìn)行傳送,發(fā)送完一個字符,再發(fā)送第二個。接收數(shù)據(jù)時,每次從單根線上一位接一位地接收信息,再把它們拼成一個字符,送給CPU做進(jìn)一步處理。采用串行通信方式的另一個出發(fā)點是,有些外設(shè)如調(diào)制解調(diào)器(Modem)、鼠標(biāo)等,本身需要用串行通信方式,因為這些設(shè)備是以串行方式存取數(shù)據(jù)的。

第3章MCS51系列單片機硬件結(jié)構(gòu)1.MCS51系列單片機內(nèi)部有哪些主要的邏輯部件?MCS51單片機是在一塊芯片上集成了CPU、RAM、ROM、定時器/計數(shù)器和多種I/O功能部件,具有了一臺微型計算機的基本結(jié)構(gòu),主要包括下列部件:一個8位的CPU、一個布爾處理機、一個片內(nèi)振蕩器、128B的片內(nèi)數(shù)據(jù)存儲器、4KB的片內(nèi)程序存儲器(8031無)、外部數(shù)據(jù)存儲器和程序存儲器的尋址范圍為64KB、21個字節(jié)的專用寄存器、4個8位并行I/O接口、一個全雙工的串行口、2個16位的定時器/計數(shù)器、5個中斷源、2個中斷優(yōu)先級、111條指令、片內(nèi)采用單總線結(jié)構(gòu)。2.MCS51單片機設(shè)有4個8位并行端口,實際應(yīng)用中8位數(shù)據(jù)信息由哪個端口傳送?16位地址線怎樣形成?P3口有何功能?8位數(shù)據(jù)信息由P0口傳送。P2口形成地址大高8位,P0口結(jié)果鎖存器形成地址的低8位。P3口除具有一般的輸入/輸出功能,還具有第2功能:P3.0RXD串行口輸入端P3.1TXD串行口輸出端P3.2外部中斷0請求輸入端,低電平有效P3.3外部中斷1請求輸入端,低電平有效P3.4T0定時器/計數(shù)器0計數(shù)脈沖輸入端P3.5T1定時器/計數(shù)器1計數(shù)脈沖輸入端P3.6外部數(shù)據(jù)存儲器及I/O接口寫選通信號輸出端,低電平有效P3.7外部數(shù)據(jù)存儲器及I/O接口讀選通信號輸出端,低電平有效3.MCS51單片機內(nèi)部RAM區(qū)的功能結(jié)構(gòu)如何分配?4組工作寄存器使用時如何選擇?位尋址區(qū)域的字節(jié)范圍是多少?MCS51單片機片內(nèi)RAM共有128B,字節(jié)范圍為00H~7FH,可分為工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)共3個區(qū)域。(1)工作寄存器區(qū)00H~1FH單元為工作寄存器區(qū)。工作寄存器也稱通用寄存器,用于臨時寄存8位信息。工作寄存器分成4組,每組都是8個寄存器,用R0~R7來表示。程序中每次只用一組,其余各組不工作。使用哪一組寄存器工作,由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇,其對應(yīng)關(guān)系如表所示。工作寄存器組的選擇表工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當(dāng)前使用的工作寄存器組

R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)該區(qū)域當(dāng)不被用做工作寄存器時,可以作為一般的RAM區(qū)使用。(2)位尋址區(qū)20H~2FH單元是位尋址區(qū)。這16個單元(共計16×8=128位)的每一位都賦予了一個位地址,位地址范圍為00H~7FH。位地址區(qū)的每一位都可當(dāng)做軟件觸發(fā)器,由程序直接進(jìn)行位處理。通??梢园迅鞣N程序狀態(tài)標(biāo)志、位控制變量存入位尋址區(qū)內(nèi)。00H…07H08H…0FH10H…17H18H…1FH0組工作寄存器區(qū)1組2組3組20H21H22H23H24H25H26H27H28H29H2AH2BH2CH2DH2EH2FH0706050403020100位尋址區(qū)0F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241404F4E4D4C4B4A494857565554535251505F5E5D5C5B5A595867666564636261606F6E6D6C6B6A696877767574737271707F7E7D7C7B7A797830H…7FH數(shù)據(jù)緩沖區(qū)該區(qū)域當(dāng)不被用做位尋址區(qū)時,可以作為一般的RAM區(qū)使用。(3)數(shù)據(jù)緩沖區(qū)30H~7FH是數(shù)據(jù)緩沖區(qū),即用戶RAM,共80個單元。由于工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問,這三個區(qū)的單元既有自己獨特的功能,又可統(tǒng)一調(diào)度使用。因此,前兩個區(qū)未使用的單元也可作為用戶RAM單元使用,使容量較小的片內(nèi)RAM得以充分利用。4.特殊功能寄存器中哪些寄存器可以位尋址?它們的字節(jié)地址是什么?參看表3-6.5.簡述程序狀態(tài)字PSW中各位的含義。程序狀態(tài)字PSW是一個8位寄存器,它保存指令執(zhí)行結(jié)果的特征信息,為下一條指令或以后的指令的執(zhí)行提供狀態(tài)條件。PSW中的各位一般是在指令執(zhí)行過程中形成的,但也可以根據(jù)需要采用傳送指令加以改變。其各位定義如圖所示。①進(jìn)位標(biāo)志C(PSW.7)在執(zhí)行某些算術(shù)運算類、邏輯運算類指令時,可被硬件或軟件置位或清零。它表示運算結(jié)果是否有進(jìn)位或借位。如果在最高位有進(jìn)位(加法時)或借位(減法時),則C=1,否則C=0。②輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志位AC(PSW.6)它表示兩個8位數(shù)運算,低4位有無進(jìn)(借)位的狀況。當(dāng)?shù)?位相加(或相減)時,若D3位向D4位有進(jìn)位(或借位),則AC=1,否則AC=0。在BCD碼運算的十進(jìn)制調(diào)整中要用到該標(biāo)志。③用戶自定義標(biāo)志位F0(PSW.5)用戶可根據(jù)自己的需要為F0賦予一定的含義,通過軟件置位或清零,并根據(jù)F0=1或0來決定程序的執(zhí)行方式,或系統(tǒng)某一種工作狀態(tài)。④工作寄存器組選擇位RS1、RS0(PSW.4、PSW.3)可用軟件置位或清零,用于選定當(dāng)前使用的4個工作寄存器組中的某一組。⑤溢出標(biāo)志位OV(PSW.2)做加法或減法時由硬件置位或清零,以指示運算結(jié)果是否溢出。在帶符號數(shù)加減運算中,OV=1表示加減運算超出了累加器所能表示的數(shù)值范圍(–128~+127),即產(chǎn)生了溢出,因此運算結(jié)果是錯誤的。OV=0表示運算正確,即無溢出產(chǎn)生。執(zhí)行乘法指令MULAB也會影響OV標(biāo)志,當(dāng)積大于255時,OV=1,否則OV=0;執(zhí)行除法指令DIVAB也會影響OV標(biāo)志,如B中所存放的除數(shù)為0,則OV=1,否則0V=0。⑥奇偶標(biāo)志位P(PSW.0)在執(zhí)行指令后,單片機根據(jù)累加器A中1的個數(shù)的奇偶自動將該標(biāo)志置位或清零。若A中1的個數(shù)為奇數(shù),則P=1,否則P=0。該標(biāo)志對串行通信的數(shù)據(jù)傳輸非常有用,通過奇偶校驗可檢驗傳輸?shù)目煽啃浴?.簡述MCS51單片機程序存儲器的幾個特殊入口地址的含義。0000H:程序入口地址0003H:外部中斷0中斷服務(wù)程序入口地址000BH:定時器/計數(shù)器0溢出中斷服務(wù)程序入口地址0013H:外部中斷1中斷服務(wù)程序入口地址001BH:定時器/計數(shù)器1溢出中斷服務(wù)程序入口地址0023H:串行口發(fā)送/接收中斷服務(wù)程序入口地址7.位地址7FH與字節(jié)地址7FH有何區(qū)別?位地址7FH具體在內(nèi)存中的什么位置?二者存儲的數(shù)據(jù)位數(shù)不一樣。位地址7FH存放一位二進(jìn)制數(shù),字節(jié)地址7FH存放8為二進(jìn)制數(shù)。位地址7FH具體在內(nèi)存中字節(jié)地址為20H的最高位上。8.復(fù)位的作用是什么?復(fù)位后單片機的狀態(tài)如何?計算機在啟動運行時都需要復(fù)位,這就使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。單片機的復(fù)位都靠外部電路實現(xiàn)。MCS51單片機有一個復(fù)位引腳RST,高電平有效。它是施密特觸發(fā)輸入(對于CMOS單片機,RST引腳的內(nèi)部有一個拉低電阻),當(dāng)振蕩器起振后,該引腳上出現(xiàn)兩個機器周期(即24個時鐘周期)以上的高電平,使器件復(fù)位,只要RST保持高電平,MCS51便保持復(fù)位狀態(tài)。此時ALE、PSEN、P0、P1、P2、P3口都輸出高電平。RST變?yōu)榈碗娖?,退出?fù)位狀態(tài),CPU從初始狀態(tài)開始工作。復(fù)位操作不影響片內(nèi)RAM的內(nèi)容,復(fù)位以后內(nèi)部寄存器的初始狀態(tài)如表3-7所示。9.試分別說明程序計數(shù)器PC和堆棧指針SP的作用。復(fù)位后PC和SP各為何值?程序計數(shù)器PC是一個16位專用寄存器,其內(nèi)容表示下一條要執(zhí)行的指令的地址。復(fù)位后為0000H。MCS51單片機的堆棧是在片內(nèi)RAM中開辟的一個專用區(qū)。堆棧指針SP是一個8位專用寄存器,用來存放棧頂?shù)牡刂?。進(jìn)棧時,SP自動加1,將數(shù)據(jù)壓入SP所指定的地址單元;出棧時,將SP所指示的地址單元中的數(shù)據(jù)彈出,然后SP自動減1。因此SP總是指向棧頂。復(fù)位后為07H。10.MCS51單片機設(shè)置4組工作寄存器,開機復(fù)位后,CPU使用的是哪組寄存器?它們的地址如何?CPU如何改變當(dāng)前工作寄存器組?第0組。字節(jié)地址為00H~07H。通過PSW的RS1、RS0來改變。工作寄存器組的選擇表工作寄存器組的選擇表PSW.4(RS1)PSW.3(RS0)當(dāng)前使用的工作寄存器組

R0~R7000組(00H~07H)011組(08H~0FH)102組(10H~17H)113組(18H~1FH)11.什么是時鐘周期、機器周期和指令周期?當(dāng)外部的振蕩頻率是8MHz時,8051單片機的機器周期為多少?MCS51單片機的時序由下面4種周期構(gòu)成。(1)振蕩周期振蕩周期是指為單片機提供定時信號的振蕩源的周期。(2)狀態(tài)周期(時鐘周期)兩個振蕩周期為一個狀態(tài)周期,用S表示。兩個振蕩周期作為兩個節(jié)拍分別稱為節(jié)拍P1和節(jié)拍P2。在狀態(tài)周期的前半周期P1有效時,通常完成算術(shù)邏輯運算;在后半周期P2有效時,一般進(jìn)行內(nèi)部寄存器之間的傳輸。(3)機器周期CPU執(zhí)行一條指令的過程可以劃分為若干階段,每一階段完成某一項基本操作,如取指令、存儲器讀/寫等。通常把完成一個基本操作所需要的時間稱為機器周期。(4)指令周期指令周期是指執(zhí)行一條指令所占用的全部時間,它以機器周期為單位。MCS51系列單片機除乘法、除法指令是4機器周期指令外,其余都是單周期指令和雙周期指令。若用12MHz晶體振蕩器(晶振),則單周期指令和雙周期指令的指令周期時間分別是1μs和2μs,乘法和除法指令為4μs。通過上面的分析,我們可以看出,外部晶振的二分頻是MCS51單片機的內(nèi)部時鐘周期,6個時鐘周期構(gòu)成了單片機的機器周期。如果單片機的外部晶振是8MHz,則其內(nèi)部的機器周期是1.5μs。12.已知PSW=10H,則工作寄存器R0的地址是10H,R4的地址是14H。13.MCS51單片機復(fù)位后,程序計數(shù)器PC=0000H,堆棧指針SP=07H。14.MCS51單片機內(nèi)部RAM的寄存器區(qū)共有32個單元,分為4組寄存器,每組8單元。15.MCS51單片機的4個I/O接口的作用是什么?三總線是如何分配的?為什么說能作為I/O使用的一般只有P1口?P0口形成數(shù)據(jù)總線;P2口形成地址的高8位,P0口經(jīng)過鎖存器形成地址的低8位;P3口形成控制總線。在具有外部擴展的時間,需要用到數(shù)據(jù)總線、地址總線和控制總線,而三總線占用了P0、P2、P3口,可以單獨使用的只有P1口。

第4章MCS51系列單片機指令系統(tǒng)1.訪問外部數(shù)據(jù)存儲器和程序存儲器可以用哪些指令來實現(xiàn)?舉例說明。訪問外部數(shù)據(jù)存儲器:MOVX A,@DPTRMOVX @DPTR,AMOVX A,@RiMOVX @Ri,A訪問程序存儲器:MOVC A,@A+DPTRMOVC A,@A+PC2.設(shè)堆棧指針SP中的內(nèi)容為60H,內(nèi)部RAM中30H和31H單元的內(nèi)容分別為24H和10H,執(zhí)行下列程序段后,61H、62H、30H、31H、DPTR及SP的內(nèi)容將有何變化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 0H,#00HMOV 31H,#0FFH(61H)=24H(62H)=10H(30H)=00H(31H)=0FFH(DPTR)=2410H(SP)=60H3.設(shè)(A)=40H,(R1)=23H,(40H)=05H。執(zhí)行下列兩條指令后,累加器A和R1以及內(nèi)部RAM中40H單元的內(nèi)容各為何值?XCH A,R1XCHD A,@R1(A)=25H(R1)=40H(40H)=03H4.設(shè)(A)=01010101B,(R5)=10101010B,分別寫出執(zhí)行ANLA,R5;ORLA,R5;XRLA,R5指令后的結(jié)果。00000000B11111111B11111111B5.簡述轉(zhuǎn)移指令A(yù)JMPaddr11,SJMPrel,LJMPaddr16及JMP@A+DPTR的應(yīng)用。AJMPaddr11:2K范圍內(nèi)的轉(zhuǎn)移;SJMPrel:256字節(jié)復(fù)位內(nèi)的轉(zhuǎn)移;LJMPaddr16:64K范圍內(nèi)的轉(zhuǎn)移;JMP@A+DPTR:在某一地址開始的256字節(jié)范圍內(nèi)的轉(zhuǎn)移。6.試用下列4種方式編程,將立即數(shù)0EFH送入內(nèi)部RAM的40H單元中。(1)用立即尋址;(2)用直接尋址;(3)用寄存器尋址;(4)用寄存器間接尋址(1)MOV40H,#0EFH目的操作數(shù)立即尋址(2)MOV40H,#0EFH源操作數(shù)直接尋址(3)MOVR0,#0EFH MOV40H,,R0源操作數(shù)寄存器尋址(4)MOVR0,#40HMOV@R0,#0EFH目的操作數(shù)寄存器間接尋址7.寫出實現(xiàn)下列要求的指令或程序片段。(1)將內(nèi)部RAM20H單元內(nèi)容與累加器A內(nèi)容相加,結(jié)果存放在20H單元中。(2)將內(nèi)部RAM30H單元內(nèi)容與內(nèi)部RAM31H單元內(nèi)容相加,結(jié)果存放到內(nèi)部RAM31H單元中。(3)將內(nèi)部RAM20H單元內(nèi)容傳送到外部RAM2000H單元中。(4)使內(nèi)部RAM20H單元的D7和D3位清零,其他位保持不變。(5)使內(nèi)部RAM20H單元的D7和D3位置1,D5位清零,其他位保持不變。(6)使內(nèi)部RAM20H單元的D7和D3位置1,D5位取反,其他位保持不變。(1) ADD A,#20H MOV 20H,A(2) MOV A,30H ADD A,31H MOV 31H,A(3) MOV A,20H MOV DPTR,#2000H MOVX @DPTR,A(4) CLR 03H CLR 07H 或: ANL 20H,#01110111B(5) SETB 03H SETB 07H CLR 05H或: ORL 20H,#10001000B ANL 20H,#11011111B(6) SETB 03H SETB 07H CPL 05H或: ORL 20H,#10001000B XRL 20H,#00100000B8.試用三種方法實現(xiàn)累加器A和寄存器B的內(nèi)容交換。(1) MOV R0,A MOV A,B MOV B,R0(2) PUSH A PUSH B POP A POP B(3) MOV R0,B XCH A,R0 MOV B,R09.試分析下列程序段執(zhí)行后,(A)=?,(30H)=?MOV 30H,#0A4HMOV A,#0D6HMOV R0,#30HMOV R2,#5EHANL A,R2ORL A,@R0SWAP ACPL AXRL A,#0FEHORL 30H,A(A)=6EH(30H)=0EFH10.下述程序執(zhí)行后,(SP)=?,(A)=?,(B)=? ORG 2000H MOV SP,#40H MOV A,#30H LCALL SUBR ADD A,#10H MOV B,AL1: SJMP L1SUBR: MOV DPTR,#200AH PUSH DPL PUSH DPH RET(SP)=42H(A)=30H(B)=00H11.設(shè)(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,(22H)=0A0H,(25H)=0A0H,(26H)=6FH,(27H)=76H。下列程序執(zhí)行后,結(jié)果如何? CLR C MOV R2,#3LOOP: MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R2,LOOP JNC NEXT MOV @R0,#01H SJMP $NEXT: DEC R0 SJMP $(R0)=22H,(R1)=24H,(20H)=10H,(21H)=31H,(22H)=0A1H,(25H)=0A0H,(26H)=6FH,(27H)=76H。12.設(shè)片內(nèi)RAM(30H)=0EH,執(zhí)行下面的程序后,(A)=?,指出該程序完成的功能。MOV R0,#30HMOV A,@R0RL AMOV B,ARL ARL AADD A,B=8CH功能:將30H中的內(nèi)容*10操作,結(jié)果在累加器A中。

第5章MCS51系列單片機匯編語言程序設(shè)計1.編程將片內(nèi)RAM30H~39H單元中的內(nèi)容送到以3000H為首的存儲區(qū)中。MOV R0,#30HMOV DPTR,#3000HMOV R7,#10L1: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,L1RET2.片內(nèi)RAM60H開始存放20個數(shù)據(jù),試統(tǒng)計正數(shù)、負(fù)數(shù)及為零的數(shù)據(jù)個數(shù),并將結(jié)果分別存在50H、51H、52H單元中。 MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV R7,#20 MOV R0,#60H L3: MOV A,@R0 JZ L1 JB ACC.7,L2 INC 50H SJMP LEND L2: INC 51H SJMP LEND L1: INC 52H LEND: INC R0 DJNZ R7,L3RET3.設(shè)10次采樣值依次放在片內(nèi)RAM50H~59H的連續(xù)單元中,試編程去掉一個最大值、去掉一個最小值,求其余8個數(shù)的平均值,結(jié)果存放在60H中。 MOV R0,#50H ;最大值 MOV A,@R0 MOV R7,#9 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JNC L2 XCH A,@R0 L2: INC R0 DJNZ R7,L1 MOV R0,#51H ;最小值 MOV A,@R0 MOV R7,#8 INC R0 L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JN L4 XCH A,@R0 L4: INC R0 DJNZ R7,L3 MOV R3,#0 ; 求和 MOV R4,#0 MOV R7,#8 MOV R0,#52H L5: MOV A,R4 ADD A,@R0 MOV R4,A MOV A,R3 ADDC A,#0 MOV R3,A INC R0 DJNZ R7,L5 MOV A,R4 ;平均值 SWAP A RL A MOV B,A MOV A,R3 RR A RR A RR A ANL A,#00011111B ORL A,B MOV 60H,A RET4.編寫程序?qū)4R5R6中的3個字節(jié)數(shù)據(jù)對半分解成6個字節(jié),存入顯示緩沖區(qū)(DISMEM0~DISMEM5)。 MOV A,R6 LCALL CL MOV DISMEM0,R0 MOV DISMEM1,R1 MOV A,R5 LCALL CL MOV DISMEM2,R0 MOV DISMEM3,R1 MOV A,R4 LCALL CL MOV DISMEM4,R0 MOV DISMEM5,R1 RET CL: MOV B,A ANL A,#0FH MOV R0,A MOV A,B ANL A,#0F0H SWAP A MOV R1,A RET5.試編程把以2000H為首地址的連續(xù)10個單元的內(nèi)容按升序排列,存放到以3000H為首地址的存儲區(qū)中。 MOV DPTR,#2000H ;讀到片內(nèi)30H開始的單元 MOV R0,#30H MOV R7,#10 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 START: CLR 00H ;排序 CLR C MOV R7,#9 MOV R0,#30H MOV A,@R0 L3: INC R0 MOV R2,A SUBB A,@R0 MOV A,R2 JC NEXT SETB 00H XCH A,@R0 DEC R0 MOV @R0,A INC R0 NEXT: MOV A,@R0 DJNZ R7,L3 JB 00H,START MOV DPTR,#3000H ;送到片外3000H開始的單元 MOV R0,#20H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET6.設(shè)片內(nèi)30H單元開始,連續(xù)存放2個字節(jié)二進(jìn)制數(shù),試分別將其轉(zhuǎn)換為BCD碼,并以壓縮BCD碼格式連續(xù)存放在以60H為首地址的存儲區(qū)中,低位字節(jié)存放在低地址單元中。DBCD: MOV R0,30H MOV A,R0 MOV R6,A MOV R1,60H MOV A,R1 MOV R7,A MOV R2,#2 INC R2 CLR A BB0: MOV @R1,A INC R1 DJNZ R2,BB0 MOV R3,#16 BB3: MOV A,R6 MOV R0,A MOV R2,#2 CLR C BB1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R2,BB1 MOV R2,#2 INC R2 MOV A,R7 MOV R1,ABB2: MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R2,BB2 DJNZ R3,BB3 RET 7.設(shè)片內(nèi)RAM中從20H開始的單元,連續(xù)存放10個非壓縮BCD碼,試將其轉(zhuǎn)換為ASCII碼,存放到片內(nèi)50H開始的單元中。 MOV R0,#20H MOV R1,#50H MOV R 7,#10 L1: MOV A,@R0 ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,L1 RET8.從20H單元開始有一無符號數(shù)據(jù)塊,其長度在20H單元。求出數(shù)據(jù)塊中的最小值,并存入21H單元。參看第3題。9.片外RAM從2000H單元開始存有10個單字節(jié)無符號數(shù),找出最大值存入片外RAM3000H單元,試編寫程序。參看第3題。10.從片外RAM2000H單元開始存有20個有符號數(shù),要求把它們傳送到片外RAM3000H開始的單元,但負(fù)數(shù)不傳送,試編寫程序。 MOV DPTR,#2000H MOV R0,#20H MOV R7,#20 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 MOV DPTR,#3000H MOV R0,#20H MOV R7,#20 L2: MOV A,@R0 JB ACC.7,L3 MOVX @DPTR,A L3: INC DPTR INC R0 DJNZ R7,L2 RET11.設(shè)在片外RAM2000H~2004H單元存有5個壓縮的BCD數(shù),試編程將它們轉(zhuǎn)變?yōu)锳SCII碼,存放到以2005H為首地址的存儲區(qū)中。 MOV DPTR,#2000H MOV R0,#20H MOV R7,#5 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1 MOV A,20H LCALL CL MOV 30H,R0 MOV 31H,R1 MOV A,21H LCALL CL MOV 32H,R0 MOV 33H,R1 MOV A,22H LCALL CL MOV 34H,R0 MOV 35H,R1 MOV A,23H LCALL CL MOV 36H,R0 MOV 37H,R1 MOV A,24H LCALL CL MOV 38H,R0 MOV 39H,R1 MOV R0,#30H MOV DPTR,#2005H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,L2 RET12.在片外RAM2000H、2001H和3000H、3001H中分別存放兩個字?jǐn)?shù)據(jù)(高8位在偶地址),試比較兩個數(shù)的大小,把大數(shù)存放在4000H、4001H單元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A INC DPTR MOVX A,@DPTR MOV 21H,A MOV DPTR,#3000H MOVX A,@DPTR MOV 30H,A INC DPTR MOVX A,@DPTR MOV 31H,A CLR C MOV A,21H SUBB A,31H MOV A,20H SUBB A,30H JNC L1 MOV A,20H MOV B,21H SJMP L2 L1: MOV A,30H MOV B,31H L2: MOV DPTR,#4000H MOVX @DPTR,A INC DPTR

MOV A,B MOVX @DPTR,A RET

第6章MCS51系列單片機中斷系統(tǒng)與定時器/計數(shù)器1.什么是中斷源?MCS51單片機有哪些中斷源?各有什么特點?能引起中斷的原因稱為中斷源。MCS51單片機的5個中斷源分為兩種類型:一類是外部中斷源,包括和;另一類是內(nèi)部中斷源,包括兩個定時器/計數(shù)器(T0和T1)的溢出中斷和串行口的發(fā)送/接收中斷。(1)外部中斷MCS51單片機提供了兩個外部中斷請求和,它們的中斷請求信號有效方式分為電平觸發(fā)和脈沖觸發(fā)兩種。電平方式是低電平有效,脈沖方式為負(fù)跳變觸發(fā)有效。CPU在每個機器周期的S5P2檢測和上的信號。對于電平方式,只要檢測到低電平信號即為有效申請;對于脈沖方式,則需要比較兩次檢測到的信號,才能確定中斷請求信號是否有效。中斷請求信號高低電平的狀態(tài)都應(yīng)至少維持一個機器周期,以確保電平變化能被單片機檢測到。(2)內(nèi)部中斷MCS51單片機內(nèi)部有TF0、TF1、TI、RI,分別為定時器/計數(shù)器溢出中斷和串行口的發(fā)送/接收中斷的中斷源。當(dāng)中斷源有中斷請求時,相應(yīng)的中斷源的中斷請求標(biāo)志置位。外部中斷0、外部中斷1、定時器/計數(shù)器0溢出中斷、定時器/計數(shù)器1溢出中斷和串行口的發(fā)送/接收中斷的中斷請求標(biāo)志分別為IE0、IE1、TF0、TF1、TI或RI。IE0、IE1、TF0、TF1在特殊功能寄存器TCON中,TI或RI在特殊功能寄存器SCON中。2.試編寫外部中斷1為跳沿觸發(fā)方式的中斷初始化程序。 SETB IT1 SETB EA SETB EX13.試編寫一段對中斷系統(tǒng)初始化的程序,允許外部中斷0、外部中斷1、定時器/計數(shù)器T0溢出中斷、串行口中斷,且使定時器/計數(shù)器T0溢出中斷為高優(yōu)先級中斷。 SETB EA SETB EX0 SETB EX1 SETB ET0 SETB ES SETB PT04.在MCS51單片機中,外部中斷有哪兩種觸發(fā)方式?如何加以區(qū)分?MCS51單片機提供了兩個外部中斷請求和,它們的中斷請求信號有效方式分為電平觸發(fā)和脈沖觸發(fā)兩種。電平方式是低電平有效,脈沖方式為負(fù)跳變觸發(fā)有效。CPU在每個機器周期的S5P2檢測和上的信號。對于電平方式,只要檢測到低電平信號即為有效申請;對于脈沖方式,則需要比較兩次檢測到的信號,才能確定中斷請求信號是否有效。中斷請求信號高低電平的狀態(tài)都應(yīng)至少維持一個機器周期,以確保電平變化能被單片機檢測到。5.MCS51單片機能提供幾個中斷優(yōu)先級?各個中斷源優(yōu)先級如何確定?在同一優(yōu)先級中各個中斷源的優(yōu)先級如何確定?兩個中斷優(yōu)先級。通過IP寄存器進(jìn)行確定。在同一優(yōu)先級中,各個中斷源的優(yōu)先級:外部中斷0、定時器/計數(shù)器T0、外部中斷1、定時器/計數(shù)器T1、串行口。6.中斷允許寄存器IE各位的定義是什么?IE是中斷允許控制寄存器,CPU對中斷系統(tǒng)的所有中斷及某個中斷源的“允許”與“禁止”都是由它來控制的。IE中斷允許寄存器格式如下:寄存器中用于控制中斷的共有6位,實現(xiàn)中斷管理,其作用如下:EA為中斷允許總控制位。EA=1時,CPU開放中斷;EA=0時,CPU屏蔽所有中斷請求。ES、ET1、EX1、ET0、EX0為對應(yīng)的串行口中斷、定時器/計數(shù)器1中斷、外部中斷1中斷、定時器/計數(shù)器0中斷、外部中斷0中斷的中斷允許位。對應(yīng)位為1時,允許其中斷,對應(yīng)位為0時,禁止其中斷。7.為何要在程序的首地址安排一條跳轉(zhuǎn)到主程序的指令?在響應(yīng)中斷過程中為什么要保護現(xiàn)場?應(yīng)怎樣保護?因為主程序的入口地址是0000H單元,而0003H單元式外部中斷0的中斷服務(wù)程序入口地址,主程序需要躲開該地址。為了使在中斷服務(wù)程序響應(yīng)完畢后能正確地返回中斷的地方。在響應(yīng)中斷的時間,CPU自動地將要返回的地址壓入堆棧保護。8.MCS51單片機若要把外部中斷源擴充為6個,可采用哪些方法?如何確定它們的優(yōu)先級?可以由兩種方法:參看例題6-4和例題6-5.對于第一種方法,在查詢時先查詢那個中斷源,那個中斷源的優(yōu)先級最高。對于第二種方法,先判斷哪個中斷源,哪個中斷源的中斷優(yōu)先級高。9.子程序和中斷服務(wù)程序有何異同?子程序返回指令RET和中斷返回指令RETI能相互替代嗎?子程序是有固定的調(diào)用位置的,而中斷服務(wù)程序沒有固定的調(diào)用位置。不能用RET指令代替RETI指令,因為用RET指令雖然也能控制PC返回原來中斷的地方,但RET指令沒有清零中斷優(yōu)先級狀態(tài)觸發(fā)器的功能,中斷控制系統(tǒng)也會認(rèn)為中斷仍在進(jìn)行,其后果是同級的中斷請求將不被響應(yīng)。所以,中斷服務(wù)程序結(jié)束時必須使用RETI指令。10.MCS51單片機各中斷標(biāo)志是如何產(chǎn)生的?又如何清除?在中斷請求被響應(yīng)前,中斷源發(fā)出的中斷請求是由CPU鎖存在特殊功能寄存器TCON和SCON的相應(yīng)中斷標(biāo)志位中的。一旦某個中斷請求得到響應(yīng),CPU必須把它的相應(yīng)標(biāo)志位復(fù)位成0狀態(tài),否則MCS51單片機就會因中斷未能得到及時撤除而重復(fù)響應(yīng)同一中斷請求,這是絕對不允許的。MCS51單片機的51子系列有5個中斷源,但實際上只分屬于三種中斷類型。這三種類型是:外部中斷、定時器/計數(shù)器溢出中斷和串行口中斷。對于這三種中斷類型的中斷請求,其撤除方法是不同的。(1)定時器/計數(shù)器溢出中斷請求的撤除TF0和TF1是定時器/計數(shù)器溢出中斷標(biāo)志位,它們因定時器/計數(shù)器溢出中斷請求的輸入而置位,因定時器/計數(shù)器溢出中斷得到響應(yīng)而自動復(fù)位成0狀態(tài)。因此定時器/計數(shù)器溢出中斷源的中斷請求是自動撤除的,用戶根本不必專門為它們撤除。(2)串行口中斷請求的撤除TI和RI是串行口中斷的標(biāo)志位,中斷系統(tǒng)不能自動將它們撤除,這是因為MCS51進(jìn)入串行口中斷服務(wù)程序后常需要對它們進(jìn)行檢測,以測定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過指令將它們撤除:CLR TI ;撤除發(fā)送中斷CLR RI ;撤除接收中斷(3)外部中斷的撤除外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)和脈沖觸發(fā)。對于這兩種不同的中斷觸發(fā)方式,MCS51單片機撤除它們的中斷請求的方法是不相同的。在脈沖觸發(fā)方式下,外部中斷標(biāo)志IE0和IE1是依靠CPU兩次檢測和上的觸發(fā)電平狀態(tài)而設(shè)置的。因此,芯片設(shè)計者使CPU在響應(yīng)中斷時自動復(fù)位IE0或IE1,就可撤除或上的中斷請求,因為外部中斷源在中斷服務(wù)程序時是不可能再在或上產(chǎn)生負(fù)邊沿而使相應(yīng)的中斷標(biāo)志IE0或IE1置位的。在電平觸發(fā)方式下,外部中斷標(biāo)志IE0和IE1是依靠CPU檢測和上的低電平而置位的。盡管CPU響應(yīng)中斷時相應(yīng)中斷標(biāo)志IE0或IE1,能自動復(fù)位成“0”狀態(tài),但若外部中斷源不能及時撤除它在或上的低電平,就會再次使已經(jīng)變“0”的中斷標(biāo)志IE0或IE1置位,這是絕對不允許的。因此電平觸發(fā)型外部中斷請求的撤除必須使或上的低電平隨著其中斷被CPU響應(yīng)而變?yōu)楦唠娖健R环N可供采用的電平型外部中斷的撤除電路如圖所示。=由圖可見,當(dāng)外部中斷源產(chǎn)生中斷請求時,D觸發(fā)器復(fù)位成“0”狀態(tài),Q端的低電平被送到,該低電平被8051檢測后就使中斷標(biāo)志IE0置1。8051響應(yīng)上的中斷請求可轉(zhuǎn)入中斷服務(wù)程序執(zhí)行,故可以在中斷服務(wù)程序開頭安排如下程序來使上的電平變高:=INSVR:SETB P1.0 CLR P1.0 CLR IE0 ··· END8051執(zhí)行上述程序就可在P1.0上產(chǎn)生一個寬度為兩個機器周期的負(fù)脈沖。在該負(fù)脈沖作用下,D觸發(fā)器被置位成1狀態(tài),上的電平也因此而變高,從而撤除了其上的中斷請求。11.設(shè)MCS51單片機時鐘為12MHz,利用定時器T0編程令P1.0引腳輸出2ms的矩形波程序,要求占空系數(shù)為1:2(高電平時間短)。 ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 0030H MAIN: MOV SP,#60H MOV R7,#0 MOV TMOD,#01H ;初始化 MOV TH0,#0FDH ;定時666微妙 MOV TL0,#66H SETB EA SETB ET0 SETB TR0 L1: SJMP L1;中斷服務(wù)程序 T0INT:MOV TH0,#0FDH ;重載初始值 MOV TL0,#66H INC R7 CJNE R7,#1,LL1 CLR P1.0 SJMP LLEND LL1: CJNE R7,#3,LLEND SETB P1.0 MOV R7,#00H LLEND:RETI12.如果MCS51單片機系統(tǒng)的晶振頻率為12MHz,分別指出定時器/計數(shù)器方式1和方式2的最長定時時間。方式1:65536微妙;方式2:256微妙13.MCS51單片機P1端口上,經(jīng)驅(qū)動接有8支發(fā)光二極管,若外部晶振頻率為6MHz,試編寫程序,使這8支發(fā)光管每隔2s循環(huán)發(fā)光(要求用T1定時)。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030H MAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定時100ms MOV TL1,#0B0H MOV A,#11111110B MOV R7,#20 ;100ms*20=2S SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#20 MOV P1,A RL A L1: RETI14.設(shè)MCS51單片機的晶振頻率為12MHz,要求在P1.0輸出周期是200ms的方波,試編寫程序。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030H MAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定時50ms MOV TL1,#0B0H MOV R7,#2 ;50ms*2=100ms SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#2 CPL P1.0 L1: RETI15.每隔1s讀一次P1.0,如果所讀的狀態(tài)為“1”,則將片內(nèi)RAM10H單元的內(nèi)容加1;如果所讀的狀態(tài)為“0”,則將片內(nèi)RAM11H單元的內(nèi)容加1。設(shè)單片機的晶振頻率為12MHz,試編寫程序。 ORG 0000H LJMP MAIN ORG 001BH LJMP T1INT ORG 0030H MAIN: MOV SP,#70H MOV TMOD,#10H ;T1方式1 MOV TH1,#3CH ;定時50ms MOV TL1,#0B0H MOV R7,#20 ;50ms*20=1s MOV 10H,#0 MOV 11H,#0 SETB EA SETB ET1 SETB TR1 SJMP $ T1INT: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R7,L1 MOV R7,#20 SETB P1.0 MOV C,P1.0 JNC L2 INC 10H SJMP L1 L2: INC 11H L1: RETI END

第7章MCS51系列單片機的串行口1.若異步通信,每個字符由11位組成,串行口每秒傳送250個字符,問波特率是多少?2750位/秒=2750波特2.設(shè)串行異步通信的傳送速率為2400波特,傳送的是帶奇偶校驗的ASCII碼字符,每個字符包含10位(1個起始位,7個數(shù)據(jù)位,1個奇偶校驗位,1個停止位),試編程初始化程序。設(shè)定串行口位方式1. MOV SCON,#40H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H SETB TR13.MCS51單片機的串行口控制寄存器SCON的SM2、TB8、RB8有何作用?(1)SM2是多機通信控制位因多機通信是在方式2和方式3下進(jìn)行的,所以SM2位主要用于方式2和方式3。當(dāng)串行口以方式2或方式3接收數(shù)據(jù)時,如SM2=1,則只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“1”時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求;否則,將接收到的前8位數(shù)據(jù)丟棄。而當(dāng)SM2=0時,不論接收到的第9位數(shù)據(jù)是“0”還是“1”,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1,以便接收下一幀數(shù)據(jù)。在方式0時,SM2必須為0。(2)TB8是發(fā)送數(shù)據(jù)的第9位在方式2、3時,其值由用戶通過軟件設(shè)置。在雙機通信時,TB8一般作為奇偶校驗位使用;在多機通信中,常以TB8位的狀態(tài)表示主機發(fā)送的是地址幀還是數(shù)據(jù)幀,且一般約定:TB8=0為數(shù)據(jù)幀,TB8=1為地址幀。(3)RB8是接收數(shù)據(jù)的第9位在方式2、3時,RB8存放接收到的第9位數(shù)據(jù),它代表接收到的數(shù)據(jù)的特征:可能是奇偶校驗位,也可能是地址/數(shù)據(jù)的標(biāo)志位。4.設(shè)外部晶振頻率為6MHz,試編寫一段對串行口的初始化程序,使之工作在方式1,波特率為1200b/s;并用查詢串行口狀態(tài)的方式,讀出接收緩沖器的數(shù)據(jù)并回送到發(fā)送緩沖器。 MOV SCON,#50H MOV PCON,#80H MOV TMOD,#20H MOV TH1,#0E5H MOV TL1,#0E5H CLR ES SETB TR1 JBN RI,$ MOV A,SBUF CLR RI5.設(shè)外部晶頻率振為11.0592MHz,串行口工作在方式1,波特率為4800b/s。編寫用T1作為波特率發(fā)生器的方式字并計算T1的計數(shù)初值。TMOD:20HTH1=TL1=0FAH6.設(shè)計一個單片機的雙機通信系統(tǒng),串行口工作在方式1,編寫通信程序?qū)⒓讬C內(nèi)部RAM30H~3FH存儲區(qū)的數(shù)據(jù)塊通過串行口傳送到乙機內(nèi)部RAM40H~4FH存儲區(qū)中。甲機發(fā)送(采用查詢方式): MOV SCON,#80H ;設(shè)置工作方式2 MOV PCON,#00H ;置SMOD=0,波特率不加倍 MOV R0,#30H ;數(shù)據(jù)區(qū)地址指針 MOV R2,#10H ;數(shù)據(jù)長度LOOP: MOV A,@R0 ;取發(fā)送數(shù)據(jù) MOV C,P ;奇偶位送TB8 MOV TB8,C MOV SBUF,A ;送串行口并開始發(fā)送數(shù)據(jù)WAIT: JBC TI,NEXT ;檢測是否發(fā)送結(jié)束并清TI SJMP WAIT NEXT: INC R0 ;修改發(fā)送數(shù)據(jù)地址指針 DJNZ R2,LOOP RET乙機接收(采用查詢方式): MOV SCON,#90H ;工作方式2,并允許接收 MOV PCON,#00H ;置SMOD=0 MOV R0,#40H ;置數(shù)據(jù)區(qū)地址指針 MOV R2,#10H ;等待接收數(shù)據(jù)長度LOOP: JBC RI,READ ;等待接收數(shù)據(jù)并清RI SJMP LOOPREAD: MOV A,SBUF ;讀一幀數(shù)據(jù) MOV C,P JNC LP0 ;C不為1轉(zhuǎn)LP0 JNB RB8,ERR ;RB8=0,即RB8不為P轉(zhuǎn)ERR AJMP LP1LP0: JB RB8,ERR ;RB8=1,即RB8不為P轉(zhuǎn)ERRLP1: MOV @R0,A ;RB8=P,接收一幀數(shù)據(jù) INC R0 DJNZ R2,LOOP RETERR: … ;出錯處理程序

第8章MCS51系列單片機系統(tǒng)擴展技術(shù)1.MCS51單片機擴展系統(tǒng)中,程序存儲器和數(shù)據(jù)存儲器共用16位地址線和8位數(shù)據(jù)線,為什么兩個存儲空間不會發(fā)生沖突?因為是使用不同的控制信號。程序存儲器的讀控制使用/PSEN信號;數(shù)據(jù)存儲器的讀、寫控制室使用/RD、/WR。2.試用Intel2764,6264為MCS51單片機設(shè)計一個存儲器系統(tǒng),它具有8KBEPROM(地址由0000H~1FFFH)和16KB的數(shù)據(jù)存儲器(地址為2000H~5FFFH)。要求繪出該存儲器系統(tǒng)的硬件連接圖,并指出每片芯片的地址空間。使用一片Intel2764,兩片RAM6264.參看圖8-22,采用譯碼器譯碼。2764可以不用譯碼,其片選信號直接接地,其地址為0000H~1FFFH,讀控制接/PSEN;RAM6264的片選分別接74LS138的/Y1、/Y2,其地址分別為:2000H~3FFFH、4000H~5FFFH,其讀。寫控制分別接/RD、/WR。3.在一個8031應(yīng)用系統(tǒng)中擴展一片2764、一片8255A和一片6264。試畫出系統(tǒng)框圖,并指出所擴展的各個芯片的地址范圍。參看圖8-20、8-23、8-29.將圖8-23中的/CE1接74LS138譯碼器的/Y0端。2764的地址空間范圍:0000H~1FFFH6464的地址空間范圍:0000H~1FFFH82552A的口地址:PA口0FFFCH、PB口0FFFDH、PC口0FFFEH、控制口0FFFFH。4.試設(shè)計用兩片74LS377和兩片74LS244擴展兩個并行輸出口和兩個并行輸入口的擴展連接電路圖。參看圖8-26、8-27.5.8255A有哪幾種工作方式?怎樣進(jìn)行選擇?簡述8255A的控制字。8255A具有3種工作方式,通過向8255A的控制字寄存器寫入方式選擇字,就可以規(guī)定各端口的工作方式。當(dāng)8255A工作于方式1和方式2時,C口可用做A口或B口的聯(lián)絡(luò)信號,用輸入指令可以讀出C口的狀態(tài)。通過方式選擇控制字進(jìn)行選擇。端口C置位/復(fù)位控制字端口C的各位常用做控制或應(yīng)答信號,通過對8255A的控制口寫入置位/復(fù)位控制字,可使端口C的任意一個引腳的輸出單獨置1或清零,或者為應(yīng)答式數(shù)據(jù)傳送發(fā)出中斷請求信號。在基于控制的應(yīng)用中,經(jīng)常希望在某一位上產(chǎn)生一個TTL電平的控制信號,利用端口C的這個特點,只需要用簡單的程序就能形成這樣的信號,從而簡化了程序。D7位為置位/復(fù)位控制字標(biāo)志位,它必須等于0,用來和方式選擇控制字進(jìn)行區(qū)分;D3~D1位用于選擇對端口C中某一位進(jìn)行操作;D0位指出對選中位是置1還是清零。D0=1時,使選中位置1;D0=0時,使選中位清零。8.SPI總線一般使用幾條線?分別是什么?SPI使用4條線:串行時鐘SCK,主機輸入/從機輸出數(shù)據(jù)線MISO(簡稱SO),主機輸出/從機輸入數(shù)據(jù)線MOSI(簡稱SI)和低電平有效的從機選擇線。9.I2C總線一般使用幾條線?分別是什么?I2C總線采用兩線制,由數(shù)據(jù)線SDA和時鐘線SCL構(gòu)成。

第9章MCS51系列單片機鍵盤/顯示器接口技術(shù)1.簡述單片機如何進(jìn)行鍵盤的鍵輸入以及怎樣實現(xiàn)鍵功能處理。當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下時,計算機應(yīng)用系統(tǒng)應(yīng)完成該按鍵所規(guī)定的功能。鍵信息輸入是與軟件編程密切相關(guān)的過程。對于一組鍵或一個鍵盤,需要通過接口電路與CPU相連。CPU可以采用查詢或中斷方式了解有無鍵輸入并檢查是哪個鍵被按下,將該鍵的信息送入CPU,然后通過散轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完畢又返回到原始狀態(tài)。鍵輸入接口與軟件應(yīng)可靠而快速地實現(xiàn)鍵信息輸入與執(zhí)行鍵功能任務(wù)。為此,應(yīng)解決下列問題。(1)鍵開關(guān)狀態(tài)的可靠輸入目前,無論是按鍵還是鍵盤,大部分利用的都是機械觸點的合、斷作用。機械觸點在閉合及斷開瞬間由于彈性作用的影響均有抖動過程,從而使電壓信號也出現(xiàn)抖動,如圖9-20所示。抖動時間長短與開關(guān)的機械特性有關(guān),一般為5~10ms。按鍵的穩(wěn)定閉合時間,由操作人員的按鍵動作確定,一般為十分之幾秒至幾秒。為了保證CPU對鍵的一次閉合僅做一次鍵輸入處理,必須去抖動影響。通常,去抖動影響的方法有硬、軟兩種。在硬件上是采取在鍵輸出端加RS觸發(fā)器或單穩(wěn)態(tài)電路構(gòu)成去抖動電路。在軟件上采取的措施是,在檢測到有鍵按下時,執(zhí)行一個10ms左右的延時程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài),從而去除了抖動影響。(2)對按鍵進(jìn)行編碼以給出鍵值或直接給出鍵號任何一組按鍵或鍵盤都要通過I/O接口線查詢按鍵的狀態(tài)。根據(jù)不同的鍵盤結(jié)構(gòu)采用不同的編碼方法。但無論有無編碼及采用什么編碼,最后都要轉(zhuǎn)換成與累加器中數(shù)值相對應(yīng)的鍵值,以實現(xiàn)按鍵功能程序的散轉(zhuǎn)轉(zhuǎn)移(相應(yīng)的散轉(zhuǎn)指令為JMP@A+DPTR),因此一個完善的鍵盤控制程序應(yīng)完成下述任務(wù):①檢測有無鍵按下。②有鍵按下后,在無硬件去抖動電路時,應(yīng)用軟件延時方法除去抖動影響。③有可靠的邏輯處理方法,如n鍵按下,即只處理一個鍵,其間任何按下又松開的鍵不產(chǎn)生影響,不管一次按鍵持續(xù)有多長時間,僅執(zhí)行一次按鍵功能程序。④輸出確定的鍵號以滿足散轉(zhuǎn)指令的要求。2.何謂鍵抖動?鍵抖動對單片機系統(tǒng)有何影響?如何消除鍵抖動?目前,無論是按鍵還是鍵盤,大部分利用的都是機械觸點的合、斷作用。機械觸點在閉合及斷開瞬間由于彈性作用的影響均有抖動過程,從而使電壓信號也出現(xiàn)抖動,如圖9-20所示。抖動時間長短與開關(guān)的機械特性有關(guān),一般為5~10ms。按鍵的穩(wěn)定閉合時間,由操作人員的按鍵動作確定,一般為十分之幾秒至幾秒。為了保證CPU對鍵的一次閉合僅做一次鍵輸入處理,必須去抖動影響。通常,去抖動影響的方法有硬、軟兩種。在硬件上是采取在鍵輸出端加RS觸發(fā)器或單穩(wěn)態(tài)電路構(gòu)成去抖動電路。在軟件上采取的措施是,在檢測到有鍵按下時,執(zhí)行一個10ms左右的延時程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認(rèn)該鍵處于閉合狀態(tài),從而去除了抖動影響。3.何謂靜態(tài)顯示?何謂動態(tài)顯示?兩種顯示方式有何優(yōu)缺點?所謂靜態(tài)顯示,是指當(dāng)顯示器顯示某一個字符時,相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止,公共端接固定的電平。LED動態(tài)顯示是將所有位的段選線并接在一個I/O接口上,稱為段口,共陰極端或共陽極端分別由相應(yīng)的I/O接口線控制,稱為位口。靜態(tài)顯示顯示穩(wěn)定,但軟件簡單;動態(tài)顯示硬件簡單,但軟件需要不斷地刷新。4.設(shè)MCS51單片機系統(tǒng)擴展一個8255,其口地址分別為7CFFH~7FFFH,其中PC擴展一個4×2的矩陣鍵盤,PC0~PC3為行,PC6~PC7為列,試畫出8255與單片機及鍵盤的連接簡圖,并編寫鍵盤管理程序。連接簡圖參看圖9-24的鍵盤部分,將8*2的矩陣鍵盤改為4*4的矩陣鍵盤,片8288A的片選改為接MCS-51單片機的P2.7。鍵盤管理程序:KEY: MOV A,#00H ;所有行輸出0 MOV DPTR,#7EFFH MOVX @DPTR,A MOV DPTR,#7EFFH ;讀列值 MOVX A,@DPTR ANL A,#0FH CJNE A,#0FH,KEY1 ;不全1,說明有鍵按下 SJMP KEYEND ;全1,說明無鍵按下KEY1: MOV B,#11111110B ;有鍵,逐行輸出0KEY4: MOV A,B MOV DPTR,#PORT1 MOVX @DPTR,A MOV DPTR,#PORT2 MOVX A,@DPTR ANL A,#0FH CJNE A,#0FH,KEY2 MOV A,B RL A JNB ACC.4,KEYEND MOV B,A SJMP KEY4KEY2: ANL B,#0FH ;計算鍵值 MOV R7,A MOV A,B SWAP A ORL A,R7 MOV B,A ;鍵值在B中 MOV R7,#00H MOV R6,#10HKEY6: MOV DPTR,#KEYTAB MOV A,R7 MOVC A,@A+DPTR CJNE A,B,KEY5 MOV A,R7 RL A ADD A,R7 MOV

溫馨提示

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

評論

0/150

提交評論