單片機原理及應用(林立-張俊亮版)課后習題答案---副本_第1頁
單片機原理及應用(林立-張俊亮版)課后習題答案---副本_第2頁
單片機原理及應用(林立-張俊亮版)課后習題答案---副本_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第2章MCS-51單片機結構及原理習題6片內RAM中低128個單元劃分為哪三個主要局部?各局部的主要功能是什么? 答:片內RAMW氐128個單元劃分為三個局部: 工作存放器區00H-1FH,四組,每組8個,可作用工作存放器切換使用; 可位尋址區20H-2FH,16B,位地址為00H-7FH用作為按位尋址的空間; 用戶RAME: 30H-7FH,80B,用作普通 RAM單元或堆棧。7 程序狀態字存放器PSW各位的定義是什么?:輔助進位標志AC加法運算低四位向高上四位有進位時置 1;、:用戶標志位F0和用戶標志位F1,保存用戶的位數據;、:工作存放器選擇控制位RS1和RSQ 00至11分別選擇四組

2、工作之一作為當前 工作存放器PSW.2 :溢出標志位OV有符號數加、減運算結果有溢出或乘除上結果異常 乘 法運算結果大于255即乘積在BA中,或除法運算除數為0時置1:奇偶標志位P,累加器A中1的個數為奇數時置1。8. 什么是時鐘周期?什么是機器周期?什么是指令周期?當振蕩頻率為 12MHz 時,一個機器周期為多少微秒?答:時鐘周期又叫振蕩周期或拍,用 P表示,是MCS-51單片機中最小的時間單 位,在一個時鐘周期內,CPU完成一個最根本的動作。機器周期:由12個時鐘周期構成,完成一個根本操作指令周期:是執行一條指令所需的時間,根據指令的復雜性,可由14個機器周 期構成。當振蕩頻率為12MHz

3、時,一個機器周期為1微秒。第4章單片機的C51語言習題1. C語言的優點是什么? C程序的主要結構特點是什么? 答:C語言是一種高級語言,學習比低級容易,不需要具體組織、分配存儲器資 源和處理端口數據,可以直接驅動單片機的所有資源。C程序以函數為單位,由一個主函數和假設干個其他函數構成,主函數是程 序的入口,其他函數由主函數直接或間接調用。程序可以由一個文件或多個文件 組成。文件類型包括頭文件和 C語言源文件,也可以是匯編語言文件,C程序可 與匯編語言混合編程。5定義變量a, b, c,其中a為內部RAM勺可位尋址區的字符變量,b為外部數 據存儲區浮點型變量, c 為指向 int 型 xdat

4、a 區的指針。答: char bdata a;float xdata b;int xdata *c;9. 內部RAM20H 21H和22H 23H單元分別存放著兩個無符號的16位數,將其 中的大數置于24H和25H單元。解:方法一: #include<reg51.h> void main()unsigned int *ptr;/ 設置一個內部 RAM旨針unsigned int x,y,z;ptr=0x20;/旨向 0x20 單元x=*ptr;/取第一個數ptr=0x22;/旨向 0x22 單元y=*ptr;/取第二個數z=(x>y)?x:y;/將兩數中的較大者賦給zptr=

5、0x24;/ 旨向地址為 0x24 的目標單元*ptr=z;/將大數存入目標單元 方法二:#include<reg51.h> #include<absacc.h> void main()unsigned int x,y,z;x=DBYTE0X20*256+DBYTE0X21; y=DBYTE0X22*256+DBYTE0X23;z=(x>y)?x:y;/ 將兩數中的較大者賦給 zDBYTE0X24=z/256;DBYTE0X25=z%256; 方法三:#include<reg51.h> unsigned int x _at_ 0x20; unsigne

6、d int y _at_ 0x22; unsigned int z _at_ 0x24;void main() z=(x>y)?x:y;第 5 章 單片機的中斷系統 習題1什么是中斷、中斷源、中斷優先級和中斷嵌套? 答:中斷是指單片機內部有一個中斷管理系統, 它對內部的定時器事件、 串行通 信的發送和接收及外部事件如鍵盤按鍵動作等進行自動的檢測判斷。當 CPU 正在處理某件事情 例如正在執行主程序 的時候, 外部或內部發生的某一事件 如某個引腳上電平的變化,一個脈沖沿的發生或計數器的計數溢出等請求CPU迅速處理,于是,中斷管理系統會置位相應標志通知CPU暫時中止當前的工作,迅速轉去處理所

7、發生的事件。處理完該事件后,再回到原來被中止的地方, 繼續原來的工作,這樣的過程稱為中斷。引發中斷的事件稱為中斷源。 將中斷事件按輕重緩急分假設干級別叫中斷優先級。 允許中斷優先級高的中斷源中斷正在執行的低優先級的中斷效勞程序叫中斷嵌 套。2. 什么叫中斷源? MCS-51有哪些中斷源? 答:中斷源即引發中斷的事件。MCS-51單片機有5個中斷源,它們是外部中斷0,定時器T0,外部中斷1, 定時器T1,串行口。7 .設fosc = 12MHz利用定時器,TO(工作在方式2)在P1.1引腳上獲取輸出周 期為O.4ms的方波信號,定時器溢出時采用中斷方式處理,請編寫, T0的初始 化程序及中斷效勞

