【大學(xué)】單片機(jī)課后習(xí)題參考答案ppt課件_第1頁
【大學(xué)】單片機(jī)課后習(xí)題參考答案ppt課件_第2頁
【大學(xué)】單片機(jī)課后習(xí)題參考答案ppt課件_第3頁
【大學(xué)】單片機(jī)課后習(xí)題參考答案ppt課件_第4頁
【大學(xué)】單片機(jī)課后習(xí)題參考答案ppt課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題參考答案(P.204) 1.什么是中斷、中斷源和中斷優(yōu)先級(jí)? 見P173,174,175 2.8051中斷有多少優(yōu)先級(jí) 答:見p176 2個(gè)習(xí)題參考答案(P.204)習(xí)題3. 8051中斷的中斷呼應(yīng)條件是什么?答:1、中斷存放器IE中的EA和相應(yīng)的中斷使能位激活;2、CPU沒有在處置同級(jí)或者更高級(jí)的中斷;3、現(xiàn)行執(zhí)行周期是所執(zhí)行指令的最后一個(gè)周期;4、當(dāng)前指令不是RETI或者是訪問IE或IP的指令。 4. 8051的中斷呼應(yīng)過程是怎樣的? 答:CPU呼應(yīng)中斷后,由硬件自動(dòng)執(zhí)行如下的功能操作: (1) 根據(jù)中斷懇求源的優(yōu)先級(jí)高低,對(duì)相應(yīng)的優(yōu)先級(jí)形狀觸發(fā)器置1。 (2) 維護(hù)斷點(diǎn),即把程序計(jì)數(shù)

2、器PC的內(nèi)容壓入堆棧保管。 (3) 清內(nèi)部硬件可去除的中斷懇求標(biāo)志位(IE0、IE1、TF0、TF1)。 (4) 把被呼應(yīng)的中斷效力程序入口地址送入PC,從而轉(zhuǎn)入相應(yīng)的中斷效力程序執(zhí)行。各中斷效力程序的入口地址見表。 BTW:5個(gè)中斷源及入口地址表BTW:5個(gè)中斷源及入口地址表編 號(hào)中 斷 源入 口 地 址0外部中斷00003H1定時(shí)器/計(jì)數(shù)器0000BH2外部中斷10013H3定時(shí)器/計(jì)數(shù)器1001BH4串行口中斷0023H習(xí)題5. 假設(shè)8051的外部中斷0為邊沿觸發(fā)方式,簡(jiǎn)述IE0標(biāo)志的檢測(cè)和置位過程。答: 8051的CPU在每個(gè)機(jī)器周期采樣引腳INT0上的電平,當(dāng)前一個(gè)周期采樣為高,而這

3、個(gè)周期采樣為低,即置位中斷標(biāo)志IE0。 同時(shí)8051的CPU在每個(gè)機(jī)器周期還采樣中斷標(biāo)志IE0,假設(shè)中斷標(biāo)志IE0被置位,中斷被激活,且沒有中斷阻止條件,那么CPU自動(dòng)轉(zhuǎn)向中斷0的入口地址0 x0003進(jìn)入中斷效力程序。習(xí)題6. 8051的中斷系統(tǒng)如何實(shí)現(xiàn)兩級(jí)中斷嵌套?答: 可以利用存放器IP經(jīng)過設(shè)置不同中斷的優(yōu)先級(jí),或者利用中斷的自然優(yōu)先級(jí)實(shí)現(xiàn)兩級(jí)中斷嵌套。當(dāng)單片機(jī)處置一個(gè)中斷的時(shí)候,可以再去呼應(yīng)高優(yōu)先級(jí)的中斷,或者自然優(yōu)先級(jí)較高的中斷。但不能去呼應(yīng)同級(jí)或者更低的中斷。P176習(xí)題9. 8051中斷程序如何進(jìn)展現(xiàn)場(chǎng)維護(hù)?何為上下文切換?答: 中斷經(jīng)過把保管有現(xiàn)場(chǎng)數(shù)據(jù)的存放器壓入堆棧進(jìn)展現(xiàn)場(chǎng)維

