單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)課后答案_第1頁(yè)
單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)課后答案_第2頁(yè)
單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)課后答案_第3頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章1. 給出下列有符號(hào)數(shù)的原碼、反碼和補(bǔ)碼(假設(shè)計(jì)算機(jī)字長(zhǎng)為 8 位)。+45 -89 -6 +112答:【 +45】原=00101101,【 +45】反=00101101,【 +45】補(bǔ)=00101101【-89 】原 =,【-89 】反=,【 -89】補(bǔ) =【-6】原=,【-6】反=,【 -6】補(bǔ)=【+112】原 =01110000,【 +45】反=01110000,【+45】補(bǔ) =011100002. 指明下列字符在計(jì)算機(jī)內(nèi)部的表示形式。AsENdfJFmdsv120答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 3

2、0H3. 什么是單片機(jī)答:?jiǎn)纹瑱C(jī)是把微型計(jì)算機(jī)中的微處理器、存儲(chǔ)器、 I/O 接口、定時(shí)器 / 計(jì)數(shù)器、串行接口、中斷系統(tǒng)等電路集成到一個(gè)集成電路芯片上形成的微型計(jì)算 機(jī)。因而被稱(chēng)為單片微型計(jì)算機(jī),簡(jiǎn)稱(chēng)為單片機(jī)。4. 單片機(jī)的主要特點(diǎn)是什么答:主要特點(diǎn)如下:1) 在存儲(chǔ)器結(jié)構(gòu)上,單片機(jī)的存儲(chǔ)器采用哈佛 (Harvard) 結(jié)構(gòu)2) 在芯片引腳上,大部分采用分時(shí)復(fù)用技術(shù)3) 在內(nèi)部資源訪(fǎng)問(wèn)上,采用特殊功能寄存器(SFR)的形式4) 在指令系統(tǒng)上,采用面向控制的指令系統(tǒng)5) 內(nèi)部一般都集成一個(gè)全雙工的串行接口6) 單片機(jī)有很強(qiáng)的外部擴(kuò)展能力5. 指明單片機(jī)的主要應(yīng)用領(lǐng)域。答:?jiǎn)螜C(jī)應(yīng)用: 1)工業(yè)自