8、程序。解:fosc = 12MHz,那么機器周期=1us;當T0工作在方式2時,其最大定時時間為256us,要輸出周期為即400us的方波信號,那么其高、低電平應各為 200us, 顯然當定時器T0按方式2工作時,只需計數到達200次即可,因此其時間常數 初值為256-200=56。在T0的中斷效勞程序中,只需將引腳求反即可。#include<reg51.h>sbit P1_仁 P1A1;void timer0()interrupt 1 using 1P1_1=!P1_1;void main()P1_1=0;TMOD=0x02;TH0=56;TL0=56;IE=0x82;TR0=1

9、;for(;)第 6 章 單片機的定時器 / 計數器 習題2 如果采用的晶振頻率為3MHz定時/計數器TO分別工作在方式0、1和2下, 其最大的定時時間各為多少?答:如果采用的晶振頻率為 3MHz機器周期為12X1/(3*10 6)=4us,由于定時/ 計數器TO工作在方式0、1和2時,其最大的計數次數為 8192、65536和256 所以,其最大定時時間分別是:方式 0為8192X 4us=、方式1為65536X 4us =、方式 2 為 256X 4us= 1024uSo5定時器工作在方式 2 時有何特點?適用于什么應用場合? 答:定時器工作在方式 2時是一個可自動裝入時間常數初值的 8

10、位定時/計數器, TLx為加1計數器,THx為計數初值存放器。由于其恢復初值由硬件自動完成, 所以當需要反復計數時,用方式 2可以方便地實現精確的定時。9 .設單片機的fosc = 12MHz,使P1.O和P1.1分別輸出周期為1ms和lOms的 方波,請用定時器TO方式2編程實現。解: fosc = 12MHz ,所以機器周期為 1uso要使輸出周期為1000us的方波,可以通過定時中斷方式實現,定時時間為250us, 定時計數2次來實現,對求反即可。要使輸出周期為10ms的方波,也可以通過定時中斷方式實現,定時時間為 5ms 當時間到時,對求反即可。由于 5ms/250us=20,所以也可

11、以通過對 250us的定 時計數20次來實現。程序如下:#include<reg51.h>sbit P1_0=P1A0;/ 輸出周期為400us的方波的引腳sbit P1_仁P1A1; / 輸出周期為10ms的方波的引腳unsigned char num1=0,num2=0;/ 中斷次數計數器,初值為 0void main()P1_0=0;/ 輸出初值為 0P1_1=0;/ 輸出初值為 0TMOD=0x02; /T0 方式 2定時TH0=256-250;/ 計 200 次,計數初值為模 256減200TL0=TH0;IE=0x82;/允許CPLP向應中斷,允許T0發中斷請求TR0=

12、1;/啟動 T0for(;)/無限循環等待中斷void timer0()interrupt 1 using 1num1+;num2+;/ 中斷次數加 1if(num1=2)/ 中斷次數到達 2次 P1_0=!P1_0; / 輸出 P1_0求反num1=0;/ 中斷次數復位為 0if(num2=20)/ 中斷次數到達 20次num2=0;/ 中斷次數復位為 0P1_1=!P1_1;/ 輸出 P1_1 求反第七章7.1.無74 89C51單片機串行通信接口控制存放器有幾個?每個存放器的含義是什 么?答:有電源控制存放器PCOb和串行口控制存放器SCONPCO中SMO與串口通信有關。SMOD=0;串

13、口方式1, 2, 3時,波特率正常。SMOD=1;串口方式1, 2, 3時,波特率加倍其余與串行通信無關SCO中SM0 SM1串行口工作方式控制位SM2多機通信控制位REN串行口接收使能控制端;REN=1時,允許接收,REN=0寸,禁止接收 TB8:發送接收數據位8RB8接收數據位8TI :發送中斷標志位;TI=1表示幀發送結束,TI可由軟件置0RI:接收中斷標志位;RI=1表示幀接收完成,RI可由軟件置0第八章無8.3在由單片機80C51和一片ADC0809組成的數據采集系統中,假設 ADC0809 的地址為0x7ff80x7fff ,畫出接口電路圖,并編寫每隔1ms輪流采集一次8個 通道數

14、據的程序。采樣100次取平均值。答:電路圖書上實例有,做了如下改動1. 控制端 ADDA ADDB ADD分別接 P2A0, P2A!,P2A2.2. 刪去了譯碼器與邏輯器件器件,74LS373,74HC14,74HC023. 中斷檢測端EOC接卩3八2。參考程序如下,自己寫的沒經過仿真,#in clude<reg52.h>#in clude<absacc.h>#defi ne uchar un sig ned char/ 宏定義#defi ne uint un sig ned int#defi ne AD_0 XBYTE0xff8定義通道訪問地址#defi ne AD

15、_1 XBYTE0xff9#defi ne AD_2 XBYTE0xffa#defi ne AD_3 XBYTE0xffb#defi ne AD_4 XBYTE0xffc#define AD_5 XBYTE0xffd#define AD_6 XBYTE0xffe#define AD_7 XBYTE0xfffsbit busy=P3A2;/定義中斷請求端uchar count=0;/ 定義采樣次數uchar datcode100=0;/ 定義數據存放數組int dat=0,dat1=0;/ 定義臨時數據與最終平均數據uchar i,j,num;/ 定義變量void main()TMOD=0x01;/定時器0工作方式1TL0=(65536-1000)/256;/1ms 中斷一次TH0=(65536-1000)%256;EA=1;/ 開總中斷,定時器中斷,翻開定時器 0ET0=1;TR0=1;while(count<100)/100 次數據求和函數dat1=dat1+dat

溫馨提示

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

評論

0/150

提交評論