第7章習(xí)題解答_第1頁
第7章習(xí)題解答_第2頁
第7章習(xí)題解答_第3頁
第7章習(xí)題解答_第4頁
第7章習(xí)題解答_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章思考題及習(xí)題71如果采用的晶振的頻率為24MHz,定時(shí)器/計(jì)數(shù)器工作在方式0、1、2下,其最大定時(shí)時(shí)間各為多少?答:晶振的頻率為24MHz, 機(jī)器周期為0.5µs。方式0最大定時(shí)時(shí)間=0.5µs×213=0.5µs×8192=4096µs方式1最大定時(shí)時(shí)間=0.5µs×216=0.5µs×65536=327686µs方式2最大定時(shí)時(shí)間=0.5µs×28=0.5µs×256=128µs2定時(shí)器/計(jì)數(shù)器用作計(jì)數(shù)器模式時(shí),對(duì)外界計(jì)數(shù)頻率

2、有何限制?答:外部輸入的計(jì)數(shù)脈沖的最高頻率為系統(tǒng)振蕩器頻率的1/24。3定時(shí)器/計(jì)數(shù)器的工作方式2有什么特點(diǎn)?適用于哪些應(yīng)用場(chǎng)合?答:方式2為初值自動(dòng)裝入的8位定時(shí)器/計(jì)數(shù)器,克服了在循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用時(shí)就存在用指令反復(fù)裝入計(jì)數(shù)初值影響定時(shí)精度的問題。4THx與TLx(x = 0,1)是普通寄存器還是計(jì)數(shù)器?其內(nèi)容可以隨時(shí)用指令更改嗎?更改后的新值是立即刷新還是等當(dāng)前計(jì)數(shù)器計(jì)滿后才能刷新?答:THx與TLx(x = 0,1)是計(jì)數(shù)器,其內(nèi)容可以隨時(shí)用指令更改,但是更改后的新值要等當(dāng)前計(jì)數(shù)器計(jì)滿后才能刷新。5Proteus虛擬仿真使用定時(shí)器T0,采用方

3、式2定時(shí),在P1.0腳輸出周期為400µs,占空比為4:1的矩形脈沖,要求在P1.0腳接有虛擬示波器,觀察P1.0腳輸出的矩形脈沖波形。答:略6Proteus虛擬仿真利用定時(shí)器T1的中斷來使P1.7控制蜂鳴器發(fā)出1kHz的音頻信號(hào),假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz。答:利用定時(shí)器T1的中斷控制P1.7引腳輸出頻率為1kHz的方波音頻信號(hào),驅(qū)動(dòng)蜂鳴器發(fā)聲。系統(tǒng)時(shí)鐘為12MHz。方波音頻信號(hào)的周期為1ms,因此T1的定時(shí)中斷時(shí)間為0.5 ms,進(jìn)入中斷服務(wù)程序后,對(duì)P1.7求反。電路如圖所示。圖 控制蜂鳴器發(fā)出1kHz的音頻信號(hào)先計(jì)算T1初值,系統(tǒng)時(shí)鐘為12MHz,則方波的周期為1µ

4、;s。1kHz的音頻信號(hào)周期為1ms,要定時(shí)計(jì)數(shù)的脈沖數(shù)為a。則T1的初值:TH1=(65 536 a)/256;TL1=(65 536 a) %256參考程序如下:#include<reg51.h> /包含頭文件sbit sound=P17; /將sound位定義為P1.7引腳#define f1(a) (65536-a)/256/定義裝入定時(shí)器高8位的時(shí)間常數(shù)#define f2(a) (65536-a)%256/定義裝入定時(shí)器低8位的時(shí)間常數(shù)unsigned int i = 500; unsigned int j = 0; v