3、動(dòng)化控制; 2)智能儀器儀表; 3)計(jì)算機(jī)外部設(shè)備和智能接口; 4)家用電器多機(jī)應(yīng)用:功能彌散系統(tǒng)、并行多機(jī)處理系統(tǒng)和局部網(wǎng)絡(luò)系統(tǒng)。第二章1. MCS-51單片機(jī)由哪幾個(gè)部分組成答:MCS-51單片機(jī)主要由以下部分組成的:時(shí)鐘電路、中央處理器(CPU)、存儲(chǔ)器系統(tǒng)(RAM和ROM、定時(shí)/計(jì)數(shù)器、并行接口、串行接口、中斷系統(tǒng)及一些特殊功能寄存器 (SFR)。2. MCS-51的標(biāo)志寄存器有多少位,各位的含義是什么答:MCS-51的標(biāo)志寄存器 PSW有 8位;DDDDDDDD76543210CAFRROC0S1S0V含義如下:C:進(jìn)位或借位標(biāo)志位。AC輔助進(jìn)位或借位可標(biāo)志位。F0:用戶(hù)標(biāo)志位。是系

4、統(tǒng)預(yù)留給用戶(hù)自己定義的標(biāo)志位。RS1 RS0 :寄存器組選擇位。可用軟件置位或清零,用于從四組工作寄存器中選定當(dāng)前的工作寄存器組。OV溢出標(biāo)志位。在加法或減法運(yùn)算時(shí),如運(yùn)算的結(jié)果超出8位二進(jìn)制數(shù)的范圍,則 OV置1,標(biāo)志溢出,否則 OV清零。P:奇偶標(biāo)志位。用于記錄指令執(zhí)行后累加器A中1的個(gè)數(shù)的奇偶性。若累加器 A中1的個(gè)數(shù)為奇數(shù),則P置位,若累加器 A中1的個(gè)數(shù)為偶數(shù),則P清零。其中未定義,可供用戶(hù)使用。3. 在8051的存儲(chǔ)器結(jié)構(gòu)中,內(nèi)部數(shù)據(jù)存儲(chǔ)器可分為幾個(gè)區(qū)域各有什么特點(diǎn)答:片內(nèi)數(shù)據(jù)存儲(chǔ)器按功能可以分成以下幾個(gè)部分:工作寄存器組區(qū)、位尋址區(qū)、一般RAM區(qū)和特殊功能寄存器區(qū),其中還包含堆棧

5、區(qū)。工作寄存器組區(qū),00H1FH單元,可用R(R7等8個(gè)寄存器訪(fǎng)問(wèn);位尋址區(qū),20H2FH單元,可按位方式訪(fǎng)問(wèn);一般RAM區(qū),30H7FH單元;堆棧區(qū),可從 08到7F單元;特殊功能寄存器區(qū)位于80HFFH單元。4. 什么是堆棧說(shuō)明 MCS-51單片機(jī)的堆棧處理過(guò)程。答:堆棧是按先入后出、后入先出的原則進(jìn)行管理的一段存儲(chǔ)區(qū)域。CS-51單片機(jī)的堆棧是向上生長(zhǎng)型的,存入數(shù)據(jù)是從地址低端向高端延伸,取出數(shù)據(jù)是從地址高端向低端延伸。入棧和出棧數(shù)據(jù)是以字節(jié)為單位的。入棧時(shí),SP指針的內(nèi)容先自動(dòng)加1,然后再把數(shù)據(jù)存入到 SP指針指向的單元;出棧時(shí),先把 SP指針指向單元的數(shù)據(jù)取出,然后再把SP指針的內(nèi)容

6、自動(dòng)減1。5. MCS-51單片機(jī)有多少根I/O線(xiàn)它們和單片機(jī)的外部總線(xiàn)有什么關(guān)系答:MCS-51單片機(jī)有32根I/O線(xiàn),由P0 口經(jīng)地址鎖存器提供低 8位(A7A0) , P2 口提供高8位(A15A8)而形成。數(shù)據(jù)總線(xiàn)寬度為 8位,由P0口直接提供。 控制總線(xiàn)由第二功能狀態(tài)下的P3 口和4根獨(dú)立的控制線(xiàn) RST EA、ALE和PSEN組成。6. 什么是機(jī)器周期MCS-51單片機(jī)的一個(gè)機(jī)器周期包括多少個(gè)時(shí)鐘周期答:機(jī)器周期:機(jī)器周期是單片機(jī)的基本操作周期,每個(gè)機(jī)器周期包含S1、S2、S66個(gè)狀態(tài),每個(gè)狀態(tài)包含兩拍 P1和P2,每一拍為一個(gè)時(shí)鐘周期(振蕩周期)。因此,一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘

7、周期。7. 如果時(shí)鐘周期的頻率為12MHz那么ALE信號(hào)的頻率為多少答: 2MHZ第三章1. 在MCS-51單片機(jī)中,尋址方式有幾種其中對(duì)片內(nèi)RAM可以用哪幾種尋址方式對(duì)片外RAM可以用哪幾種尋址方式答:尋址方式可分為數(shù)的尋址和指令尋址,數(shù)的尋址有:常數(shù)尋址(立即尋址)、寄存器數(shù)尋址(寄存器尋址)、存儲(chǔ)器數(shù)尋址(直接尋址方式、寄存器間接尋址 方式、變址尋址方式)和位尋址,指令的尋址有絕對(duì)尋址和相對(duì)尋址。片內(nèi)RAM尋址有:寄存器尋址、直接尋址方式和寄存器間接尋址方式。片外RAM尋址有:寄存器間接尋址方式。2在對(duì)片外RAM單元尋址中,用Ri間接尋址與用DPTF間接尋址有什么區(qū)別64K字節(jié)。答:片外

8、數(shù)據(jù)存儲(chǔ)器尋址中,用Ri間接尋址只能訪(fǎng)問(wèn)低端的 256字節(jié)單元,而用DPTRf乍指針間接訪(fǎng)問(wèn)可訪(fǎng)問(wèn)整個(gè)3在位處理中,位地址的表示方式有哪幾種答:1 直接位地址(OOHOFFH。例如:20H2. 字節(jié)地址帶位號(hào)。例如:表示 20H單元的3位。3. 特殊功能寄存器名帶位號(hào)。例如:表示P0 口的1位。4. 位符號(hào)地址。例如:TR0是定時(shí)/計(jì)數(shù)器T0的啟動(dòng)位4寫(xiě)出完成下列操作的指令。(1) R0的內(nèi)容送到R1中。MOV A, R0MOV R1 , A(2) 片內(nèi)RAM的 20H單元內(nèi)容送到片內(nèi) RAM的40H單元中。MOV 40H, 20H(3) 片內(nèi)RAM的 30H單元內(nèi)容送到片外 RAM的50H單

9、元中。MOV A, 30HMOV R0, #50HMOVX R,0 A(4) 片內(nèi)RAM的 50H單元內(nèi)容送到片外 RAM的3000H單元中。MOV A, 50HMOV DPTR, #3000HMOVX DPT,RA(5) 片外RAM的 2000H單元內(nèi)容送到片外 RAM的20H單元中。MOV DPTR, #2000HMOVX A, DPTRMOV 20H, A(6) 片外RAM的 1000H單元內(nèi)容送到片外 RAM的4000H單元中。MOV DPTR, #1000HMOVX A, DPTRMOV DPTR, #4000H(7) ROM勺1000H單元內(nèi)容送到片內(nèi) RAM的50H單元中。MOV

10、 A, #0MOV DPTR,#1000HMOVC A,A+DPTRMOV 20H,A(8) ROM勺1000H單元內(nèi)容送到片外 RAM的1000H單元中。MOV A,#0MOV DPTR,#1000HMOVC A,A+DPTRMOVX DPT,RA5區(qū)分下列指令有什么不同(1) MOV A, 20H和 MOV A, #20H答:前者源操作數(shù)是直接尋址,后者源操作數(shù)立即尋址。(2) MOV A, RS MOVX a R1答:前者源操作數(shù)是訪(fǎng)問(wèn)片內(nèi)數(shù)據(jù)存儲(chǔ)器,后者源操作數(shù)訪(fǎng)問(wèn)片外數(shù)據(jù)存儲(chǔ)器低256字節(jié)。(3) MOV A,R1 和 MOV A,R1答:前者源操作數(shù)是寄存器尋址,后者源操作數(shù)寄存器

11、間接尋址。(4) MOVX A 只和 MOVX A DPTR答:前者源操作數(shù)是訪(fǎng)問(wèn)片外數(shù)據(jù)存儲(chǔ)器低 256字節(jié) 后者源操作數(shù)訪(fǎng)問(wèn)片外數(shù)據(jù)存儲(chǔ)器整個(gè) 64K 字節(jié)。(5) MOVX A DPT和 MOVC A A+DPTR答:前者源操作數(shù)是訪(fǎng)問(wèn)片外數(shù)據(jù)存儲(chǔ)器 后者源操作數(shù)訪(fǎng)問(wèn)程序數(shù)據(jù)存儲(chǔ)器。10H單元以及P1、P2中的內(nèi)容。6. 設(shè)片內(nèi) RAM的(20H)=40H,( 40H =10H,( 10H)=50H ,( P1)=0CAH 分析下列指令執(zhí)行后片內(nèi)RAM的20H 40H、MOV R0 #20HMOV A,R0; A=40HMOV R1,A ;R1=40HMOV A,R1;A=10HMOV

12、R0 P1;( 40H) =0CAHMOV P2 P1 P2=0CAHMOV 10H A ( 10H) =10HMOV 20H 10H(20H) =10H結(jié)果:( 20H) =10H、( 10H) =10H、(40H) =0CAH P2=0CAH和 P1=0CAH7已知( A) =02H( R1) =7FH元的內(nèi)容。DPTR) =2FFCH 片內(nèi) RAM(7FH) =70H 片外 RAM(2FFEH) =11HROM( 2FFEH)試分別寫(xiě)出以下各條指令執(zhí)行后目標(biāo)單1)MOV A,R1結(jié)果2)MOVX DPTRA結(jié)果3)MOVC A,A+DPTR結(jié)果4)XCHD A,R1結(jié)果累加器A等于70H

