單片機應用考試題庫_第1頁
單片機應用考試題庫_第2頁
單片機應用考試題庫_第3頁
單片機應用考試題庫_第4頁
單片機應用考試題庫_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章

1.答:單片機又稱為單片微計算機,它地結構特點是將微型計算機地基本功能部件(如

處理器(CPU),存儲器,輸入接口,輸出接口,定時/計數(shù)器及終端系統(tǒng)等)全部集成在一

個半導體芯片上。雖然單片機只是一個芯片,但無論從組成還是從邏輯功能上來看,都具

有微機系統(tǒng)地定義。與通用地微型計算機相比,單片機體積小巧,可以嵌入到應用系統(tǒng)中

作為指揮決策中心,是應用系統(tǒng)實現(xiàn)智能化。

2.2.雖然單片機只是一個芯片-,但無論從組成還是從邏輯功能上來看,都具有微機系統(tǒng)

地定義。與通用地微型計算機相比,單片機體積小巧,可以嵌入到應用系統(tǒng)中作為指揮決

策中心,是應用系統(tǒng)實現(xiàn)智能化,此后在8031上發(fā)展出了MCS51系列MCU系統(tǒng)。基于這

一系統(tǒng)地單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領域要求地提高,開始出現(xiàn)

了16位單片機,但因為性價比不理想并未得到很廣泛地應用。90年代后隨著消費電子產

品大發(fā)展,單片機技術得到了巨大提高。隨著INTELi960系列特別是后來地ARM系列地

廣泛應用,32位單片機迅速取代16位單片機地高端地位,并且進入主流市場。然而,由于

各應用領域大量需要地仍是8位單片機,因此各大公司紛紛推出高性能,大容量,多功能

地新型8位單片機。目前,單片機正朝著高性能與多品種發(fā)展,但由于MCS-51系列8位

單片機仍能滿足絕大多數(shù)應用領域地需要,可以肯定,以MCS-51系列為主地8位單片機,

在當前及以后地相當一段時間內仍將占據(jù)單片機應用地主導地位。列為主地8位單片機,

在當前及以后地相當一段時間內仍將占據(jù)單片機應用地主導地位。

3.3.答:單片機廣泛應用于儀器儀表,家用電器,醫(yī)用設備,航空航天,專用設備地智能

化管理及過程控制等領域。

4.4.第一步,需求分析,分析項目地需求,有哪些功能等等;第二部,方案選擇,比如芯片

選擇,是否需要帶系統(tǒng),選用哪種語言開發(fā)等等;第三部,可行性分析選定這個方案是否

可行,代價有多大,周期有多長,是否能夠在有限地時間內實現(xiàn);第四部方案實施主要分

為硬件設計與軟件設計第五步調試與測試。

5.5.首先閱讀軟件使用說明,了解基本功能,然后繪制原理圖,再點擊原理圖中地單片

機加載程序,最后點擊仿真即可。

6.第八章

7.非編碼鍵盤地單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行有無鍵按下地程序段,當確認有

按鍵按下后,下一步就要識別哪一個按鍵被按下。通常地按鍵所用開關為機械彈性開

關。由于機械觸電地彈性作用,按鍵在閉合及斷開地瞬間均伴隨有一連串地抖動。鍵抖

動會引起一次按鍵被誤讀多次。為了確保CPU對鍵地一次閉合僅作一次處理,需要去除

抖動。這個指令可以判斷按鍵釋放。

8.掃描法:以4*4矩陣按鍵為例,將全部行線置低電平,然后檢測列線地狀態(tài)。只要有一

列地電平為低,則表示鍵盤中有鍵被按下,而且閉合地鍵位于低電平線與4根行線相交

叉地4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。

線反轉法:在確認有鍵按下后,即可進入確定具體閉合鍵地過程。其方法是:依次將行線

置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電

平后,再逐行檢測各列線地電平狀態(tài)。若某列為低,則該列線與置為低電平地行線交叉處

地按鍵就是閉合地按鍵。

9.略

第二章

1,51單片機包含地主要功能部件包括:CPU,RAM,ROM,I/Od.T/C,中斷源地中斷控制系

統(tǒng)與全雙工UART(通用異步接收發(fā)送器)地串行I/O口。

其中:

CPU:由運算與控制邏輯組成,同時還包括中斷系統(tǒng)與部分外部特殊功能寄存器;

RAM:用以存放可以讀寫地數(shù)據(jù),如運算地中間結果,最終結果以及欲顯示地數(shù)據(jù);

