課題八簡易信號發(fā)生器.ppt_第1頁
課題八簡易信號發(fā)生器.ppt_第2頁
課題八簡易信號發(fā)生器.ppt_第3頁
課題八簡易信號發(fā)生器.ppt_第4頁
課題八簡易信號發(fā)生器.ppt_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課題八 簡易信號發(fā)生器,任務一輸出1000Hz的方波 任務二 每秒閃爍一次的LED,課題目標,本課題的任務是用單片機實現(xiàn)簡易信號發(fā)生器頻率計。通過簡易頻率計的實現(xiàn),學會編寫單片機中斷服務程序的編寫,以及定時中斷的應用。,圖8-1 簡易頻率計實物圖,課題分析,單片機系統(tǒng)要做三件事,一是要進行1s鐘的定時,二是要測量外部被測信號的周期數(shù),三是將頻率顯示出來。單片機中的多個定時器/計數(shù)器既能進行定時,也能計數(shù),因而在本課題中采用單片機內(nèi)部的定時器來完成課題任務。為了容易理解定時器/計數(shù)器作這兩個方面的應用,本課題分為“輸出1000Hz的方波”、“每秒閃爍一次的LED”和“簡易頻率計”三個任務。,在一

2、個單片機系統(tǒng)中,為了實現(xiàn)頻率的測量,就是要對外部信號進行計數(shù),每到1s時,將計數(shù)所得的數(shù)值送到顯示器上。,從P1.0輸出1000Hz的方波,實際上就是要求從P1.0輸出周期為1ms的方波。為了簡化程序,將輸出的方波的占空比設定為50%,則高電平和低電平的時間各為1ms的一半,即各為500s。也就是在單片機中實現(xiàn)500s的定時,每次定時時間到了的時候,將P1.0的電平改變就可以了。一個引腳的電平的改變,使用取反指令就可以完成,具體的指令如“P10=P10;”,任務一輸出1000Hz的方波,二、程序設計分析,一、任務目標 任務的目標是使用AT89S51單片機,利用定時中斷實現(xiàn)從P1.0輸出1000

3、Hz的方波。,圖8-2 采用指令延遲程序框圖,圖8-3 中斷服務程序的流程圖,采用匯編延時方法: org 00h loop:setb p1.0 lcall delay clr p1.0 lcall delay sjmp loop delay:mov r0,#249 djnz r0,$ ret end,總結:實現(xiàn)定時功能,比較方便的辦法是利用單片機內(nèi)部的定時/計數(shù)器。也可以采用下面三種方法:,軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。 采用時基電路定時:例如采用555電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍

4、不能由軟件進行控制和修改,即不可編程。 采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。在單片機的定時/計數(shù)器不夠用時,可以考慮進行擴展。,相關知識,一、 定時器/計數(shù)器簡介 與外部中斷控制一樣,定時/計數(shù)器的工作也是由兩個特殊功能寄存器控制,這兩個 特殊功能寄存器是TMOD和TCON。 模式控制寄存器TMOD,是對定時器0和定時器1的計數(shù)方式和計數(shù)器控制方式進行設置的寄存器,低4位用于T0,高4位用于T1,GATE:門控位。 :定時/計數(shù)模式選擇位。 0為定時模式; =1為計數(shù)模式。,二、定時器/計數(shù)器的控制寄存器TMOD,M1M0:

5、工作方式設置位。定時/計數(shù)器有四種工作方式,由M1M0進行設置。,三、 定時/計數(shù)器的工作方式 1、方式0 方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。,定時器模式時有:Nt/ Tcy 機器周期Tcy,定時時間t 。 計數(shù)初值計算的公式為: 定時器的初值還可以采用計數(shù)個數(shù)直接取補法獲得。 計數(shù)模式時,計數(shù)脈沖是T0引腳上的外部脈沖。,2、方式1 方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器 。,計數(shù)個數(shù)與計數(shù)初值的關系為:,3、方

6、式2 方式2為自動重裝初值的8位計數(shù)方式。,工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。,計數(shù)個數(shù)與計數(shù)初值的關系為:,4、方式3 方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當于TR1=0,停止計數(shù)。,工作方式3將T0分成為兩個獨立的8位計數(shù)器TL0和TH0 。,一般情況下,當定時器T1用作串口波特率發(fā)生器時,定時器T0才設置為工作模式3。,方式3時的T1結構,#include #define uchar unsigned char #define uint unsigned int sbit d1=P10; void main() TMOD=0 x10; TH1=(6553