13、片外 RAM( 2FFCH單元等于02H累加器A等于64H累加器 A等于00H,片內(nèi)RAM(7FH)單元等于72H8. 已知:(A) =78H ( R1) =78H , ( B) =04H CY=1,片內(nèi)RA( 78H) =ODDH ( 80H) =6CH|試分別寫(xiě)出下列指令執(zhí)行后目標(biāo)單元的結(jié)果和相應(yīng)標(biāo)志位的值。(1) ADD A, R1;累加器A等于55H, CY等于1 SUBB A,#77H ;累加器 A等于OOH, CY等于0(3) MUL AB;累加器A等于EOH B寄存器等于01H, CY等于1,OV等于0(4) DIV AB;累加器A等于1EH B寄存器等于OOH, CY OV等于

14、0(5) ANL 78H,#78H ;片內(nèi) RAM( 78H)單元等于 58H(6) ORL A,#0FH;累加器 A等于 7FH(7) XRL 80H,A;片內(nèi) RAM( 80H)等于 14H9.設(shè)(A) =83H,( R0) =17H(17H =34H分析當(dāng)執(zhí)行完下面指令段后累加器A、R0、17H單元的內(nèi)容。ANL A,#17HORL 17H,AXRL A,R0CPL A;A=03H;(17H =37H;A=34H;A=CBH結(jié)果:A=CBH ( R0) =17H,( 17H) =37H10寫(xiě)出完成下列要求的指令。(1) 累加器A的低2位清零,其余位不變。ANL A,#B(2) 累加器A的

15、高2位置“ 1”,其余位不變。ORL A,#B(3) 累加器的高4位取反,其余位不變。XRL A,#B(4) 累加器第0位、2位、4位、6位取反,其余位不變。XRL A,#01010101B11. 說(shuō)明LJMP指令與AJMP指令的區(qū)別答:LJMP旨令后面提供的是16位目標(biāo)地址,所以可以轉(zhuǎn)移到 64KB程序存儲(chǔ)器的任意位置,缺點(diǎn)是:執(zhí)行時(shí)間長(zhǎng),字節(jié)數(shù)多。AJMP指令后帶的是11位直接地址,執(zhí)行時(shí),先將程序指針PC的值加2 (該指令長(zhǎng)度為2字節(jié)),然后把指令中的11位地址addr11送給程序指針PC的低11位,而程序指針的高5位不變,只能在當(dāng)前2K范圍內(nèi)轉(zhuǎn)移。12. 設(shè)當(dāng)前指令CJNE A,#12

16、H, 10H的地址是0FFEH,若累加器A的值為10H,則該指令執(zhí)行后的 PC值為多少若累加器 A的值為12H呢答:指令執(zhí)行后的PC值為1011H,若累加器A的值為12H則指令執(zhí)行后的 PC值為1001H。13. 用位處理指令實(shí)現(xiàn)=()/的邏輯功能。程序:MOVC,ORLC,ANLC,ORLC,/MOV,C14. 下列程序段匯編后,從 1000H單元開(kāi)始的單元內(nèi)容是什么ORG 1000HTAB: DB 12H ,34HDS 3=00HDW 5567H,87H答:( 1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=

17、67H,( 1006H)=55H,( 1007H)=87H,( 1008H)15. 試編一段程序,將片內(nèi) RAM的20H 21H 22H單元的內(nèi)容依次存入片外 RAM的20H 21H 22H中。程序:MOVR0, #20HMOVR2, #03HLOOP:MOV A,R0MOVXR,0 AINCR0DJNZR2, LOOPSJMP16編程實(shí)現(xiàn)將片外RAM的2000H2030H單元的內(nèi)容,全部搬到片內(nèi)RAM的20H單元開(kāi)始位置,并將源位置清零。程序:MOVR0, #20HMOVDPTR, #2000HMOVR2, #30HLOOP:MOVXA, DPTRMOV R,0 AMOVA, #00MOVX

18、DPT,R AINCDPTRINCR0DJNZR2, LOOPSJMP$17.編程將片外RAM的1000H單元開(kāi)始的100個(gè)字節(jié)數(shù)據(jù)相加,結(jié)果放于 R7R6中。程序:MOVDPTR, #1000HMOVR2, #100MOVR7, #00MOVR6, #00LOOP:MOVXA,DPTRADDA,R6MOVR6, AMOVA,R7ADDCA,#0MOVR7,AINCDPTRDJNZR2, LOOPSJMP$i程實(shí)現(xiàn)R4R3R2,結(jié)果放于R7R6R5中。ORG0100HMOV A,R2MOV B, R3MUL AB;R2 R3,結(jié)果的低字節(jié)直接存入積的MOV R5 A;結(jié)果的高字節(jié)存入 R6中暫

19、存起來(lái)MOV R6 BMOV A,R2MOV B, R4MUL AB;R2 R4,結(jié)果的低字節(jié)與 R6相加后,ADD A,R6MOV R6 AMOV A B;結(jié)果的高字節(jié)加上進(jìn)位位后存入R7中ADDC A #00MOV R7, A程序:R518.MUL1MUL2再存入R6中SJMP$19.編程實(shí)現(xiàn)把片內(nèi) RAM勺20H單元的0位、1位,21H單元的2位、3位,22H單元的4位、5位,23H單元的6位、7位,按原位置關(guān)系拼裝在一起放于R2中。程序:MOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,

20、MOV,CMOVR2, A20用查表的方法實(shí)現(xiàn)一位十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII 。程序:(設(shè)一位十六進(jìn)制數(shù)放在R2中,輪換的ASCII也放于R2中)C16STASC: MOVDPTR, #TABMOVA, R2MOVCA, A+DPTRMOVR2, ARETTAB: DB 30H , 31H, 32H, 33H, 34H, 35H, 36H, 37HDB 38H , 391H, 41H, 42H, 43H, 44H, 45H, 46H21.編程統(tǒng)計(jì)從片外 RAM2000開(kāi)始的100個(gè)單元中“ 0”的個(gè)數(shù)放于 R2中。程序:MOVDPTR, #2000HMOVR3, #100MOVR2, #00L

21、OOP:MOVXA, DPTRJNZNEXTINCR2NEXT:INCDPTRDJNZR3, LOOPSJMP$第四章1. C 語(yǔ)言有哪些特點(diǎn)答:C語(yǔ)言具有以下特點(diǎn):1) 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活2) 運(yùn)算符豐富3) 數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)4) 可進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)5) 可以直接對(duì)計(jì)算機(jī)硬件進(jìn)行操作6) 生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高7) 可移植性好2. 有哪些數(shù)據(jù)類(lèi)型是MCS-51單片機(jī)直接支持的答:MCS-51單片機(jī)直接支持的數(shù)據(jù)類(lèi)型標(biāo)準(zhǔn)分為基本數(shù)據(jù)類(lèi)型和組合數(shù)據(jù)類(lèi)型,基本數(shù)據(jù)類(lèi)型有字符型char、短整型short、整型int、長(zhǎng)整型long、浮點(diǎn)型floa