ROM:用以存放程序,一些原始數(shù)據(jù)與表格;

I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出

T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;

五個中斷源地中斷控制系統(tǒng);

一個全雙工UART(通用異步接收發(fā)送器)地串行I/O口,用于實現(xiàn)單片機之間或單片機

與微機之間地串行通信。

2,PSW各位地定義如下:

Cy(PSW.7):即PSW地D7位,進位,借位標志。進位,借位CY=1;否則CY=O

AC(PSW.6):即PSW地D6位,輔助進位,借位標志。當D3向D4有借位或進位時,AC=1;

否則AC=O.

FO(PSW.5及PSW.1):即PSW地D5位,用戶標志位;RS1及RSO(PSW.4及PSW.3):即

PSW地D4,D3位,寄存器組選擇控制位;

OV(PSW.2):溢出標志。有溢出OV=1,否則0V=0;F1(PSW?1):保留位,無定義;

P(PSW-0):奇偶校驗標志位,由硬件置位或清0;存在ACC中地運算結果有奇數(shù)個1時

P=l,否則P=0o

3,物理結構可分成片內程序存儲區(qū),片外程序存儲區(qū),片內數(shù)據(jù)存儲區(qū),片外數(shù)據(jù)存儲區(qū)。

4,EA/Vpp:訪問外部存儲器控制信號。

EA無效(高電平)時,訪問內部ROM,其有效時,訪問內部ROMo

5,程序復位入口地址是0000H,外部中斷0是0003H,外部中斷1是0013H,定時器0是

OOOBH,定時器1是001BH,定時器2是002BH。

6,SFR是特殊功能寄存器,是80C51單片機中各功能部件對應地寄存器,用于存放相應功

能部件地控制命令,狀態(tài)或數(shù)據(jù)。

7,P3.0RXD(串行口輸入),P3.1TXD(串行口輸出),P3.2INTO(外部中斷0輸入),P3.3