7、6-500)/256; TL1=(65536-500)%256; EA=1; ET1=1; TR1=1; While(1); void ex() interrupt 3 d1=!d1; TH1=(65536-500)/256; TL1=(65536-500)%256;,C語言程序,匯編語言程序:,ORG 0000H LJMP MAIN ;跳轉到主程序 ORG 000BH ;T0的中斷入口地址 LJMP DVT0 ;轉向中斷服務程序 ORG 0100H MAIN:MOV TMOD,#01H ;置T0工作于方式1 MOV TH0,#0FEH ;裝入計數(shù)初值 MOV TL0,#0CH SETB ET

8、0 ;T0開中斷 SETB EA ;CPU開中斷 SETB TR0 ;啟動T0 SJMP $ ;等待中斷 DVT0:CPL P1.0 ;P1.0取反輸出 MOV TH0,#0FEH ;重新裝入計數(shù)值 MOV TL0,#0CH RETI ;中斷返回 END,任務二每秒閃爍一次的LED,利用定時中斷實現(xiàn)將LED每秒閃爍一次。,與課題二相似,要使LED每秒閃爍一次,按LED的點亮時間和熄滅時間相同進行處理,則只需要進行0.5s的定時。具體處理是,每過0.5s,將LED的狀態(tài)取反就可以實現(xiàn)目標了?;蛘哒f,與本課題中的任務一類似,只不過是頻率變得很低了,周期更長了 。,任務目標,程序設計分析,為了完成0

9、.5s的定時,一般來說,有兩種方案可以實現(xiàn)。 第一種方案是采用硬件定時的基礎上,增加一個存儲單元,每次中斷時使用該存儲單元進行計數(shù),當達到某個計數(shù)值時再執(zhí)行對應的程序,這樣就延長了定時的時間長度。 第二種方案是也是采用一個定時器進行硬件定時,在每次中斷時輸出一個脈沖,然后采用硬件計數(shù)的方式進行延長定時時間。,程序設計分析,因實驗電路晶振fOSC12MHz,所以T1的初值的裝入語句如下: TH1=(65536-50000)/256; TL1=(65536-50000)%256; 每定時0.5s鐘時間到了,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理,送到數(shù)碼管顯示出來。

10、,由本課題中的任務二中可知,T1工作在定時狀態(tài)下,最大定時時間約為65ms,達不到1s的定時,所以采用定時50ms,共定時10次,即可完成0.5s的定時功能。,一、 定時0.5s,匯編語言程序(中斷法),ORG 00H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H MAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R0,#10 SETB ET0 SETB EA SETB TR0 SJMP $,DVT0:DJNZ R0,NT0 MOV R0,#10 CPL P1.0 NT0: MOV TH0,#3CH MOV T

11、L0,#0B0H SETB TR0 RETI END,ORG 0100H MAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R0,#10 SETB TR0 SS: JNB TF0,$ DVT0:DJNZ R0,NT0 MOV R0,#10 CPL P1.0 NT0: CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 LJMP SS END,匯編語言程序(查詢法),C語言程序:,#include #define uchar unsigned char #define uint unsigned int sbi

12、t d1=P10; uchar tt; void main() tt=0; TMOD=0 x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1;,while(1) if(tt=10) tt=0; d1=!d1; void ex() interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; tt+; ,本章小結 單片機中斷系統(tǒng)、定時系統(tǒng)是單片機系統(tǒng)重要的內(nèi)容。 單片機的中斷系統(tǒng)能有效地解決慢速工作的外圍設備與快速工作的CPU之間的矛盾,可以提高工作效率,提高實時處理功能,以便對隨機發(fā)生的事件作出快速響應和及時處理。中斷的處理過程包括:中斷請求、中斷響應、中斷服務及中斷返回。單片機對中斷的處理主要通過中斷寄存器TCON、 SCON、 IE、 IP實現(xiàn)。 MCS-51芯片中有定時器/計數(shù)器電路,它可以實現(xiàn)定

溫馨提示

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

評論

0/150

提交評論