22、t 、雙精度型 double 、特殊功能寄存器型和位類(lèi)型,其中 char 型與 short 型相同, float 型與 double 型相同。組合數(shù)據(jù)類(lèi)型有數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型、共同體類(lèi)型和 枚舉類(lèi)型,另外還有指針類(lèi)型和空類(lèi)型。3. C51 特有的數(shù)據(jù)類(lèi)型有哪些答: C51 特有的數(shù)據(jù)類(lèi)型有特殊功能寄存器型和位類(lèi)型。4. C51 中的存儲(chǔ)器類(lèi)型有幾種,它們分別表示的存儲(chǔ)器區(qū)域是什么答: C51 中的存儲(chǔ)器類(lèi)型有 6種,分別如下:data :直接尋址的片內(nèi) RAM氐128B,訪(fǎng)問(wèn)速度快bdata :片內(nèi)RAM勺可位尋址區(qū)(20H2FH),允許字節(jié)和位混合訪(fǎng)問(wèn)idata :間接尋址訪(fǎng)問(wèn)的片內(nèi) RA

23、M允許訪(fǎng)問(wèn)全部片內(nèi) RAMpdata :用Ri間接訪(fǎng)問(wèn)的片外 RAM低256Bxdata :用DPTR間接訪(fǎng)問(wèn)的片外 RAM允許訪(fǎng)問(wèn)全部 64KB片外RAMcode:程序存儲(chǔ)器ROM 64KB空間5. 在C51中,bit 位與sbit位有什么區(qū)別答:bit位類(lèi)型符用于定義一般的位變量。存儲(chǔ)器類(lèi)型只能是bdata、data、idata,只能是片內(nèi)RAM勺可位尋址區(qū),嚴(yán)格來(lái)說(shuō)只能是bdata。sbit 位類(lèi)型符用于定義在可位尋址字節(jié)或特殊功能寄存器中的位,定義時(shí)需指明其位地址,可以是位直接地址,可以是可位尋址變量帶位號(hào),也可以是特殊功能寄 存器名帶位號(hào)。6. 在 C51 中,通過(guò)絕對(duì)地址來(lái)訪(fǎng)問(wèn)的存

24、儲(chǔ)器有幾種答:通過(guò)絕對(duì)地址來(lái)訪(fǎng)問(wèn)存儲(chǔ)器有三種方法:1.使用C51運(yùn)行庫(kù)中預(yù)定義宏。2.通過(guò)指針訪(fǎng)問(wèn)。3.使用C51擴(kuò)展關(guān)鍵字_at_7. 在 C51 中,中斷函數(shù)與一般函數(shù)有什么不同答:中斷函數(shù)在定義時(shí)后面帶 interrupt m修飾符,m的取值為031,對(duì)應(yīng)的中斷情況如下:0外部中斷0, 1 定時(shí)/計(jì)數(shù)器T0, 2外部中斷1, 3定時(shí)/計(jì)數(shù)器T1, 4串行口中斷,5定時(shí)/計(jì)數(shù)器T2,其他值預(yù)留。編寫(xiě)MCS-51中斷函數(shù)需要注意如下幾點(diǎn)。(1) 中斷函數(shù)不能進(jìn)行參數(shù)傳遞,如果中斷函數(shù)中包含任何參數(shù)聲明都將導(dǎo)致編譯出錯(cuò)。(2) 中斷函數(shù)沒(méi)有返回值。(3) 在任何情況下都不能直接調(diào)用中斷函數(shù)(4

25、) 如果在中斷函數(shù)中調(diào)用了其他函數(shù),則被調(diào)用函數(shù)所使用的寄存器必須與中斷函數(shù)相同,否則會(huì)產(chǎn)生不正確的結(jié)果。(5) C51 編譯器對(duì)中斷函數(shù)編譯時(shí)會(huì)自動(dòng)在程序開(kāi)始和結(jié)束處加上相應(yīng)的內(nèi)容。(6) C51編譯器從絕對(duì)地址 8m+3處產(chǎn)生一個(gè)中斷向量,其中m為中斷號(hào),也即in terrupt后面的數(shù)字。該向量包含一個(gè)到中斷函數(shù)入口地址的絕對(duì)跳轉(zhuǎn)。(7) 中斷函數(shù)最好寫(xiě)在文件的尾部,并且禁止使用 extern存儲(chǔ)類(lèi)型說(shuō)明。防止其他程序調(diào)用。8. 按給定的存儲(chǔ)類(lèi)型和數(shù)據(jù)類(lèi)型,寫(xiě)出下列變量的說(shuō)明形式。(1) 在 data 區(qū)定義字符變量 val1 。char data val1;(2) 在 idata 區(qū)定

26、義整型變量 val2 。int idata val2;(3) 在 xdata 區(qū)定義無(wú)符號(hào)字符型數(shù)組 val34 。unsigned char xdata val34;(4) 在 xdata 區(qū)定義一個(gè)指向 char 類(lèi)型的指針 px。char xdata *px;(5) 定義可尋址位變量 flag 。bit flag;(6) 定義特殊功能寄存器變量 P3。sfr P3=0xa0;(7) 定義特殊功能寄存器變量 SCONsfr SCON=0x98;(8) 定義 16 位的特殊功能寄存器 T0。sfr16 T0=0x8a;9. 寫(xiě)出下列關(guān)系表達(dá)式或邏輯表達(dá)式的結(jié)果,設(shè)a=3,b=4, c=5 。