INT1(外部中斷1輸入),P3.4T0(定時\計數(shù)器0地外部輸入),P3.5T1(定時\計數(shù)器

1地外部輸入),P3.6WR(片外數(shù)據(jù)存儲器寫選通),P3.7RD(片外數(shù)據(jù)存儲器讀選通。

8,晶振為6MHz時,時鐘周期=振蕩周期=l/6MHz=0.1667us,機器周期=12*時鐘周期=2us,

雙周期指令所用時間為兩個機器周期所用時間,即4uso

9,51單片機共有四個8位雙向并行地I/O口,每個端口都包括一個鎖存器,一個輸出驅

動器與一個輸入緩沖器。但這四個端口地功能不全相同,P0口既可作一般I/O口使用,又

可作地址/數(shù)據(jù)總線使用;P1口是一個準雙向并行口,作通用并行I/O口使用;P2口除了

可作為通用I/O使用外,還可在CPU訪問外部存儲器時作高八位地址線使用;P3口是一

個多功能口除具有準雙向I/O功能外,還具有第二功能。

準雙向口:不是嚴格意義上雙向10口,雖然10口也可以實現(xiàn)輸入輸出功能,但是需要特

殊處理,當作為輸入口是需要先賦值“1”才能作為輸入口使用。

10,復位操作作用是單片機對有關地寄存器,1/0端口進行初始化操作,使單片機從同一

個狀態(tài)開始工作。

寄存器PC,復位后狀態(tài)碼為0000H;

寄存器ACC,復位后狀態(tài)碼為0011;

寄存器PSW,復位后狀態(tài)碼為00H;

寄存器SP,復位后狀態(tài)碼為07H

11,最小系統(tǒng)是指用最少地元件組成地單片機可以工作地系統(tǒng)。

第三章

3.1答:C51強大功能及其高效率地重要體現(xiàn)之一在于其豐富地可直接調用地庫函數(shù),多使

用庫函數(shù)使程序代碼簡單,結構清晰,易于調試與維護

3.2

C51存儲類型與8051存儲空間地對應關系

存儲區(qū)描述

DATA片內RAM地低128字節(jié),可在一個周期內直接尋址

BDATA片內RAM地位尋址區(qū),16字節(jié)

IDATA片內RAM地256字節(jié),需要采用間接尋址

XDATA外部數(shù)據(jù)存儲區(qū),使用DPTR間接尋址

外部存儲區(qū)地256個字節(jié),通過P0口地地址對其尋址。使用MOVX@Ri,需要

PDATA

兩個指令周期

CODE程序存儲區(qū),使用DPTR尋址。

3.3C51對51單片機特殊功能寄存器地定義方法

答:MCS-51通過其特殊功能寄存器(SFR)實現(xiàn)對其內部主要資源地控制。MCS-51單片

機有21個SFR,有地單片機還有更多地SFR,它們分布在片內RAM地高128字節(jié)中,其地

址能夠被8整除地SFR?般可以進行位尋址。關于MCS-51單片機地特殊功能寄存器參看

附錄A。對SFR只能用直接尋址方式訪問。C51允許通過使用關鍵字sfr,sbit或直接引用

編譯器提供地頭文件來實現(xiàn)對SFR地訪問。

(1)使用關鍵字定義sfr

為了能直接訪問特殊功能寄存器SFR,C51提供了一種自主形式地定義方法。這種定義方法

與標準地C語言不兼容,只適用于對8051系列單片機進行C編程。這種定義地方法是引入

關鍵字、'sfr",語法如下:

sfr特殊功能寄存器名字=特殊功能寄存器地址;

如:

sfrSCON=Ox98;/*串口控制寄存器地址98H*/

sfrTMOD=OX89;/*定時器/計數(shù)器方式控制寄存器地址89H*/

(2)通過頭文件訪問SFR

8051系列單片機地寄存器數(shù)量與類型是極不相同地,因此對單片機特殊功能寄存器地

訪問可以通過對頭文件地訪問來進行o

為了用戶處理方便,C51編譯器把MCS-51單片機地常用地特殊功能寄存器與特殊位進

行了定義,放在一個、'reg51.h"或、'reg52.h”地頭文件中。當用戶要使用時,只需要在使用之

前用一條預處理命令'^include<reg51.h>”把這個頭文件包含到程序中,然后就可以使用

特殊功能寄存器名與特殊位名稱了。用戶可以通過文本編輯器對頭文件進行增減。

(3)SFR中位定義

在8051單片機地應用問題中,經(jīng)常需要單獨訪問SFR中地位,C51地擴充功能使之成為可

能,使用關鍵字、'sbit"可以訪問位尋址對象。特殊位(sbit)地定義,像SFR一樣不與標準C

兼容。

與SFR定義一樣,用關鍵字sbit”定義某些特殊位,并接受任何符號名,''="號后將絕對地址賦

給變量名。這種地址分配有三種方法:

第一種方法:

sbit位名=特殊功能寄存器名人位置;

當特殊功能寄存器地地址為字節(jié)(8位)時,可使用這種方法。特殊功能寄存器名需要是已

定義地SFR地名字。''八"后地''位置"語句定義了基地址上地特殊位地位置。該位置需要是

0?7地數(shù)。如:

第二種方法:

sbit位名=字節(jié)地址八位置;

這種方法是以一個整常數(shù)為基地址,該值需要在0x80?OxFF之間,并能被8整除,確定位

置地方法同上。

第三種方法:

sbit位名=位地址;

這種方法將位地絕對地址賦給變量,地址需要在0x80?OxFF之間。

3.4可直接進彳亍處理地數(shù)據(jù)類型:unsignedchar,signedchar,unsignedint,signedint,

Unsignedlong,signedlong,float,bit,sbit,sfr,sfrl6

不能進行處理地數(shù)據(jù)類型:double

C51編譯器需要對程序中地預處理命令進行處理,然后將處理結果與源程序一起編譯。

3.5

新建項目-編寫代碼加入項目■?項目配置-編譯與連接

3.6

在Debug那個選項卡里,選擇usesimulator,使用軟件進行調試。

3.7

1.基于電可擦除存儲單元地EEPROM或Flash技術(譬如CPLD),特點是,掉電數(shù)據(jù)不丟

失,但編程次數(shù)有限,編程速度慢;

2.基于SRAM查找表地編程單元(譬如FPGA),特點是,配置次數(shù)無限,加電可隨時更改邏

輯,但掉電后數(shù)據(jù)即丟失,下次上電需要重新配置;

3..基于反熔絲編程單元(譬如Actel地FPGA);

4.JTAG方式;

第四章

4.1.定時器/計數(shù)器定時與計數(shù)地內部工作有何異同點?

答:定時是對周期固定地內部機器周期脈沖進行計數(shù),計數(shù)時計數(shù)脈沖從TO(P3.4)或T1

(P3.5)引腳接入。其余地控制寄存器是一樣地。

4.2

工作方式0:13位計數(shù)模式最大范圍0-8191

工作方式1:16位計數(shù)模式最大范圍0-65535

工作方式2:8位自動重裝計數(shù)模式0-255

工作模式3(只有T0):TL0與TH0將被分割成2個0-255地獨立計數(shù)器會觸發(fā)TFOTF1

中斷

4.3

voidInitTimer0()

{

TMOD=0x01;定時器0,工作方式1

TH0=0xEC,TL0=0x77

ETO=1;打開定時器0中斷

EA=1;打開總中斷

TRO=1;打開定時器0

4.4.編寫一段程序,功能要求:當P1.0引腳地電平正跳變時,對P1.1地輸入脈沖進行計數(shù);

當P1.2引腳地電平負跳變時,停止計數(shù),并將計數(shù)值寫入RO,R1(高位存R1,低位存RO)。

答:將P1.1地輸入脈沖接入INTO,即使用TO計數(shù)器完成對P1.1口地脈沖計數(shù)。參考程序

如下:

ORG0000H

□MPMAIN

ORGOOOBH

□MPITOP

MAIN:JNBP1.0,MAIN

MOVTMODZ#05H;定時器/計數(shù)器TO為計數(shù)方式1

SETBTRO;啟動TO,開始計數(shù)

SETBETO;允許T0中斷

SETBEA;CPU開中斷

WAIT:JBPl.2,WAIT

CLREA

CLRTRO

MOVR1,THO

MOVRO,TLO

AJMP$

ITOP:INCR2

RETI

第五章

5.1.什么是中斷,中斷源,中斷優(yōu)先級與中斷嵌套?

答:中斷是指單片機內部有一個中斷管理系統(tǒng),它對內部地定時器事件,串行通信地發(fā)送

與接收及外部事件(如鍵盤按鍵動作)等進行自動地檢測判斷。當CPU正在處理某件事情

(例如正在執(zhí)行主程序)地時候,外部或內部發(fā)生地某一事件(如某個引腳上電平地變化,一

個脈沖沿地發(fā)生或計數(shù)器地計數(shù)溢出等)請求CPU迅速處理,于是,中斷管理系統(tǒng)會置位相

應標志通知CPU暫時中止當前地工作,迅速轉去處理所發(fā)生地事件。處理完該事件后,再回

到原來被中止地地方,繼續(xù)原來地工作,這樣地過程稱為中斷。

產生中斷地請求源稱為中斷源。

將中斷事件按輕重緩急分若干級別叫中斷優(yōu)先級。

允許中斷優(yōu)先級高地中斷源中斷正在執(zhí)行地低優(yōu)先級地中斷服務程序叫中斷嵌套。

5.2.什么叫中斷源?MCS-51有哪些中斷源?各有什么特點?它們地中斷向量地址分

別是多少?

答:中斷源即引發(fā)中斷地事件。

MCS-51單片機有5個中斷源,它們是外部中斷0,定時器TO,外部中斷1,定時器T1,

串行口。

外部中斷源是由引腳地觸發(fā)信號引起地中斷,定時器中斷源是由于定時器計數(shù)器地溢出

引發(fā)地中斷,串行口是由于串行通信地發(fā)送或接收引發(fā)地中斷。

外部中斷0,定時器T0,外部中斷1,定時器T1,串行口五個中斷源地中斷向量地址依次

為:0003H,000BH,0013H,001BH,0023H。

5.3.MCS-51中斷地中斷響應條件是什么?

答:(1)有中斷源發(fā)出中斷請求;

(2)此中斷源允許位為1,即中斷源可以向CPU發(fā)中斷請求;

(3)CPU開總中斷允許,即EA=1;

(4)無同級或者更高級中斷正在服務

5.4.MCS-51地中斷響應過程是怎樣地?

答:(1)將相應地中斷優(yōu)先級狀態(tài)觸發(fā)器置1,以阻斷后來地同級與低級中斷請求;

(2)由硬件清除相應地中斷請求標志,串行口地發(fā)送與接收中斷除外;

(3)執(zhí)行一條硬件LCALL指令,即把程序計數(shù)器PC地內容壓入堆棧保存,再將相應地

中斷服務程序地入口地址送入PC;

5.5.有一外部中斷源,接入端,當其中有中斷請求時,要求CPU把一個從內部RAM30H

單元開始地50個字節(jié)地數(shù)據(jù)塊傳送到外部RAM從1000H開始地連續(xù)存儲區(qū)。請編寫對

應地程序。

解:

#include<reg51.h>

voidmain(){

IT0=l;

EA=1;

EXO=1;

while(l);

}

voidintxO()interrupt0using1{

char*ptrl=0x30;

charxdatai,*ptr2=0xl000;

for(i=0;i<50;i++)*ptr2++=*ptrl++;

}

6.8051單片機只有兩個外部中斷源,若要擴展成8個外部中斷源,請畫出實現(xiàn)這種擴展

地硬件線路圖,并說明如何確定各中斷源地優(yōu)先級。

解:用按鈕開關模擬中斷源地中斷請求,INTO單獨作為一個中斷源,INT1擴展成7個

中斷源,有中斷請求時,借助于P2口識別是這七個中斷源是哪個請求中斷,為了驗證正確性,

如果是INTO中斷,則在P0口地數(shù)碼管上顯示0,是INT1中斷,則根據(jù)從上到下是哪個中

斷源在P0口地數(shù)碼管上顯示1-7。具體電路與程序如下:

#include<reg51.h>

charIed_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};

voidINT0_srv(void)interrupt0using1//外部中斷0處理程序

{

P0=led_mod[0];

}

voidINTl_srv(void)interrupt2using2//外部中斷1處理程序

{

charintnum;

intnum=P2;

switch(intnum){

caseOxfe:PO=led_mod[l];break;

case0xfd:P0=led_mod[2];break;

case0xfb:P0=led_mod[3];break;

case0xf7:P0=led_mod[4];break;

case0xef:P0=led_mod[5];breal<;

case0xdf:P0=led_mod[6];breal<;

case0xbf:P0=led_mod[7];

}

}

voidmain(){

EA=1;

EXO=1;

EX1=1;

P0=0;

while(l);

}

第6章

1,比特率是指每秒傳送地比特(bit)數(shù)。波特率是指單片機或計算機在串口通信時地速率。

溢出率也叫定時器地溢出頻率,從設定初值開始計數(shù),當計數(shù)到OFFH再一個計數(shù)脈沖到來

時刻就溢出。

2,波特率發(fā)生器需要在計數(shù)值溢出后自動重新賦值,再次開始計數(shù),所以選模式2。否則溢出

后要程序響應中斷重新賦值。

T1定時器地初值計算:

波特率=((2地SMOD次方)xF)/(32xl2x(256-N)

其中:SMOD是特殊功能寄存器PCON地第7位,取1或0(波特率倍增,或不倍增)。N

是置入定時器TH1地時間常數(shù)初值,F是晶振頻率。

當SMOD取0,波特率=F/(32xl2x(256-N)),N=256-F/(波特率x32xl2)

3,1800字符/分鐘=30字符/秒,1個字符=1起始位+1奇偶校驗位+1停止位=3bits,則

波特率為30*3=90bits/s

4,串行口分四種工作方式,由SMO,SM1二位決定,其定義如下:

SMO,SM1工作方式功能描述波特率

00方式0同步移位寄存器

01方式110位UART

10方式211位UART

11方式311位UART

5,9600*60/10=57600字節(jié)

6,略

7,9600=(2Al*F)/(32*12*(256-N)

N是置入定時器TH1地時間常數(shù)初值,F是晶振頻率。

N=FDH=253得:F=5.5296MHZ。

8,設系統(tǒng)時鐘頻率fosc=6.0MHZ。查表9-2可知,可取SMOD=0,T1地計數(shù)初值為F3H。

程序如下:

ORG0000H

AJMPMAIN;上電,轉向主程序

ORG0023H;串行口地中斷入口地址

AJMPSERVE;轉向中斷服務程序

ORG0040H;主程序

MAIN:MOVSP,#60H;設置堆棧指針

MOVSCON,#90H

MOVPCON,#00H

MOVTMOD,#20H

MOVTH1,#OF3H

MOVTL1,#OF3H

SETBTRI

MOVRO,#20H;置發(fā)送數(shù)據(jù)區(qū)首地址

MOVRI,#40H;置接收數(shù)據(jù)區(qū)首地址

MOVR7,#10H;置發(fā)送字節(jié)長度

MOVR6,#10H;置接收字節(jié)長度

SETBES;允許串行口中斷

SETBEA;CPU允許中斷

MOVA,@R0;取第一個數(shù)據(jù)發(fā)送

MOVSBUF,A;發(fā)送第一個數(shù)據(jù)

SJMP$;等待中斷

SERVE:JNBRI,SEND;TI=1,為發(fā)送中斷

CLRRI

MOVA,SBUF;讀出接收緩沖區(qū)內容

MOV@R1,A;讀入接收緩沖區(qū)

DJNZR6,L1;判斷數(shù)據(jù)塊發(fā)送完否

SJMPL2;數(shù)據(jù)塊接收完,轉L2

L1:INCR1;修改數(shù)據(jù)區(qū)指針

L2:RETI;中斷返回

SEND:

CLRTI;清除發(fā)送中斷標志

DJNZR7,L3;判斷數(shù)據(jù)塊發(fā)送完否

SJMPL4;數(shù)據(jù)塊接收完,轉L4

L3:MOVA,@R0;取數(shù)據(jù)發(fā)送

MOVSBUF,A;發(fā)送數(shù)據(jù)

INCR0;修改數(shù)據(jù)地址

L4:

RETI;中斷返回

END

9,ORG0000H

AJMPMAIN;上電,轉向主程序

ORG0023H;串行口地中斷入口地址

AJMPSTOP;轉向中斷服務程序

ORG0040H;主程序

MAIN:MOVSP,#60H

MOVTMOD,#20H

MOVTH1,#OE8H

MOVTL1,#OE8H

SETBTRI

MOVSCON,#90H

MOVPCON,#00H

MOVRO,#20H;置發(fā)送數(shù)據(jù)區(qū)首地址

MOVRI,#40H;置接收數(shù)據(jù)區(qū)首地址

SETBES;允許串行口中斷

SETBEA;CPU允許中斷

MOVA,@R0

MOVC,PSW.O;PfC

CPLC

MOVTB8ZC

MOVSBUF,A;發(fā)送第一個數(shù)據(jù)

SJMP$

STOP:JNBRISOUT;TI=1,為發(fā)送中斷

AJMPSTOP;轉向中斷服務程序

ORG0040H;主程序

MAIN:MOVSP,#60H

MOVTMOD,#20H

MOVTH1Z#OE8H

MOVTL1,#OE8H

SETBTRI

MOVSCON,#0D0H

MOVPCONz#00H

MOVRO,#20H;置發(fā)送數(shù)據(jù)區(qū)首地址

MOVRI,#40H;置接收數(shù)據(jù)區(qū)首地址

SETBES;允許串行口中斷

SETBEA;CPU允許中斷

MOVA,@R0

MOVC,PSW.O;Pfc

CPLC

MOVTB8,C

;發(fā)送第一個數(shù)據(jù)

MOVSBUFZA

SJMP$

STOP:JNBRISOUT;TI=1,為發(fā)送中斷

CLRRI

MOVA,SBUF;讀出接收緩沖區(qū)內容

MOVC,PSW.O;P-C

CPLC;形成奇校驗

JCL00P1;判斷接收端地奇偶值,C=1轉L00P1

JNBRB8,L00P2;C=0,RB8=0,轉L00P2

SJMPERROR;C=0,RB8=l,轉出錯處理

LOOP1:JBRB8,L00P2;C=1,RB8=1,轉LOOP2

SJMPERROR;C=0,RB8=l,轉出錯處理

LOOP2:

MOV@R1,A;將接收數(shù)據(jù)送入接收數(shù)據(jù)區(qū)

INCRI;修改數(shù)據(jù)區(qū)指針

RETI

SOUT:CLRTI;是發(fā)送中斷,清除發(fā)送中斷標志

INCR0;修改數(shù)據(jù)區(qū)指針

MOVA,@R0

MOVPSW.O,C;PfC

CPLC

MOVTB8ZC

MOVSBUF,A;發(fā)送第一個數(shù)據(jù)

RETI

ERROR:

10,MOVSCON,#80H

MOVPCON,#80H

MOVSMOD,#OOH

MOVRO,#20H

MOVR7,#16;首地址20H~間址寄存器RO;數(shù)據(jù)字節(jié)數(shù)~R7

MOVC,P

MOVSBUF,A;取一數(shù)據(jù)fA

JNBTI,

$CLRTI

INC

RODJNZR7

LOOPSJMP$LOOP:MOVA,@R0;設定為方式2發(fā)送;波特率為fosc/32

隨變,;數(shù)據(jù)一啟動發(fā)送;等待發(fā)送完;調整發(fā)送數(shù)

MOVTB8ZC;PAP-C->TB8SBUF,

據(jù)指針

11,地址幀與數(shù)據(jù)幀

12,當一片89c51(主機)與多片89c51(從機)通信時,所有從機地SM2位都置1.主機

首先發(fā)送地一幀數(shù)據(jù)為地址,即某從機機號,其中第9位為1,所有地從機接收到數(shù)據(jù)后,將其

中第9位裝入RB8中。各從機根據(jù)收到地第9位數(shù)據(jù)(RB8中)地值來決定從機可否再

接收主機地信息。若(RB8)=0,說明是數(shù)據(jù)幀,則使接收中斷標志位RI=O,信息丟失;若

(RB8)=1說明是地址幀,數(shù)據(jù)裝入SBUF并置RI=1,中斷所有從機,只有被尋址地目的

從機清除SM2(SM2=0),以接收主機發(fā)來地一幀數(shù)據(jù)(點對點通信)。其它從機仍然保

持SM2=1.

第7章

1.8051單片機擴展I/O口時占用片外數(shù)據(jù)存儲器地地址。

2.8051單片機PSEN控制程序存儲器讀操作。

3.8051單片機訪問片外存儲器時利用ALE信號鎖存來自P0口地低八位地址信號。

4.12根地址線可選4K個存儲單元,32KB存儲單元需要15根地址線。

5.欲增加8KBX8位地RAM區(qū),請問選用Intel2114(lKBx4位)需購16片;若改

用Intel6116(2KBx8位)需購4片,若改用Intel6264(1KBX8位)需購8

片。

6.74LS138是具有3個輸入端地譯碼器芯片,其輸出作為片選信號時,最多可以選中8

塊芯片。

7.74LS273通常用來作簡單輸出接口擴展;而74LS244則常用來作簡單輸

入接口擴展。

8.片選方式通常有3種形式:線選法,部分譯碼器法,全譯碼法

二,簡答題

1.簡述單片機并行擴展外部存儲器時三總線連接地基本原則。

答:P0口提供數(shù)據(jù)線,P0,P2口提供地址線,低位用于片內選擇,高位用做片選信號,用

旃控制程序存儲器地讀操作,用而與標控制數(shù)據(jù)存儲器或I/O端口地讀寫。

2.什么是全譯碼?什么是部分譯碼?什么是線選法?有什么特點?

答:(1)全譯碼法:先將擴展芯片地地址線與單片機地地址總線從低位開始順次相連后,

剩余地高位地址線地全部經(jīng)譯碼后連接到各擴展芯片地片選線上。全譯碼法擴展芯片地地址

空間是唯一確定地,不會有地址重疊。但譯碼電路相對復雜。

(2)部分譯碼法:與全譯碼法類似,先將擴展芯片地地址線與單片機地地址總線從低位開始

順次相連后,剩余地高位地址線地一部分經(jīng)譯碼后連接到各擴展芯片地片選線上。部分譯碼

使存儲器芯片地地址空間也有重疊,但硬件上比全譯碼法簡單,重疊情況與線選法相比較又

有所改進。

(3)線選法:先將擴展芯片地地址線與單片機地地址總線從低位開始順次相連后,剩余地高

位地址線地一根或幾根直接連接到各擴展芯片地片選線上。線選法地優(yōu)點是簡單明了,不需

增加額外電路。缺點是存儲空間不連續(xù),存在地址重疊現(xiàn)象。適用于擴展存儲容量較小地場

合。

3.畫出利用線選法,用3片2764A擴展24KX8位EPROM地電路圖。分析每個芯片地

地址范圍。

答:電路如圖所示

A0

A1

A2

U_5UA_23

co土00

g8gt664

A410

539

IDIASs8(>2土082

7

IDZ032A6D2c>x3

gt6.孟

l8A7D3D4

l8Vc?HD5

A8D4青

st;.

8二

A9D53ceC6

ceD?07

A10DB6f

o?07主

8A1I

24

21士

A214

_2_一

CE

.'J

0C三

2A2

,-▽

U2地址:C000H~DFFFH

U3地址:A000H~BFFFH

U4上也址:6000H~7FFFH

4.采用2114芯片在8031片外擴展1KB數(shù)據(jù)存儲器,并分析地址范圍。

答:電路如圖所示.

U10衛(wèi)

?12->XTAL1

POOfADO11

POHAD1理旦

PO2/AD212.-LL

—XTAL2P03/AD3LL

P04/AD4

P05/AD5

P0.6TAD612

RSTP0.7/AD711

P2WA8

P21J(A9

P2.2JA1O

29_74HC573

PSENP2.3XM1

3。

ALEP24/A12

21_EAP2.5W13〈TEXT,

P2.6JA14U11

±P27JA15

P0P3.0JRXD

±PP3.1/TXD

P

±3a

PP3M0

±PP35O1.

6

P3.7/RD

80C51

?TEXT>

_L

<TEXT?

地址范圍:因為地址總線地高位P2.2-P2.7均沒用上,共存著26=64個重復地址區(qū)間,

每個區(qū)間地范圍為1K。

0000H~03FFH,0400H~07FFH,0800H~0BFFH,0C00H~0FFFH

..........................................................FCOOH~FFFFH

第九章(183頁)

1,(1)LED數(shù)碼管顯示器共陰極地接法是發(fā)光二極管地陰極接地,當數(shù)碼管地筆劃發(fā)光二

極管地陽極為高電平時,該筆劃被點亮。共陽極地接法是發(fā)光二極管地陽極接高電平,當數(shù)碼

管地筆劃發(fā)光二極管地陰極為低電平時,該筆劃被點亮。總之,主要區(qū)別在于LED數(shù)碼管地

接法與驅動筆劃地數(shù)據(jù)電平地不同。

(2)一個八段數(shù)碼管由八段二極管組成即a,b,c,d,e,f,g,dop(點),共八段。其中數(shù)碼管

分兩種,共陰極與共陽極(共陽極:數(shù)碼管地陽極全部接在一起,低電平點亮它,如:如果是共陽

極,顯示數(shù)字“0”,代碼為0x80或80H;共陰極與共陽極相反。

2,略

3,靜態(tài)顯示方式:靜態(tài)顯示方式是指當顯示器顯示某一字符時,發(fā)光二極管地位選始終被選

中。在這種顯示方式下,每一個LED數(shù)碼管顯示器都需要一個8位地輸出口進行控制。由于

單片機本身提供地I/O口有限,實際使用中,通常通過擴展I/O口地形式解決輸出口數(shù)量不

足地問題。

靜態(tài)顯示主要地優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導通電流一定地情況下顯示器地亮度大,系

統(tǒng)運行過程中,在需要更新顯示內容時,CPU才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU

地時間,又提高了CPU地工作效率?其不足處是占用硬件資源較多,每個LED數(shù)碼管需要獨

占8條輸出線。隨著顯示器位數(shù)地增加,需要地I/O口線也將增加。

(2)動態(tài)顯示方式:動態(tài)顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每

個數(shù)碼管地位選被輪流選中,多個數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對位選選中地數(shù)碼管有

效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器地亮度既與導通電流有關,也與

點亮時間與間隔時間地比例有關。通過調整電流與時間參數(shù),可以既保證亮度,又保證顯示。

若顯示器地位數(shù)不大于8位,則顯示器地公共端只需一個8位I/O口進行動態(tài)掃描(稱為掃

描口),控制每位顯示器所顯示地字形也需一個8位口(稱為段碼輸出).

4,軟件譯碼與硬件譯碼。硬件譯碼:有較高地亮度,需要較少地軟件編程,但是占用了太多地

接口。

5,略

6,HD44780可控制地字符為每行80個,也就是5*80=400點。HD44780內藏有16路

驅動器與40路驅動器,所以其本身就有驅動16*40點陣LCD地能力。

第十章(203)

1,A/D轉換器:將模擬量轉換為數(shù)字量地裝置,D/A轉換器:將數(shù)字量轉換為模擬量地裝置。

2,8位,12位,14位,16位,主要指標有分辨率,轉換速率,量化誤差,偏移誤差,滿刻度誤差,

線性度

3,3位地址輸入線:ADDA,ADDB,ADDC,用于選擇8路模擬通道中地一路,輸入3位地址,

并使ALE=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器譯碼將從8路模擬通道中選一路模擬

量送到比較器。IN0~IN7為8路模擬量輸入端。例如,ADDC=1ADDB=0ADDA=1,則

選擇通道為IN5。

4,可以用查詢方式,測試EOC地狀態(tài)(輸入高電平),即可確認轉換是否完成,并接著進行數(shù)

據(jù)傳送。

5,略

6,略

7,單緩沖工作方式,雙緩沖工作方式,直接工作方式;一個寄存器工作于直通狀態(tài),

一個工作于受控鎖存

溫馨提示

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

評論

0/150

提交評論