單片機原理及應用(林立-張俊亮版)課后習題答案 - 副本_第1頁
單片機原理及應用(林立-張俊亮版)課后習題答案 - 副本_第2頁
單片機原理及應用(林立-張俊亮版)課后習題答案 - 副本_第3頁
單片機原理及應用(林立-張俊亮版)課后習題答案 - 副本_第4頁
單片機原理及應用(林立-張俊亮版)課后習題答案 - 副本_第5頁
已閱讀5頁,還剩4頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第2章MCS-51單片機結構及原理習題6.片內RAM中低128個單元劃分為哪三個主要部分?各部分的主要功能是什么?答:片內RAM中低128個單元劃分為三個部分:①工作寄存器區(00H—1FH),四組,每組8個,可作用工作寄存器切換使用;②可位尋址區(20H—2FH),16B,位地址為00H-7FH,用作為按位尋址的空間;③用戶RAM區(30H-7FH),80B,用作普通RAM單元或堆棧.7.程序狀態字寄存器PSW各位的定義是什么?答:程序狀態字寄存器PSW各位的定義如下:PSW.7:進/借位標志CY,加法有進位時置1,減法有借位時置1;PSW.6:輔助進位標志AC,加法運算低四位向高上四位有進位時置1;PSW。5、PSW。1:用戶標志位F0和用戶標志位F1,保存用戶的位數據;PSW.4、PSW.3:工作寄存器選擇控制位RS1和RS0,00至11分別選擇四組工作之一作為當前工作寄存器PSW.2:溢出標志位OV,有符號數加、減運算結果有溢出或乘除上結果異常(乘法運算結果大于255即乘積在BA中,或除法運算除數為0)時置1PSW。0:奇偶標志位P,累加器A中1的個數為奇數時置1.8.什么是時鐘周期?什么是機器周期?什么是指令周期?當振蕩頻率為12MHz時,一個機器周期為多少微秒?答:時鐘周期又叫振蕩周期或拍,用P表示,是MCS—51單片機中最小的時間單位,在一個時鐘周期內,CPU完成一個最基本的動作。機器周期:由12個時鐘周期構成,完成一個基本操作指令周期:是執行一條指令所需的時間,根據指令的復雜性,可由1~4個機器周期構成.當振蕩頻率為12MHz時,一個機器周期為1微秒。第4章單片機的C51語言習題1.C語言的優點是什么?C程序的主要結構特點是什么?答:C語言是一種高級語言,學習比低級容易,不需要具體組織、分配存儲器資源和處理端口數據,可以直接驅動單片機的所有資源.C程序以函數為單位,由一個主函數和若干個其他函數構成,主函數是程序的入口,其他函數由主函數直接或間接調用。程序可以由一個文件或多個文件組成。文件類型包括頭文件和C語言源文件,也可以是匯編語言文件,C程序可與匯編語言混合編程.5.定義變量a,b,c,其中a為內部RAM的可位尋址區的字符變量,b為外部數據存儲區浮點型變量,c為指向int型xdata區的指針。答:charbdataa;floatxdatab;intxdata*c;9.內部RAM20H、21H和22H、23H單元分別存放著兩個無符號的16位數,將其中的大數置于24H和25H單元。解:方法一:#include<reg51.h〉voidmain(){unsignedint*ptr;//設置一個內部RAM指針unsignedintx,y,z;ptr=0x20;x=*ptr;//指向0x20單元//取第一個數ptr=0x22;y=*ptr;//指向0x22單元//取第二個數z=(x〉y)?x:y;//將兩數中的較大者賦給zptr=0x24;//指向地址為0x24的目標單元*ptr=z;}//將大數存入目標單元方法二:#include〈reg51。h〉#include〈absacc.h>voidmain(){unsignedintx,y,z;x=DBYTE[0X20]*256+DBYTE[0X21];y=DBYTE[0X22]*256+DBYTE[0X23];z=(x>y)?x:y;//將兩數中的較大者賦給zDBYTE[0X24]=z/256;DBYTE[0X25]=z%256;}方法三:#include<reg51。h〉unsignedintx_at_0x20;unsignedinty_at_0x22;unsignedintz_at_0x24;voidmain(){z=(x〉y)?x:y;}第5章單片機的中斷系統習題1.什么是中斷、中斷源、中斷優先級和中斷嵌套?答:中斷是指單片機內部有一個中斷管理系統,它對內部的定時器事件、串行通信的發送和接收及外部事件(如鍵盤按鍵動作)等進行自動的檢測判斷。當CPU正在處理某件事情(例如正在執行主程序)的時候,外部或內部發生的某一事件(如某個引腳上電平的變化,一個脈沖沿的發生或計數器的計數溢出等)請求CPU迅速處理,于是,中斷管理系統會置位相應標志通知CPU暫時中止當前的工作,迅速轉去處理所發生的事件。處理完該事件后,再回到原來被中止的地方,繼續原來的工作,這樣的過程稱為中斷。引發中斷的事件稱為中斷源。將中斷事件按輕重緩急分若干級別叫中斷優先級。允許中斷優先級高的中斷源中斷正在執行的低優先級的中斷服務程序叫中斷嵌套.2.什么叫中斷源?MCS—51有哪些中斷源?答:中斷源即引發中斷的事件。MCS-51單片機有5個中斷源,它們是外部中斷0,定時器T0,外部中斷1,定時器T1,串行口.7.設fosc=12MHz,利用定時器,TO(工作在方式2)在P1.1引腳上獲取輸出周期為O。4ms的方波信號,定時器溢出時采用中斷方式處理,請編寫,T0的初始化程序及中斷服務程序.解:fosc=12MHz,則機器周期=1us;當T0工作在方式2時,其最大定時時間為256us,要輸出周期為0.4mS即400us的方波信號,則其高、低電平應各為200us,顯然當定時器T0按方式2工作時,只需計數達到200次即可,因此其時間常數初值為256-200=56。在T0的中斷服務程序中,只需將P1。1引腳求反即可。#include〈reg51.h>sbitP1_1=P1^1;voidtimer0()interrupt1using1{P1_1=!P1_1;}voidmain(){P1_1=0;TMOD=0x02;TH0=56;TL0=56;IE=0x82;TR0=1;for(;;){}}第6章單片機的定時器/計數器習題2.如果采用的晶振頻率為3MHz,定時/計數器TO分別工作在方式0、1和2下,其最大的定時時間各為多少?答:如果采用的晶振頻率為3MHz,機器周期為12×1/(3*106)=4us,由于定時/計數器TO工作在方式0、1和2時,其最大的計數次數為8192、65536和256所以,其最大定時時間分別是:方式0為8192×4us=32。768ms、方式1為65536×4us=262.144ms、方式2為256×4us=1024us。5.定時器工作在方式2時有何特點?適用于什么應用場合?答:定時器工作在方式2時是一個可自動裝入時間常數初值的8位定時/計數器,TLx為加1計數器,THx為計數初值寄存器.由于其恢復初值由硬件自動完成,所以當需要反復計數時,用方式2可以方便地實現精確的定時。9.設單片機的fosc=12MHz,使P1.O和P1。1分別輸出周期為1ms和lOms的方波,請用定時器TO方式2編程實現。解:fosc=12MHz,所以機器周期為1us。要使P1.0輸出周期為1000us的方波,可以通過定時中斷方式實現,定時時間為250us,定時計數2次來實現,對P1.0求反即可。要使P1。1輸出周期為10ms的方波,也可以通過定時中斷方式實現,定時時間為5ms,當時間到時,對P1。1求反即可。由于5ms/250us=20,所以也可以通過對250us的定時計數20次來實現。程序如下:#include〈reg51.h〉sbitP1_0=P1^0;//輸出周期為400us的方波的引腳sbitP1_1=P1^1;//輸出周期為10ms的方波的引腳unsignedcharnum1=0,num2=0;//中斷次數計數器,初值為0voidmain(){P1_0=0;//輸出初值為0P1_1=0;//輸出初值為0TMOD=0x02;//T0方式2定時TH0=256-250;//計200次,計數初值為模256減200TL0=TH0;IE=0x82;//允許CPU響應中斷,允許T0發中斷請求//啟動T0TR0=1;for(;;){}//無限循環等待中斷}voidtimer0()interrupt1using1{num1++;num2++;//中斷次數加1if(num1==2)//中斷次數達到2次{P1_0=!P1_0;//輸出P1_0求反num1=0;//中斷次數復位為0}if(num2==20){//中斷次數達到20次num2=0;//中斷次數復位為0P1_1=!P1_1;//輸出P1_1求反}}第七章7。1.無7。4.89C51單片機串行通信接口控制寄存器有幾個?每個寄存器的含義是什么?答:有電源控制寄存器PCON和串行口控制寄存器SCONPCON中SMOD與串口通信有關。SMOD=0;串口方式1,2,3時,波特率正常。SMOD=1;串口方式1,2,3時,波特率加倍其余與串行通信無關SCON中SM0、SM1:串行口工作方式控制位SM2:多機通信控制位REN:串行口接收使能控制端;REN=1時,允許接收,REN=0時,禁止接收TB8:發送接收數據位8RB8:接收數據位8TI:發送中斷標志位;TI=1表示幀發送結束,TI可由軟件置0RI:接收中斷標志位;RI=1表示幀接收完成,RI可由軟件置0第八章8。1無8.3在由單片機80C51和一片ADC0809組成的數據采集系統中,假設ADC0809的地址為0x7ff8~0x7fff,畫出接口電路圖,并編寫每隔1ms輪流采集一次8個通道數據的程序。采樣100次取平均值。答:電路圖書上實例有,做了如下改動1.控制端ADDA,ADDB,ADDC分別接P2^0,P2^!,P2^2.2.刪去了譯碼器與邏輯器件器件,74LS373,74HC14,74HC02,3.中斷檢測端EOC接P3^2.參考程序如下,自己寫的沒經過仿真,#include〈reg52.h〉#include<absacc。h>#defineucharunsignedchar//宏定義#defineuintunsignedint#defineAD_0XBYTE[0xff8]//定義通道訪問地址#defineAD_1XBYTE[0xff9]#defineAD_2XBYTE[0xffa]#defineAD_3XBYTE[0xffb]#defineAD_4XBYTE[0xffc]#defineAD_5XBYTE[0xffd]#defineAD_6XBYTE[0xffe]#defineAD_7XBYTE[0xfff]sbitbusy=P3^2;//定義中斷請求端ucharcount=0;//定義采樣次數uchardatcode[100]={0};//定義數據存放數組intdat=0,dat1=0;//定義臨時數據與最終平均數據uchari,j,num;//定義變量voidmain(){TMOD=0x01;//定時器0工作方式1TL0=(65536—1000)/256;//1ms中斷一次TH0=(65536-1000)%256;EA=1;//開總中斷,定時器中斷,打開定時器0ET0=1;TR0=1;while(count〈100)//100次數據求和函數{dat1=dat1+datcode[i];count+

溫馨提示

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

評論

0/150

提交評論