27、(1) a+b>c&&b= =c 結(jié)果:假(2) a|b+c&&b-c 結(jié)果:真(3) !(a>b)&&!c|1 結(jié)果:真(4) !(a+b)+c-1&&b+c/2 結(jié)果:假10. 寫(xiě)出下列 C51 程序的執(zhí)行結(jié)果。(1)#include <>extern serial_initial();main()int x,y,z;serial_initial();x=y=8;z=+x;printf("n %d %d %d",y,z,x);x=y=8;z=x+;printf("n %d

28、%d %d",y,z,x);x=y=8;z=-x;printf("n %d %d %d",y,z,x); x=y=8;z=x-;printf("n %d %d %d",y,z,x); printf("n");while(1);結(jié)果: 8 9 98 8 7(2)#include <>extern serial_initial();main()int x,y,z;serial_initial();printf("input data x,yn");scanf("%d %d",&

29、amp;x,&y);printf("n x y x<y x<=y x>yx>=y x!=y x=y");printf("n");printf("n%3d%3d",x,y);z=x<y;printf("%5d",z);z=x<=y;printf("%5d",z);z=x>y;printf("%5d",z);z=x>=y;printf("%5d",z);z=x!=y;printf("%5d&qu

30、ot;,z);z=x=y;printf("%5d",z);while(1);執(zhí)行結(jié)果:input data x,y1 2x y x<y x<=y x>y x>=y x!=y x=y1 2 1 1 0 0 1 0(3)#include <>extern serial_initial();main()int x,y,z;serial_initial();printf("input data x, y n"); scanf("%d %d",&x,&y); printf("n x

31、y !x x|y x&&y"); printf("n%3d%3d",x,y);z=!y; printf("%5d",z); z=x|y; printf("%5d",z);z=x&&y; printf("%5d",z); printf("n");printf("n"); printf("That is alln");while(1);執(zhí)行結(jié)果:input data x, yx y !x x|y x&&

32、y1 2 0 1 1That is all(4)#include <>extern serial_initial();main()int a,b;unsigned int x,y;serial_initial();a=b=0xaa55;x=y=0xaa55;printf("n a=%4x b=%4x x=%4x y=%4x",a,b,x,y);a=a<<1;b=b>>1;x=x<<1;y=y>>1;printf("n a=%4x b=%4x x=%4x y=%4x",a,b,x,y);print

33、f("n");printf("n");printf("That is all.n");while(1);執(zhí)行結(jié)果:a=aa55 b=aa55 x=aa55 y=aa55a=54aa b=d52a x=54aa y=552aThat is all.11. break 和 continue 語(yǔ)句的區(qū)別是什么答: break 語(yǔ)句可以跳出 switch 結(jié)構(gòu),使程序繼續(xù)執(zhí)行 switch 結(jié)構(gòu)后面的一個(gè)語(yǔ)句。 break 語(yǔ)句還可以從循環(huán)體中跳出循環(huán),提前結(jié)束循環(huán)而接著執(zhí)行循環(huán)結(jié)構(gòu) 下面的語(yǔ)句。continue 語(yǔ)句用在循環(huán)結(jié)構(gòu)中,用于結(jié)束

34、本次循環(huán),跳過(guò)循環(huán)體中 continue 下面尚未執(zhí)行的語(yǔ)句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。continue 語(yǔ)句和 break 語(yǔ)句的區(qū)別在于: continue 語(yǔ)句只是結(jié)束本次循環(huán)而不是終止整個(gè)循環(huán); break 語(yǔ)句則是結(jié)束循環(huán),不再進(jìn)行條件判斷。12. 用分支結(jié)構(gòu)編程實(shí)現(xiàn):輸入“ 1 ”顯示“ A”,輸入“ 2”顯示“ B',輸入“ 3”顯示“ C”輸入“ 4”顯示“ D',輸入“ 5”結(jié)束。參考程序:#include <>#include <>void main(void)輸入 3 個(gè)無(wú)符號(hào)的字符數(shù)據(jù),要求按由大到小的順序輸出。unsig

35、ned char x;SCON=0x52;參考程序:#include <>#include <>void main(void)unsigned char x,y,z,m;SCON=0x52; 用 3種循環(huán)結(jié)構(gòu)編寫(xiě)程序?qū)崿F(xiàn)輸出 1到 10的平方之和。參考程序 :(1) while 循環(huán)#include <> 對(duì)一個(gè)由 5 個(gè)元素組成的無(wú)符號(hào)字符數(shù)組按由小到大的順序進(jìn)行排序。參考程序 :#include <> 用指針實(shí)現(xiàn),輸入 3 個(gè)無(wú)符號(hào)字符數(shù)據(jù),按由大到小的順序輸出。參考程序 :#include <> 有 3 個(gè)學(xué)生,每個(gè)學(xué)生都包括學(xué)

36、號(hào)、姓名和成績(jī),要求找出成績(jī)最高的學(xué)生的姓名和成績(jī)。參考程序 :#include <> number);printf("input name:n");scanf("%s",);printf("input grade:n");scanf("%d",&p1i.grade);for (i=1;i<3;i+)if (p1i.grade>p1j.grade) j=i;printf(" 成績(jī)最高的學(xué)生是 :%s, 成績(jī)是 :%d",,p1j.g

37、rade);printf("n");while(1);第五章1單片機(jī) C 語(yǔ)言與匯編語(yǔ)言混合編程有哪幾種方式通常采用什么方式答:?jiǎn)纹瑱C(jī)C語(yǔ)言和匯編語(yǔ)言混合編程分為匯編中調(diào)用 C51函數(shù)和C51程序中引用匯編,通常使用的是在 C51程序中引用匯編。在 C51程序中使用匯編語(yǔ)言有兩種 情況:一種是匯編程序部分和 C51 程序部分為不同的模塊,或不同的文件,通常由 C51 程序調(diào)用匯編程序模塊的變量和函數(shù) (也可稱(chēng)為子程序或過(guò)程 ) ;另一種是嵌入式匯 編,即在 C51 程序中嵌入一段匯編語(yǔ)言程序。2簡(jiǎn)述 C51 程序調(diào)用匯編程序時(shí)如何實(shí)現(xiàn)參數(shù)傳遞。答:C51中調(diào)用匯編程序進(jìn)行參

