




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
章1緒論
1.第一臺(tái)計(jì)算機(jī)的問世有何意義?
茲?
口?
第一臺(tái)電子數(shù)字計(jì)算機(jī)ENIAC問世,標(biāo)志著計(jì)算機(jī)時(shí)代的到來。與現(xiàn)代的計(jì)
算機(jī)相比,ENIAC有許多不足,但它的問世開創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的新紀(jì)元,對
人類的生產(chǎn)和生活方式產(chǎn)生了巨大的影響。
2.計(jì)算機(jī)由哪幾部分組成?
牧?
口?
由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成,運(yùn)算器與控制器合
稱為CPU。
3.微型計(jì)算機(jī)由哪幾部分構(gòu)成?
答:
信型計(jì)算機(jī)由微處理器、存儲(chǔ)器和I/O接口電路構(gòu)成。各部分通過地址總線
(AB)、數(shù)據(jù)總線(DB)和控制總線(CB)相連。
4.微處理器與微型計(jì)算機(jī)有何區(qū)別?
林?
口?
微處理器集成了運(yùn)算器和控制器(即CPU);而微型計(jì)算機(jī)包含微處理器、
存儲(chǔ)器和I/O接口電路等。
5.什么叫單片機(jī)?其主要特點(diǎn)有哪些?
林-
口?
在一片集成電路芯片上集成微處理器、存儲(chǔ)器、I/O接口電路,從而構(gòu)成了
單芯片微型計(jì)算機(jī),即單片機(jī)。單片機(jī)主要特點(diǎn)有:控制性能和可靠性高;體積
小、價(jià)格低、易于產(chǎn)品化;具有良好的性能價(jià)格比。。
6.微型計(jì)算機(jī)有哪些應(yīng)用形式?各適于什么場合?
牧?
口?
微型計(jì)算機(jī)有三種應(yīng)用形式:多板機(jī)(系統(tǒng)機(jī))、單板機(jī)和單片機(jī)。
多板機(jī),通常作為辦公或家庭的事務(wù)處理及科學(xué)計(jì)算,屬于通用計(jì)算機(jī)。
單板機(jī),1/。設(shè)備簡單,軟件資源少,使用不方便。早期主要用于微型計(jì)算
機(jī)原理的教學(xué)及簡單的測控系統(tǒng),現(xiàn)在已很少使用。
單片機(jī),單片機(jī)體積小、價(jià)格低、可靠性高,其非凡的嵌入式應(yīng)用形態(tài)對于
滿足嵌入式應(yīng)用需求具有獨(dú)特的優(yōu)勢。目前,單片機(jī)應(yīng)用技術(shù)已經(jīng)成為電子應(yīng)用
系統(tǒng)設(shè)計(jì)的最為常用技術(shù)手段。
7.當(dāng)前單片機(jī)的主要產(chǎn)品有哪些?各有何特點(diǎn)?
牧?
口?
多年來的應(yīng)用實(shí)踐已經(jīng)證明,80C51的系統(tǒng)結(jié)構(gòu)合理、技術(shù)成熟。因此,許
多單片機(jī)芯片生產(chǎn)廠商傾力于提高80C51單片機(jī)產(chǎn)品的綜合功能,從而形成了
80C51的主流產(chǎn)品地位,近年來推出的與80C51兼容的主要產(chǎn)品有:
?ATMEL公司融入Flash存儲(chǔ)器技術(shù)推出的AT89系列單片機(jī);
?Philips公司推出的80c51、80c552系歹(J高性能單片機(jī);
?華邦公司推出的W78c51、W77c51系列高速低價(jià)單片機(jī);
?ADI公司推出的ADpC8xx系列高精度ADC單片機(jī);
?LG公司推出的GMS90/97系列低壓高速單片機(jī);
?Maxim公司推出的DS89C420高速(50MIPS)單片機(jī);
?Cygnal公司推出的C8051F系列高速SOC單片機(jī)等。
8.簡述單片機(jī)的開發(fā)過程。
?
林口?
系統(tǒng)需求分析,硬件方案設(shè)計(jì),軟件編程,仿真調(diào)試,實(shí)際運(yùn)行。
9.單片機(jī)應(yīng)用系統(tǒng)開發(fā)方法有哪些新方法?
林口?.
在系統(tǒng)編程(ISP)技術(shù),在應(yīng)用編程(IAP)技術(shù)。
章280c51的結(jié)構(gòu)和原理
1.80C51單片機(jī)在功能上、工藝上、程序存儲(chǔ)器的配置上有哪些種類?
?
茲口?
功能上分為基本型和增強(qiáng)型;
工藝上分為HMOS工藝和CHMOS工藝;
在片內(nèi)程序存儲(chǔ)器的配置上有掩膜ROM、EPROM和Flash、無片內(nèi)程序存
儲(chǔ)器形式。
2.80C51單片機(jī)的存儲(chǔ)器的組織采用何種結(jié)構(gòu)?存儲(chǔ)器地址空間如何劃
分?各地址空間的地址范圍和容量如何?在使用上有何特點(diǎn)?
答:
系用哈佛結(jié)構(gòu),在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間;
80c51基本型單片機(jī)片內(nèi)程序存儲(chǔ)器為4KB,地址范圍是OOOOH-OFFFH,用于
存放程序或常數(shù);片內(nèi)數(shù)據(jù)存儲(chǔ)器為128字節(jié)RAM,地址范圍是00H-7FH,用
于存放運(yùn)算的中間結(jié)果、暫存數(shù)據(jù)和數(shù)據(jù)緩沖;另外在80H-FFH還配有21個(gè)
SFR。
3.80c51單片機(jī)的P0-P3口在結(jié)構(gòu)上有何不同?在使用上有何特點(diǎn)?
答:
箱為通用I/O口時(shí),P0、PLP2和P3都是準(zhǔn)雙向口。
P0可以作為地址/數(shù)據(jù)總線,此時(shí)是一個(gè)真正的雙向口;P2口可以作為地址
線的高8位;P3口是雙功能口,每條口線還具有不同的第二功能。
另外,P0口的驅(qū)動(dòng)能力為8個(gè)TTL負(fù)載,而其它口僅可驅(qū)動(dòng)4個(gè)TTL負(fù)載。
4.如果80c51單片機(jī)晶振頻率分另(J為6MHz、11.0592MHz、12MHz
時(shí),機(jī)器周期分別為多少?
叁■
口?
機(jī)器周期分別為2Ps,1.085|JS,lpso
5.80c51單片機(jī)復(fù)位后的狀態(tài)如何?復(fù)位方法有幾種?
農(nóng)?
口?
復(fù)位后,PC內(nèi)容為0000H,P0口~P3口內(nèi)容為FFH,SP內(nèi)容為07H,
SBUF內(nèi)容不定,IP.IE和PCON的有效位為0,其余的特殊功能寄存器的狀態(tài)
均為00Ho復(fù)位方法一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。
6.80C51單片機(jī)的片內(nèi)、片外存儲(chǔ)器如何選擇?
冬-
口?
80C51的曲引腳為訪問片內(nèi)、片外程序存儲(chǔ)器的選擇端。訪問片內(nèi)、片外
數(shù)據(jù)存儲(chǔ)器需要采用不同的指令加以區(qū)分。
7.80C51單片機(jī)的PSW寄存器各位標(biāo)志的意義如何?
皈?
口?
CY:進(jìn)位、借位標(biāo)志。有進(jìn)位、借位時(shí)CY=1,否則CY=0;
AC:輔助進(jìn)位、借位標(biāo)志(高半字節(jié)與低半字節(jié)間的進(jìn)位或借位);
F0:用戶標(biāo)志位,由用戶自己定義;
RSI、RS0:當(dāng)前工作寄存器組選擇位;
ov:溢出標(biāo)志位。有溢出時(shí)OV=1,否則ov=o;
P:奇偶標(biāo)志位。存于ACC中的運(yùn)算結(jié)果有奇數(shù)個(gè)1時(shí)P=1,頸(JP=o。
8.80c51單片機(jī)的當(dāng)前工作寄存器組如何選擇?
圣口?
當(dāng)前工作寄存器組的選擇由特殊功能寄存器中的程序狀態(tài)字寄存器PSW的
RSLRSO來決定。
9.80C51單片機(jī)的控制總線信號(hào)有哪些?各信號(hào)的作用如何?
林口?
RST/VPD:復(fù)位信號(hào)輸入引腳/備用電源輸入引腳;ALE/位5d:地址鎖存允
許信號(hào)輸出引腳/編程脈沖輸入引腳;//VPP:內(nèi)外存儲(chǔ)器選擇弓I腳/片內(nèi)
EPROM(或FlashROM)編程電壓輸入引腳;FSEN:外韶呈序存儲(chǔ)器選通信號(hào)
輸出引腳。
10.80c51單片機(jī)的程序存儲(chǔ)器低端的幾個(gè)特殊單元的用途如何?
憑?
口?
0000H:單片機(jī)復(fù)位入口地址;0003H:外部中斷0的中斷服務(wù)程序入口地
址;000BH:定時(shí)/計(jì)數(shù)器0溢出中斷服務(wù)程序入口地址;0013H:外部中斷1
的中斷服務(wù)程序入口地址;001BH:定時(shí)/計(jì)數(shù)器1溢出中斷服務(wù)程序入口地址;
0023H:串行口的中斷服務(wù)程序入口地址。
章380c51的指令系統(tǒng)
1.80C51系列單片機(jī)的指令系統(tǒng)有何特點(diǎn)?
彥口??
執(zhí)行時(shí)間短。1個(gè)機(jī)器周期指令有64條,2個(gè)機(jī)器周期指令有45條,而4
個(gè)機(jī)器周期指令僅有2條(即乘法和除法指令);
指令編碼字節(jié)少。單字節(jié)的指令有49條,雙字節(jié)的指令有45條,三字節(jié)的
指令僅有17條;
位操作指令豐富。這是80c51單片機(jī)面向控制特點(diǎn)的重要保證。
2.80C51單片機(jī)有哪幾種尋址方式?各尋址方式所對應(yīng)的寄存器或存儲(chǔ)器空
間如何?
?
今口?
80C51單片機(jī)的尋址方式有七種。即:寄存器尋址、直接尋址、寄存器間接
尋址、立即尋址、基址寄存器加變址寄存器變址尋址、相對尋址和位尋址。
這些尋址方式所對應(yīng)的寄存器和存儲(chǔ)空間如下表所示。
號(hào)序|尋址方式|寄存器或存儲(chǔ)空間
1一■寄存器尋址寄存器R0~R7,A、AB、DPTR和C(布爾
2直接尋址—內(nèi)「RAM低128字節(jié)、SFR
寄存器間接片內(nèi)RAM(@R0,@R1,SP)
3尋址片外RAM(@R0,@R1,@DPTR)
4立即尋址ROM
5變址尋址ROM(@A+DPTR,@A+PC)
6相對尋址ROM(PC當(dāng)前值的+127--128字節(jié))
位尋址可尋址位(內(nèi)部單元的位和
7r,rnxRAM20H-2FH
3.訪問特殊功能寄存器SFR可以采用哪些尋址方式?
冬?
直接尋址和位尋址方式。
4.訪問內(nèi)部RAM單元可以采用哪些尋址方式?
茲?
口?
直接尋址、寄存器間接尋址和位尋址方式。
5.訪問外部RAM單元可以采用哪些尋址方式?
梵?
口?
寄存器間接尋址。
6.訪問外部程序存儲(chǔ)器可以采用哪些尋址方式?
牧?
口?
立即尋址、變址尋址和相對尋址方式。
7.為什么說布爾處理功能是80c51單片機(jī)的重要特點(diǎn)?
今?
口?
單片機(jī)指令系統(tǒng)中的布爾指令集、存儲(chǔ)器中的位地址空間與CPU中的位操作
構(gòu)成了片內(nèi)的布爾功能系統(tǒng),它可對位(bit)變量進(jìn)行布爾處理,如置位、清零、
求補(bǔ)、測試轉(zhuǎn)移及邏輯"與"、"或"等操作。在實(shí)現(xiàn)位操作時(shí),借用了程序狀
態(tài)標(biāo)志器(PSW)中的進(jìn)位標(biāo)志Cy作為位操作的"累加器"。
8對于80C52單片機(jī)內(nèi)部RAM還存在高128字節(jié),應(yīng)采用何種方式訪問?
今?
口?
寄存器間接尋址方式。
9.試根據(jù)指令編碼表寫出下列指令的機(jī)器碼。
(1)MOVA,#88H--------------------74H,88H
(2)MOVR3,50H--------------------ABH,50H
(3)MOVPl,#55H-----------75H,90H,55H
(4)ADDA,@R1---------------------------27H
(5)SETB12H----------------------------D2H,12H
10.完成某種操作可以采用幾條指令構(gòu)成的指令序列實(shí)現(xiàn),試寫出完成以下
每種操作的指令序列。
(1)將R0的內(nèi)容傳送到R1;
(2)內(nèi)部RAM單元60H的內(nèi)容傳送到寄存器R2;
(3)外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;
(4)外部RAM單元1000H的內(nèi)容傳送到寄存器R2;
(5)外部RAM單元1000H的內(nèi)容傳送到外部RAM單元2000Ho
?
梵口?
(1)MOVA,R0
MOVRI,A
(2)MOVR2,60H
(3)MOVDPTR,#1000H
MOVXA,@DPTR
MOV60H,A
(4)MOVDPTR,#1000H
MOVXA,@DPTR
MOVR2,A
(5)MOVDPTR,#1000H
MOVXA,@DPTR
MOVDPTR,#2000H
MOVX@DPTR,A
11.若(RI)=30H,(A)=40H,(30H)=60H,(40H)=08Ho試
分析執(zhí)行下列程序段后上述各單元內(nèi)容的變化。
MOVA,@R1
MOV@R1,40H
MOV40H,A
MOVRI,#7FH
叁■
口?
(RI)=7FH
(A)=60H
(30H)=08H
(40H)=60H
12.若(A)=E8H,(RO)=40H,(RI)=20H,(R4)=3AH,(40H)
=2CH,(20H)=OFH,試寫出下列各指令獨(dú)立執(zhí)行后有關(guān)寄存器和存儲(chǔ)單元的
內(nèi)容?若該指令影響標(biāo)志位,試指出CY、AC、和OV的值。
(1)MOVA,@R0
(2)ANL40H,#OFH
(3)ADDA,R4
(4)SWAPA
(5)DEC@R1
(6)XCHDA,@R1
冬口?
(1)(A)=2CH
(2)(40H)=OCH
(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0
(4)(A)=8EH
(5)(20H)=OEH,P=1
(6)(A)=EFH,(20)=08H
13.若(50H)=40H,試寫出執(zhí)行以下程序段后累加器A、寄存器R0及內(nèi)
部RAM的40H、41H、42H單元中的內(nèi)容各為多少?
MOVA,50H
MOVRO,A
MOVA,#00H
MOV@R0,A
MOVA,#3BH
MOV41H,A
MOV42H,41H
氈口.?
(A)=3BH,(RO)=40H,(40H)=00H,(41H)=3BH,(42H)
=3BHO
14.試用位操作指令實(shí)現(xiàn)下列邏輯操作。要求不得改變未涉及的位的內(nèi)容。
(1)使ACC.0置位;
(2)清除累加器高4位;
(3)清除ACC.3,ACC.4,ACC.5,ACC.6。
較口?-
(1)SETBACC.0
(2)ANLA,#0FH
(3)ANLA,#87H
15.試編寫程序,將內(nèi)部RAM的20H、21H、22H三個(gè)連續(xù)單元的內(nèi)容依
次存入2FH、2EH和2DH單元。
竣-
口?
MOV2FH,20H
MOV2EH,21H
MOV2DH,22H
16.試編寫程序,完成兩個(gè)16位數(shù)的減法:7F4DH-2B4EH,結(jié)果存入內(nèi)
部RAM的30H和31H單元,30H單元存差的高8位,31H單元存差的低8
位。(注意:此題與書上的題要求不一樣,書中要求31H單元存差的高8位,30H
單元存差的低8位)
叁■
口?
CLRCY
MOV30H,#7FH
MOV31H,#4DH
MOVRO,#31H
MOVA,@R0
SUBBA,#4E
MOV@R0,A;保存低字節(jié)相減結(jié)果
DECRO
MOVA,@R0
SUBBA,#2BH
MOV@R0,A;保存高字節(jié)相減結(jié)果
17試編寫程序>R1中的低4位數(shù)與R2中的高4位數(shù)合并成一個(gè)8位數(shù),
并將其存放在R1中。
較
口?-
MOVA,R2
ANLA,#OFOH
ORLRI,A
18.試編寫程序,將內(nèi)部RAM的20H、21H單元的兩個(gè)無符號(hào)數(shù)相乘,結(jié)
果存放在R2、R3中,R2中存放高8位,R3中存放低8位。
去■
口?
MOVA,20H
MOVB,21H
MULAB
MOVR3,A
MOVR2,B
19.若(CY)=1,(Pl)=10100011B,(P3)=01101100Bo試指出
執(zhí)行下列程序段后,CY、Pl口及P3口內(nèi)容的變化情況。
MOVPl.3,C
MOVPl.4,C
MOVC,Pl.6
MOVP3.6,C
MOVC,P1.0
MOVP3.4,C
冬口?
(CY)=1,(Pl)=10111011B,(P3)=00111100B
章480C51的匯編語言程序設(shè)計(jì)
1.80C51單片機(jī)匯編語言有何特點(diǎn)?
&口?■
匯編語言結(jié)構(gòu)緊湊、靈活,匯編成的目標(biāo)程序效率高,具有占存儲(chǔ)空間少、
運(yùn)行速度快、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。它是面向機(jī)器的語言,對于單片機(jī)硬件的操作直
接、方便,有利于初學(xué)者對單片機(jī)結(jié)構(gòu)的認(rèn)知。
但它與高級(jí)語言相比移植性不好、編程復(fù)雜、對編程人員的基礎(chǔ)要求高。
2.利用80c51單片機(jī)匯編語言進(jìn)行程序設(shè)計(jì)的步驟如何?
林
口?
一、任務(wù)分析
首先,要對單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)目標(biāo)進(jìn)行深入分析,明確系統(tǒng)設(shè)計(jì)任務(wù):
功能要求和技術(shù)指標(biāo)。然后對系統(tǒng)的運(yùn)行環(huán)境進(jìn)行調(diào)研。這是應(yīng)用系統(tǒng)程序設(shè)計(jì)
的基礎(chǔ)和條件。
二、算法設(shè)計(jì)
經(jīng)過任務(wù)分析和環(huán)境調(diào)研后,已經(jīng)明確的功能要求和技術(shù)指標(biāo)可以用數(shù)學(xué)方
法(或模型)來描述,進(jìn)而把一個(gè)實(shí)際的系統(tǒng)要求轉(zhuǎn)化成由計(jì)算機(jī)進(jìn)行處理的算
法。并對各種算法進(jìn)行分析比較,并進(jìn)行合理的優(yōu)化。
三、流程描述
程序的總體構(gòu)建。先要確定程序結(jié)構(gòu)和數(shù)據(jù)形式,資源分配和參數(shù)計(jì)算等。
然后根據(jù)程序運(yùn)行的過程,規(guī)劃程序執(zhí)行的邏輯順序,用圖形符號(hào)將程序流程繪
制在平面圖上。應(yīng)用程序的功能通常可以分為若干部分,用流程圖將具有一定功
能的各部分有機(jī)地聯(lián)系起來。
流程圖可以分為總流程圖和局部流程圖??偭鞒虉D側(cè)重反映程序的邏輯結(jié)構(gòu)
和各程序模塊之間的相互關(guān)系;局部流程圖反映程序模塊的具體實(shí)施細(xì)節(jié)。
3.常用的程序結(jié)構(gòu)有哪幾種?特點(diǎn)如何?
林口?
順序程序:無分支、無循環(huán)結(jié)構(gòu)的程序,其執(zhí)行流程是依指令在存儲(chǔ)器中的
存放順序進(jìn)行的;
分支程序:可以改變程序的執(zhí)行順序;
循環(huán)程序:按某種控制規(guī)律重復(fù)執(zhí)行的程序,控制一部分指令重復(fù)執(zhí)行若干
次,以便用簡短的程序完成大量的處理任務(wù)。
4.子程序調(diào)用時(shí),參數(shù)的傳遞方法有哪幾種?
林口?
利用累加器或寄存器;
利用存儲(chǔ)器;
利用堆棧。
5.什么是偽指令?常用的偽指令功能如何?
/口?
偽指令是匯編程序能夠識(shí)別并對匯編過程進(jìn)行某種控制的匯編命令。常用的
偽指令包括:
ORG,功能是向匯編程序說明下面緊接的程序段或數(shù)據(jù)段存放的起始地址;
END,功能是結(jié)束匯編;
DB,功能是從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義字節(jié)數(shù)據(jù);
DW,功能是從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義字?jǐn)?shù)據(jù)空間;
EQU功能是將表達(dá)式的值或特定的某個(gè)匯編符號(hào)定義為一個(gè)指定的符號(hào)名;
BIT,功能是將位地址賦給指定的符號(hào)名。
6.設(shè)被加數(shù)存放在內(nèi)部RAM的20H、21H單元,加數(shù)存放在22H、23H
單元,若要求和存放在24H、25H中,試編寫出16位無符號(hào)數(shù)相加的程序(采
用大端模式存儲(chǔ)I
答:程序如下:
ORG0000H
MOVR0,#21H
MOVR1,#23H
MOVA,@R0
ADDA,@R1
MOV25H,A
DECRO
DECRI
MOVA,@R0
ADDCA,@R1
MOV24H,A
SJMP$
END
7.編寫程序,把外部RAM中1OOOH-1O1FH的內(nèi)容傳送到內(nèi)部RAM的
30H-4FH中。
牧-
口?
ORG0000H
MOVDPTR,#1OOOH
MOVR0,#30H
MOVR7,#32
LOOP:MOVXA,@DPTR
MOV@R0,A
INCRO
INCDPTR
DJNZR7,L00P
RET
8.編寫程序,實(shí)現(xiàn)雙字節(jié)無符號(hào)數(shù)加法運(yùn)算,要求(R0R1)+(R6R7)
一(60H61HX
叁口?-
ORG0000H
MOVA,R1
ADDA,R7
MOV61H,A
MOVA,RO
ADDCA,R6
MOV60H,A
SJMP$
END
9.若80c51的晶振頻率為6MHz,試計(jì)算延時(shí)子程序的延時(shí)時(shí)間。
DELAY:MOVR7,#0F6H
LP:MOVR6,#0FAH
DJNZR6,$
DJNZR7,LP
RET
答:延時(shí)時(shí)間:22*{[1+((1+2*250+2)*246)+2]+2}=0.247486秒(含
調(diào)用指令2個(gè)機(jī)器周期)
10.在內(nèi)部RAM的30H-37H單元存有一組單字節(jié)無符號(hào)數(shù)。要求找出最
大數(shù)存入BIG單元。試編寫程序?qū)崿F(xiàn)。
冬口?
ORG0000H
BIGDATA2FH
ONEDATA2AH
TWODATA2BH
START:MOVR7,#7;比較次數(shù)
MOVR0,#30H
LOOP:MOVA,@R0
MOVONE,A
INCRO
MOVTWO,@RO
CLRC
SUBBA,@R0
JCNEXT;ONE/J\,TWO大繼續(xù)比下一對數(shù)
MOV@RO,ONEQNE大放后面(交換)
DECRO
MOV@RO,TWO;TWO小放前面
INCRO;
NEXT:DJNZR7,LOOP
MOVBIG,37H
SJMP$
END
11.編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BCD碼,并將百、十、
個(gè)位數(shù)分別存放在內(nèi)部RAM的50H、51H、52H中。
答:單字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼僅需要2個(gè)字節(jié);在將壓縮的BCD
碼拆分存于3個(gè)單元。
org0
MOV52H,#0
MOV51H,#0
MOV50H,#0
MOVA,#0FDh
LCALLDCDTH
SJMP$
DCDTH:MOVR7,#8
MOVRO,A;暫存于RO
LOOP:CLRC
MOVA,RO
RLCA
MOVRO,A
MOVRL#51H;
MOVA,@R1;
ADDCA,@R1;
DAA;
MOV@R1,A;
DECRI
MOVA,@R1
ADDCA,@R1
DAA
MOV@R1,A
DJNZR7,LOOP
INCRI;50H已是結(jié)果,RI指向51H,51H單元需拆
分
MOVA,#00H
XCHDA,@R1
MOV52H,A
MOVA,@R1
SWAPA
MOV@R1,A
RET
END
12.編寫子程序,將RI中的2個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼后存放在R3
和R4中。
叁?
1=1?
ORG0
MOVR1,#5BH
MOVA,RI
ANLA,#0F0H
SWAPA
ACALLASCII
MOVR3,A
MOVA,RI
ANLA,#OFH
ACALLASCII
MOVR4,A
SJMP$
ASCII:PUSHACC
CLRC
SUBBA,#0AH
POPACC
JCLOOP
ADDA,#07H
LOOP:ADDA,#30H
RET
END
13.編寫程序,求內(nèi)部RAM中50H-59H十個(gè)單元內(nèi)容的平均值,并存放
在5AH單元。
冬
口?
ORG0000H
MOVR7,#10
MOVRO,#50H
MOVB,#10
CLRC
CLRA
LOOP:ADDCA,@RO
INCRO
DJNZR7,LOOP
DIVAB
MOV5AH,A
SJMP$
END
14.如圖4.10所示,編制程序?qū)崿F(xiàn):上電后顯示"P",有鍵按下時(shí)顯示相
應(yīng)的鍵號(hào)"0"~"7"。
型
口?-
實(shí)現(xiàn)程序如下:
TEMPEQU30H
ORG0000H
JMPSTART
ORG0100H
START:MOVSP,#5FH
MOVP0,#8CH;正序顯示"P"
MOVP3,#OFFH瀚入方式
CLRCY
NOKEY:MOVA,P3
CPLA
JZ1NOKEY;無鍵按下
MOVTEMP,P3;有鍵按下
CALLDIOms
MOVA,P3
CJNEA,TEMP,NOKEY法抖動(dòng)
MOVR2,#0;鍵號(hào)計(jì)數(shù)器復(fù)位
MOVA,TEMP
LP:RRCA
JNCDONE
INCR2
SJMPLP
DONE:MOVA,R2
MOVDPTR,#CODE_PO
MOVCA,@A+DPTR
MOVP0,A
JMPNOKEY
D10ms:MOVR5,#10;10MS
Dlms:MOVR4,#249
DL:NOP
NOP
DJNZR4,DL
DJNZR5,Dlms
RET
CODE_PO:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,0C6H,0AlH,86H,8EH
END
章580C51的中斷系統(tǒng)及定時(shí)/計(jì)數(shù)器
1.80C51有幾個(gè)中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又是如何復(fù)位的?
CPU響應(yīng)各中斷時(shí),其中斷入口地址是多少?
答:5個(gè)中斷源,分別為外中斷而5和市后、TO和T1溢出中斷、串口中斷。
電平方式觸發(fā)的外中斷標(biāo)志與引腳信號(hào)一致;邊沿方式觸發(fā)的外中斷響應(yīng)中
斷后由硬件自動(dòng)復(fù)位。
TO和Tl,CPU響應(yīng)中斷時(shí),由硬件自動(dòng)復(fù)位。
RI和TI,由硬件置位。必須由軟件復(fù)位。
另外,所有能產(chǎn)生中斷的標(biāo)志位均可由軟件置位或復(fù)位。
各中斷入口地址:INTO-OOO3H,TO—OOOBH,INTI—0013H,
Tl—OO1BH,RI和TI—0023Ho
2.某系統(tǒng)有三個(gè)外部中斷源1、2、3,當(dāng)某一中斷源變低電平時(shí)便要求CPU
處理,它們的優(yōu)先處理次序由高到低為3、2、1,處理程序的入口地址分別為
2000H、2100H、2200H。試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的入口即可'
答:將3個(gè)中斷信號(hào)經(jīng)電阻線或,接而1。
ORG0000H
LJMPMAIN
ORG00013H
LJMPZDFZ
ORG0040H
MAIN:SETBEA
SETBEXI
SJMP$
ORG0200H
ZDFZ:PUSHPSW
PUSHACC
JBP1.0,DV0
JBP1.1,DV1
JBP1.2,DV2
INRET:POPACC
POPPSW
RETI
ORG2000H
DVO:---------------
JMPINRET
ORG2100H
DVI:---------------
JMPINRET
ORG2200H
DV2:---------------
JMPINRET
3.外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生
的中斷過程有何不同?怎樣設(shè)定?
林口?
當(dāng)IT0=0時(shí),而為電平觸發(fā)方式。電平觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期
的S5P2采樣而6引腳電平,當(dāng)采樣到低電平時(shí),置IE0=1向CPU請求中斷;
采樣到高電平時(shí),將正0清0。在電平觸發(fā)方式下,CPU響應(yīng)中斷時(shí),不能自動(dòng)
清除IE0標(biāo)志。
電平觸發(fā)方式時(shí),外部中斷源的有效低電平必須保持到請求獲得響應(yīng)時(shí)為止,
不然就會(huì)漏掉;在中斷服務(wù)結(jié)束之前,中斷源的有效的低電平必須撤除,否則中
斷返回之后將再次產(chǎn)生中斷。該方式適合于外部中斷輸入為低電平,且在中斷服
務(wù)程序中能清除外部中斷請求源的情況。
當(dāng)ITO=1時(shí),而用為邊沿觸發(fā)方式。邊沿觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期
的S5P2采樣而5引腳電平,如果在連續(xù)的兩個(gè)機(jī)器周期檢測到而6引腳由高電
平變?yōu)榈碗娖剑吹谝粋€(gè)周期采樣到而)=1,第二個(gè)周期采樣到而5=0,則置
IE0=l,產(chǎn)生中斷請求。在邊沿觸發(fā)方式下,CPU響應(yīng)中斷時(shí),能由硬件自動(dòng)清
除IE0標(biāo)志。
邊沿觸發(fā)方式時(shí),在相繼兩次采樣中,先采樣到外部中斷輸入為高電平,下
一個(gè)周期采樣到為低電平,則在IE0或IE1中將鎖存一個(gè)邏輯lo若CPU暫時(shí)不
能響應(yīng),中斷申請標(biāo)志也不會(huì)丟失,直到CPU響應(yīng)此中斷時(shí)才清0。另外,為了
保證下降沿能夠被可靠地采樣到,而:5和而1引腳上的負(fù)脈沖寬度至少要保持一
個(gè)機(jī)器周期(若晶振頻率為12MHz,為1微秒I邊沿觸發(fā)方式適合于以負(fù)脈沖
形式輸入的外部中斷請求。
4.定時(shí)/計(jì)數(shù)器工作于定時(shí)和計(jì)數(shù)方式時(shí)有何異同點(diǎn)?
牧?
口?
定時(shí)/計(jì)數(shù)器實(shí)質(zhì)是加1計(jì)數(shù)器。
不同點(diǎn):設(shè)置為定時(shí)器模式時(shí),加1計(jì)數(shù)器是對內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)
器周期等于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12I計(jì)數(shù)值乘以機(jī)器周
期就是定時(shí)時(shí)間。設(shè)置為計(jì)數(shù)器模式時(shí),外部事件計(jì)數(shù)脈沖由TO或T1引腳輸入
到計(jì)數(shù)器。在每個(gè)機(jī)器周期的S5P2期間采樣TO、T1引腳電平。當(dāng)某周期采樣
到一高電平輸入,而下一周期又采樣到T氐電平時(shí),則計(jì)數(shù)器加1,更新的計(jì)數(shù)值
在下一個(gè)機(jī)器周期的S3Pl期間裝入計(jì)數(shù)器。
相同點(diǎn):它們的工作原理相同,它們都有4種工作方式,由TMOD中的
M1M0設(shè)定,即
方式0:13位計(jì)數(shù)器;
方式1:16位計(jì)數(shù)器;
方式2:具有自動(dòng)重裝初值功能的8位計(jì)數(shù)器;
方式3:TO分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器,T1停止工作。
5.定時(shí)/計(jì)數(shù)器的4種工作方式各有何特點(diǎn)?
去口?
方式0位13位計(jì)數(shù)器,由TLO的低5位(高3位未用)和THO的8位組
成。TLO的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TFO標(biāo)志,
向CPU發(fā)出中斷請求。
計(jì)數(shù)初值計(jì)算的公式為:
X=213-N
方式1的計(jì)數(shù)位數(shù)是16位,由TLO作為低8位、TH0作為高8位,組成了
16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:
X=216-N
方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。TH0為8位初值寄存器。當(dāng)TLO
計(jì)滿溢出時(shí),由硬件使TFO置1,向CPU發(fā)出中斷請求,并將TH0中的計(jì)數(shù)初
值自動(dòng)送入TL0oTLO從初值重新進(jìn)行加1計(jì)數(shù)。周而復(fù)始,直至TR0=0才會(huì)
停止。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:
X=28-N
方式3只適用于定時(shí)/計(jì)數(shù)器TO,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=O,
停止計(jì)數(shù)。方式3時(shí),TO分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TLO和TH0,TLO使用
TO的所有控制位。當(dāng)TLO計(jì)數(shù)溢出時(shí),由硬件使TFO置1,向CPU發(fā)出中斷請
求而TH0固定為定時(shí)方式(不能進(jìn)行外部計(jì)數(shù)),并且借用了T1的控制位TRL
TF1O因此,TH0的啟、停受TR1控制,TH0的溢出將置位TF1。
6.要求定時(shí)/計(jì)數(shù)器的運(yùn)行控制完全由TR1,TR0確定和完全由而、而H高
低電平控制時(shí),其初始化編程應(yīng)作何處理?
答:TMOD中GATE的值不同:完全由TRI、TRO確定時(shí)GATE為0;完
全由INTO、INTI高低電平控制時(shí)GATE為1。
7.當(dāng)定時(shí)/計(jì)數(shù)器TO用作方式3時(shí),定時(shí)/計(jì)數(shù)器T1可以工作在何種方式
下?如何控制T1的開啟和關(guān)閉?
答:TO用作方式3時(shí),T1可以工作在方式0、1和2。T1的開啟由TR1控
制,即TRI=1時(shí),T1開始工作;TR1=0時(shí)或者定時(shí)/計(jì)數(shù)器工作在方式3時(shí),
T1停止工作。
8.利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s月薪為20ms的正脈沖信號(hào),
晶振頻率為12MHz。試設(shè)計(jì)程序。
把?
口?
采用定時(shí)20ms,然后再計(jì)數(shù)1、49次的方法實(shí)現(xiàn)。
a、TO工作在定時(shí)方式1時(shí),控制字TMOD配置:
MlM0=01,GATE=O,C/亍=0,可取方式控制字為01H;
b、計(jì)算計(jì)數(shù)初值X:
晶振為12MHz,所以機(jī)器周期Tcy為1即。
N=t/Tcy=20x10-3/1x10-6=20000
X=216-N=65536-20000=45536=4E20H
即應(yīng)將4EH送入TH1中,20H送入TL1中。
c、實(shí)現(xiàn)程序如下:
ORG0000H
AJMPMAIN隔陣專到主程序
ORG0030H
MAIN:MOVTMOD,#01H;設(shè)丁1工作于方式2
MOVTH0,#4EH;裝入循環(huán)計(jì)數(shù)初值
MOVTL0,#20H;首次計(jì)數(shù)值
LPOrSETBP1.0
ACALLNTO
CLRP1.0
MOVR7,#49計(jì)數(shù)49次
LP1:ACALLNT0
DJNZR7,LP1
AJMPLPO
NTO:MOVTH0,#4EH
MOVTL0,#20H
SETBTRO
JNBTFO,$
CLRTRO
CLRTFO
RET
END
9.要求從Pl.l引腳輸出1000Hz方波,晶振頻率為12MHz。試設(shè)計(jì)程序。
答:采用TO實(shí)現(xiàn)
a、TO工作在定時(shí)方式1時(shí),控制字TMOD配置:
M1MO=O1,GATE=0,C/f=O,可取方式控制字為01H;
b、計(jì)算計(jì)數(shù)初值X:
晶振為12MHz,所以機(jī)器周期Tcy為1回。1/1000=1x10-3
N=t/Tcy=0.5x10-3/1x10-6=50。
X=2*一N=65536-500=65036=FEOCH
即應(yīng)將FEH送入THO中,OCH送入TLO中。
c、實(shí)現(xiàn)程序如下:
ORG0000H
AJMPMAIN;跳轉(zhuǎn)到主程序
ORGOOOBH;T0的中斷入口地址
LJMPDVTO
ORG0030H
MAIN:MOV1MOD,#U1H;設(shè)10工作十萬M2
MOVTHO,#OFEH;裝入循環(huán)計(jì)數(shù)初值
MOVTLO,#OCH;首次計(jì)數(shù)值
SETBETO;T0開中斷
SETBEA;CPU開中斷
SETBTRO;啟動(dòng)TO
SJMP$;等待中斷
DVT0:CPLPl.l
MOVTHO,#OFEH
MOVTLO,#OCH
SETBTRO
RETI
END
10.試用定時(shí)/計(jì)數(shù)器T1對外部事件計(jì)數(shù)。要求每計(jì)數(shù)100,就將T1改成
定時(shí)方式,控制P1.7輸出一個(gè)脈寬為10ms的正脈沖,然后又轉(zhuǎn)為計(jì)數(shù)方式,如
此反復(fù)循環(huán)。設(shè)晶振頻率為12MHz。
林?
口?
a、T1工作在計(jì)數(shù)方式2時(shí),控制字TMOD配置:
MlM0=10,GATE=0,C/f=l,可取方式控制字為60H;
T1工作在定時(shí)方式1時(shí),控制字TMOD配置:
MlM0=01,GATE=0,C/f=0,可取方式控制字為10H;
b、計(jì)算初值X:
定時(shí)10ms時(shí):
晶振為12MHz,所以機(jī)器周期Tcy為。
N=t/Tcy=lOxlO-3/ixlO-6=ioooo
X=216-N=65536-10000=55536=D8F0H
即應(yīng)將D8H送入TH1中,F(xiàn)OH送入TL1中。
計(jì)數(shù)100時(shí):
N=100
X=28-N=256-100=156=9CH
c、實(shí)現(xiàn)程序如下:
ORG0000H
AJMPMAIN;跳轉(zhuǎn)到主程序
ORG001BH;T1的中斷入口地址
LJMPDVT1
ORG0030H
MAIN:MOVTMOD,#60H;T1工作于計(jì)數(shù)方式2
MOVTH1,#9CH;裝入計(jì)數(shù)初值
MOVTL1,#9CH/
CLRPl.7
SETBET111開中斷
SETBEA;CPU開中斷
SETBTRI;啟動(dòng)T1
SJMP$;等待中斷
DVT1:SETBPl.7
CLRET1
CLRTRI
MOVTMOD,#10H;T1工作于定時(shí)方式1
MOVTH1,#OD8H;裝初值
MOVTL1,#OFOH
SETBTRI
JNBTF1,$;查詢等待10ms
CLRTF1
CLRTRI
CLRPl.7
MOVTMOD,#60H;T1工作于計(jì)數(shù)方式2
MOVTH1,#9CH;裝初值
MOVTL1,#9CH;
SETBET1;T1開中斷
SETBTRI;啟動(dòng)T1
RETI
END
11.利用定時(shí)/計(jì)數(shù)器TO產(chǎn)生定時(shí)時(shí)鐘,由Pl口控制8個(gè)指示燈。編一個(gè)程
序,使8個(gè)指示燈依次閃動(dòng),閃動(dòng)頻率為1次/秒(即,亮1秒后熄滅并點(diǎn)亮下一
個(gè),--1
答:采用定時(shí)20ms,計(jì)數(shù)50次實(shí)現(xiàn)1秒定時(shí)。編制1秒延時(shí)子程序,由
主程序調(diào)用。
a、TO工作在定時(shí)方式1時(shí),控制字TMOD配置:
MlM0=01,GATE=O,C/f=O,可取方式控制字為01H;
b、計(jì)算計(jì)數(shù)初值X:
晶振為12MHz,所以機(jī)器周期Tcy為1那。
N=t/Tcy=20x10-3/1x10-6=2000。
X=216-N=65536-20000=45536=4E20H
即應(yīng)將4EH送入TH1中,20H送入TL1中。
C、實(shí)現(xiàn)程序如下:
ORG0000H
AJMPMAIN禹陣專到主程序
ORG0030H
MAIN:CLRCY
MOVA,#01H
LPO:MOVPl,A
CALLDISEC
RLA
AJMPLPO
D1SEC:MOVR7,#50;計(jì)數(shù)50次
MOVTMOD,#01H
DL:MOVTH0,#4EH
MOVTL0,#20H
SETBTRO
JNBTF0,$
CLRTRO
CLRTFO
DJNZR7,DL
RET
END
章680c51的串行口
1.80C51單片機(jī)串行口有幾種工作方式?如何選擇?簡述其特點(diǎn)?
林?
口?
四種工作方式,由SCON中的SMO、SM1進(jìn)行定義:
方式0:同步移位寄存器的輸入輸出方式,主要用于擴(kuò)展并行輸入或輸出口,
波特率固定。
方式1:10位數(shù)據(jù)的異步通信口,波特率可變。
方式2:11位數(shù)據(jù)的異步通信口,波特率固定。
方式3:11位數(shù)據(jù)的異步通信口,波特率可變。
2.串行通信的接口標(biāo)準(zhǔn)有那幾種?
把?
口?
RS-232C接口、RS-422A接口、RS-485接口
3.在串行通信中通信速率與傳輸距離之間的關(guān)系如何?
叁■
口?
最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約
1ft)有50PF電容的非平衡屏蔽雙絞線時(shí),傳輸距離隨傳輸速率的增加而減小。
當(dāng)波特率超過1000bps時(shí),最大傳輸距離將迅速下降。
4.在利用RS-422/RS-485通信的過程如果通信距離(波特率固定)過長,
應(yīng)如何處理?
牧?
口?
在波特率一定的情況下,帶負(fù)載數(shù)的多少,與信號(hào)能傳輸?shù)淖畲缶嚯x是直接
相關(guān)的。在總線允許的范圍內(nèi),帶負(fù)載數(shù)越多,信號(hào)能傳輸?shù)木嚯x就越??;帶負(fù)
載數(shù)越少,信號(hào)能傳輸?shù)木嚯x就越遠(yuǎn)。故應(yīng)減小通信距離或減少負(fù)載數(shù)量。
5.利用單片機(jī)串行口擴(kuò)展并行輸入接口電路如圖所示。試編寫程序完成將
SW1-SW8的狀態(tài)反應(yīng)在P0口所接的LED上(如SW1閉合時(shí)L7應(yīng)點(diǎn)亮\
答:電路圖如下:
+5V<?
10Kx8
V80
po,1
po.2
po.
po,3
po.4
Hp().
sp5
p().6
G1.7po.
97
F2
E
S/L
DQ
C-JW
.LK
B
ARXD
clTXD
158
BBBBBBBB89S51
12345678
20
SW1-SW8
ORG0000H
MOVSCON,#10H
LOOP:CLRPl.7
NOP
NOP
NOP
SETBPl.7
CLRRI
JN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 半年團(tuán)務(wù)工作總結(jié)
- 蝎子養(yǎng)殖技術(shù)工作總結(jié)
- 2025年《小熊過橋》標(biāo)準(zhǔn)教案
- 大班安全乘坐電梯教案
- 血胸的臨床表現(xiàn)與治療
- 自媒體簽約藝人合同
- 天極傳媒行業(yè)報(bào)告
- 幼兒園小紅帽教案
- KTV娛樂場所經(jīng)營權(quán)轉(zhuǎn)讓合同
- 幼兒園中班繪本故事會(huì)
- 培訓(xùn)學(xué)習(xí)心得-讀《教育的問題與挑戰(zhàn)-思想的回應(yīng)》有感
- 全面深化改革體會(huì)研討發(fā)言
- 畢業(yè)設(shè)計(jì)(論文)-CK6140數(shù)控車床主傳動(dòng)系統(tǒng)設(shè)計(jì)
- 腰椎骨折的護(hù)理知識(shí)講座ppt
- 物理降溫法操作評分標(biāo)準(zhǔn)
- 220kv變電站工程投標(biāo)文件模板
- 初中物理作圖題集萃附答案
- 釣魚郵件專項(xiàng)安全意識(shí)隨堂測試
- 2023年池州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- GB/T 6031-1998硫化橡膠或熱塑性橡膠硬度的測定(10~100IRHD)
- GB/T 3280-2015不銹鋼冷軋鋼板和鋼帶
評論
0/150
提交評論