版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章習(xí)題參考答案2-1 51單片機(jī)內(nèi)部包含哪些主要邏輯功能部件?(1)一個(gè)8位微處理器cpu。(2)256b數(shù)據(jù)存儲(chǔ)器ram和特殊功能寄存器sfr。(3)4k程序存儲(chǔ)器rom。(4)兩個(gè)定時(shí)/計(jì)數(shù)器,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可用作定時(shí)器。(5)四個(gè)8位可編程的i/o(輸入/輸出)并行端口,每個(gè)端口既可做輸入,也可做輸出。(6)一個(gè)串行端口,用于數(shù)據(jù)的串行通信(7)1個(gè)可管理5個(gè)中斷源、2級(jí)優(yōu)先嵌套的中斷管理系統(tǒng);。(8)片內(nèi)振蕩器及時(shí)鐘發(fā)生器。2-2 mcs-51引腳中有多少i/o總線?它們和單片機(jī)對(duì)外的地址總線和數(shù)據(jù)總線有什么關(guān)系?地址總線和數(shù)據(jù)總線各是幾位?32條i/o口線,分為4組,
2、每組8條,稱為p0p3口,p0口有8位數(shù)據(jù)總線和地址總線的低8位,p2口有地址總線的高8位,因此單片機(jī)的地址總線位是16位,尋址空間為64kb,數(shù)據(jù)總線位寬為8位。同時(shí)在p3口還r/w控制信號(hào)線。i/o口線的總數(shù)與地址總線和數(shù)據(jù)總線沒有多大聯(lián)系,只是說地址總線和數(shù)據(jù)總線需要占用一定的端口。像at89c2051單片機(jī),只有15條i/o口線(p3.6沒有引出,作為內(nèi)部使用),分為p1口(8位)和p3口(7位),沒有所謂的地址總線和數(shù)據(jù)總線,并且p1口并不完整,因?yàn)閜1.0和p1.1被電壓比較器占用了。2-3 51單片機(jī)的 ea, ale,psen信號(hào)各自功能是什么? ea:為片外程序存儲(chǔ)器選用端,
3、該引腳有效(低電平)時(shí),只選用片外程序存儲(chǔ)器,否則單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲(chǔ)器。ale:地址鎖存有效信號(hào)輸出在訪問片外程序存儲(chǔ)器期間,ale以每機(jī)器周期兩次進(jìn)行信號(hào)輸出,其下降沿用于控制鎖存p0輸出的低8位地址;在不訪問片外程序存儲(chǔ)器期間,ale端仍以上述頻率(振蕩頻率fosc的1/6)出現(xiàn),可作為對(duì)外輸出的時(shí)鐘脈沖或用于定時(shí)目的.psen:片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。2-4 51系列單片機(jī)有哪些信號(hào)需要芯片引腳的第二功能方式提供?p3.0 :pxd 串行口輸入端 p3.1 :txd串行口輸出端 p3.2 :int0 外部中斷0請(qǐng)求輸入端,低電平有效 p3.3 :int
4、1 外部中斷1請(qǐng)求輸入端,低電平有效 p3.4 :t0 定時(shí)/計(jì)數(shù)器 0技術(shù)脈沖輸入端 p3.5 :t1 定時(shí)/計(jì)數(shù)器 1技術(shù)脈沖輸入端 p3.6 :wr 外部數(shù)據(jù)存數(shù)器寫選通信信號(hào)輸出端,低電平有效 p3.7 :rd 外部數(shù)據(jù)存數(shù)器讀選通信信號(hào)輸出端,低電平有效2-5 51系列單片機(jī)的程序狀態(tài)字psw中存放什么信息?其中的ov標(biāo)志位在什么情況下被置位?置位是表示什么意思?psw是一個(gè)8位標(biāo)志寄存器,它保存指令執(zhí)行結(jié)果的特征信息,以供程序查詢和判別。1)做加法時(shí),最高位,次高位之一有進(jìn)位則ov被置位 2)做減法時(shí),最高位,次高位之一借位則ov被置位 3)執(zhí)行乘法指令mul ab,積大于255,
5、ov=1 4)執(zhí)行除法指令div ab,如果b中所放除數(shù)為0 ,ov=10v=1,置位反映運(yùn)算結(jié)果超出了累加器的數(shù)值范圍2-9 片內(nèi)ram低128單元?jiǎng)澐譃槟膸讉€(gè)區(qū)域?應(yīng)用中怎么樣合理有效的使用?工作寄存器區(qū),位尋址區(qū),數(shù)據(jù)緩沖區(qū)工作寄存器區(qū)用于臨時(shí)寄存8位信息,分成4組,每組有8個(gè)寄存器,每次只用1組, 其他各組不工作位尋址區(qū)(20h2fh),這16個(gè)單元的每一位都賦予了一個(gè)位地址,位地址范圍為00h7fh,位尋址區(qū)的每一位都可能當(dāng)作軟件觸發(fā)器,由程序直接進(jìn)行位處理。由于工作寄存器區(qū),位尋址區(qū),數(shù)據(jù)緩沖區(qū)統(tǒng)一編址,使用同樣的指令訪問,因此這三個(gè) 區(qū)的單眼既有自己獨(dú)特的功能,又可統(tǒng)一調(diào)度使用,
6、前兩個(gè)已未使用的單元也可作為一般的用戶ram單元。2-10 51系列單片機(jī)的堆棧與通用微機(jī)中的堆棧有何異同?在程序設(shè)計(jì)時(shí),為什么要對(duì)堆棧指針sp重新賦值?堆棧是按先進(jìn)后出或后進(jìn)先出的遠(yuǎn)側(cè)進(jìn)行讀/寫的特殊ram區(qū)域 51單片機(jī)的堆棧區(qū)時(shí)不固定的,可設(shè)置在內(nèi)部ram的任意區(qū)域內(nèi)當(dāng)數(shù)據(jù)壓入堆棧時(shí),sp的內(nèi)容自動(dòng)加1,作為本次進(jìn)棧的指針,然后再存取數(shù)據(jù)sp的值隨著數(shù)據(jù)的存入而增加,當(dāng)數(shù)據(jù)從堆棧彈出之后,sp的值隨之減少,復(fù)位時(shí),sp的初值為07h,堆棧實(shí)際上從08h開始堆放信息,即堆棧初始位置位于工作寄存器區(qū)域內(nèi),所以要重新賦值2-13 什么是時(shí)鐘周期,機(jī)器中期和指令周期?當(dāng)晶振蕩頻率為6mhz時(shí),一
7、條雙周期指令的執(zhí)行時(shí)間是多少?時(shí)鐘周期:cpu始終脈沖的重復(fù)周期(2個(gè)振蕩周期) 機(jī)器周期:一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期 指令周期:執(zhí)行一條指令所占用的全部時(shí)間 12mhz時(shí),一條雙周期指令周期時(shí)間為2us 6mhz時(shí),一條雙周期指令周期時(shí)間為1us2-14 定時(shí)器/計(jì)數(shù)器定時(shí)與計(jì)數(shù)的內(nèi)部工作有何異同?定時(shí)工作模式和技術(shù)工作模式的工作原理相同,只是計(jì)數(shù)脈沖來源有所不同:處于計(jì)數(shù)器工作模式時(shí),加法計(jì)數(shù)器對(duì)芯片端子t0(p3.4)或t1(p3.5)上的輸入脈沖計(jì)數(shù);處于定時(shí)器工作模式時(shí),加法計(jì)數(shù)器對(duì)內(nèi)部機(jī)器周期脈沖計(jì)數(shù)。 2-15 定時(shí)器/計(jì)數(shù)器有四種工作方式,它們的定時(shí)與計(jì)數(shù)范圍各是多少?使用中
8、怎樣選擇工作方式?工作方式0:定時(shí)范圍:18192us;計(jì)數(shù)值范圍:18192 工作方式1:定時(shí)范圍:165536us;計(jì)數(shù)值范圍:165536 工作方式2:定時(shí)范圍:1256us;計(jì)數(shù)值范圍:1256 工作方式3:定時(shí)范圍:1256us;計(jì)數(shù)值范圍:1256通過tmod來選擇,低4位用于定時(shí)器/計(jì)數(shù)器0,高4位用于定時(shí)器/計(jì)數(shù)器1m1,m0:定時(shí)器計(jì)數(shù)器工作方式選擇位2-16 定時(shí)器/計(jì)數(shù)器的門控方式與非門控方式有何不同?使用中怎么樣選擇哪種工作方式?初值應(yīng)設(shè)置為多少(十六進(jìn)制)?gate:門控位,用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。gate=1,則定時(shí)器/計(jì)數(shù)器0的啟
9、動(dòng)受芯片引腳int0(p3.2)控制,定時(shí)器/計(jì)數(shù)器1的啟動(dòng)受芯片引腳int1(p3.3)控制gate=0,則定時(shí)器/計(jì)數(shù)器的啟動(dòng)與引腳int0、int1無關(guān),一般情況下gate=02-18 51單片機(jī)的五個(gè)中斷源中哪幾個(gè)中斷源在cpu響應(yīng)中斷后可自動(dòng)撤除中斷請(qǐng)求,哪幾個(gè)不能撤除中斷請(qǐng)求?cpu不能能撤除中斷請(qǐng)求的中斷源時(shí),用戶應(yīng)采取什么措施?可撤除:計(jì)數(shù)器t0t1的溢出中斷不可撤除:觸發(fā)的外部中斷;發(fā)送接收中斷1)觸發(fā)的外部中斷:由于cpu對(duì)intx引腳沒有控制作用,也沒有相應(yīng)的中斷請(qǐng)求標(biāo)志位,因此需要外接電路來撤除中斷請(qǐng)求信號(hào)。 2)串行口的發(fā)送/接收中斷:當(dāng)串行口發(fā)送完或接收完一幀信息時(shí)
10、,scon的ti,ri向cpu申請(qǐng)中斷,響應(yīng)中斷后,接口應(yīng)計(jì)算呢不能自動(dòng)將ti或rt清0,用戶需采用軟件方法將ti或rt清0,來撤除中斷請(qǐng)求信號(hào)2-21 使單片機(jī)復(fù)位有幾種方式?復(fù)位后單片機(jī)的初始狀態(tài)如何?上電復(fù)位,按鈕復(fù)位(pc)=0000h:程序的初始入口地址為0000h (psw) =00h:由于rs1(psw.4)=0,rs0(psw.3)=0,復(fù)位后單片機(jī)選擇工作寄存器0組 (sp)=07h:復(fù)位后堆棧早起片內(nèi)ram的08h單元處建立 th1、tl0、th0、tl0:他們的內(nèi)容為00h,定時(shí)器/計(jì)數(shù)器的初值為0 (tmod)=00h:復(fù)位后定時(shí)器/計(jì)數(shù)器t0、t1定時(shí)器方式0,非門控
11、方式 (tcon)=00h:復(fù)位后定時(shí)器/計(jì)數(shù)器t0、t1停止工作,外部中斷0、1為電平觸發(fā)方式 (t2con) =00h:復(fù)位后定時(shí)器/計(jì)數(shù)器t2停止工作 (scon)=00h:復(fù)位后串行口工作在移位寄存器方式,且禁止串行口接收 (ie)=00h:復(fù)位后屏蔽所有中斷 (ip)=00h:復(fù)位后所有中斷源都直指為低優(yōu)先級(jí) p0p3:鎖存器都是全1狀態(tài),說明復(fù)位后4個(gè)并行接口設(shè)置為輸入口2-23 51單片機(jī)串行口有幾種工作方式?這幾種工作方式有何不同?各用于什么場(chǎng)合?有4種工作方式:方式0、方式1、方式2、方式3工作方式:方式0移位寄存器方式;方式1、方式2、方式3都是異步通信方式場(chǎng)合:方式0不用
12、于通信,而是通過外接移位寄存器芯片實(shí)現(xiàn)擴(kuò)展i/o口的功能;方式1用于雙機(jī)通信;方式2、3主要用于多機(jī)通信,也可用于雙機(jī)通信第三章參考答案 3-1 何謂尋址方式?51單片機(jī)有哪幾種尋址方式?這幾種方式是如何尋址的?所謂尋址方式,就是cpu執(zhí)行那個(gè)一條指令時(shí)怎樣找到該指令所要求的操作數(shù)的方式。1)立即尋址:操作數(shù)直接出現(xiàn)在指令中,緊跟在操作碼的后面,作為指令的一部分與操作碼一起存放在程序存儲(chǔ)器中,可以立即得到并執(zhí)行,例如:mova,#30h指令中30h就是立即數(shù)。這一條指令的功能是執(zhí)行將立即數(shù)30h傳送到累加器a中的操作。2) 寄存器尋址:操作數(shù)放在寄存器中,在指令中直接以寄存器的名字來表示操作數(shù)
13、的地址。例如mov a,r0,即將r0寄存器的內(nèi)容送到累加器a中。3)寄存器間接尋址方式:由指令指出某一寄存器的內(nèi)容作為操作數(shù)地址的尋址方法,例如:mov a,r1,將以工作寄存器r1中的內(nèi)容為地址的片內(nèi)ram單元的數(shù)據(jù)傳送到a中去。4)直接尋址: 指令中直接給出操作數(shù)所在的存儲(chǔ)器地址,以供取數(shù)或存數(shù)的尋址方式稱為 直接尋址。例如:mov a,40h指令中的源操作數(shù)就是直接尋址,40h為操作數(shù)的地址。該指令的功能是把片內(nèi)ram地址為40h單元的內(nèi)容送到a中5)變址尋址:基地址寄存器加變址寄存器間接尋址6)相對(duì)尋址:相對(duì)尋址是以當(dāng)前程序計(jì)數(shù)器pc值加上指令中給出的偏移量rel,而構(gòu)成實(shí)際操作數(shù)地
14、址的尋址方法。它用于訪問程序存儲(chǔ)器,常出現(xiàn)在相對(duì)轉(zhuǎn)移指令中。7)位尋址:位尋址是在位操作指令中直接給出位操作數(shù)的地址,可以對(duì)片內(nèi)ram中的128 位和特殊功能寄存器sfr中的93位進(jìn)行尋址。3-2 訪問片內(nèi)、片外程序存儲(chǔ)器有哪幾種尋址方式?采用基址寄存器加變址寄存器間接尋址方式movc a,a+dptr movc a,a+pc3-3 訪問片內(nèi)ram單元和特殊功能寄存器各有哪幾種尋址方式?訪問片內(nèi)ram有:立即尋址,寄存器尋址,寄存器間接尋址,直接尋址 特殊功能有:直接尋址3-4訪問片外ram單元和特殊功能寄存器,各有哪幾種尋址方式?l 訪問片內(nèi)ram有:寄存器間接尋址l 特殊功能有:直接尋址3
15、-5若要完成以下的數(shù)據(jù)傳送,應(yīng)如何用51的指令來完成。(1)r0的內(nèi)容送到r1中。mov a, r1 mov r0,a(2)外部ram的20h單元內(nèi)容送r0,送內(nèi)部ram的20h單元。mov dptr,#0020h movx a,dptr mov r0,a(3)外部ram的2000h單元內(nèi)容送r0,送內(nèi)部ram的20h單元,送外部ram的20h單元。mov dptr,#2000h mov r0,#20h movx a,dptr movx r0,amov r0,a(4)rom的2000h單元內(nèi)容送r0,送內(nèi)部ram的20h單元,送外部ram的 20h單元。mov a, #00hmov dptr,
16、#2000hmov r0,#20h movc a,a+dptrmov r0,amovx r0,a mov r0,a 3-6 試比較下列每組兩條指令的區(qū)別1) mov a,#24與mov a,24h2) mov a,r0與mov a,r03) mov a,r0與movx a,r04) mov a,r1與movx a,dptr1)前者為立即尋址,將立即數(shù)24h單元的內(nèi)容送到a中;后者為直接尋址,將24h單元的片內(nèi)ram內(nèi)容送到a中。 2)前者為直接尋址,將r0單元的內(nèi)容送到a中,后者為寄存器間接尋址,將r0中的內(nèi)容為地址的片內(nèi)ram單元的數(shù)據(jù)送到a中。 3)前者為寄存器間接尋址,將r0中的內(nèi)容為地
17、址的片內(nèi)ram單元的數(shù)據(jù)送到a;后者為寄存器間接尋址,將r0中的內(nèi)容為地址的片外ram單元的數(shù)據(jù)送到a中。4)用r1做地址指針可尋址片內(nèi)ram的256個(gè)單元,但能訪問sfr塊,也可8位地址訪問片外ram的低256個(gè)地址單元(00ffh);用dptr做地址指針,用于訪問片外ram的64kb范圍(0000ffffh)(16位)。3-7已知(a)= 7ah,( b)= 02h,( r0)= 30h,( 30h)= a5h,( psw)=80h,寫出以下各條指令執(zhí)行后a和psw的內(nèi)容。(1)xch a, r0 (a)=30h,(psw)=00h, (r0)= 7ah,(2)xch a, 30h (a)
18、=a5h,(psw)=00h(3)xch a, r0 (a)=a5h,(psw)=00h(4)xchd a, r0 (a)=75h,(psw)=01h(5)swap a (a)=a7h,(psw)=01h(6)add a, r0 (a)=aah,(psw)=00h(7)add a, 30h (a)=1fh,(psw)=81h(8)add a, #30h (a)=aah,(psw)=00h(9)addc a, 30h (a)=20h,(psw)=01h (10)subb a, 30h (a)=d5h,(psw)=85h(11)subb a, #30h (a)=4ah,(psw)=01h(12)i
19、nc r0 (a)=7ah,(psw)=80h;(13)mul ab (14)div ab 3-8 已知(a)=02h,(r1)=7fh,(dptr)=2ffch,(sp)=30h,片內(nèi)ram(7fh)=70h,片外ram(2ffeh)=11h,rom(2ffeh)=64h,試分別寫出以下指令執(zhí)行后目標(biāo)單元的結(jié)果。1) movx dptr,a2) movx a,r13) movc a,a+dptr4) push acc1)(2ffeh)=02h 2)(a)=70h 3)(a)=(02h+2ffch)=(2ffeh)=64h 4)(31h)=02h 3-9 da a指令有什么作用?怎樣使用?l
20、這條指令是進(jìn)行bcd碼運(yùn)算時(shí),跟在add或addc指令之后,將相加后存放在累加器中的結(jié)果進(jìn)行修正。修正的條件和方法為:若(a03)9或(ac)=1,則(a03)+06h(a03);若(a47)9或(cy)=1,則(a47)+06h(a47)。若以上二條同時(shí)發(fā)生,或高4位雖等于9 ,但低4位修正后有進(jìn)位,則應(yīng)加66h修正。3-10 設(shè)(a)=83h,(r0)=17h,(17h)=34h,分析當(dāng)執(zhí)行下面的每條指令后目標(biāo)單元的內(nèi)容,及4條指令組成的程序段執(zhí)行后a的內(nèi)容是什么?anl a,#17h ;與 orl 17h,a ;或 xrl a,r0 ;異或 cpl a ;取反anl a,#17h 100
21、00011與00010111 = 0000 0011 orl 17h,a 00110100或00000011 = 0011 0111xrl a,r0 00110111異或 0000 0011 = 0011 0100cpl a a 1100 1000 cbh3-11 請(qǐng)寫出達(dá)到下列要求的邏輯操作的指令,要求不得改變未涉及位的內(nèi)容1) 使累加器a的低位置12) 清累加器a的高4位3) 使a.2和a.3置14) 清除a.3、a.4、a.5、a.6 setb acc.1;anl a,#0fh;orl a,#00001100banl a,#10000111b3-12 指令ljimp addr16與ajm
22、p addr11的區(qū)別是什么?l ljimp addr16是長(zhǎng)轉(zhuǎn)移, lcall的作用就是將addr16直接賦給pcl ajmp addr11,在當(dāng)前pc的2kb范圍跳轉(zhuǎn)(因?yàn)閍ddr11就是2kb), 即pc高五位不變,低十一位等于addr11。 3-13試說明指令cjne r1, #7ah, 10h的作用。若本條指令地址為2500h,其轉(zhuǎn)移地址是多少?當(dāng)前地址 2500h。執(zhí)行該指令后pc為2503h,加上10h后,目標(biāo)地址是2513h。3-14下面執(zhí)行后(sp)=42h, (a) = 40h, (b) =40h ,并解釋每條指令的作用。 org 2000h ;起始地址為2000h mov
23、 sp,#40h ;(sp)=40h mov a,#30h ;(a)=30h lcall 2500h ;調(diào)用2500h子程序 add a,#10h ;(a)(a)+10,(a)=40h mov b,a ;(b)=40hhere:sjmp here org 2500h ;起始地址為2500h mov dptr,#2009h ;(dptr)=2009h push dpl ;(sp)=40h+1=41h push dph ; (sp)=41h+1=42hret ;返回3-15已知p1.7= 1, a.0= 0, c= 1, first=1000h, second=1020h,試寫出下列指令的執(zhí)行結(jié)果
24、。(1)mov 26h, c 1(2)cpl a.0 1(3)clr p1.7 0(4)orl c, /p1.7 1(5)first: jc second (6)first: jnb a.0, second (7)second: jbc p1.7, first 3-16經(jīng)匯編后,下列各條語句標(biāo)號(hào)將是什么值?org 2000h table: ds 5 word: db 15, 20, 25, 30 (2005h)=15,fang: equ 1000h fang=1000hbegin: mov a, r0 3-17下面程序段經(jīng)匯編后,從2000h開始的各有關(guān)存儲(chǔ)器單元的內(nèi)容是什么?org 2000
25、h tab: db 10h, 20h (2000h)=10h,(2001h)=20hdw 2100h,23h (2002h)=21h,(2003h)=00h,(2004h)=00h,(2005h)=23hdw tab (2006h)=20h,(2007h)=00hdb work (2008h)=57h等3-18 設(shè)fosc=12mhz,定時(shí)器/計(jì)數(shù)器0的初始化程序和中斷服務(wù)程序如下:mov th0,#0dhmov tl0,#0d0hmov tmod,#01hsetb tr0 : ;中斷服務(wù)程序org 000bhmov th0,#0dhmov tl0,#0d0h :reti問:1)該定時(shí)器/計(jì)數(shù)
26、器工作于什么方式? 2)相應(yīng)的定時(shí)時(shí)間或計(jì)數(shù)值是多少? 3)為什么在中斷服務(wù)程序中藥重置定時(shí)器/計(jì)數(shù)器的初值?1)方式1 2)定時(shí)時(shí)間為:fosc=12mhz tcy=1us t=n*tcy =(65536-x)*tcy 定時(shí)范圍:165536計(jì)數(shù)值為:n=216 -x=65536-x 計(jì)數(shù)范圍為:1655363) 定時(shí)器t0的溢出對(duì)外無脈沖信號(hào),重置定時(shí)器/計(jì)數(shù)器的初值可以再形成計(jì)數(shù)脈沖3-19用位操作指令,實(shí)現(xiàn)下列邏輯操作。(1)p1.7 = a.0 (b.0p2.1)/p3.2 mov c, b.0orl c, p2.1anl c, acc.7orl c, /p3.2mov p1.7,
27、c(2)psw.5 = p1.3/ a.2b.5/p1.1 mov c, p1.3 anl c, /acc.2 mov p1.0, c mov c, b.5 anl c, /p1.1 orl c, p1.0 mov psw.5, c3-20試編寫一段程序,將片內(nèi)ram的20、21h、22h連續(xù)三個(gè)單元的內(nèi)容依次存入 2fh、2eh和2dh單元。mov 2fh, 20hmov 2eh, 21hmov 2dh, 22h3-21試編寫程序完成將片外數(shù)據(jù)存儲(chǔ)器地址為1000h1030h的數(shù)據(jù)塊,全部搬遷到片內(nèi)ram的30h60h中,并將源數(shù)據(jù)塊區(qū)全部清零。mov r1,#30hmov r0,#30hm
28、ov dptr,#1000hloop:mov a,dptrmovx r0,ainc r0inc dptrdjnz r1,loop3-22設(shè)有100個(gè)有符號(hào)數(shù),連續(xù)存放在以2000h為首地址的存儲(chǔ)區(qū)中,試編程統(tǒng)計(jì)其中正數(shù)、負(fù)數(shù)、零的個(gè)數(shù)。zero equ 20h ;零的統(tǒng)計(jì) negetive equ 21h ;負(fù)數(shù)的統(tǒng)計(jì) positive equ 22h ;正數(shù)的統(tǒng)計(jì) count equ 100 ;比較個(gè)數(shù) org 0000h ljmp main org 0040h mov zero,#0 mov negetive,#0 mov positive,#0 mov r2,#0 mov dptr,#
29、2000h loop: movx a,dptr cjne a,#0,nonzero inc zero ajmp next nonzero: jc neg inc positive ajmp next neg: inc negetive next: inc dptr inc r2 cjne r2,#count,loop sjmp $ 3-23 編寫一個(gè)延時(shí)1ms的子程序time1ms:mov r6, #2time1:mov r7, #248djnz r7, $ ;延時(shí)498usdjnz r6, time1 ;內(nèi)重循環(huán)為500 us;運(yùn)行兩次為1ms, 共1.002msret 3-24試編寫一段程
30、序,將片內(nèi)30h32h和33h35h中的兩個(gè)3字節(jié)壓縮bcd碼十進(jìn)制數(shù)相加,將結(jié)果以單字節(jié)bcd碼形式寫到外部ram的1000h1005h單元。clr cmov r7,#3mov dptr,#1000hmov r0,#30hmov r1,#33hloop:mov a,r0anl a,#0fhmov r2,amov a,r1anl a,#0fhaddc a,r2da amovx dptr,ainc dptrmov a,r0swap aanl a,#0fhmov r2,amov a,r1swap aanl a,#0fhaddc a,r2da amovx dptr,ainc r0inc r1inc
31、dptrdjnz r7,loop3-25 51單片機(jī)從串行口發(fā)送緩沖區(qū)首址為30h的10個(gè)ascii碼字符,最高位用于奇偶校驗(yàn),采用偶校驗(yàn)方式,要求發(fā)送的波特率為2400波特,時(shí)鐘頻率osc=12mhz,試編寫串行口發(fā)送子程序。單片機(jī)采用12 mhz晶振;設(shè)串行口工作于方式1;定時(shí)器/計(jì)數(shù)器t1用作波特率發(fā)生器,工作于方式2;pcon中的smod位為1;發(fā)送的波特率要求為2400。 定時(shí)器/計(jì)數(shù)器t1初值計(jì)算: 根據(jù)公式 波特率=2smod溢出率/32有溢出率=240016=38 400溢出周期=1/溢出率=26 s (此為定時(shí)器/計(jì)數(shù)器的定時(shí)值)定時(shí)器初值=256-26=230=e6h 根據(jù)
32、要求確定定時(shí)器/計(jì)數(shù)器的tmod中的方式控制字為20h,串行口scon中的控制字為40h,pcon控制字為80h。則相應(yīng)的發(fā)送程序如下:tstart:mov tmod,#20h ;置定時(shí)器/計(jì)數(shù)器t1工作于方式2定時(shí) mov pcon, #80h mov tl1,#0e6h ;定時(shí)器/計(jì)數(shù)器t1置初值 mov th1,#e6h ;定時(shí)器/計(jì)數(shù)器t1置重裝數(shù) mov scon,#40h ;置串行口工作于方式1 mov r0,#30h ;r0作地址指針,指向數(shù)據(jù)塊首址 mov r7,#10 ;r7作循環(huán)計(jì)數(shù)器,置以發(fā)送=字節(jié)數(shù) setb tr1 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器t1loop: mov a,r0
33、 ;取待發(fā)送的一個(gè)字節(jié) mov c,p ;取奇偶標(biāo)志,奇為1,偶為0 mov a.7,c ;給發(fā)送的ascii碼最高位加偶校驗(yàn)位 mov sbuf,a ;啟動(dòng)串行口發(fā)送 wait:jnb ti,wait ;等待發(fā)送完畢 clr ti ;清ti標(biāo)志,為下一個(gè)字節(jié)發(fā)送作準(zhǔn)備 inc r0 ;指向數(shù)據(jù)塊下一個(gè)待發(fā)送字節(jié)的地址 djinz r7,loop ;循環(huán)發(fā)送,直到數(shù)據(jù)塊發(fā)送完畢 第四章 參考答案4-1)何謂單片機(jī)的最小系統(tǒng)?所謂最小系統(tǒng),是指一個(gè)真正可用的單片機(jī)最小配置系統(tǒng)。對(duì)于片內(nèi)帶有程序存儲(chǔ)器的單片機(jī),只要在芯片上對(duì)外接時(shí)鐘電路和復(fù)位電路就能達(dá)到真正可用,就是最小系統(tǒng)。對(duì)于片外不帶有程序存
34、儲(chǔ)器的單片機(jī),除了在芯片上外接時(shí)鐘電路和復(fù)位電路外,還需外接程序存儲(chǔ)器,才能構(gòu)成一個(gè)最小系統(tǒng)。4-5)什么是完全譯碼?什么是部分譯碼?各有什么特點(diǎn)?所謂部分譯碼,就是存儲(chǔ)器芯片的地址線與單片機(jī)系統(tǒng)的地址線順序相接后,剩余的高位地址線僅用一部分參加譯碼。 特點(diǎn):部分譯碼使存儲(chǔ)器芯片的地址空間有重疊,造成系統(tǒng)存儲(chǔ)器空間的浪費(fèi)。所謂全譯碼,就是存儲(chǔ)器芯片的地址線與單片機(jī)系統(tǒng)的地址線順序相接后,剩余的高位地址線全部參加譯碼。特點(diǎn):存儲(chǔ)器芯片的地址空間是唯一確定的,但譯碼電路相對(duì)復(fù)雜。4-7)存儲(chǔ)器芯片地址引腳數(shù)與容量有什么關(guān)系? 地址線的數(shù)目由芯片的容量決定,容量(q)與地址線數(shù)目(n)滿足關(guān)系式:q
35、=2n4-10) 采用2764(8k*8)芯片擴(kuò)展程序存儲(chǔ)器,分配的地址范圍為4000h7fffh。采用完全譯碼方式,試確定所用芯片數(shù)目,分配地址范圍,畫出地址譯碼關(guān)系圖,設(shè)計(jì)譯碼電路,畫出與單片機(jī)的連接圖。7fffh-4000h+1=4000h=16kb 因?yàn)?764為8k*8 所以需要2片芯片第一片地址為范圍為:4000h5fffh第二片地址為范圍為:6000h7fffh譯碼關(guān)系圖:p2.7p2.6p2.5p2.4p2.3p2.2p2.1p2.0p0.7p0.6p0.5p0.4p0.3p0.2p0.1p0.0a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0000
36、*001*第六章 參考答案6-9)何謂靜態(tài)顯示?何謂動(dòng)態(tài)顯示??jī)煞N顯示方式各有什么優(yōu)缺點(diǎn)?靜態(tài)顯示:led工作在靜態(tài)顯示方式下,共陰極接地或共陽極接+5v;每一位的段選線(ag,dp)與一個(gè)8位并行i/o口相連。優(yōu)點(diǎn):顯示器每一位可以獨(dú)立顯示,每一位由一個(gè)8位輸出口控制段選碼,故在同一個(gè)時(shí)刻各位可以獨(dú)立顯示不同的字符。缺點(diǎn):n位靜態(tài)顯示器要求有n8根i/o口線,占用i/o口線較多,故在位數(shù)較多時(shí)往往采用動(dòng)態(tài)顯示。 動(dòng)態(tài)顯示:led動(dòng)態(tài)顯示是將所有位的段選線并接在一個(gè)i/o口上,共陰極端或共陽極端分別由相應(yīng)的i/o口線控制。優(yōu)點(diǎn):節(jié)約用線缺點(diǎn):每一位段選線都接在一個(gè)i/o口上,因此每送一個(gè)段選碼,8位就顯示同一個(gè)字符,這種顯示器是不能用的。解決這個(gè)問題利用人眼的視覺停留,從段選線i/o口上按位分別送顯示字符的段選碼,在位控制口也按相應(yīng)的次序分別選通相應(yīng)的顯示位(共陰極送低電平,共陽極送高電平),選通位就顯示相應(yīng)字符,并保持幾毫秒的延時(shí),未選通位不顯示字符(保持熄滅)。6-14)設(shè)計(jì)一個(gè)內(nèi)置hd44780驅(qū)動(dòng)控制器的字符型lcm與51單片機(jī)的接口電路,并編寫在字符型液晶顯示模塊顯示“hello”字符的程序。6-16)adc0809的8路輸入通道是如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州站施工組織設(shè)計(jì)方案(幕墻)
- 二零二五年度金融行業(yè)IT運(yùn)維安全保障協(xié)議3篇
- 專業(yè)化海路物流合作合同(2024版)版B版
- 2025年度環(huán)保建筑材料推廣合作框架協(xié)議4篇
- 2025年度購(gòu)物中心場(chǎng)地合作開發(fā)及商業(yè)運(yùn)營(yíng)合同4篇
- 二零二四圖書購(gòu)置項(xiàng)目與圖書館無障礙閱讀服務(wù)合同3篇
- 2025年度智能攤位管理系統(tǒng)開發(fā)與實(shí)施合同4篇
- 2025年度劇本創(chuàng)作與版權(quán)授權(quán)管理合同3篇
- 二零二五版4S店汽車銷售合同樣本圖2篇
- 2025年度農(nóng)產(chǎn)品質(zhì)量安全追溯體系服務(wù)合同4篇
- 衡水市出租車駕駛員從業(yè)資格區(qū)域科目考試題庫(kù)(全真題庫(kù))
- 護(hù)理安全用氧培訓(xùn)課件
- 《三國(guó)演義》中人物性格探析研究性課題報(bào)告
- 注冊(cè)電氣工程師公共基礎(chǔ)高數(shù)輔導(dǎo)課件
- 土方勞務(wù)分包合同中鐵十一局
- 乳腺導(dǎo)管原位癌
- 冷庫(kù)管道應(yīng)急預(yù)案
- 司法考試必背大全(涵蓋所有法律考點(diǎn))
- 公共部分裝修工程 施工組織設(shè)計(jì)
- 《學(xué)習(xí)教育重要論述》考試復(fù)習(xí)題庫(kù)(共250余題)
- 裝飾裝修施工及擔(dān)保合同
評(píng)論
0/150
提交評(píng)論