5、oid main(void) EA=1; /開總中斷. ET1=1; /允許定時(shí)器T1中斷 . TMOD=0x10; /TMOD=0001 000B,使用T1的方式1定時(shí) TH1=f1(i); /給定時(shí)器T1高8位賦初值. TL1=f2(i); /給定時(shí)器T1低8位賦初值. TR1=1; /啟動(dòng)定時(shí)器T1 while(1) /循環(huán)等待 i=460; while(j<2000); j=0; i=360; while(j <2000); j=0;void T1(void) interrupt 3 using 0/定時(shí)器T1中斷函數(shù) TR1= 0; /關(guān)閉定時(shí)器T1 sound=soun

6、d; /P1.7輸出求反 TH1=f1(i); /定時(shí)器T1的高8位重新賦初值. TL1=f2(i); /定時(shí)器T1的低8位重新賦初值. j+; TR1=1; /啟動(dòng)定時(shí)器T17 Proteus虛擬仿真制作一個(gè)LED數(shù)碼管顯示的秒表,用2位數(shù)碼管顯示計(jì)時(shí)時(shí)間,最小計(jì)時(shí)單位為“百毫秒”,計(jì)時(shí)范圍0.19.9s。當(dāng)?shù)?次按下并松開計(jì)時(shí)功能鍵時(shí),秒表開始計(jì)時(shí)并顯示時(shí)間;第2次按下并松開計(jì)時(shí)功能鍵時(shí),停止計(jì)時(shí),計(jì)算兩次按下計(jì)時(shí)功能鍵的時(shí)間,并在數(shù)碼管上顯示;第3次按下計(jì)時(shí)功能鍵,秒表清0,再按1次計(jì)時(shí)功能鍵,重新開始計(jì)時(shí)。如果計(jì)時(shí)到9.9s時(shí),將停止計(jì)時(shí),按下計(jì)時(shí)功能鍵,秒表清零,再按下重新開始計(jì)時(shí)。

7、答:本秒表應(yīng)用了AT89C51的定時(shí)器工作模式,計(jì)時(shí)范圍0.19.9s。此外還涉及如何編寫控制LED數(shù)碼管顯示的程序。LED數(shù)碼管顯示的秒表原理電路如圖所示。圖 LED數(shù)碼管顯示的秒表原理電路及仿真參考程序如下:#include<reg51.h> /包含51單片機(jī)寄存器定義的頭文件unsigned char code discode1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /數(shù)碼管顯示09的段碼表, 帶小數(shù)點(diǎn)unsigned char code discode2=0x3f,0x06,0x5b,0x4f,0x66,0x6

8、d,0x7d,0x07,0x7f,0x6f; /數(shù)碼管顯示09的段碼表,不帶小數(shù)點(diǎn)unsigned char timer=0; /記錄中斷次數(shù)unsigned char second; /儲(chǔ)存秒unsigned char key=0; /記錄按鍵次數(shù)main() /主函數(shù) TMOD=0x01; /定時(shí)器T0方式1定時(shí)ET0=1; /允許定時(shí)器T0中斷EA=1; /總中斷允許second=0; /設(shè)初始值P0=discode1second/10; /顯示秒位0P2=discode2second%10; /顯示0.1s位0while(1) /循環(huán)if(P3&0x80)=0x00) /當(dāng)按鍵

9、被按下時(shí) key+; /按鍵次數(shù)加1switch(key) /根據(jù)按鍵次數(shù)分三種情況case 1: /第一次按下為啟動(dòng)秒表計(jì)時(shí)TH0=0xee; /向TH0寫入初值的高8位TL0=0x00; /向TL0寫入初值的低8位,定時(shí)5msTR0=1; /啟動(dòng)定時(shí)器T0break;case 2: /按下兩次暫定秒表TR0=0; /關(guān)閉定時(shí)器T0break;case 3: /按下3次秒表清0key=0; /按鍵次數(shù)清0second=0; /秒表清0P0=discode1second/10; /顯示秒位0 P2=discode2second%10; /顯示0.1s位0break; while(P3&

10、0x80)=0x00); /如果按鍵時(shí)間過長(zhǎng)在此循環(huán)void int_T0() interrupt 1 using 0 /定時(shí)器T0中斷函數(shù)TR0=0; /停止計(jì)時(shí),執(zhí)行以下操作(會(huì)帶來計(jì)時(shí)誤差)TH0=0xee; /向TH0寫入初值的高8位TL0=0x00; /向TL0寫入初值的低8位,定時(shí)5mstimer+; /記錄中斷次數(shù)if (timer=20) /中斷20次,共計(jì)時(shí)20*5ms=100ms=0.1stimer=0; /中斷次數(shù)清0second+; /加0.1sP0=discode1second/10; /根據(jù)計(jì)時(shí)時(shí)間,即時(shí)顯示秒位 P2=discode2second%10; /根據(jù)計(jì)

