


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1 章單片機概述參考答案1.1答:微控制器 , 嵌入式控制器1.2答:CPU、 存儲器 、 I/O 口、 總線1.3答:C1.4答:B1.5答:微處理器 、 微處理機和 CPU 它們都是中央處理器的不同稱謂 , 微處理器芯片本身不是計算機。而微計算機 、 單片機它們都是一個完整的計算機系統(tǒng), 單片機是集成在一個芯片上的用于測控目的的單片微計算機 。嵌入式處理器一般意義上講 , 是指嵌入系統(tǒng)的單片機 、 DSP、 嵌入式微處理器 。目前多把嵌入 式處理器多指嵌入式微處理器 ,例如 ARM7、ARM9 等 。嵌入式微處理器相當于通用計算機中 的CPU。與單片機相比,單片機本身或稍加擴展就是一個小
2、的計算機系統(tǒng),可獨立運行, 具有完整的功能 。 而嵌入式微處理器僅僅相當于單片機中的中央處理器 。 為了滿足嵌入式應用 的特殊要求 , 嵌入式微處理器雖然在功能上和標準微處理器根本是一樣的, 但在工作溫度 、抗電磁干擾 、可靠性等方面一般都做了各種增強 。1.6 答:MCS-51系列單片機的根本型芯片分別:8031、8051和8071。它們的差異是在片內(nèi)程序存儲器上。8031無片內(nèi)程序存儲器、8051片內(nèi)有4K字節(jié)的程序存儲器 ROM,而 8751片內(nèi)有集成有4K字節(jié)的程序存儲器 EPROM1.7 答:因為MCS-51系列單片機中的 “MCS是Intel 公司生產(chǎn)的單片機的系列符號 ,而 51
3、 系列單片機是指世界各個廠家生產(chǎn)的所有與 8051 的內(nèi)核結(jié)構(gòu) 、指令系統(tǒng)兼容的單片機 。1.8 答: 相當于 MCS-51 系列中的 87C51 , 只不過是 AT89S51 芯片內(nèi)的 4K 字節(jié) Flash 存 儲器取代了 87C51 片內(nèi)的 4K 字節(jié)的 EPROM。1.9 單片機體積小 、 價格低且易于掌握和普與 , 很容易嵌入到各種通用目的的系統(tǒng)中 , 實現(xiàn) 各種方式的檢測和控制 。 單片機在嵌入式處理器市場占有率最高 , 最大特點是價格低 , 體積 小。DSP 是一種非常擅長于高速實現(xiàn)各種數(shù)字信號處理運算 如數(shù)字濾波 、 FFT 、 頻譜分析等 的 嵌入式處理器 。 由于對其硬件結(jié)
4、構(gòu)和指令進行了特殊設計 ,使其能夠高速完成各種復雜的數(shù)字 信號處理算法 。 廣泛地用于通訊 、 網(wǎng)絡通信 、 數(shù)字圖像處理 , 電機控制系統(tǒng) ,生物信息識別終 端, 實時語音壓解系統(tǒng)等 。 這類智能化算法一般都是運算量較大 , 特別是向量運算 、 指針線性 尋址等較多,而這些正是DSP的長處所在。與單片機相比,DSP具有的實現(xiàn)高速運算的硬件 結(jié)構(gòu)與指令和多總線 , DSP 處理的算法的復雜度和大的數(shù)據(jù)處理流量以與片內(nèi)集成的多種功能 部件更是單片機不可企與的 。嵌入式微處理器的根底是通用計算機中的CPU, 它的地址總線數(shù)目較多能擴展較大的存儲器空間, 所以可配置實時多任務操作系統(tǒng) RTOS 。
5、RTOS 是嵌入式應用軟件的根底和開發(fā)平臺 。 正由于嵌入式微處理器能運行實時多任務操作系統(tǒng) , 所以能夠處理復雜的系統(tǒng)管理任務和處理 工作。因此,廣泛地應用在移動計算平臺 、媒體 、工業(yè)控制和商業(yè)領(lǐng)域 (例如 ,智能工控 設備、ATM機等)、電子商務平臺、信息家電(機頂盒、數(shù)字電視)以與軍事上的應用。1.10 廣義上講 , 但凡系統(tǒng)中嵌入了 “嵌入式處理器 ,如單片機 、 DSP、 嵌入式微處理器 ,都 稱其為 “嵌入式系統(tǒng) 。但多數(shù)人把 “嵌入 嵌入式微處理器的系統(tǒng) ,稱為“嵌入式系統(tǒng) 。 目 前“嵌入式系統(tǒng) 還沒有一個嚴格和權(quán)威的定義 。 目前人們所說的 “嵌入式系統(tǒng) ,多指后者 。第2
6、章 AT89S51 單片機的硬件結(jié)構(gòu)1.答:AT89S51單片機的片內(nèi)都集成了如下功能部件:(1 ) 1個微處理器(CPU);( 2 )128 個數(shù)據(jù)存儲器 (RAM) 單元 ;(3) 4K Flash 程序存儲器 ;(4) 4個8位可編程并行I/O 口( P0 口、P1 口、P2 口、P3 口);( 5) 1 個全雙工串行口 ;( 6) 2 個 16 位定時器 / 計數(shù)器 ;( 7) 1 個看門狗定時器 ;( 8) 一個中斷系統(tǒng) ,5 個中斷源 ,2 個優(yōu)先級 ;( 9) 25 個特殊功能存放器 (SFR),( 10) 1 個看門狗定時器 。2. 答:當腳為高電平時 ,單片機讀片內(nèi)程序存儲器
7、(4K 字節(jié) Flash ) 中的內(nèi)容 ,但在PC值超過OFFFH (即超出4K字節(jié)地址X圍)時,將自動轉(zhuǎn)向讀外部程序存儲器內(nèi)的程 序;當腳為低電平時,單片機只對外部程序存儲器的地址為0000HFFFFH中的內(nèi)容進行讀操作 , 單片機不理會片內(nèi)的 4K 字節(jié)的 Flash 程序存儲器 。3 .答:24答: 1 個機器周期等于 12 個時鐘振蕩周期 。5. 答: 64K 程序存儲器空間中有 5 個特殊單元分別對應于 5 個中斷源的中斷效勞程序入口 地址 , 見下表 :表 5 個中斷源的中斷入口地址入口地址中斷源0003H 外部中斷 0 ( )000BH定時器 0 (T0)0013H外部中斷 1
8、( )001BH定時器1 (T1)0023H串行口6.答:28H ; 88H 。7答:50H ; 88H 。8答:P 標志位的值為 0。9答:(A)錯;(B)錯;(C)對;( D)對。10.答: 04H ; 00H ; 0 組 。11答: (A) 對; (B) 對;(C) 錯;(D)對。12.答: 字節(jié)地址 00H-1FH的單元可作為工作存放器區(qū)13答: (A) 錯; (B) 錯;(C) 錯;(D)錯。14答: (C) 。15.答: PC; PC。16答: 64K 字節(jié) 。17 P0 口每位可驅(qū)動 8 個 LSTTL 輸入 ,而 P1、P2 、P3 口的每一位的驅(qū)動能力 ,只有 P0 口的一半
9、 。當 P0 口的某位為高電平時 ,可提供 400mA 的電流 ;當 P0 口的某位為低電平 0.45V 時,可提供 3.2mA 的灌電流 ,如低電平允許提高 ,灌電流可相應加大 。所以 ,任 何一個口要想獲得較大的驅(qū)動能力 , 只能用低電平輸出 。18答:按下復位按鈕。19.答: A 對;B 對;(C 錯;( D)錯。2O.答: A 對;B 對;(C 對;( D)錯。第3章AT89S51的指令系統(tǒng)1 答:(1)錯(2) 錯( 3)對(4)錯( 5)錯6錯7錯8 對9錯10 對11 對12 錯。2 答:A對B對C錯D錯。3答: A,PC,DPTR。4 答:只能使用直接尋址方式。5 .答:操作碼
10、,操作數(shù),操作碼。6. 答: 1031H 。7. 答:程序,數(shù)據(jù)。8答:地址 。9答: A 的內(nèi)容與 B 的內(nèi)容互換 。10 .答:A =50H , SP =50H , 51H =30H , 52H =50H , PC= 5030H11 答:A) ANL A , #87H( B)ANLA , #OC3H( C)ORLA , #OCH12 .答:A) =OCBH 。13 .答:A) =OOH ,( R3) =OAAH。14 .答:DPH) =3CH,( DPL) =5FH,( SP)=5OH15 .答:SP) =62H,(61H) =3OH,(62H )=7OH 。16 .答:MOV R7, A
11、PUSH AccMOV A, BMOVX DPTR, A17 答:D。18 答: C 。19 .答:根本型的51子系列單片機,由于其片內(nèi)RAM的地址X圍為OOH TFH ,而80H FFH 為特殊功能存放器區(qū) , 而對特殊功能存放器尋址 ,只能使用直接尋址方式 。 對片內(nèi) RAM 尋址 , 當使用存放器間接尋址是采用 RO 或 R1 作為間接尋址的 , 因此 RO 或 R1 的內(nèi)容不能超 過 7FH 。增強型的52子系列單片機,片內(nèi)RAM的地址X圍為OOH -FFH ,因此作為間接尋址存放器的 R0 或 R1 的內(nèi)容就不受限制 。第4章 AT89S51 匯編語言程序的設計與調(diào)試參考答案 1答:
12、偽指令是程序員發(fā)給匯編程序的命令, 只有在匯編前的源程序中才有偽指令 , 即在匯編過程中的用來控制匯編過程的命令 。所謂“偽是表達在匯編后 , 偽指令沒有相應的機器代 碼產(chǎn)生 。 常用偽指令與其功能如下 :ORGORiGin 匯編起始地址命令 ;ENDEND of assembly 匯編終止命令 ;EQU EQUate 標號賦值命令 ; DB Define Byte定義數(shù)據(jù)字節(jié)命令 ;DW DefineWord 定義數(shù)據(jù)字命令 ;DS Define Storage 定義存儲區(qū)命令 ; BIT 位定義命令2 答:手工匯編 :通過查指令的機器代碼表 表 3-2 , 逐個把助記符指令 “翻譯成機器代
13、碼 , 再 進行調(diào)試和運行 。 這種人工查表 “翻譯 指令的方法稱為 “手工匯編 。機器匯編 :借助于微型計算機上的軟件 匯編程序 來代替手工匯編 。通過在微機上運行匯編 程序 , 把匯編語言源程序翻譯成機器代碼 。反匯編 :將二進制的機器碼程序翻譯成匯編語言源程序的過程稱為 “反匯編 。 3答:從 1OOOH 開始的各有關(guān)存儲單元的內(nèi)容 16 進制 如下:4D 41 49 4E 12 34 3O OOOO 7O 78 7F E4 F6 D8 FD75 81 O7 O24 在編寫子程序時應注意以下問題:1 子程序的第一條指令前必須有標號 。2主程序調(diào)用子程序 , 有如下兩條子程序調(diào)用指令 :
14、絕對調(diào)用指令 ACALL addr11 。被調(diào)用的子程序的首地址與絕對調(diào)用指令的下一條指令 的高 5 位地址相同 , 即只能在同一個 2KB 區(qū)內(nèi) 。 長調(diào)用指令 LCALL addr16。 addr16 為直接調(diào)用的目的地址 , 被調(diào)用的子程序可放置在 64KB 程序存儲器區(qū)的任意位置 。3 子程序結(jié)構(gòu)中必須用到堆棧 ,用來保護斷點和現(xiàn)場保護 。4子程序返回時,必須以RET指令結(jié)束。5 子程序可以嵌套 , 但要注意堆棧的沖突 。5 答 :參考程序如下 :MOV A, 45HANL A, #OFHORL A, #OFHMOV 45H , A6 .答:A=80H, SP=40H , 41H=50
15、H, 42H=80H, PC=8050H7答:參考程序如下 :START:MOV RO,#3OHMOVR2,#20HLOOP:MOVA,R0CJNEA,#0AAH,NEXTMOV51H,#01HLJMPEXITNEXT:INCR0DJNZR2,LOOPMOV51H,#00HEXIT:RET8答:參考程序如下 :START: MOV41H,#0MOVR0,#20HMOVR2,#20HLOOP:MOV A,R0JNZNEXTINC41HNEXT:I NCR0DJNZR2 ,LOOPRET9答:參考程序如下 :ORG0100HMOVR2, #20H要比較的數(shù)據(jù)字節(jié)數(shù)MOVA , #21HMOVR1
16、, ADECR2MOVA , R1LOOP:MOVR3,ADECR1CLRCSUBBA,R1JNCLOOP1MOVA,R1SJMPLOOP2LOOP1:MOVA,R3LOOP2:DJNZR2, LOOPMOVR0,ARET10 答 :(62H)=PC的高字節(jié)(1 )SP=SP+1=61H(61H)=PC 的低字節(jié) =03HSP=SP+1=62H =20H(2 )PC=3456H(3) 可以(4) 2KB = 2048 Byte11 答 : 可對程序做如下修改 :ORG 0100HDEL: MOV R7, #200DEL1: MOV R6, #123 ; 將原來的立即數(shù) 125 改為 123 D
17、EL2: DJNZ R6, DEL2NOP ; 增加的指令DJNZ R7, DEL1RET 程序修改后的延時時間為 : 1+(1+123*2+1+2)*200+2=50003us=50.003ms第5 章 AT89S51 的中斷系統(tǒng)參考答案I .答:0013H ; 001BH2答:串行口中斷 ; 外部中斷 13 . 答 : RETI 指令在返回的同時去除相應的優(yōu)先級觸發(fā)器 , 以允許下次中斷 , 而 RET 指令 那么沒有這個操作 。 除了這一點兩條指令不同外 ,其它操作都相同 。4. 答: D5 .答:在一個單一中斷的系統(tǒng)里 ,AT89S51單片機對外部中斷請求的響應時間總是在3 -8 個機
18、器周期之間 。在下述三種情況下 , AT89S51 將推遲對外部中斷請求的響應 :1 AT89S51 正在處理同級或更高優(yōu)先級的中斷 。2 所查詢的機器周期不是當前正在執(zhí)行指令的最后一個機器周期。3正在執(zhí)行的指令是 RETI 或是訪問 IE 或 IP 的指令。 如果存在上述三種情況之一 , AT89S51 將丟棄中斷查詢結(jié)果 , 將推遲對外部中斷請求的響 應。6. 答: D7. 答: PC、PC、 程序存儲器8. 答: 參考程序段如下 :SETB IT1SETB EX1SETB EA9. 答: A10. 答: 一個中斷源的中斷請求被響應 ,必須滿足以下必要條件 :1 總中斷允許開關(guān)接通,即IE
19、存放器中的中斷總允許位EA=1。2該中斷源發(fā)出中斷請求 , 即該中斷源對應的中斷請求標志為 “1。3該中斷源的中斷允許位 =1 , 即該中斷被允許 。 4 無同級或更高級中斷正在被效勞 。II .答 : A 、 C 、 D12 .答: 參見電路如圖 5-10 , 參考程序如下 :ORG 0000HLJMP MAINORG 0013HLJMP INT_EX1ORG 0030HMAIN: CLR IT0;插入一段用戶程序SETB EX1SETB EA;采用電平觸發(fā) , 低電平有效中斷;允許外部中斷 1WAIT: MOV PCON,#01H ;單片機進入休眠方式等待中斷 NOPLJMPWAIT;以下
20、為外部中斷 1 效勞子程序INT_EX1 :P1.2 , NEXT1; 判斷是不是3 號中斷LJMPINT_IR3;跳轉(zhuǎn)到 3 號中斷處理程序NEXT1:P1.1 , NEXT2; 判斷是不是2 號中斷LJMPINT_IR2;跳轉(zhuǎn)到 2 號中斷處理程序NEXT2:LJMP INT_IR1;跳轉(zhuǎn)到 1 號中斷處理程序ORG1000HINT_IR3:相應中斷處理程序RETI;中斷返回ORG1100HINT_IR2:相應中斷處理程序RETI;中斷返回ORG1200HINT_IR1:相應中斷處理程序RETI;中斷返回第6章 AT89S51 的定時/計數(shù)器 參考答案1 答:A對;B錯;C錯;D錯;2答:
21、因為機器周期所以定時器 / 計數(shù)器工作方式 0 下 ,其最大定時時間為 同樣可以求得方式 1 下的最大定時時間為 262.144ms ;方式 2 下的最大定時時間為 1024ms 。3答:定時 /計數(shù)器作定時時 ,其計數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時鐘信號 12 分頻后提 供。 定時時間與時鐘頻率和定時初值有關(guān) 。4 答:由于確認 1 次負跳變要花 2 個機器周期 , 即 24 個振蕩周期 ,因此外部輸入的計數(shù)脈 沖的最高頻率為系統(tǒng)振蕩器頻率的 1/24 。5 答:定時器 / 計數(shù)器 T0 在計數(shù)和定時工作完成后 , 均采用中斷方式工作 。 除了第一次計數(shù) 工作方式設置在主程序完成外 ,后面的定
22、時或計數(shù)工作方式分別在中斷程序完成 , 用一標志位 識別下一輪定時器 / 計數(shù)器 T0 的工作方式 。參考程序如下ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN:MOV TMOD,#06H ;定時器/計數(shù)器 T0 為計數(shù)方式 2MOV TL0,#156 ; 計數(shù) 100 個脈沖的初值賦值MOV TH0,#156SETB GATE;翻開計數(shù)門SETB TR0; 啟動 T0, 開始計數(shù)SETB ET0 ; 允許 T0 中斷SETB EA; CPU 開中斷CLR F0 ;設置下一輪為定時方式的標志位WAIT: AJMP WAITIT0P: CLR EA; CPU 關(guān)
23、中斷F0,COUNT ; F0=1 , 轉(zhuǎn)計數(shù)方式設置MOV TMOD,#00H ;定時器 / 計數(shù)器 T0 為定時方式 0MOV TH0,#0FEH;定時 1ms 初值賦值MOV TL0,#0CHSETB EARETICOUNT:MOV TMOD,#06HMOV TL0,#156SETB EARETI6. 答 :定時器 / 計數(shù)器的工作方式 2 具有自動恢復初值的特點 ,適用于精確定時 ,比方波特 率的產(chǎn)生 。7. 答 :根據(jù)題意 ,從 P1.0 輸出的矩形脈沖的上下電平的時間為 10:1 ,那么上下電平的時間分別為363.63 !is和36.37卩s。如果系統(tǒng)采用6MHz晶振的話,Tcy=
24、2 s,因此上下電平輸出取整,貝喲為364八 和36 “。參考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN:MOVTMOD,#02HMOVSETBSETBSETBSETB;定時器 / 計數(shù)器 T0 為定時方式 2TL0,#4AHTR0ET0EAP1.0;定時364 ps初值賦值;啟動 T0 ,開始計數(shù);允許 T0 中斷; CPU 開中斷WAIT:AJMPWAITIT0P :CLREACLRP1.0MOV;關(guān)中斷R0,#9DLY:DJNZR0,DLY;延時 36psMOVTL0,#4AH;定時364 ps初值賦值SETBP1.0SETBRETIEA8
25、. 答:方法 1,在第一個定時器的中斷程序里關(guān)閉本定時器的中斷程序 , 設置和翻開另一個定時器 ;在另一個定時器的中斷程序中關(guān)閉本定時中斷, 設置和翻開另一個定時器 。這種方式的定時時間為兩個定時器定時時間的和 。方法 2 ,一個作為定時器 ,在定時中斷后產(chǎn)生一個外部計數(shù)脈沖 (比方由 P1.0 接產(chǎn)生 ), 另 一個定時器工作在計數(shù)方式 。 這樣兩個定時器的定時時間為一個定時器的定時時間乘以另一個 定時器的計數(shù)值 。9. 答 :由 T1(P3.5) 口控制定時器 T1 的啟動和關(guān)閉 。10. 答: 采用方式 1 定時工作方式 。最大脈沖寬度為 131.072ms 。11. 答:將 P1.1
26、的輸入脈沖接入 INT0 , 即使用 T0 計數(shù)器完成對 P1.1 口的脈沖計數(shù) 。參 考程序如下 :ORG 0000HLJMP MAINORG 000BHLJMP IT0PMOVTMOD,#05H;定時器 / 計數(shù)器 T0 為計數(shù)方式1SETBTR0 ;啟動 T0 ,開始計數(shù)SETBET0;允許 T0 中斷SETBEA; CPU 開中斷WAIT:P1.2,WAITCLREACLRTR0MOVR1,TH0MOVR0,TL0AJMP$IT0P:INCR2RETIMAIN: JNB P1.0,MAIN12.答:THx與TLx (x=0,1)是由特殊功能存放器構(gòu)成的計數(shù)器,其內(nèi)容可以隨時用指令更改,
27、更改后的新值是立即刷新。但在讀THx、TLx的值時,應該先讀THx值,后讀TLx, 再讀 THx。 假設兩次讀得 THx 相同, 那么可確定讀得的內(nèi)容正確 。假設前后兩次讀得的 THx 有變 化, 再重復上述過程 。第7章 AT89S51 的串行口 參考答案1 答:方式 1 。2 .答:相等的 。3.答:A.對;B.對;C.錯;D.對;E.對。4 .答:C5 .答:C6 .答:當接收方檢測到RXD 端從 1 到 0 的跳變時就啟動檢測器 ,接收的值是 3 次連續(xù)采樣, 取其中 2 次相同的值 , 以確認是否是真正的起始位的開始 , 這樣能較好地消除干擾引起 的影響 , 以保證可靠無誤的開始接受
28、數(shù)據(jù) 。7答:串行口有 4 種工作方式 : 方式 0、 方式 1、 方式 2、 方式 3;有 3 種幀格式 ,方式 2 和3具有相同的幀格式 ;方式 0的發(fā)送和接收都以 fosc/12 為固定波特率 ,方式1的波特率=2SMOD/32 X定時器T1的溢出率方式2的波特率=2SMOD/64 X fosc方式3的波特率=2SMOD/32 X定時器T1的溢出率8 答:字符“ B勺ASCII碼為“ 42H',幀格式如下: 9答:因為定時器 / 計數(shù)器在方式 2下, 初值可以自動重裝 , 這樣在做串口波特率發(fā)生器設置時 , 就防止了執(zhí)行重裝參數(shù)的指令所 帶來的時間誤差 。設定時器 T1 方式 2
29、 的初值為 X, 計算初值 X 可采用如下公式 :波特率 =10 .答:經(jīng)計算,計數(shù)初值為FAH ,初始化程序如下:ANL TMOD,#0F0H;屏蔽高 4 位ORLTMOD,#20H;控制字MOV TH1,#0FAH;寫入計數(shù)初值MOV TL1,#0FAHMOV SCON,#40H11 答 : 見 7.3 節(jié)的介紹 。12 答 : 見小節(jié)的介紹13 答:串口每秒鐘傳送的字符為 : 1800/60=30 個字符 / 秒所以波特率為:30個字符/秒X 10位/個字符=300b/s14 答: 串行口的方式 0 為同步移位存放器輸入輸出方式 ,常用于外接移位存放器 ,以擴展 并行 I/O 口,一般不
30、用于兩個 MCS-51 之間的串行通信 。該方式以 fosc/12 的固定波特率 從低為位到高位發(fā)送或接受數(shù)據(jù) 。15 答: 直接以 TTL 電平串行傳輸數(shù)據(jù)的方式的缺點是傳輸距離短 ,抗干擾能力差 。因此在串行傳輸距離較遠時 ,常采用 RS-232C 、RS-422A 和 RS-485 標準串行接口 。 主要是對傳輸 的電信號不斷改良 ,如 RS-232C 傳輸距離只有幾十米遠 ,與直接以 TTL 電平串行傳輸相比 , 采用了負邏輯,增大“ 0“1信號的電平差。而RS-422A和RS-485都采用了差分信號傳輸, 抗干擾能力強 ,距離可達 1000 多米 。 RS-422A 為全雙工 , R
31、S-485 為半雙工 。第 8 章 AT89S51 單片機擴展存儲器的設計參考答案1 答:程序 、數(shù)據(jù) 。2答: 80H 。3 答 :片選 。4答: 16KB 。5答:程序 、數(shù)據(jù)。6答: 2K, 14。7 答: 0FFFH 。8答: D9 答:此題主要考察對外部存儲器的讀 、寫操作,只要記住正確使用 MOVX指令就可以了 編程思路:首先讀取2001H的值,保存在存放器 A中,將存放器A的高四位和低四位互換再屏蔽掉低四位然后將存放器A的值保存到30H中,然后再讀取2002H的值,保存在存放器A中,屏蔽掉高四位,然后將存放器A的值與30H進行或運算,將運算后的結(jié)果保存在2002H 中。ORG00
32、00HMAIN :MOVDPTR, #2001H;設置數(shù)據(jù)指針的初值MOVXA, DPTR;讀取 2001H 的值SWAPAANLA, #0F0H;屏蔽掉低四位MOV30H , A;保存 AINCDPTR;指針指向下一個MOVXA, DPTR;讀取 2002H 的值A(chǔ)NLA, #0FH;屏蔽掉高四位ORLA, 30H;進行拼裝MOVXDPTR, A;保存到 2002HEND10 答:此題主要考察對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了 。ORG0000HMAIN :MOVA, #0;送預置數(shù)給 AMOVR0, #0FFH;設置循環(huán)次數(shù)MOVDPTR, #4000
33、H;設置數(shù)據(jù)指針的初值LOOP:MOVXDPTR, A;當前單元清零INCDPTR;指向下一個單元DJNZR0, LOOP;是否結(jié)束END11 .答: 因為控制信號線的不同 :外擴的RAM芯片既能讀出又能寫入,所以通常都有讀寫控制引腳, 記為 OE* 和 WE*。 外擴RAM的讀、寫控制引腳分別與 AT89S51的RD*和 WR*引腳相連。外擴的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為OE*,該引腳與AT89S51單片機的PSEN*相連。12 .答:圖中采用了譯碼法 。4片地址分別為 0000H-3FFFH 、4000H-7FFFH 、80
34、00H- BFFFH 、 C000H-FFFFH 。13 .答:(1 ) 參見圖 8-20 或圖 8-21 , 去掉一片 2764 。(2 )指出該應用系統(tǒng)程序存儲器空間和數(shù)據(jù)存儲器空間各自的地址X圍。14.答:( 1 ) A 組跨接端子的內(nèi)部正確連線圖2)B 組跨接端子的內(nèi)部正確連線圖注意 :答案不唯一 ,還有其他連接方法 ,也可滿足題目要求 。第9章 AT89S51 擴展 I/O 接口的設計參考答案1答:(A) 錯,81C55具有地址鎖存功能;(B) 錯,在81C55芯片中,引腳10/M*、A2、A1、A0決定端口地址和 RAM單元編址;( C) 錯, 82C55 不具有三態(tài)緩沖器 ;(
35、D) 錯, 82C55 的 B 口只可以設置成方式 0 和方式 1 。2 .答:I/O 端口簡稱I/O 口,常指I/O 接口電路中具有端口地址的存放器或緩沖器。I/O接口是指單片機與外設間的 I/0 接口芯片 ; I/0 接口功能 : (1) 實現(xiàn)和不同外設的速度匹 配; (2) 輸出數(shù)據(jù)緩存 ; (3) 輸入數(shù)據(jù)三態(tài)緩沖 。3 答 : 3 種傳送方式 : (1) 同步傳送方式 :同步傳送又稱為有條件傳送 。當外設速度可與 單片機速度相比較時 , 常常采用同步傳送方式 。 (2) 查詢傳送方式 : 查詢傳送方式又稱為有 條件傳送 ,也稱異步傳送 。 單片機通過查詢得知外設準備好后 , 再進行數(shù)
36、據(jù)傳送 。 異步傳送的 優(yōu)點是通用性好 , 硬件連線和查詢程序十分簡單 , 但是效率不高 。 (3) 中斷傳送方式 :中斷 傳送方式是利用 AT89S51 本身的中斷功能和 I/O 接口的中斷功能來實現(xiàn) I./O 數(shù)據(jù)的傳送 。 單片機只有在外設準備好后 , 發(fā)出數(shù)據(jù)傳送請求 , 才中斷主程序 , 而進入與外設進行數(shù)據(jù)傳送 的中斷效勞程序 , 進行數(shù)據(jù)的傳送 。 中斷效勞完成后又返回主程序繼續(xù)執(zhí)行 。因此 , 中斷方式 可大大提高工作效率 。4答:兩種 。 (1) 獨立編址方式 : 獨立編址方式就是 I/O 地址空間和存儲器地址空間分開 編址 。 獨立編址的優(yōu)點是 I/O 地址空間和存儲器地址
37、空間相互獨立 , 界限清楚 。 但卻需要設 置一套專門的讀寫 I/O 的指令和控制信號 。 (2) 統(tǒng)一編址方式 : 這種方式是把 I/O 端口的寄 存器與數(shù)據(jù)存儲器單元同等對待 , 統(tǒng)一進行編址 。 統(tǒng)一編址的優(yōu)點是不需要專門的 I/O 指 令, 直接使用訪問數(shù)據(jù)存儲器的指令進行I/O 操作 。 AT89S51 單片機使用的是 I/O 和外部數(shù)據(jù)存儲器 RAM 統(tǒng)一編址的方式 。5答: 82C55 通過寫入控制字存放器的控制字的最高位來進行判斷 , 最高位為 1 時, 為方 式控制字 ,最高位為 0 時, 為 C 口按位置位 / 復位控制字 。6 .答:此題主要考察對 82C55的C 口的操
38、作。其方式控制字的最高位為0時,低四位控裝置對 C 口置復位 。 由題目可知方式控制存放器的地址為 7FFFH 。ORG 0100HMAIN: MOV DPTR,#7FFFH ;控制字存放器地址 7FFFH 送 DPTRM0VA,#0EH;將 PC7 置 0M0VXDPTR,AM0VA,#09H;將 PC4 置 1M0VXDPTR,AEND7答:當外設輸入一個數(shù)據(jù)并送到PA7 PA0 上時 ,輸入設備自動在選通輸入線 A 向82C55 發(fā)送一個低電平選通信號 , 那么把 PA7-PA0 上輸入的數(shù)據(jù)存入 PA 口的輸入數(shù)據(jù)緩沖 / 鎖存器 ;然后使輸入緩沖器輸出線 IBFA 變成高電平 , 以
39、通知輸入設備 ,82C55 的 PA 口已收 到它送來的輸入數(shù)據(jù)。82C55檢測到聯(lián)絡線 A由低電平變成了高電平、IBFA為1狀態(tài)和中 斷允許觸發(fā)器INTEA為1時,使輸出線INTRA PC3變成高電平,向AT89S51發(fā)出中斷 請求。INTEA的狀態(tài)可由用戶通過對 PC4的置位/復位來控制。AT89S51響應中斷后,可 以通過中斷效勞程序從PA 口的輸入數(shù)據(jù)緩沖/鎖存器讀取外設發(fā)來的輸入數(shù)據(jù)。當輸入數(shù)據(jù)被CPU讀走后,82C55撤銷INTRA上的中斷請求,并使IBFA變?yōu)榈碗娖剑酝ㄖ斎胪?設可以送下一個輸入數(shù)據(jù) 。8 .答:81C55的端口有以下幾種:命令/狀態(tài)存放器、PA 口、PB 口
40、、PC 口、計數(shù)器的高8 位存放器與低8位存放器以與 RAM單元。引腳10/ , A2、A1、A0決定端口地址。TIMERIN 是計數(shù)脈沖輸入引腳 , 輸入脈沖的上跳沿用于對 81C55 片內(nèi)的 14 位計數(shù)器減 1。 為計數(shù)器輸出引腳 。當 14 位計數(shù)器減為 0 時就可以在該引線上輸出脈沖或方波 ,輸出的信號 的波形與所選的計數(shù)器工作方式有關(guān) 。9 答:電路圖可以參考圖 9-10 , PA 口每一位接二極管的正極,二極管的負極接地。PB 口 每 1 位接一開關(guān)和上拉電阻 , 開關(guān)另一端直接接地 。這樣只需要將讀到的 PB 口的值送給 PA口就可以滿足題目要求了 。0RG0100H、w ii
41、ii-_.、. r、/.a . r . .、. r、_/.a iMIAN : M0V A, #10000010B;設置PA 口方式0 輸出 , PB 口方式 0 輸入M0VDPTR, #0FF7FH;控制口地址送 DPTRM0VXDPTR, A;送方式控制字M0VDPTR, #0FF7DH; PB 口地址送 DPTRM0VXA,DPTR;讀入開關(guān)信息M0VDPTR, #0FF7CH; PA 口地址送 DPTR點亮相應的二極管M0VXENDDPTR, A; PA 口的內(nèi)容送 PB 口10 .答:81C55計數(shù)器的初值 X圍是:3FFFH-2H 。當頻率為4MHz,初值為3FFFH時,最 大定時時
42、間為 : 0.004096S11 .答:將1MHz的脈沖改變?yōu)?0ms的方波,實際上就是分頻。分頻前后頻率之比為100:1, 這樣只要將定時器初值設置為 64H 就可以了 。假設 I/0 口地址為 7F00H-7F05H START :MOV DPTR, #7F04H;指針指向計數(shù)器低8位MOVA, #64H;送初值給 AMOVXDPTR, A;初值送給計數(shù)器低 8 位INCDPTR;指向計數(shù)器高 8 位MOVA, #40H;計數(shù)器方波輸出MOVXDPTE, AMOVDPTR, #7F00H;指向命令 / 狀態(tài)口MOVA, #0C2H;設定控制字MOVXDPTE, A;啟動計數(shù)器END第 10
43、 章 AT89S51 與鍵盤 、顯示器 、撥盤 、打印機的接口設計參考答案1. 答:A.MAX7219 是專用顯示器芯片,不用于鍵盤;B.錯:CH451芯片也可用于控制鍵盤;C.對:BUSY信號可作為查詢信號或中斷請求信號使用,但此時信號不用;E.錯:LED數(shù)碼管的字型碼是可以變的,例如表10-1中的“a段對應段碼字節(jié)的最高位?!?dp '段對應段碼字節(jié)的最低位,字型碼就改變了 。2. 答: 在按鍵的閉合和斷開過程中 , 由于開關(guān)的機械特性 ,導致了按鍵抖動的產(chǎn)生 。 如果 不消除按鍵的機械抖動 , 按鍵的狀態(tài)讀取將有可能出現(xiàn)錯誤 。 消除按鍵抖動一般是采用 軟件或硬件去抖 。 軟件去
44、抖的原理 : 在第一次檢測到有鍵按下時 ,該鍵所對應的行線是 為低電平 ,執(zhí)行一端延時 10ms 的子程序后 , 確認該行線電平是否仍然為低電平 , 如果 仍為低電平 , 那么確認為該行確實有鍵按下 。3. 答: 靜態(tài)顯示時 , 數(shù)據(jù)是分開送到每一位 LED 上的 。 而動態(tài)顯示那么是數(shù)據(jù)是同時送到每 一個 LED 上 ,再根據(jù)位選線來確定是哪一位 LED 被顯示 。 靜態(tài)顯示亮度很高 , 但口線占 用較多 。 動態(tài)顯示口線占用較少 , 適合用在顯示位數(shù)較多的場合 。4. 答:80H 共陰極;7FH 共陽極。5. 答: 按鍵設置在行 、列線交點上 , 行、列線分別連接到按鍵開關(guān)的兩端 。 行線
45、通過上拉 電阻接到 +5V 上 , 無按鍵按下時 , 行線處于高電平狀態(tài) , 而當有按鍵按下時 , 行線電平 狀態(tài)將由與此行線相連的列線的電平?jīng)Q定 。 列線的電平如果為低 ,那么行線電平為低 ; 列線的電平如果為高 ,那么行線的電平亦為高 。將行 、列線信號配合起來并做適當?shù)奶幚?才能確定閉合鍵的位置 。6. 答 :先對 P1 口高四位送低電平 ,讀取 P1 口低四位的值 ;再對 P1 口低四位送低電平 讀取 P1 口高四位的值 , 將兩次讀到的值組合在一起就得到了按鍵的特征碼,在根據(jù)特征碼查找鍵值 。KEYIN:MOVP1,#0FH;反轉(zhuǎn)讀鍵MOVA,P1ANLA,#0FHMOVB,AMOV
46、P1,#0F0HMOVA,P1ANLA,#0F0HORLA,BCJNEA,#0FFH,KEYIN1RET;未按鍵KEYIN1:MOV B,A特征碼MOVDPTR,#KEYCOD;指向特征碼表MOVR3,#0FFH;順序碼初始化KEYIN2:INCR3MOVA,R3MOVCA,A+DPTRCJNEA,B,KEYIN3MOVA,R3;找到 ,取順序碼RET未完 ,;暫存KEYIN3:CJNE A,#0FFH , KEYIN2再查RET;已查完 ,未找到 ,以未按鍵處理KEYCOD: DB0E7H,0EBH,0EDH,0EEH ;特征碼表DB0D7H,0DBH,0DDH,0DEHDB0B7H,0BB
47、H,0BDH,0BEHDB77H,7BH,7DH,7EH7. 答: 1編程掃描方式 :當單片機空閑時 ,才調(diào)用鍵盤掃描子程序 ,反復的掃描鍵盤 等待用戶從鍵盤上輸入命令或數(shù)據(jù) ,來響應鍵盤的輸入請求 。 2定時掃描工作方式單片機對鍵盤的掃描也可用定時掃描方式 ,即每隔一定的時間對鍵盤掃描一次 。3 中斷工作方式 :只有在鍵盤有鍵按下時 ,才執(zhí)行鍵盤掃描程序并執(zhí)行該按鍵功能程序 , 如果無鍵按下 , 單片機將不理睬鍵盤8. 答:DB0-DB7 :數(shù)據(jù)線,單向傳輸,由單片機輸入給打印機。STB STROBE:數(shù)據(jù)選 通信號 。 在該信號的上升沿 ,數(shù)據(jù)線上的 8 位并行數(shù)據(jù)被打印機讀入機內(nèi)鎖存 。
48、 BUSY: 打印機忙狀態(tài)信號 。當該信號有效 高電平 時, 表示打印機正忙于處理數(shù)據(jù) 。 此時 , 單片機不得使 STB 信號有效 , 向打印機送入新的數(shù)據(jù) 。 ACK: 打印機的應答信號 。 低電 平有效 , 說明打印機已取走數(shù)據(jù)線上的數(shù)據(jù) 。 ERR: 出錯信號 。 當送入打印機的命令格 式出錯時 ,打印機立即打印 1 行出錯信息 , 提示出錯 。 在打印出錯信息之前 。 該信號線 出現(xiàn)一個負脈沖 , 脈沖寬度為 30us 。單片機與打印機相連時 , 分為直接相連 圖 10-27 和通過擴展的并行 I/O 口 82C55 連接 圖 10-28 。 直接相連時 圖 10-27 , 打印機在
49、輸入電路中有鎖存器 ,在輸出電路中有 三態(tài)門控制 , 。 沒有讀 、寫信號 , 只有握手線 、BUSY 或 , 用一根地址線來控制寫選通信 號STB和讀取BUSY引腳狀態(tài)。圖10-28 所示為通過擴展的并行 I/O 口 82C55連接的打印 機接口電路。采用查詢法,即通過讀與82C55的PC0腳的相連的BUSY狀態(tài),來判斷送給打 印機的一個字節(jié)的數(shù)據(jù)是否處理完畢。也可用中斷法BUSY直接與單片機的引腳相連 。9 答:本程序采用外部中斷來進行數(shù)據(jù)打印,先打印一個數(shù)據(jù),當BUSY線從高電平變成低電平時 , 在打印下一個數(shù)據(jù)ORG0000HLJMPMAINORG0003HLJMPINORG0030H
50、MAIN:SETB EX0;允許外部中斷SETBIT0SETBEAMOVR0,#7FH;控制口地址MOVA,#81H;控制字MOVXR0,AMOVR1,#20H;數(shù)據(jù)區(qū)首地址MOVR2,#19;計數(shù)器MOVA,R1;打印內(nèi)容MOVR0,#7CH;A 口地址MOVXR0,AMOVR0,#7FHMOVA,#0EHMOVXRO,A;PC7 = 0IN:DJNZ R2,EXINCMOVR1A,R1MOVMOVXSJMPR0,A$A,#0FH;PC7=1;20 個數(shù)據(jù)都結(jié)束了嗎 ?;指向下一個數(shù)據(jù)MOV MOVXMOVMOVMOVXMOVMOVXR0,ARO,AR0,AR0,#7CHR0,#7FHA,#0EHA,#0FHEX:RETI第 11 章 AT89S51 單片機與 D/A 轉(zhuǎn)換器 、 A/D 轉(zhuǎn)換器的接口參考答案1 答:由運算放大器構(gòu)成的 I/V 轉(zhuǎn)換電路2答:同步3 答:1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建三明2024~2025學年高一下冊期末模擬數(shù)學試題學生卷
- 互聯(lián)網(wǎng)平臺數(shù)據(jù)驅(qū)動決策的個性化教育解決方案考核試卷
- 形狀記憶纖維在智能建筑中的應用案例分析考核試卷
- 合成氣制柴油技術(shù)環(huán)保技術(shù)集成與應用考核試卷
- 產(chǎn)業(yè)升級中的區(qū)域創(chuàng)新能力建設考核試卷
- 部編教材三年級語文下冊各單元試卷(全冊)
- 2025年中國PT泵嘴試驗臺數(shù)據(jù)監(jiān)測報告
- 2025年中國PET不干膠數(shù)據(jù)監(jiān)測報告
- 2025年中國D-蛋氨酸數(shù)據(jù)監(jiān)測研究報告
- 2025年中國48頭超寬高速噴繪機數(shù)據(jù)監(jiān)測研究報告
- 信息安全培訓《釣魚郵件防范技巧》
- 2025至2030中國燙印箔行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 部編版高一語文必修上冊教案計劃
- 臨時工請假管理制度
- 小學用電安全課件
- 2025年北京市高考英語試卷真題(含答案解析)
- 2025年中國浮萍項目投資可行性研究報告
- 商洛學院《大學學術(shù)綜合英語》2023-2024學年第二學期期末試卷
- 2025年高考英語全國二卷聽力試題答案詳解講解(課件)
- 高級采氣工理論練習卷附答案
- 打架斗毆等暴力事件處理流程圖
評論
0/150
提交評論