38、數(shù)傳遞時(shí)都必須嚴(yán)格遵守C51函數(shù)的參數(shù)和返回值的相關(guān)約定。行參數(shù)傳遞的方式有兩種,一種是通過(guò)寄存器傳遞參數(shù),C51中不同類(lèi)型的實(shí)參會(huì)存入相應(yīng)的寄存器,在匯編中只需對(duì)相應(yīng)寄存器進(jìn)行操作,即可達(dá)到傳遞參數(shù)的目的;第二種是通過(guò)固定存儲(chǔ)區(qū)傳遞。3簡(jiǎn)述嵌入式匯編的實(shí)現(xiàn)方法。答:在 C51 程序中嵌入?yún)R編程序通常的處理方法如下。第一步:在C文件中以如下方式嵌入?yún)R編程序。第二步:在 Keil C51軟件的Project 窗口右擊嵌入?yún)R編程序的 C文件,在彈出的快捷菜單中選擇Options for .命令,選中右邊的 Generate Assembler SRCFile 和 Assemble SRC File

39、 復(fù)選框,使檢查框由灰色變成黑色 (有效) 狀態(tài)。加入到工程中,該文件必須作為工程的最后文件。第三步:根據(jù)選擇的編譯模式,把相應(yīng)的庫(kù)文件(如Small模式時(shí),是4. 簡(jiǎn)述C51中調(diào)用匯編程序的實(shí)現(xiàn)方法。答:編寫(xiě)為C51調(diào)用的匯編程序,參數(shù)須按規(guī)定的寄存器或存儲(chǔ)器傳送,程序格式有相應(yīng)的規(guī)則,這些規(guī)則比較繁瑣,為了便于處理,在實(shí)際中我們往往先用C51寫(xiě)出這個(gè)程序的主體,然后用SRC控制指令編譯產(chǎn)生asm文件,修改這個(gè)asm文件得到我們所要的匯編函數(shù)。處理過(guò)程具體如下。第一步:先用C語(yǔ)言程序編寫(xiě)出程序框架,如文件名為(注意參數(shù))。第二步:在 Keil C51 的Project 窗口中右擊該 C語(yǔ)言文

40、件,在彈出的快捷菜單中選擇Optio ns for . ,右邊的 Gen erate Assembler SRCFile 和Assemble SRCFile,使檢查框由灰色變成黑色(有效)狀態(tài);第三步:根據(jù)選擇的編譯模式,把相應(yīng)的庫(kù)文件(如Small模式時(shí),是KeilC51Lib加入工程中,該文件必須作為工程的最后文件。庫(kù)文件與編譯模式的關(guān)系如前面。第四步:編譯后將會(huì)產(chǎn)生一個(gè) SRC的文件,將這個(gè)文件擴(kuò)展名改為 ASM這樣就形成了可供 C51程序調(diào)用的匯編程序。隨后可在該文件的代碼段中加入所需的指令 代碼。第五步:將該匯編程序與調(diào)用它的主程序一起加到工程文件中,這時(shí)工程文件中不再需要原來(lái)的C語(yǔ)

41、言文件和庫(kù)文件,主程序只需要在程序開(kāi)始處用EXTERNA所調(diào)用的匯編程序中的函數(shù)作聲明,在主程序中就可調(diào)用匯編程序中的函數(shù)了。第六章1. 何為“準(zhǔn)雙向I/O接口”在MCS-51單片機(jī)的四個(gè)并口中,哪些是“準(zhǔn)雙向I/O接口”答:準(zhǔn)雙向I/O接口是能實(shí)現(xiàn)輸入輸出功能,但在使用時(shí)只能從輸入和輸出中選擇一個(gè)。MCS-51單片機(jī)的四個(gè)并口中P1、P2、P3是準(zhǔn)雙向I/O接口。2. 80C51單片機(jī)內(nèi)部有幾個(gè)定時(shí)/計(jì)數(shù)器它們由哪些功能寄存器組成怎樣實(shí)現(xiàn)定時(shí)功能和計(jì)數(shù)功能答:80C51單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,由THO,TLO,TH1,TL1,TMOD和TCO功能寄存器組成。通過(guò) TMOD

42、中的C/T位選擇對(duì)機(jī)器周期計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù) 功能,選擇對(duì)外部脈沖計(jì)數(shù)實(shí)現(xiàn)計(jì)數(shù)功能。3. 定時(shí)/計(jì)數(shù)器T0有幾種工作方式各自的特點(diǎn)是什么答:有四種工作方式,特點(diǎn)見(jiàn)下表:M1M0工作方式方式說(shuō)明00013位定時(shí)/計(jì)數(shù)器01116位定時(shí)/計(jì)數(shù)器1028位自動(dòng)重置定時(shí)/計(jì)數(shù)器113兩個(gè)8位定時(shí)/計(jì)數(shù)器(只有T0有)4. 定時(shí)/計(jì)數(shù)器的四種工作方式各自的計(jì)數(shù)范圍是多少如果要計(jì)10個(gè)單位,不同的方式初值應(yīng)為多少答:有四種方式。方式 0計(jì)數(shù)范圍:18192;方式1計(jì)數(shù)范圍:165536;方式2計(jì)數(shù)范圍:1256;方式3計(jì)數(shù)范圍:1256。如果計(jì)10個(gè)單位,方式 0初值為:8192-10=8182;方式1初值為:

43、65536-10=65526 ;方式2初值為:256-10=246 ;方式2初值為:256-10=246。5. 設(shè)振蕩頻率為12MHz如果用定時(shí)/計(jì)數(shù)器T0產(chǎn)生周期為100ms的方波,可以選擇哪幾種方式,其初值分別設(shè)為多少答:只能選擇方式1 ,初值為65536-50000=15536。6. 何為同步通信何為異步通信各自的特點(diǎn)是什么答:異步通信方式的特點(diǎn)是數(shù)據(jù)在線(xiàn)路上傳送時(shí)是以一個(gè)字符(字節(jié))為單位,未傳送時(shí)線(xiàn)路處于空閑狀態(tài),空閑線(xiàn)路約定為高電平“1 ”。特點(diǎn)是對(duì)發(fā)送時(shí)鐘和接收時(shí)鐘的要求相對(duì)不高,線(xiàn)路簡(jiǎn)單,但傳送速度較慢。同步通信方式的特點(diǎn)是數(shù)據(jù)在線(xiàn)路上傳送時(shí)以字符塊為單位,一次傳送多個(gè)字符,傳

44、送時(shí)須在前面加上一個(gè)或兩個(gè)同步字符,后面加上校驗(yàn)字符。特點(diǎn)是對(duì)發(fā)送時(shí)鐘 和接收時(shí)鐘要求較高,往往用同一個(gè)時(shí)鐘源控制,控制線(xiàn)路復(fù)雜,傳送速度快。7. 單工、半雙工和全雙工有什么區(qū)別答:?jiǎn)喂し绞街挥幸桓鶖?shù)據(jù)線(xiàn),信息只能單向傳送;半雙工方式也只有一根數(shù)據(jù)線(xiàn),但信息可以分時(shí)雙向傳送;全雙工方式有兩根數(shù)據(jù)線(xiàn),在同一個(gè)時(shí)刻能夠?qū)崿F(xiàn)數(shù) 據(jù)雙向傳送。8.設(shè)某異步通信接口,每幀信息格式為10位,當(dāng)接口每秒傳送1000個(gè)字符時(shí),其波特率為多少答:10000波特9. 串行口數(shù)據(jù)寄存器SBU F有什么特點(diǎn)答:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器合起用一個(gè)特殊功能寄存器SBUF(串行口數(shù)據(jù)寄存器),執(zhí)行MOV SBUF,A發(fā)