11、時(shí)時(shí)間,即時(shí)顯示0.1s位if(second=99) /當(dāng)計(jì)時(shí)到9.9s時(shí)TR0=0; /停止計(jì)時(shí)second=0; /秒數(shù)清0 key=2; /按鍵數(shù)置2,當(dāng)再次按下按鍵時(shí),key+,即key=3,秒表清0復(fù)原 else /計(jì)時(shí)不到9.9s時(shí)TR0=1; /啟動(dòng)定時(shí)器繼續(xù)計(jì)時(shí)8 Proteus虛擬仿真制作一個(gè)采用LCD1602顯示的電子鐘,在LCD上顯示當(dāng)前的時(shí)間。顯示格式為“時(shí)時(shí):分分:秒秒”。設(shè)有4個(gè)功能鍵k1k4,功能如下:(1)k1進(jìn)入時(shí)間修改。(2)k2修改小時(shí),按一下k2,當(dāng)前小時(shí)增1。(3)k3修改分鐘,按一下k3,當(dāng)前分鐘增1。(4)k4確認(rèn)修改完成,電子鐘按修改后的時(shí)間運(yùn)行

12、顯示。答:本題難點(diǎn)在于處理功能鍵K1K4的輸入,由于每個(gè)功能鍵都具有相應(yīng)的一種或多種功能,因此程序中需要大量使用dowhile或while循環(huán)結(jié)構(gòu),以檢測(cè)是否有按鍵按下的具體功能。按鍵檢測(cè)函數(shù)如下:void time_change() unsigned char keyvalue0=0,keyvalue1=0; keyvalue0=keyscan();/檢測(cè)是否有按鍵按下 if(keyvalue0)/如果有按鍵按下,繼續(xù)檢測(cè) if(keyvalue0=1)/按鍵1,走時(shí)停止,開始判斷更改值,直到按鍵4按下   while(key0);/防抖,直到按鍵松開時(shí)才進(jìn)行下一步的操作

13、  TR0=0;/控制走時(shí)的中斷停止  do  keyvalue1=keyscan();/檢測(cè)按鍵按下  if(keyvalue1=2)/如果按鍵2按下,改變時(shí)間    while(key1);/防抖  if(hour<23)/如果小時(shí)數(shù)小于23則加1    hour+;    else/如果小時(shí)數(shù)為23,置位為0  hour=0;       else if(keyvalue1=3)/如果按鍵3按下,改變分鐘    w

14、hile(key2);/防抖  if(minute<59)/如果分鐘數(shù)小于59則加1    minute+;    else/如果分鐘數(shù)為59,置位為0  minute=0;     clock_write();    while(keyvalue1!=4);/重復(fù)對(duì)時(shí)間的修改直到按鍵4按下  while(key3=0);/防抖  TR0=1;/調(diào)整時(shí)間后重新開始走時(shí)  必須注意,程序設(shè)計(jì)中,小時(shí)、分鐘、秒變量hour、minute、second必須置為全局變量,才能如上述函數(shù)一樣在各處函數(shù)中直接進(jìn)行修改,如為局部變量,則上述形式的直接修改無效。160

溫馨提示

  • 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. 人人文庫網(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)論