4、護(hù)。 當(dāng)一個(gè)特定義務(wù)正在執(zhí)行時(shí),能夠有更緊急的事需求引起CPU的留意。在一個(gè)具有優(yōu)先級(jí)的系統(tǒng)中,CPU不是等待第一個(gè)義務(wù)完成,而是假定前一個(gè)義務(wù)曾經(jīng)完成,立刻處置新的義務(wù)。假設(shè)程序流程立刻轉(zhuǎn)向新義務(wù),那么新義務(wù)運(yùn)用的各個(gè)存放器將會(huì)破壞第一個(gè)義務(wù)運(yùn)用的中間信息。但第一個(gè)義務(wù)恢復(fù)運(yùn)轉(zhuǎn)時(shí),存放器的值將不再可靠而導(dǎo)致錯(cuò)誤的發(fā)生。處理問題的方法是每次發(fā)生義務(wù)的切換時(shí)執(zhí)行一些指令進(jìn)展現(xiàn)場(chǎng)維護(hù)和現(xiàn)場(chǎng)恢復(fù),這就是上下文切換。p179 10. 8051定時(shí)器方式和計(jì)數(shù)器方式的區(qū)別是什么? 根本的8051有2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器各任務(wù)方式只是用到哪些位?。 計(jì)數(shù)器內(nèi)部晶振驅(qū)動(dòng)-定時(shí)器; 計(jì)數(shù)8051的輸

5、入引腳的脈沖信號(hào)-計(jì)數(shù)器。 定時(shí)器實(shí)踐上也是任務(wù)在計(jì)數(shù)方式下的。解. 1.50Hz的方波即周期為20ms的方波,要求定時(shí)間隔為10ms,每次時(shí)間到時(shí),P1.6腳取反。定時(shí)器計(jì)數(shù)頻率為fosc/12=500kHz其周期即單片機(jī)的機(jī)器周期為12/fosc=2us計(jì)數(shù)周期10ms需求計(jì)數(shù)10ms/2us=5000次計(jì)數(shù)器向上計(jì)數(shù)需求的初值為65536-5000習(xí)題14. 設(shè)fosc=6MHz,利用定時(shí)器0的方式1在P1.6口產(chǎn)生一串50Hz的方波。定時(shí)器溢出時(shí)采用中斷方式處置。1.設(shè)計(jì)分析;2.流程;3.注釋主程序TMODTMOD=0 x01DTH0,TL0裝初值DEA,ET0,TR0置1TMODP

6、1_6=!P1_6TMOD等待中斷DTH0,TL0裝初值T0中斷主程序流程中斷效力程序流程TMOD前往#include sbit P1_6=P16;void timer0() interrupt 1 using 1 TH0=65536-5000/256; TL0=65536-5000%256; P1_6=!P1_6;/取反void main() TMOD=0 x01;/T0方式1 TH0=65536-5000/256; TL0=65536-5000%256; EA=1;/開總中斷 ET0=1;/使能T0中斷 TR0=1;/啟動(dòng)T0 while(1);/等待 15. 用8751制造一個(gè)模擬航標(biāo)燈

7、,燈接在p1.7口上,INT0接光敏元件。使它具有如下功能: 白天航標(biāo)燈熄滅;夜間間歇發(fā)光,亮2S,滅2S,周而復(fù)始。 將信號(hào)作門控信號(hào),啟動(dòng)定時(shí)器定時(shí)。 按以上要求編寫控制主程序和中斷效力程序。 解一:設(shè)INT0口高電平常表示白天, 低電平常表示黑夜,查詢方式。采用定時(shí) 器T0,任務(wù)方式1,外接晶振6MHz。定時(shí) 100ms,20次中斷就是2s。產(chǎn)生100ms中斷 需求100 000/2=50000個(gè)計(jì)數(shù)。當(dāng)2s到了,就改動(dòng)P1.7形狀,控制LED燈。 主程序和中斷效力程序流程圖分別如下:T0裝初值overflow_count+前往#include sbit LED=P17; /*P1.7電

8、平控制燈亮燈滅,高電平燈亮*/sbit dark=P32; /*經(jīng)過P3.2腳INT0判別白天黑夜,INT0 低電平表黑夜*/static unsigned long overflow_count = 0;void timer0() interrupt 1 using 0 TH0=65536-50000/256; TL0= 65536-50000 %256; overflow_count+;void main() TMOD=0 x01;/T0方式1 TH0=65536-50000/256; /T0裝初值 TL0= 65536-50000 %256; EA=1; ET0=1; TR0=1; /運(yùn)

9、用T0中斷 do while(!dark) /LED晚上閃爍 if ( overflow_count = 20) /100ms*20=2s overflow_count = 0; LED = !LED; LED=0; /LED白天熄滅 while1解二:INT0中斷方式#include sbit LED=P17; /*P1.7電平控制燈亮燈滅,高電平燈亮*/sbit dark=P32; /*經(jīng)過P3.2腳INT0判別白天黑夜,INT0 下降沿到來表黑夜*/static unsigned long overflow_count = 0;bit flg=1; /* 設(shè)標(biāo)志位*/void timer