45、送時(shí)為發(fā)送數(shù)據(jù)寄存器,執(zhí)行MOV A, SBUF接收時(shí)為接收數(shù)據(jù)寄存器。10. MCS-51單片機(jī)串行口有幾種工作方式各自特點(diǎn)是什么答:有四種工作方式,分別是方式0、方式1、方式2和方式3。其中:方式0,稱(chēng)為同步移位寄存器方式,一般用于外接移位寄存器芯片擴(kuò)展I/O接口。方式1,稱(chēng)為8位的異步通信方式,通常用于雙機(jī)通信。方式2和方式3,稱(chēng)為9位的異步通信方式,通常用于多機(jī)通信。11. 說(shuō)明SM2在方式2和方式3對(duì)數(shù)據(jù)接收有何影響。答:通過(guò)SM2對(duì)方式2和方式3數(shù)據(jù)接收進(jìn)行控制,SM2=1,那么只有接收的第9位為“ 1”才接收有效。如SM2=Q接收的第9位無(wú)論為1還是0都接收有效。12. 怎樣來(lái)實(shí)

46、現(xiàn)利用串行口擴(kuò)展并行輸入 /輸出口答:利用串行口在方式 0時(shí),當(dāng)外接一個(gè)串入并出的移位寄存器,就可以擴(kuò)展并行輸出口;當(dāng)外接一個(gè)并入串出的移位寄存器時(shí),就可以擴(kuò)展并行輸入口。13. 什么是中斷、中斷允許和中斷屏蔽答:在計(jì)算機(jī)中,由于計(jì)算機(jī)內(nèi)外部的原因或軟硬件的原因,使CPU從當(dāng)前正在執(zhí)行的程序中暫停下來(lái),而自動(dòng)轉(zhuǎn)去執(zhí)行預(yù)先安排好的為處理該原因所對(duì)應(yīng)的服務(wù)程序。執(zhí)行完服務(wù)程序后,再返回被暫停的位置繼續(xù)執(zhí)行原來(lái)的程序,這個(gè)過(guò)程稱(chēng)為中斷,實(shí)現(xiàn)中斷的硬件系統(tǒng)和軟件系統(tǒng)稱(chēng)為中斷系統(tǒng)。中斷允許是允許中斷請(qǐng)求送 CPL產(chǎn)生中斷,中斷屏蔽是禁止中斷請(qǐng)求信號(hào)送CPU產(chǎn)生中斷。14. 8051有幾個(gè)中斷源中斷請(qǐng)求如

47、何提出答:MCS-51單片機(jī)提供5個(gè)硬件中斷源:兩個(gè)外部中斷源INT0 和 INT1 ,兩個(gè)定時(shí)/計(jì)數(shù)器T0和T1中斷;1個(gè)串行口中斷。外部中斷源 INT0 和 INT1 的中斷請(qǐng)求信號(hào)從外部引腳和輸入;兩個(gè)定時(shí) /計(jì)數(shù)器T0和T1的溢出中斷TF0和TF1定時(shí)/計(jì)數(shù)器T0(或T1)溢出時(shí)提出;串行 口中斷由發(fā)送中斷標(biāo)志 T1和接收中斷標(biāo)志 R1產(chǎn)生。15. 8051的中斷源中,哪些中斷請(qǐng)求信號(hào)在中斷響應(yīng)時(shí)可以自動(dòng)清除哪些不能自動(dòng)清除應(yīng)如何處理答:工作在邊沿觸發(fā)方式下的兩個(gè)外部中斷源和兩個(gè)定時(shí)/計(jì)數(shù)器中斷中斷請(qǐng)求信號(hào)在中斷響應(yīng)時(shí)可以自動(dòng)清除,工作在電平觸發(fā)方式下的兩個(gè)外部中斷源和串行口中斷不能自

48、動(dòng)清除。工作在電平觸發(fā)方式下的兩個(gè)外部中斷源的中斷請(qǐng)求信號(hào)通過(guò)外加硬件和加軟件的方式清除,串行口中斷標(biāo)志T1和標(biāo)志R1完全由軟件清除。16. 8051的中斷優(yōu)先級(jí)有幾級(jí)在形成中斷嵌套時(shí)各級(jí)有何規(guī)定答:8051的中斷優(yōu)先級(jí)有兩級(jí);形成中斷嵌套時(shí)規(guī)定(1)正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷,直到該中斷服務(wù)程序結(jié)束,返回了主程序且執(zhí)行了主程序中的一條指令后,CPU才響應(yīng)新的中斷請(qǐng)求。(2) 正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù)程序能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,實(shí)現(xiàn)兩級(jí)中斷嵌套。(3) CPU同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),首先響應(yīng)優(yōu)先級(jí)最高的中斷請(qǐng)求。17. 設(shè)8051的P1中各位接發(fā)光二極管

