




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE37第1章緒論1.什么是微控制器?答:微控制器(單片機(jī))就是在一塊半導(dǎo)體硅片上集成了微處理器(CPU)、存儲器(RAM、ROM)和各種功能單元(定時器/計數(shù)器、并行I/O口、串行口、ADC等)的集成電路芯片。2.80C51系列MCU的主要特點(diǎn)是什么?答:(1)種類多,型號全;(2)體積小,成本低,使用靈活,易于產(chǎn)品化;(3)面向控制;(4)性價比高;(5)可用C語言開發(fā),效率高;()6具有很強(qiáng)的外部擴(kuò)展能力。3.微統(tǒng)?答:處理器通常指微處理器、微控制器和數(shù)字信號處理器這三種類型的芯片。微處理器(MPU)通常代表一個功能強(qiáng)大的CPU,但不是為任何已有的特定計算目的而設(shè)計的芯片。這種芯片往往是個人計算機(jī)和高端工作站的核心CPU。最常見的微處理器是Motorola的68K系列和Intel的X86系列。早期的微控制器是將一個計算機(jī)集成到一個芯片中,實(shí)現(xiàn)嵌入式應(yīng)用,故稱單片機(jī)(singlechipmicrocomputer)。隨后,為了更好地滿足控制領(lǐng)域的嵌入式應(yīng)用,單片機(jī)中不斷擴(kuò)展一些滿足控制要求的電路單元。目前,單片機(jī)已廣泛稱作微控制器(MCU)。也有由微處理器發(fā)展的微控制器。比如,Intel的386EX就是很成功的80386微處理器的微控制器版本。它與嵌入式應(yīng)用的微處理器一樣,也稱為嵌入式微處理器。嵌入式處理器的高端產(chǎn)品有:AdvancedRISCMachines公司的ARM、SiliconGraphics公司的MIPS、IBM和Motorola的PowerPC、Intel的X86和i960芯片、AMD的Am386EM、Hitachi的SHRISC芯片。數(shù)字信號處理器(DSPs)里的CPU是專門設(shè)計用來極快地進(jìn)行離散時間信號處理計算的,比如那些需要進(jìn)行音頻和視頻通信的場合。DSPs內(nèi)含乘加器,能比其它處理器更快地進(jìn)行這類運(yùn)算。最常見的是TI的TMS320CXX系列和Motorola的5600X系列。嵌入式系統(tǒng)(embeddedsystem)是計算機(jī)硬件和軟件的集合體。它包括一個處理器,涉及對硬件的直接控制,是為了嵌入到對象體系中完成某種特定的功能而設(shè)計的,是嵌入式計算機(jī)系統(tǒng)的簡稱。如微波爐是很好的嵌入式系統(tǒng)的應(yīng)用實(shí)例:用處理器和軟件幫助人們做飯。嵌入式系統(tǒng)和家里的微機(jī)(個人計算機(jī))形成了鮮明的對比。同樣是計算機(jī)硬件和軟件,個人計算機(jī)卻不是用來完成某個特定功能的,相反,它可以做各種不同的事情。因此,很多人用計算機(jī)的通用性來區(qū)分通用計算機(jī)(通用微機(jī))和嵌入式系統(tǒng)這種專用計算機(jī)系統(tǒng)。嵌入式系統(tǒng)可以是微控制器(單片機(jī))或是以微處理器為主構(gòu)成的計算機(jī)系統(tǒng),也包括數(shù)字信號處理器(DSPs)構(gòu)成的系統(tǒng)和片上系統(tǒng)SoC(SystemonChip)。單片機(jī)是專門用作嵌入式應(yīng)用而設(shè)計的單芯片型計算機(jī)。為了不斷擴(kuò)展的嵌入式應(yīng)用要求,不斷在片內(nèi)擴(kuò)展?jié)M足控制需要的各種單元電路,而形成目前廣泛使用的微控制器。因此,單片機(jī)(微控制器)是一個典型的普及型的嵌入式系統(tǒng),因?yàn)樗鼈兂饲度胧綉?yīng)用之外沒有其他用途。4.你認(rèn)為在哪個領(lǐng)域中MCU的應(yīng)用將得到較大發(fā)展?簡述該領(lǐng)域的現(xiàn)狀和技術(shù)發(fā)展趨勢。略。第2章80C51系列微控制器的片內(nèi)基本結(jié)構(gòu)1.80C51系列MCU的哪些芯片引腳具有第二功能?各功能是什么?答:引腳第二功能功能說明P3.0RXD串行數(shù)據(jù)輸入口P3.1TXD串行數(shù)據(jù)輸出口P3.2外部中斷0輸入口P3.3外部中斷1輸入口P3.4T0定時器0外部計數(shù)輸入口P3.5T1定時器1外部計數(shù)輸入口P3.6外部數(shù)據(jù)存儲器寫選通輸出口P3.7外部數(shù)據(jù)存儲器讀選通輸出口2.80C51系列MCU的存儲器在結(jié)構(gòu)上有何特點(diǎn)?在物理上有哪幾種空間?在邏輯上有哪幾種空間?訪問片內(nèi)RAM和片外RAM的指令有何區(qū)別?答:特點(diǎn):80C51系列MCU采用哈佛結(jié)構(gòu),程序存儲器和數(shù)據(jù)存儲器截然分開,各有獨(dú)立的總線。在物理上有4個空間:片內(nèi)程序存儲器,片外程序存儲器,片內(nèi)數(shù)據(jù)存儲器,片外數(shù)據(jù)存儲器。在邏輯上有3個空間:片內(nèi)外統(tǒng)一的64K程序存儲器,片內(nèi)256B(或384B)數(shù)據(jù)存儲器,片外64K數(shù)據(jù)存儲器。訪問片內(nèi)RAM和片外RAM的指令區(qū)別:訪問片內(nèi)RAM采用MOV格式指令,訪問片外RAM采用MOVX格式指令。3.80C51系列MCU的片內(nèi)RAM低128字節(jié)劃分為哪幾個部分?各部分主要功能是什么?答:片內(nèi)低128B單元的劃分及其主要功能:(1)工作寄存器組(00H—1FH)。這是一個用寄存器直接尋址的區(qū)域,內(nèi)部數(shù)據(jù)RAM區(qū)的00H—1FH,共32個單元。它是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0—R7。(2)位尋址區(qū)(20H—2FH)。16個字節(jié)單元,共包含128位,這16個字節(jié)單元既可以進(jìn)行字節(jié)尋址,又可以實(shí)現(xiàn)位尋址,主要用于位尋址。(3)字節(jié)尋址區(qū)(30H—7FH)地址為30H—7FH,共80個字節(jié)單元,主要用于設(shè)置堆棧、緩沖區(qū)及存儲數(shù)據(jù)。4.80C51系列MCU設(shè)有幾個通用工作寄存器組?有什么特點(diǎn)?如何選用?答:80C51系列MCU設(shè)有4個通用工作寄存器組,其特點(diǎn)為:采用寄存器直接尋址,指令數(shù)量最多,均為單周期指令,執(zhí)行速度快。選用方法:5.什么是現(xiàn)場保護(hù)?如何實(shí)現(xiàn)工作寄存器組的現(xiàn)場保護(hù)?答:現(xiàn)場保護(hù)是指在進(jìn)入中斷服務(wù)程序或子程序之前,先將可能改變的寄存器中的值保存下來,等到退出中斷服務(wù)程序或子程序之后,再恢復(fù)他們的值,以防中斷和子程序執(zhí)行期間改變了原有寄存器的值,使得程序無法繼續(xù)正常運(yùn)行。對于工作寄存器的現(xiàn)場保護(hù),一般在主程序中使用一組工作寄存器,而進(jìn)入子程序或中斷服務(wù)程序時,切換到另一組工作寄存器,在返回主程序前,再重新切換回原來的工作寄存器組。6.堆棧的功能是什么?堆棧指針(SP)的作用是什么?在程序設(shè)計時,為什么要修改SP的值?答:堆棧的功能:保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場。SP的作用:它是一個8位的寄存器,存放當(dāng)前的堆棧棧頂所指存儲單元的地址。修改SP內(nèi)的值的原因:系統(tǒng)復(fù)位后(SP)=07H,如不修改SP的值,則壓棧內(nèi)容從08H單元開始存放,其使用的RAM區(qū)為工作寄存器區(qū),影響工作寄存器的使用。7.請寫出80C51系列MCU的中斷入口地址。答:中斷源入口地址復(fù)位或非屏蔽中斷0000H外部中斷00003H定時器/計數(shù)器0中斷000BH外部中斷10013H定時器/計數(shù)器1中斷001BH串行中斷0023H定時器/計數(shù)器2中斷(僅89C52)002BH8.請簡述80C51系列MCU的時鐘周期(振蕩周期)、狀態(tài)周期、機(jī)器周期、指令周期的概念及其關(guān)系。答:時鐘周期(振蕩周期):晶體振蕩器輸出的脈沖信號周期。狀態(tài)周期:振蕩信號經(jīng)二分頻后形成的時鐘脈沖信號,用S表示。一個狀態(tài)周期的兩個振蕩周期作為兩個節(jié)拍分別稱為節(jié)拍P1和節(jié)拍P2。機(jī)器周期:通常將完成一個基本操作所需要的時間稱為機(jī)器周期。80C51系列MCU的一個機(jī)器周期包括6個狀態(tài)周期。指令周期:CPU執(zhí)行一條指令所需要的時間為一個指令周期。顯然,指令不同,對應(yīng)的指令周期也不一樣。一個指令周期通常含有1~4個機(jī)器周期。9.80C51系列MCU的復(fù)位有哪幾種方法?復(fù)位后MCU的各寄存器及RAM的初始狀態(tài)如何?答:使單片機(jī)復(fù)位有以下3種方式:上電自動復(fù)位、按鍵電平復(fù)位(手動復(fù)位)、外部脈沖復(fù)位。復(fù)位后,各并行I/O口的初始值為0FFH、SP的初始值為07H,其余寄存器(有定義的位)為00H。RAM內(nèi)的值為隨機(jī)數(shù)。第3章80C51系列微控制器的指令系統(tǒng)及程序設(shè)計1.簡述80C51系列MCU的尋址方式及所涉及的尋址空間。答:80C51系列MCU指令系統(tǒng)的尋址方式共有7種。(1)立即尋址:在指令中直接給出操作數(shù)。尋址空間為程序存儲器區(qū)。(2)直接尋址:在指令中直接給出操作數(shù)單元的地址。尋址空間為內(nèi)部RAM低128B,特殊功能寄存器。(3)寄存器尋址:在指令中指定寄存器的內(nèi)容作為操作數(shù)。尋址空間為工作寄存器R0~R7、寄存器對AB、數(shù)據(jù)指針DPTR、進(jìn)位位CY。(4)寄存器間接尋址:在指令中要到寄存器的內(nèi)容所指定的地址去取操作數(shù)。尋址空間為全部RAM。(5)相對尋址:在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。尋址空間為程序存儲器區(qū)。(6)變址尋址:以DPTR及PC作為基址寄存器,累加器A作為變址寄存器,以兩者內(nèi)容相加形成的16位程序存儲器地址作為操作數(shù)地址。尋址空間為程序存儲器區(qū)。(7)位尋址:對數(shù)據(jù)位的操作。尋址空間為內(nèi)部RAM中的位尋址區(qū)和可位尋址的SFR位。2.變址尋址方式有什么優(yōu)點(diǎn)?主要用于什么場合?答:優(yōu)點(diǎn):可以方便地訪問全部程序存儲器區(qū)。用途:查表和多分支轉(zhuǎn)移(散轉(zhuǎn))。3.訪問SFR和片外RAM應(yīng)采用哪種尋址方式?答:訪問SFR應(yīng)采用直接尋址、位尋址(部分寄存器,A、AB、DPTR可寄存器尋址);訪問片外RAM應(yīng)采用寄存器間接尋址。4.對80C51系列MCU片內(nèi)數(shù)據(jù)區(qū)地址80H~0FFH的空間尋址時應(yīng)注意些什么?答:注意:只有80C52(例如89C52)中有這部分地址空間;在這部分空間,只能采用5.80C51系列MCU的指令系統(tǒng)具有哪些主要特點(diǎn)?答:80C51的指令系統(tǒng)由111條指令組成。如果按字節(jié)數(shù)分類,有49條單字節(jié)指令、46條雙字節(jié)指令和16條三字節(jié)指令,以單字節(jié)指令為主;如果按指令執(zhí)行時間分類,有664條單周期指令、45條雙周期指令和2條(乘、除)四周期指令,以單周期指令為主。由此看來,80C51的指令系統(tǒng)具有存儲效率高、執(zhí)行速度快的特點(diǎn)。除此而外,指令系統(tǒng)還有如下特點(diǎn):①可以進(jìn)行直接地址到直接地址的數(shù)據(jù)傳送,能把一個并行I/O口中的內(nèi)容傳送到內(nèi)部RAM單元中而不必經(jīng)過累加器A或工作寄存器Rn。這樣可以大大提高傳送速度和緩解累加器A的瓶頸效應(yīng)。②用變址尋址方式訪問程序存儲器中的表格,將程序存儲器單元中的固定常數(shù)或表格字節(jié)內(nèi)容傳送到累加器A中。這為編程翻譯算法提供了方便。③在算術(shù)運(yùn)算指令中設(shè)有乘法(MUL)和除法(DIV)指令。④指令系統(tǒng)中,一些對I/O口進(jìn)行操作的指令具有"讀一修改一寫"的功能。"讀一修改一寫"指令是指:在執(zhí)行讀鎖存器的指令時,CPU首先完成將鎖存器的值通過緩沖器BUF2讀人內(nèi)部,進(jìn)行修改、改變,然后重新寫到鎖存器中去。這一特點(diǎn)是由I/O口的準(zhǔn)雙向特性所決定的。這種類型的指令包含所有的口的邏輯操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、SETB、CLR等)指令。⑤80C51單片機(jī)內(nèi)部有一個布爾(位)處理器,對位地址空間具有豐富的位操作指令。布爾(位)操作類指令共有17條,其中包括布爾傳送指令、布爾狀態(tài)控制指令、布爾(位)邏輯操作指令及布爾(位)條件轉(zhuǎn)移指令。6.80C51系列MCU有哪些邏輯運(yùn)算功能?各有什么用處?答:(1)邏輯運(yùn)算功能①單操作數(shù)邏輯運(yùn)算指令,其操作對象都是累加器A,包括:清0、取反、循環(huán)左移、帶進(jìn)位循環(huán)左移、循環(huán)右移、帶進(jìn)位循環(huán)右移和半字節(jié)互換指令。②雙操作數(shù)邏輯運(yùn)算指令,包括:邏輯"與"(ANL)、邏輯"或"(ORL)及邏輯"異或"(XOR)三類操作。③布爾(位)邏輯操作指令,包括:位邏輯"與"(ANL)及位邏輯"或"(ORL)兩類操作。(2)邏輯運(yùn)算的用處①若是對口的操作,即為"讀一改一寫"。②邏輯"與"運(yùn)算指令用做清除。③邏輯"或"運(yùn)算指令用做置位。④用"RLCA"指令將累加器A的內(nèi)容作乘2運(yùn)算。⑤用"RRCA"指令將累加器A的內(nèi)容作除2運(yùn)算。7.80C51系列MCU的轉(zhuǎn)移類指令有何獨(dú)特優(yōu)點(diǎn)?無條件轉(zhuǎn)移指令有哪幾種?如何選用?答:1)條件轉(zhuǎn)移指令在條件轉(zhuǎn)移指令中兩類指令有獨(dú)特的優(yōu)點(diǎn)。(1)比較轉(zhuǎn)移(CJNE)指令CJNEA,direct,relA內(nèi)容與直接尋址單元內(nèi)容比較,并轉(zhuǎn)移。CJNEA,#data,relA內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。CJNERn,#data,rel寄存器內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。CJNE@Ri,#data,rel間址單元內(nèi)容與立即數(shù)比較,并轉(zhuǎn)移。這4條指令能對所有單元內(nèi)容進(jìn)行比較,當(dāng)不相等時程序作相對轉(zhuǎn)移,并指出其大小,以備作第二次判斷。其功能可從程序轉(zhuǎn)移和數(shù)值比較兩個方面說明。①程序轉(zhuǎn)移:若目的操作數(shù)=源操作數(shù),則程序順利執(zhí)行PC←(PC)+3進(jìn)位位清0CY←0若目的操作數(shù)﹥源操作數(shù),則程序轉(zhuǎn)移PC←(PC)+3+rel進(jìn)位位清0CY←0若目的操作數(shù)﹤源操作數(shù),則程序轉(zhuǎn)移PC←(PC)+3+rel進(jìn)位位清0CY←l②數(shù)值比較:在80C51的指令系統(tǒng)中沒有比較指令,兩個數(shù)值的比較可利用這4條指令來實(shí)現(xiàn),即可按指令執(zhí)行后,根據(jù)CY的狀態(tài)來判斷數(shù)值的大小。若(CY)=0,則目的操作數(shù)﹥源操作數(shù);若(CY)=1,則目的操作數(shù)﹤源操作數(shù)。(2)循環(huán)轉(zhuǎn)移(DJNZ)指令80C51設(shè)有功能極強(qiáng)的循環(huán)轉(zhuǎn)移指令:DJNZRn,rel以工作寄存器作控制計數(shù)器。DJNZdirect,rel以直接尋址單元作控制計數(shù)器。這2條基本指令可派生出很多條不同控制計數(shù)器的循環(huán)轉(zhuǎn)移指令,大大擴(kuò)充了應(yīng)用范圍和多重循環(huán)層次。2)無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令的功能是程序無條件地轉(zhuǎn)移到各自指定的目標(biāo)地址去執(zhí)行,不同的指令形成的目標(biāo)地址不同。共有4條:(1)相對轉(zhuǎn)移(SJMP)指令SJMPrel指令的目標(biāo)地址是由PC(程序計數(shù)器)和指令的第二字節(jié)帶符號的相對地址相加而成的。指令可轉(zhuǎn)向指令前128B或指令后127B。(2)短轉(zhuǎn)移(AJMP)指令A(yù)JMPaddr11指令提供11位地址,目標(biāo)地址由指令第一字節(jié)的高三位a10~a8和指令第二字節(jié)的a7~a0所組成。因此,程序的目標(biāo)地址必須包含AJMP指令后第一條指令的第一個字節(jié)在內(nèi)的2KB范圍內(nèi)。(3)長轉(zhuǎn)移(LJMP)指令LJMPaddrl6指令提供16位地址,目標(biāo)地址由指令第二字節(jié)和第三字節(jié)組成。因此,程序轉(zhuǎn)向的目標(biāo)地址可以包含程序存儲器的整個64KB空間。(4)間接轉(zhuǎn)移(JMP)指令JMP@A+DPTR指令的目標(biāo)地址是將累加器A中的8位無符號數(shù)與數(shù)據(jù)指針DPTR的內(nèi)容相加而得。相加運(yùn)算不影響累加器A和數(shù)據(jù)指針DPTR的原內(nèi)容。若相加的結(jié)果大于64KB,則從程序存儲器的零地址往下延續(xù)。8.80C51系列MCU的短調(diào)用和長調(diào)用指令本質(zhì)上有何區(qū)別?如何選用?答:這兩條指令都是在主程序中調(diào)用子程序,兩者的區(qū)別:對短調(diào)用指令,被調(diào)用子程序入口地址必須與調(diào)用指令的下一條指令的第一字節(jié)在相同的2KB存儲區(qū)之內(nèi)。入口地址與指令在2K內(nèi)可選用ACALL或LCALL,超出2K范圍只能選用LCALL。9.80C51系列MCU的片內(nèi)RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。分析下面各條指令,說明源操作數(shù)的尋址方式,給出按順序執(zhí)行各條指令后的結(jié)果。答:指令源操作數(shù)的尋址方式執(zhí)行指令后的結(jié)果MOVA,40H直接尋址(A)=48HMOVR0,A寄存器尋址(R0)=48HMOVP1,#0F0H立即尋址(Pl)=0F0HMOV@R0,30H直接尋址(48H)=38HMOVDPTR,#3848H立即尋址(DPTR)=3848HMOV40H,38H直接尋址(40H)=40HMOVR0,30H直接尋址(R0)=38HMOVD0H,R0寄存器尋址(D0H)=38HMOV18H,#30H立即尋址(18H)=30HMOVA,@R0寄存器間接尋址(A)=40HMOVP2,P1直接尋址(P2)=0F0H10.已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,請?zhí)顚懴铝懈鳁l指令的執(zhí)行結(jié)果:(1) SUBB A,30H ;(A)=0D4H(2) SUBB A,#30H ;(A)=49H(3) ADD A,R0 ;(A)=0AAH(4) ADD A,30H ;(A)=1FH(5) ADD A,#30H ;(A)=0AAH(6) ADDC A,30H ;(A)=20H(7) SWAP A ;(A)=0A7H(8) XCHD A,@R0 ;(A)=75H(9) XCH A,R0 ;(A)=30H(10) XCH A,30H ;(A)=0A5H(11) XCH A,@R0 ;(A)=0A5H(12) MOV A,@R0 ;(A)=0A5H11.試分析以下程序段的執(zhí)行結(jié)果。 MOV SP,#3AH MOV A,#20H MOV B,#30H PUSH ACC PUSH B POP ACC POP B執(zhí)行結(jié)果:A、B內(nèi)容交換,即:(A)=30H,(B)=20H12.已知(A)=81H,(R0)=17H,(17H)=35H,指出執(zhí)行完下列程序段后A的內(nèi)容。 ANL A,#17H ORL 17H,A XRL A,@R0 CPL A執(zhí)行結(jié)果:(A)=0CBH13.設(shè)R0的內(nèi)容為32H,A的內(nèi)容為48H,內(nèi)部RAM的32H單元內(nèi)容為80H,40H單元內(nèi)容為08H,指出在執(zhí)行下列程序段后上述各單元內(nèi)容的變化。 MOV A,@R0 ;(A)=80H MOV @R0,40H ;(32H)=08H MOV 40H,A ;(40H)=80H MOV R0,#35H ;(R0)=23H14.將片外RAM區(qū)100CH單元中的內(nèi)容傳送到120CH單元中,請編程實(shí)現(xiàn)。答:參考程序: MOV DPTR,#100CH MOVX A,@DPTR MOV DPTR,#120CH MOVX @DPTR,A15.將片外RAM區(qū)40H單元中內(nèi)容和41H單元中內(nèi)容相乘,并將結(jié)果存放在片外RAM區(qū)42H和43H單元中,高位存放在高地址中,請編程實(shí)現(xiàn)。答:參考程序:ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60H MOV P2,#00H ;仿真時需加入(如使用DPTR則不需要) MOV R0,#40HMOVX A,@R0MOV B,A INC R0 MOVX A,@R0 MUL AB INC R0 MOVX @R0,A MOV A,B INC R0 MOVX @R0,A SJMP $END16.將片外RAM區(qū)40H~60H區(qū)域的數(shù)據(jù)塊,全部搬移到片內(nèi)RAM區(qū)的相同地址區(qū)域,并將原數(shù)據(jù)區(qū)全部填00H,請編程實(shí)現(xiàn)。答:參考程序(1):ORG 0000HLJMP STARTORG 0030HSTART: MOV SP,#70H MOV DPH,#0MOV DPL,#40HMOV R0,#40HLOOP: MOVX A,@DPTRMOV @R0,AMOV A,#00HMOVX @DPTR,AINC DPTRINC R0CJNE R0,#61H,LOOP JMP $END參考程序(2):ADDR_STARTEQU 40HORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#70H MOV R0,#ADDR_STARTMOV R1,#21HLOOP: MOV P2,#00H ;仿真時需要 MOVX A,@R0 MOV @R0,A MOV A,#00H MOVX @R0,A INC R0 DJNZ R1,LOOP JMP $END17.計算片內(nèi)RAM區(qū)50H~57H區(qū)域的數(shù)據(jù)的算術(shù)平均值,結(jié)果存放在58H中,請編程實(shí)現(xiàn)。答:參考程序:ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60H MOV R0,#50H MOV 58H,#0 ;低8位地址MOV 59H,#0 ;高8位地址LOOP:CLR CMOV A,@R0ADD A,58HMOV 58H,AMOV A,59HADDC A,#0MOV 59H,AINC R0CJNE R0,#58H,LOOPMOV R2,#3ACALL RR_LOOPJMP $RR_LOOP:CLR CMOV A,59HRRC AMOV 59H,AMOV A,58HRRC AMOV 58H,ADJNZ R2,RR_LOOPRET END18.已知16位二進(jìn)制數(shù)放在片內(nèi)RAM區(qū)20H和21H單元,高位存放在高地址中,請編寫將其右移一位的程序。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H CLR C MOV A,21H RRC A MOV 21H,A MOV A,20H RRC A MOV 20H,A END答:參考程序:19.請用位操作指令,求下列邏輯方程:(1) MOV C,B.0 ORL C,P3.0 ANL C,ACC.0 ORL C,/P3.1 MOV P1.5,C(2) MOV C,P1.0ANL C,/ACC.2MOV F0,CMOV C,B.5ANL C,/P1.5ORL C,F0MOV PSW.5,C20.已知16位二進(jìn)制數(shù)放在R7R6中,請編寫對它們進(jìn)行求補(bǔ)操作的程序,結(jié)果存放在R1R0中。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV A,R6 CPL A INC A MOV R0,A JZ LOOP1 MOV A,R7 CPL A MOV R1,A SJMP LOOP2LOOP1: MOV A,R7 CPL A INC A MOV R1,ALOOP2: END21.在起始地址為1200H,長度為64的數(shù)據(jù)表中找出ASCII碼“F”,將其送到1000H單元中,請編程實(shí)現(xiàn)。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#50H MOV DPTR,#1200H MOV R0,#0SCH_PRO0: MOV DPL,R0 MOVX A,@DPTR INC R0 CJNE A,#46H,SCH_PRO1 MOV DPTR,#1000H MOVX @DPTR,A RETSCH_PRO1: CJNE R0,#64,SCH_PRO0 RET END22.試編寫一段程序,把0500H~0506H單元中的壓縮BCD碼轉(zhuǎn)換成ASCII碼,存放在0500H為首地址的存儲單元中。答:參考程序:ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H MOV DPTR,#0500HMOV R2,#07HMOV R0,#40HLOOP:MOVX A,@DPTRMOV R1,AANL A,#0FHADD A,#30HMOV @R0,AINC R0MOV A,R1SWAP AANL A,#0FHADD A,#30HMOV @R0,AINC R0INC DPTRDJNZ R2,LOOPMOV R0,#40HMOV DPTR,#0500HLOOP2:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRCJNE R0,#5EH,LOOP2 SJMP $END23.請編寫一個延時2ms的子程序。答:參考程序:假設(shè)晶振頻率12Mhz。DELAY: MOV R7,#4 ;Tm=1sDELAY1: MOV R6,#123 ;2Tm=2s NOP ;DELAY2: DJNZ R6,DELAY2 ;(2×123+2)Tm=248s DJNZ R7,DELAY1 ;[(248+2)×4+l]Tm=2.001ms RET24.利用查表技術(shù)將累加器中的一位BCD碼轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)的七段碼,結(jié)果仍放在A中(設(shè)顯示數(shù)字0~9的七段碼分別是:40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH)。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#50H MOV R2,#4 ;送入R2的值即為BCD碼0~9 LCALL BCD_SEG7 SJMP $BCD_SEG7: MOV A,R2 ADD A,#SEG7-INDEX MOVC A,@A+PCINDEX: RETSEG7: DB40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH END25.為什么SJMP指令的rel=0FEH時,將實(shí)現(xiàn)單指令的無限循環(huán)?答:指令SJMP0FEH的作用相當(dāng)于HERE:SJMPHERE(機(jī)器碼80FE)此時程序?qū)⒃谠剡M(jìn)行無限循環(huán)。(答案1)因?yàn)閞el為帶符號的8位二進(jìn)制補(bǔ)碼數(shù),所以目的地址=轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel=轉(zhuǎn)移指令所在地址+02H+0FEH=轉(zhuǎn)移指令所在地址(答案2)第4章80C51系列微控制器的功能單元1.80C51系列MCU的4個I/O口在使用上有哪些分工和特點(diǎn)?何謂分時復(fù)用總線?P3口的第二功能有哪些?答:分工和特點(diǎn):(1)P0口:可作通用I/O,也可作地址/數(shù)據(jù)線用。作通用I/O口時,輸出級為漏極開路電路,在驅(qū)動外部電路時需接上拉電阻;在擴(kuò)展外部存儲時,P0口作地址/數(shù)據(jù)線用,先輸出低8位地址到外部鎖存器,后輸出指令代碼或輸入/輸出數(shù)據(jù)。(2)P1口:是一個8位準(zhǔn)雙向口,作通用I/O口用。(3)P2口:是一個8位準(zhǔn)雙向口,作通用I/O口用。當(dāng)擴(kuò)展外部存儲時,可輸出高8位地址。(4)P3口:是一個多功能口。其基本功能與P1、P2口類似,作通用I/O口用。其第二功能則是串行口、外部中斷輸入線、T/C的輸入線和外部數(shù)據(jù)存儲器的讀寫選通信號。分時復(fù)用總線:在一組總線上,在不同的時間,有時輸出地址,有時輸入代碼或輸入/輸出數(shù)據(jù)。例如,P0口、P2口就組成了一組地址/數(shù)據(jù)復(fù)用總線。P3口的第二功能:引腳第二功能功能說明P3.0RXD串行數(shù)據(jù)輸入口P3.1TXD串行數(shù)據(jù)輸出口P3.2外部中斷0輸入口P3.3外部中斷1輸入口P3.4T0定時器0外部計數(shù)輸入口P3.5T1定時器1外部計數(shù)輸入口P3.6外部數(shù)據(jù)存儲器寫選通輸出口P3.7外部數(shù)據(jù)存儲器讀選通輸出口2.80C51系列MCU端口P0~P3作通用I/O口時,在輸入引腳數(shù)據(jù)時應(yīng)注意什么?答:P0~P3口作通用I/O口,在輸入引腳數(shù)據(jù)時,需先通過軟向所用端口的輸出鎖存器寫1。3.為什么當(dāng)P2口作為擴(kuò)展程序存儲器的高8位地址后就不能用作通用I/O口了?答:在系統(tǒng)中如果外接有程序存儲器,由于訪問片外程序存儲器的連續(xù)不斷地取指操作,P2口需要不斷送出高位地址,此時P2口的全部口線就不適宜作通用I/O口了。4.定時器/計數(shù)器作定時用時,定時時間與哪些因素有關(guān)?作計數(shù)用時,對外部計數(shù)頻率有何限制?答:定時時間與以下因素有關(guān):晶體振蕩器的頻率、機(jī)器周期、計數(shù)器的長度、定時器/計數(shù)器的初值。對外部計數(shù)頻率限制:輸入信號的頻率最大為晶體振蕩器的頻率的。5.定時器/計數(shù)器T0工作在方式3時,由于TR1位已被T0占用,如何控制定時器/計數(shù)器T1的開啟和關(guān)閉?答:在方式3下,T1已將TF1、TR1資源出借給T0使用了,因此,它自己只能作波特率發(fā)生器使用。T1作波特率發(fā)生器時,可以設(shè)置成方式0~方式2,用在任何不需要中斷控制的場合。作波特率發(fā)生器時,常設(shè)置成方式2的自動重裝狀態(tài)。利用置T1為定時器方式可以啟動波特率發(fā)生器,而置T1為計數(shù)器方式,則可以關(guān)閉波特率發(fā)生器。此時,只需要MOVTMOD,#63H;初始化;設(shè)T0為方式3;設(shè)T1為計數(shù)器,方式2;關(guān)閉T1波特率發(fā)生器MOVTL1,#38H;置定時常數(shù),即設(shè)波特率MOVTH1,#38HMOVTMOD,#23H;設(shè)T1為定時器,方式2;啟動T1波特率發(fā)生器6.在80C51系列MCU系統(tǒng)中,已知時鐘頻率為6MHz,選用定時器/計數(shù)器T0工作在方式3,請編程實(shí)現(xiàn)P1.0和P1.1口分別輸出周期為1ms和400μs的方波。答:以定時器T0設(shè)置方式3:TL0和TH0作為兩個8位定時器,產(chǎn)生500us和200us的定時中斷,即可使P1.0和P1.1口分別輸出周期為1ms和400us的方波。①時間常數(shù)的計算:振蕩器的頻率,方式3計數(shù)器長度L=8,?!穸〞r時間s定時常數(shù)●定時時間s定時常數(shù)②P1.0和P1.1口分別輸出周期為1ms和400us的方波的程序:ORG000BHAJMPIT0P;ORG001BHAJMPIT1P;ORG100HSTART:MOVSP,#60H;設(shè)棧指針ACALLPTOM3;調(diào)定時器初始化程序HERE:SJMPHERE;等待中斷;PTOM3:MOVTMOD,#03H;定時器初始化,設(shè)T0為;方式3MOVTL0,#6HMOVTH0,#9CHSETBTR0;定時開始SETBTR1SETBET0;開中斷SETBET1SETBEARET;IT0P:MOVTL0,#6H;TL0定時器中斷程序CPLP1.0RETI;IT1P:MOVTH0,#9CH;TH0定時器中斷程序CPLP1.1RETI7.用80C51系列MCU的定時器測量某正單脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHz,求允許測量的最大脈沖寬度是多少?答:①設(shè)置:將外部脈沖引至引腳上,設(shè)T0為定時器方式,并設(shè)T0為方式1,GATE程控為1,TR0為1.一旦(P3.2)引腳上出現(xiàn)高電平,定時器即開始定時,也就是它開始對時鐘的機(jī)器周期進(jìn)行計數(shù),直至高電平出現(xiàn)。此時讀出T0值即可。TMOD的設(shè)定(即控制字):控制字為#09H。初值為TH0=#00H,TL0=#00H。②編程:;脈沖寬度在R3(高字節(jié))、R4(低字節(jié))START:MOVTMOD,#09HMOVTL0,#00HMOVYH0,#00HWAIT1:JBP3.2,WAIT1SETBTR0WAIT2:JNBP3.2,WAIT2WAIT3:JMP3.2,WAIT3CLRTR0MOVA,TL0MOVR4,AMOVA,TH0MOVR3,ARET③由于定時器方式1的長度為16位,其最大計數(shù)值為=65535,即正脈沖的寬度最大值不能超過65535個機(jī)器周期。如果時鐘頻率為6MHz,允許測量的最大脈沖寬度是65535×2us=131.070ms。8.80C51系列MCU的串口有幾種工作方式?如何選擇和設(shè)定?答:在串行口控制寄存器SCON中的SM0和SM1位決定串行口的工作方式;SM2位決定串行口應(yīng)用于多處理機(jī)通信方式。(1)方式0當(dāng)SM0=0,SM1=0時,串行口選擇方式0。這種工作方式實(shí)質(zhì)上是一種同步移位寄存器方式。方式0時,數(shù)據(jù)傳輸波特率固定為1/12。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位時鐘又TXD(P3.1)引腳輸出。接收/發(fā)送的是8位數(shù)據(jù),傳輸時低位在前。幀格式如下:(2)方式1當(dāng)SM0=0,SM1=1時,串行口選擇方式1。方式1時,數(shù)據(jù)傳輸波特率有定時器/計數(shù)器T1和T2的溢出決定,可用程序設(shè)定。由TXD(P3.1)引腳發(fā)送數(shù)據(jù),由RXD(P3.0)引腳接收數(shù)據(jù)。發(fā)送或接收一幀信息為10位:1位起始位(0)、8位數(shù)據(jù)位和1位停止位(1)。幀格式如下:(3)方式2和方式3當(dāng)SM0=1,SM1=0時,串行口選擇方式2;當(dāng)SM0=1,SM1=1時,串行口選擇方式3。方式2和方式3的區(qū)別在于它們的波特率產(chǎn)生方式不同。方式2的波特率是固定的,為振蕩器頻率的1/32或1/64;方式3的波特率則是由定時器/計數(shù)器T1和T2的溢出決定,可用程序設(shè)定的。由TXD(P3.1)引腳發(fā)送數(shù)據(jù),有RXD(P3.0)引腳接收數(shù)據(jù)。發(fā)送或接收一幀信息為11位:1位起始位(0)、9位數(shù)據(jù)位和1位停止位(1)。幀格式如下:(4)多處理機(jī)通信方式在串行口控制寄存器SCON中,設(shè)有多處理機(jī)通信位SM2(SCON.5)。當(dāng)串行口以方式2或方式3接收時,若SM2=1,如果接收到的第9位數(shù)據(jù)(RB8)為1,才將數(shù)據(jù)送入接收緩沖器SBUF,并RI置1發(fā)中斷;否則,數(shù)據(jù)將丟失。若SM2=0,則無論第9位數(shù)據(jù)(RB8)是1還是0,都能將數(shù)據(jù)裝入SBUF,并且發(fā)中斷。利用這一特性,便可實(shí)現(xiàn)主機(jī)與多個從機(jī)之間的串行通信。9.什么是波特率?什么是溢出率?如何計算和設(shè)置串行通信的波特率?答:波特率是指每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù),波特率發(fā)生器用于控制串行口的數(shù)據(jù)傳輸速率。溢出率是指某定時器每秒鐘溢出的次數(shù),亦即定時器定時時間的倒數(shù)。波特率的計算和設(shè)置(1)串行口方式0時的波特率由振蕩器的頻率()所確定:波特率=(2)串行口方式2時的波特率由振蕩器的頻率()和SMOD(PCON.7)所確定:波特率=當(dāng)SMOD=1時,波特率=;當(dāng)SMOD=0時,波特率=。(3)串行口方式1和3時的波特率由定時器T1和T2的溢出率和SMOD(PCON.7)所確定。定時器T1和T2是可編程的,可選擇的波特率范圍比較大,因此,傳胸口的方式1和3是最常用的工作方式。用定時器T1(C/T=0)產(chǎn)生波特率時:波特率=定時器T1的溢出率與它的工作方式有關(guān):定時器T1工作方式0:此時定時器T1相當(dāng)于一個13位的計數(shù)器。溢出率=式中:——13位定時器定時常數(shù)(初值);X——中斷服務(wù)程序的及其周期數(shù),在中斷服務(wù)程序中重新對定時器置數(shù)。定時器T1工作方式1:此時定時器T1相當(dāng)于一個16位的計數(shù)器。溢出率=定時器T1工作方式2:此時定時器T1工作于一個8位可重裝的方式,用TL1技術(shù),用TH1裝初值。溢出率=方式2是一種自動重裝方式,無需在中斷服務(wù)程序中送數(shù),沒有由于中斷引起的誤差,也應(yīng)禁止定時器T1中斷。這種方式用于波特率設(shè)定最為有用。②用定時器T2(80C52)產(chǎn)生波特率時:波特率=溢出率=式中:(RCAP2H,RCAP2L)為定時器T2中,16位寄存器的初值(定時常數(shù))。10.為什么定時器/計數(shù)器T1用作串行口波特率發(fā)生器時,常采用方式2?若已知系統(tǒng)時鐘頻率和通信波特率,應(yīng)如何計算其初始值?答:(1)定時器T1工作于方式2是一種自動重裝方式,無需在中斷服務(wù)程序中送數(shù),沒有由于中斷引起的誤差,因此采用方式2是一種既省事又精確的產(chǎn)生串行口頻率的方法。(2)若已知系統(tǒng)時鐘頻率和通信波特率,計算其初始值方法:11.某異步通信接口,其幀格式組成為:1個起始位0、7個數(shù)據(jù)位、1個奇偶校驗(yàn)位和1個停止位1。當(dāng)該接口每分鐘傳輸1800個字符時,計算其傳輸波特率。答:幀格式由一個起始位0、七個數(shù)據(jù)位、一個奇偶校驗(yàn)位和一位停止位1所組成,即每幀為10位。每分鐘傳送1800個字符時,每字符發(fā)送的位數(shù)為10位,則每分鐘發(fā)送的總位數(shù)為18000。傳送波特率應(yīng)為:12.80C51系列MCU有幾個中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又如何復(fù)位的?CPU響應(yīng)中斷時,其中斷入口地址各是多少?答:(1)80C51的中斷源①80C51中有五個中斷源;80C52中增多了一個中斷源——定時器/計數(shù)器T2,即有六個中斷源。80C51的五個中斷源是:●(P3.2)——外部中斷0.當(dāng)IT0(TCON.0)=1時,低電平有效;當(dāng)IT0(TCON.0)=0時,下降沿有效。●(P3.3)——外部中斷1.當(dāng)IT1(TCON.2)=1時,低電平有效;當(dāng)IT1(TCON.2)=0時,下降沿有效。TF0(P3.4)——定時器/計數(shù)器T0溢出中斷。TF1(P3.5)——定時器/計數(shù)器T1溢出中斷。RX,TX——串行中斷。中斷標(biāo)注的產(chǎn)生和復(fù)零:T1溢出中斷標(biāo)志:TF1(TCON.7)。T1計數(shù)溢出。硬件置位,響應(yīng)中斷時,硬件復(fù)位。不使用中斷時用軟件清0。T0溢出中斷標(biāo)志:TF0(TCON.5)。T0計數(shù)溢出。硬件置位,響應(yīng)中斷時,硬件復(fù)位。不使用中斷時用軟件清0。外部中斷1中斷標(biāo)志:IE1(TCON.3)。當(dāng)CPU采樣到端出現(xiàn)有效中斷請求時,IE1位硬件置1;響應(yīng)中斷后,轉(zhuǎn)向中斷服務(wù)時,硬件復(fù)位。外部中斷0中斷標(biāo)志:IE0(TCON.1)。當(dāng)CPU采樣到端出現(xiàn)有效中斷請求時,IE0位硬件置1;響應(yīng)中斷后,轉(zhuǎn)向中斷服務(wù)時,硬件復(fù)位。串行中斷發(fā)送中斷標(biāo)志:TI(SCON.1)。發(fā)送完一幀,硬件置位;響應(yīng)中斷后,必須軟件清0。串行中斷接收中斷標(biāo)志:RI(SCON.0)。發(fā)送完一幀,硬件置位;響應(yīng)中斷后,必須軟件清0。(2)中斷入口地址中斷源中斷入口地址0003H定時器/計數(shù)器0(T0)000BH0013H定時器/計數(shù)器1(T1)001BH串行口(RI、TI)0023H13.外部中斷請求有哪兩種觸發(fā)方式?對下降沿觸發(fā)信號和電平觸發(fā)信號有什么要求?如何選擇和設(shè)置?答:(1)外部中斷請求的觸發(fā)方式①電平觸發(fā)方式,低電平有效。②跳變觸發(fā)方式,電平發(fā)生有高到低的跳變時觸發(fā)。(2)對跳變觸發(fā)和電平觸發(fā)信號的要求由于CPU每個機(jī)器周期采樣引腳信號一次,為確保中斷請求被采樣到,外部中斷源送引腳的中斷請求信號應(yīng)至少保持一個機(jī)器周期。如果跳變觸發(fā)方式,外部終端源引腳的中斷請求信號高、低電平應(yīng)至少各保持一個機(jī)器周期,才能確保CPU采集到電平的跳變。如果是電平觸發(fā)方式,則外部中斷源送引腳請求中單的低電平有效信號,應(yīng)一直保持到CPU響應(yīng)中斷為止。(3)觸發(fā)方式的選擇和設(shè)置這兩種觸發(fā)方式可由設(shè)置TCON寄存器中的IT1(TCON.2)、IT0(TCON.0)中斷申請觸發(fā)方式控制位來選擇:設(shè)置IT1、IT0=0,選擇電平觸發(fā)方式。設(shè)置IT1、IT0=1,選擇跳變觸發(fā)方式,即當(dāng)引腳檢測到前一個機(jī)器周期為高電平、后一個機(jī)器周期為低電平時,則置位IE0、IE1,向CPU申請中斷。第5章微控制器的外部串行擴(kuò)展技術(shù)1.I2C總線的優(yōu)點(diǎn)?答:(1)硬件簡單,資源消耗少。只有時鐘和數(shù)據(jù)線。(2)時鐘同步和仲裁的實(shí)現(xiàn)原理也很簡單,以開漏/集電極開路門以線路邏輯簡單實(shí)現(xiàn)。(3)協(xié)議設(shè)計精巧、易用、靈活。數(shù)據(jù)、地址、指令都可以傳。(4)真正的多主機(jī)總線,如果兩個或更多主機(jī)同時初始化數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。(5)使用廣泛,現(xiàn)在幾乎所有的I2C廠商都在芯片上集成了I2C。2.I2C總線起始信號和終止信號是如何定義的?答:根據(jù)I2C總線協(xié)議的規(guī)定,SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。3.I2C總線的數(shù)據(jù)傳送方向如何控制?答:在總線的一次數(shù)據(jù)傳送過程中,可以有以下幾種組合方式:(1)主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變。(2)主機(jī)在發(fā)送完第一個字節(jié)后,立即讀從機(jī)。(3)在傳送過程中,當(dāng)需要改變傳送方向時,起始信號和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫(R/W*)正好相反。無論哪種方式,起始信號、終止信號和地址均由主機(jī)發(fā)送,數(shù)據(jù)字節(jié)的傳送方向則由尋址字節(jié)中位規(guī)定,每個字節(jié)的傳送都必須有應(yīng)答。4.常用的I2C總線接口器件有哪些?答:EEPROM:AT24CXX系列;時鐘芯片:PCF8591、DS3231;AD/DA芯片:PCF8591;步進(jìn)電機(jī)驅(qū)動芯片:TMC222-SI;地磁傳感器:MAG3110。5.I2C總線的尋址方式如何?答:第一個字節(jié)的頭7位組成了從機(jī)地址,最低位(LSB)是第8位,它決定了傳輸?shù)腎2C總線方向。第一個字節(jié)的最低位是“0”,表示主機(jī)會寫信息到被選中的從機(jī);“1”表示主機(jī)會向從機(jī)讀信息,當(dāng)發(fā)送了一個地址后,系統(tǒng)中的每個器件都在起始條件后將頭7位與它自己的地址比較,如果一樣,器件會判定它被主機(jī)尋址,至于是從機(jī)接收器還是從機(jī)發(fā)送器,都由R/W位決定。6.I2C總線的數(shù)據(jù)傳送時,應(yīng)答是如何進(jìn)行的?答:當(dāng)主機(jī)需要讀取數(shù)據(jù)時,先要先向從機(jī)寫從機(jī)地址,(從機(jī)收到后會發(fā)送應(yīng)答信號),主機(jī)現(xiàn)在要切換的接收狀態(tài),是否收到從機(jī)的應(yīng)答信號(低電平);如果收到應(yīng)答信號,就可以開始讀寫數(shù)據(jù)了,如果是主機(jī)讀,主機(jī)讀到數(shù)據(jù)后,要向從機(jī)發(fā)送應(yīng)答信號,可以繼續(xù)讀。如果是主機(jī)寫,寫完后需要檢測是否接收到從機(jī)的應(yīng)答信號,收到應(yīng)答信號才能進(jìn)行下一步。7.有哪些MCU具備I2C總線接口?答:8位AVR:ATtiny88;PIC16F8XX,PIC18FXXX;STM8S10X。8.簡述STC15F2K60S2的SPI接口的特點(diǎn)。答:SPI的核心是一個8位移位寄存器和數(shù)據(jù)緩沖器,數(shù)據(jù)可以同時發(fā)送和接收。在SPI數(shù)據(jù)的傳輸過程中,發(fā)送和接收的數(shù)據(jù)都存儲在數(shù)據(jù)緩沖器中。對于主模式,若要發(fā)送一個字節(jié)數(shù)據(jù),只需將這個數(shù)據(jù)寫到SPIDAT寄存器中。主模式下信號不是必須的。但是在從模式下,必須在信號變?yōu)橛行Р⒔邮盏胶线m的時鐘信號后,方可進(jìn)行數(shù)據(jù)的傳輸。在從模式下,如果一個字節(jié)傳輸完成后,信號變?yōu)楦唠娖剑@個字節(jié)立即被硬件邏輯標(biāo)志為接收完成,SPI接口準(zhǔn)備接收下一個數(shù)據(jù)。第6章微控制器的典型外圍接口技術(shù)1.MCU應(yīng)用系統(tǒng)中有哪幾種鍵盤類型?答:鍵盤可以分為獨(dú)立連接式和行列(矩陣)式兩類,每一類又可根據(jù)對鍵盤的譯碼方法分為編碼鍵盤和非編碼鍵盤兩種類型。2.請敘述矩陣鍵盤的工作原理。中斷方式與查詢方式的鍵盤其硬件和軟件有何不同?答:鍵按矩陣排列,各鍵處于矩陣行/列的結(jié)點(diǎn)處,CPU通過對連在行(列)的I/O線送已知電平的信號,然后讀取列(行)線的狀態(tài)信息,逐線掃描得出鍵碼。中斷方式與查詢方式的鍵盤在其硬件和軟件方面的不同:硬件方面:中斷方式鍵盤需要加一個與門,將各按鍵送到與門輸入端,與門的輸出端接到單片機(jī)的外部中斷引腳INT0或INT1上。查詢方式的鍵盤按鍵不需要額外附加電路。軟件方面:中斷方式鍵盤初始化中要開CPU中斷和對應(yīng)外中斷允許位,當(dāng)有鍵按下時,中斷標(biāo)志位置位,自動執(zhí)行鍵盤掃描子程序判斷按鍵的具體位置。查詢方式的鍵盤需要不斷(或定時)調(diào)用鍵盤掃描子程序來判斷有無鍵按下,且鍵的優(yōu)先級由指令順序決定。3.編制非編碼鍵盤處理程序時,如何去按鍵抖動?如何判斷按鍵是否釋放?答:在非編碼鍵盤中,每個按鍵的作用只是使相應(yīng)接點(diǎn)接通或斷開,每個按鍵的鍵碼并非由硬件電路產(chǎn)生,而是通過軟件來識別鍵碼。CPU在按鍵抖動期間掃描鍵盤必然會得到錯誤的行首鍵號和列值,最好的辦法是使CPU在檢測到有按鍵按下時延時一段時間后再進(jìn)行列掃描。當(dāng)CPU檢測到按鍵釋放時,執(zhí)行一個10ms左右的延時程序后,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,若仍保持?jǐn)嚅_狀態(tài)電平,則可判斷該按鍵已釋放。4.試用8051的P1口作8個按鍵的獨(dú)立式鍵盤接口,畫出其中斷方式的接口電路及編制出相應(yīng)的鍵盤處理程序。答:程序略。5.請敘述LED顯示器的靜態(tài)與動態(tài)顯示原理。什么是LED顯示器的字符碼?答:(1)靜態(tài)顯示方式靜態(tài)顯示方式是指當(dāng)顯示器顯示某一字符時,發(fā)光二極管的位選始終被選中。在這種顯示方式下,每一個LED數(shù)碼管顯示器都需要一個8位的輸出口進(jìn)行控制。由于單片機(jī)本身提供的I/O口有限,實(shí)際使用中,通常通過擴(kuò)展I/O口的形式解決輸出口數(shù)量不足的問題。靜態(tài)顯示主要的優(yōu)點(diǎn)是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮度大,系統(tǒng)運(yùn)行過程中,在需要更新顯示內(nèi)容時,CPU才去執(zhí)行顯示更新子程序,這樣既節(jié)約了CPU的時間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個LED數(shù)碼管需要獨(dú)占8條輸出線。隨著顯示器位數(shù)的增加,需要的I/O口線也將增加。
(2)動態(tài)顯示方式動態(tài)顯示方式是指一位一位地輪流點(diǎn)亮每位顯示器(稱為掃描),即每個數(shù)碼管的位選被輪流選中,多個數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對位選選中的數(shù)碼管有效。對于每一位顯示器來說,每隔一段時間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時間的比例有關(guān)。通過調(diào)整電流和時間參數(shù),可以既保證亮度,又保證顯示。按照發(fā)光二極管點(diǎn)亮?xí)r,相應(yīng)的字符段點(diǎn)亮的原理,將共陰極LED顯示器的公共端COM接地,將八
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)品中電力設(shè)備的預(yù)防性維護(hù)策略研究
- 二零二五年度建筑工程進(jìn)度監(jiān)理合同
- 2025年度智能建筑建造師聘用協(xié)議書
- 2025年度科技研發(fā)人員個人工資合同細(xì)則
- 2025年度美發(fā)店員工福利與激勵計劃合同
- 二零二五年度公司總部辦公區(qū)無償使用管理合同
- 社交網(wǎng)絡(luò)現(xiàn)代企業(yè)管理的核心力量
- 2025年度游學(xué)活動組織與管理服務(wù)協(xié)議
- 二零二五年度環(huán)保產(chǎn)業(yè)廣告宣傳合作協(xié)議
- 2025年度物流園區(qū)物業(yè)管理與運(yùn)輸合同范本
- 消防維保年度工作計劃
- 統(tǒng)編版(2025新版)七年級下冊語文第一單元綜合測試卷(含答案)
- 棗莊學(xué)院《電力拖動與自動控制系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)師手術(shù)權(quán)限申請流程
- 2025年四川省宜賓敘州區(qū)事業(yè)單位考調(diào)83人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 米非司酮使用培訓(xùn)
- 二氧化碳捕集、運(yùn)輸和地質(zhì)封存 - 地質(zhì)封存 征求意見稿
- 2024-2030年中國淀粉糖行業(yè)運(yùn)行態(tài)勢與發(fā)展趨勢分析報告
- 診所信息保密和安全管理制度
- 護(hù)士臨床護(hù)理組長
- 土建、裝飾、維修改造等零星工程施工組織設(shè)計技術(shù)標(biāo)
評論
0/150
提交評論