10、0() interrupt 1 using 0 / TH0=65536-50000/256; TL0= 65536-50000 %256; overflow_count+; void int_0() interrupt 0 using 1 if ( overflow_count = 20) /100ms*20=2s overflow_count = 0; LED = !LED; if(dark) flg=0; /dark高電平為白天 else flg=1; void main() TMOD=0 x01;/T0方式1 TH0=65536-50000/256; /T0裝初值 TL0= 65536-

11、50000 %256; PX0=1; /ITN0中斷優(yōu)先 IT0=1; /INT0下降沿觸發(fā)p174 EA=1; ET0=1;EX0=1; TR0=1; /*運(yùn)用T0, INT0中斷*/ while1 while(flg); / 等待中斷 LED=0; /LED白天熄滅 普通在LED閃爍的時(shí)候,假設(shè)運(yùn)用延時(shí)程序dlmsT也可以,但是此題要求用定時(shí)器。沒有延時(shí),人眼視覺看不清。人眼可以覺察的景物變化頻率20Hz,也就是LED閃爍至少要延時(shí)50ms,普通1s鐘即可,T=?void dlms ( uint a ) /延時(shí)a*1ms uchar j; while(a-) for(j=0;j125;j+

12、) ; 16.希望8051單片機(jī)定時(shí)器0的定時(shí)值以內(nèi)部RAM的20H單元的內(nèi)容為條件而可變,即當(dāng)20H=00H時(shí),定時(shí)值為10ms;當(dāng)20H=01H時(shí),定時(shí)值為20ms。請(qǐng)根據(jù)以上要求對(duì)定時(shí)器0初始化。單片機(jī)時(shí)鐘頻率為12MHz。解:fosc=12MHz時(shí),機(jī)器周期為1us。10ms間隔內(nèi)計(jì)數(shù)器計(jì)數(shù)10 000/1=10000次; 20ms間隔內(nèi)計(jì)數(shù)器計(jì)數(shù)10 000/1=20000次。用T0定時(shí)器,都采用定時(shí)方式1.由于T0定時(shí)器分別裝兩次不同的初值,所以可采用查詢TF0的方式。#include unsigned char data flag _at_ 0 x20;void main() T

13、MOD=0 x01;/T0,T1方式1 TR0=1;/ if(flag=0) TH0=65536-10000/256; /T0裝初值 TL0= 65536-10000 %256; do while(!TF0); /* 不斷等到計(jì)數(shù)溢出*/ TF0=0; else if(flag=1) TH1=65536-20000/256; /T1裝初值 TL1= 65536-20000 %256; do while(!TF0); /* 不斷等到計(jì)數(shù)溢出*/ TF0=0; 解. fosc=12MHz時(shí),最大定時(shí)為幾十ms。100Hz對(duì)應(yīng)的周期為10ms。占空比2:1時(shí),高電平6.7ms,低電平3.3ms??扇?/p>

14、0.1ms定時(shí),對(duì)應(yīng)計(jì)數(shù)0.1ms/1us=100次。定時(shí)器計(jì)數(shù)頻率為fosc/12=1MHz其周期即單片機(jī)的機(jī)器周期為12/fosc=1us周期10ms需求計(jì)數(shù)100次中斷,其中高電平期間67次中斷。習(xí)題18. 用單片機(jī)和內(nèi)部定時(shí)器來產(chǎn)生矩形波。要求頻率為100Hz,占空比為2:1(高電平的時(shí)間長(zhǎng))。設(shè)單片機(jī)時(shí)鐘頻率為12MHz。寫出有關(guān)的程序。主程序TMODTMOD=0 x01DTH0,TL0裝初值DEA,ET0,TR0置1TMOD等待中斷主程序流程中斷效力程序流程(#include #defined unchar unsigned charsbit WAVE=P10uchar time;

15、uchar period = 100;uchar high = 67; void timer0() interrupt 1 TH0 = ( 65536 100 ) / 256; TL0 = ( 65536 100 ) % 256; if( +time = high ) WAVE=0; /高電平常間到了變低電平高電平常間到了變低電平 else if ( time = period ) time=0; WAVE = 1; void main() TMOD=0 x01;/T0方式1 TH0=(65536-100)/256;/開場(chǎng)為高電平 TL0=(65536-100)%256; EA=1;/開總中斷 ET0=1;/使能T0中斷 TR0=1;/啟動(dòng)T0 while(1);/等待 19.8051系列單片機(jī)用什么提供串行通訊的系列單片機(jī)用什么提供串行通訊的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論