49、,分別用匯編語(yǔ)言和C語(yǔ)言編程實(shí)現(xiàn)逐個(gè)輪流點(diǎn)亮二極管,并循環(huán)顯示。參考程序:ORG 0000HLJMP MAINORG 0100H;主程序MAIN MOV A,#01HCALL DELAYRL ASJMP LOOPSJMP $DELAY: MOV R7,#0FFHDJNZ R7 ,$RETENDC語(yǔ)言程序:#inelude <>8051系統(tǒng)中,已知振蕩頻率為 12MHz用定時(shí)/計(jì)數(shù)器T0,實(shí)現(xiàn)從產(chǎn)生周期為 2ms的方波。要求分別用匯編語(yǔ)言和C語(yǔ)言進(jìn)行編程。解:分析:從輸出周期為 2ms的方波,只須每1ms取反一次則可。當(dāng)系統(tǒng)時(shí)鐘為12MHZ定時(shí)/計(jì)數(shù)器T0工作于方式1時(shí),最大的定時(shí)時(shí)

50、間為,滿(mǎn)足 1ms的定時(shí)要求,方式控制字應(yīng)設(shè)定為 00000001B(01H)。定時(shí) 1ms 計(jì)數(shù)值 N為 1000,初值 X=65536-1000=64536,則 TH0=FCH TL0=18H。采用中斷處理方式:程序如下:ORG 0000HLJMP MAINORG 000BH;中斷處理程序MOV TH0, #0FCHMOV TL0, #18HCPLRETIORG 0100H;主程序MAIN: MOV TMO,D #01HMOV TH0, #0FCHMOV TL0, #18HSETB EASETB ET0SETB TR0SJMP $ENDC語(yǔ)言程序:#include <>8051

51、系統(tǒng)中,已知振蕩頻率為 12MHz用定時(shí)/計(jì)數(shù)器T1,實(shí)現(xiàn)從產(chǎn)生周期為 2s的方波。要求分別用匯編語(yǔ)言和C語(yǔ)言進(jìn)行編程。解:從產(chǎn)生2s的方波,應(yīng)產(chǎn)生500ms的周期性的定時(shí),定時(shí)到對(duì)取反就可實(shí)現(xiàn)。由于定時(shí)時(shí)間較長(zhǎng),一個(gè)定時(shí)/計(jì)數(shù)器T1不能直接實(shí)現(xiàn),采用定時(shí)/計(jì)數(shù)器T1產(chǎn)生周期性為10ms的定時(shí),然后用一個(gè)寄存器 R2對(duì)10ms計(jì)數(shù)100次來(lái)實(shí)現(xiàn)。系統(tǒng)時(shí)鐘為12MHZ定時(shí)/計(jì)數(shù)器T1定時(shí)10ms,計(jì)數(shù)值N為10000,只能選方式1,方式控制字為 00010000B( 10H),初值 X:X=65536-10000=55536=000B則 TH1=B=D8H, TL1=B=F0H。定時(shí)/計(jì)數(shù)器T1

52、采用中斷處理方式。匯編程序:ORG 0000HLJMP MAINORG 001BHLJMP INTT1ORG 0100HMAIN:MOV TMO,D #10HMOV TH1,#0D8HMOV TL1 ,#0F0HMOV R2, #00HSETB EASETB ET1SETB TR1SJMP $INTT1 :MOV TH1,#0D8HMOV TL1 ,#0F0HINC R2CJNE R2,#64H, NEXTCPLMOV R2, #00HNEXT: RETIENDC語(yǔ)言程序:20ms的矩形波。要求分別用匯編語(yǔ)言2和 3,則對(duì)置 0來(lái)實(shí)現(xiàn)。用定時(shí) /計(jì)數(shù)器#inelude <> 805

53、1系統(tǒng)中,已知振蕩頻率為12MHz用定時(shí)/計(jì)數(shù)器T1,實(shí)現(xiàn)從產(chǎn)生高電平寬度為 10ms,低電平寬度為和 C 語(yǔ)言進(jìn)行編程。解:本題處理方式有多種,這里采用對(duì)定時(shí)/計(jì)數(shù)器T1形成10ms周期定時(shí),用R2對(duì)10ms計(jì)數(shù),當(dāng)計(jì)到1,則對(duì)置1,當(dāng)計(jì)到T1形成10ms周期定時(shí)見(jiàn)上題。程序如下:LJMP MAINORG 001BHMAIN:INTT1:NEXT: CJNENEXT1:CJNEEXIT: RETILJMP INTT1ORG 0100HMOV TMO,D #10HMOV TH1,#0D8HMOV TL1,#0F0HMOV R2, #00HSETB EASETB ET1SETB TR1SJMP

54、$MOV TH1,#0D8HMOV TL1,#0F0HINC R2CJNE R2,#01H, NEXTSETBSJMP EXIT,#02H,NEXT1CLRSJMP EXIT,#03H,NEXTSETBMOV R2, #00ENDC語(yǔ)言程序:#include <>解:用 8051 單片機(jī)的串行口擴(kuò)展并行 I/O 接口,控制 16 個(gè)發(fā)光二極管依次發(fā)光,畫(huà)出電路圖,用匯編語(yǔ)言和C語(yǔ)言分別編寫(xiě)相應(yīng)的程序。采用在串口連接兩個(gè) CD4094來(lái)實(shí)現(xiàn),電路圖如下:程序如下;ORG 0000HLJMP MAINORG 0100HMAIN MOV SCON #00HMOV R4, #10HMOV R3, #00HMOV R2 #01HCLRSTART MOV A R3MOV SBUF ALOOP JNB TI , LOOPMOV A, R2MOV SBUF ALOOP1 JNB TI , LOOP1SETBACALL DELAYCLR TICLR CMOV A, R2RLC AMOV R2 AMOV A, R3RLC AMOV R3, ACLRDJNZ R4, START1SJMP MAINLOOP2 MOV R6, #OFFHL

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論