單片機(jī)原理及應(yīng)用(C51版)第5章課后題答案_第1頁
單片機(jī)原理及應(yīng)用(C51版)第5章課后題答案_第2頁
單片機(jī)原理及應(yīng)用(C51版)第5章課后題答案_第3頁
單片機(jī)原理及應(yīng)用(C51版)第5章課后題答案_第4頁
單片機(jī)原理及應(yīng)用(C51版)第5章課后題答案_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

3.假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,利用定時(shí)器T0編程實(shí)現(xiàn)如下功能:使P1.0引腳上輸出一個(gè)周期為40ms的方波。計(jì)算初值X:X=216-20000us/1us=65536-20000=45536=B1E0H因此T0的初值為TH0=0B1H,TL0=0E0H。參考程序:#include <reg51.h> //51系列單片機(jī)頭文件sbit P1_0=P1^0 ; //位定義void main() //主函數(shù){ TMOD=0x01; //設(shè)T0工作在方式1,定時(shí)模式TH0=0xb1; //裝入計(jì)數(shù)初值TL0=0xe0;EA=1; //開總中斷 ET0=1; //T0開中斷 TR0=1; //啟動(dòng)T0 while(1); //等待中斷}void counter0()interrupt1 //T0的中斷服務(wù)函數(shù){P1_0=!P1_0; //P1.0位取反TH1=0xb1; //重新裝載計(jì)數(shù)初值TL1=0xe0;}4.假設(shè)系統(tǒng)時(shí)鐘頻率為6MHz,編程實(shí)現(xiàn)用定時(shí)器T1產(chǎn)生定時(shí)脈沖,每隔2ms從P1.5引腳輸出脈寬為3個(gè)機(jī)器周期的正脈沖。計(jì)算初值X:X=65536-2000us/2us=65536-1000=64536=FC18H因此T1的初值為TH1=0FCH,TL1=18H。參考程序(采用中斷工作方式):#include <reg51.h> //51系列單片機(jī)頭文件#include<intrins.h> //包含_nop_函數(shù)所在的頭文件sbit P1_5=P1^5 ; //位定義void main() //主函數(shù){ TMOD=0x10; //設(shè)T1工作在方式1,定時(shí)模式TH1=0xfc; //裝入計(jì)數(shù)初值TL1=0x18;EA=1; //開總中斷 ET1=1; //T0開中斷 TR1=1; //啟動(dòng)T0P1_5=0; //將輸出口P1的第0位清0(輸出脈沖的起始值) while(1); //等待中斷}void timer1()interrupt3 //T1的中斷服務(wù)函數(shù){P1_5=1; //產(chǎn)生脈沖信號(hào)高電平_nop_();_nop_(); P1_5=0; //產(chǎn)生脈沖信號(hào)低電平 TH1=0xfc; //重新裝載計(jì)數(shù)初值TL0=0x18;}5.假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,利用定時(shí)器T1編程實(shí)現(xiàn)如下功能:要求從P2.1引腳輸出一個(gè)脈沖波形,高電平持續(xù)3ms,低電平持續(xù)10ms。分析:(1)選擇工作方式:因?yàn)門cy=12/fosc=1us,由定時(shí)器各種工作方式的特性,可計(jì)算出方式1最長可定時(shí)65.536ms,方式2、3最長可定時(shí)256us。本題中定時(shí)時(shí)間t1=3ms、t2=10ms選擇T0的工作方式1來完成此任務(wù)。假設(shè)此時(shí)T1不工作,則方式控制字為TMOD=01H。(2)計(jì)算初值X:高電平初值:X1=65536-3000us/1us=65536-3000=62536=F448H因此T0的初值為TH0=0F4H,TL0=48H。低電平初值:X2=65536-10000us/1us=65536-10000=55536=D8F0H因此T0的初值為TH0=0D8H,TL0=0F0H。參考程序(采用中斷工作方式):#include <reg51.h> //51系列單片機(jī)頭文件sbit P2_1=P2^1 ; //位定義bitflag=0;//定義一個(gè)位變量,實(shí)現(xiàn)高低電平切換void main() //主函數(shù){ TMOD=0x01; //設(shè)T0工作在方式1,定時(shí)模式EA=1; //開總中斷 ET0=1; //T0開中斷 TH0=0xd8; //裝入低電平計(jì)數(shù)初值TL0=0xf0;P2_1=0; //將輸出口P2的第1位清0TR0=1; //啟動(dòng)T0,(輸出低電平開始) while(1); //等待中斷}void timer0()interrupt1 //T0的中斷服務(wù)函數(shù){flag=!flag; if(flag==0){P2_1=0; TH0=0xd8; //裝入低電平計(jì)數(shù)初值TL0=0xf0;}else{P2_1=1; TH0=0xf4; //裝入高電平計(jì)數(shù)初值TL0=0x48;} }6.假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,改寫例5-7的程序,使之變成通過定時(shí)器0實(shí)現(xiàn)8個(gè)發(fā)光二極管每隔2s從左向右依次循環(huán)點(diǎn)亮。計(jì)算計(jì)數(shù)初值:X=65536-50000us/1us=15536=3CB0H因此TH0=3CH,TL0=B0H。(3)20次計(jì)數(shù)的實(shí)現(xiàn):采用循環(huán)程序的方法實(shí)現(xiàn)中斷20次計(jì)數(shù)。參考程序:#include <reg51.h> //51系列單片機(jī)頭文件#include <intrins.h> //包含_cror_函數(shù)所在的頭文件#define ucharunsignedchar //宏定義uchar num; //循環(huán)計(jì)數(shù)器初值void main() //主函數(shù){ TMOD=0x01; //設(shè)T0工作在方式1,定時(shí)模式TH0=0x3c; //裝入計(jì)數(shù)初值TL0=0xb0;EA=1; //開總中斷 ET0=1; //T0開中斷 TR0=1; //啟動(dòng)T1num=0; //記錄中斷次數(shù) P2=0xfe; //點(diǎn)亮最右邊發(fā)光二極管while(1); //等待中斷}void timer0()interrupt1 //T0的中斷服務(wù)函數(shù){num++; //中斷次數(shù)加1if(num==40) //判斷是否到達(dá)循環(huán)次數(shù),50ms×20=1s{num=0; //重新計(jì)數(shù)P2=_cror_(P2,1); //左環(huán)移一次}TH0=0x3c; //重新裝載計(jì)數(shù)初值TL0=0xb0;}7.假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,利用定時(shí)器T0設(shè)計(jì)兩個(gè)不同頻率的方波,P1.0輸出頻率為200Hz,P1.1輸出頻率為100Hz。因?yàn)檫B個(gè)方波的頻率是倍數(shù)關(guān)系,所以只計(jì)算頻率高的初值。計(jì)算初值X:X=65536-2500us/1us=65536-2500=63036=F63CH因此T0的初值為TH0=0F6H,TL0=3CH。參考程序(采用中斷工作方式):#include <reg51.h> //51系列單片機(jī)頭文件sbit P200=P1^0 ; //位定義sbit P100=P1^1 ;unsignedcharx=0;void main() //主函數(shù){ TMOD=0x01; //設(shè)T0工作在方式1,定時(shí)模式EA=1; //開總中斷 ET0=1; //T0開中斷 TH0=0xf6; //裝入低電平計(jì)數(shù)初值TL0=0x3c;TR0=1; //啟動(dòng)T0,(輸出低電平開始) while(1); //等待中斷}void timer0()interrupt1 //T0的中斷服務(wù)函數(shù){P200=!P200;x++; if(x==2)//進(jìn)兩次中斷后取反{P100=!P100;x=0;}TH0=0xf6; //裝入低電平計(jì)數(shù)初值TL0=0x3c;} }8.假設(shè)系統(tǒng)時(shí)鐘頻率為12MHz,利用定時(shí)器T0編程實(shí)現(xiàn)如下功能:要求從P1.7引腳輸出一個(gè)脈沖頻率為2kHz、占空比為7:10的脈沖寬度調(diào)制(PWM)信號(hào)。計(jì)時(shí)的時(shí)間為整個(gè)周期的1/10,1?2000?10=50us,因而采用T0的方式2計(jì)算初值X:X=256-50us/1us=256-50=206因此T0的初值為TH0=206,TL0=206。參考程序(采用中斷工作方式):#include <reg51.h> //51系列單片機(jī)頭文件sbit P1.7=P1^7 ; //位定義void main() //主函數(shù){unsignedcharx=0; TMOD=0x02; //設(shè)T0工作在方式1,定時(shí)模式EA=1; //開總中斷 ET0=1; //T0開中斷 TH0=206;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論