用中斷法讀取AD數(shù)據(jù)_第1頁
用中斷法讀取AD數(shù)據(jù)_第2頁
用中斷法讀取AD數(shù)據(jù)_第3頁
用中斷法讀取AD數(shù)據(jù)_第4頁
用中斷法讀取AD數(shù)據(jù)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程課后作業(yè)班級: 學(xué)號:姓名: 作業(yè)要求:1 將例5.3.1改為使用中斷法讀取A/D數(shù)據(jù) 2 畫出Proteus原理圖3 寫出Keil編程程序1. 原理部分1.1 51單片機的中斷體系結(jié)構(gòu) 80C51的中斷系統(tǒng)有5個中斷源(8052有 6個),2個優(yōu)先級,可實現(xiàn)二級中斷嵌套。MCS-51系列單片機中斷系統(tǒng)的機構(gòu)如下:圖1中斷系統(tǒng)機構(gòu)組成51單片機的中斷體系結(jié)構(gòu)與中斷系統(tǒng)相關(guān)的特殊寄存器:1)中斷允許控制寄存器(IE)- 控制各中斷的開放和屏蔽2)中斷優(yōu)先級控制寄存器(IP)-設(shè)置各中斷的優(yōu)先級3)定時器/計數(shù)器控制寄存器(TCON)-定時器和外部中斷的控制4)串行口控制寄存器(SCON

2、)-串行中斷的控制中斷類型分為三類:1)T0、T1是2個定時器/計數(shù)器中斷,由片內(nèi)定時器提供;2)INT0、INT1是2個外部中斷,由引腳P3.2和P3.2提供;3)RX、TX為串行口中斷所用,由片內(nèi)串口提供。圖2 51單片機的中斷體系結(jié)構(gòu)1、(P3.2)/(P3.3)可由IT0(TCON.0)/IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.2/P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE0(TCON.1)/IE1(TCON.3)置1,向CPU申請中斷。3、TF0(TCON.5)/TF1(TCON.7),片內(nèi)定時/計數(shù)器T0/T1溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)

3、器T0/T1發(fā)生溢出時,置位TF0/TF1,并向CPU申請中斷。5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位TI,向CPU申請中斷。上述只是向CPU申請中斷,如果要得到CPU的相應(yīng),還要設(shè)置相應(yīng)的中斷允許IE和優(yōu)先級IP,中斷方能的到響應(yīng)。1)定時器中斷的使用(以定時器0為例) TMOD |= 0x01 | 0x04; /使用模式1,16位計數(shù)器,使用|符號可以在使用多個定時器時不受影響 TH0=0xFF; /給定初值 TL0=245; /從245計數(shù)到255 EA=1; /總中斷打開 ET0=1;

4、/定時器中斷打開 TR0=1; /定時器開關(guān)打開void Timer0_isr(void) interrupt 1 using 1 /中斷服務(wù)程序 TH0=0xFF; /重新給定初值 TL0=245; 2)外部中斷的使用(以外部中斷0為例) EA=1; /全局中斷開 EX0=1; /外部中斷0開 IT0=0; /電平觸發(fā)void ISR_Key(void) interrupt 0 using 1 /中斷服務(wù)程序在這次作業(yè)中,我所采用的中斷程序為外部中斷01.2 ADC0804轉(zhuǎn)換的基本原理1.工作原理:所謂 A/D轉(zhuǎn)換器就是模擬/ 數(shù)字轉(zhuǎn)換器(ADC),是將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號。信號輸

5、入端可以是傳感器或轉(zhuǎn)換器的輸出,而 ADC的數(shù)字信號也可能提供給微處理器,以便廣泛地應(yīng)用。 2. ADC0804引腳圖如下:8 位 COMS依次逼近型的 A/D轉(zhuǎn)換器. 三態(tài)鎖定輸 出 存取時間:135US 分辨率:8 位 轉(zhuǎn)換時間:100US 總誤差:正負 1LSB 工作溫度:ADC0804LCN-070 度 圖3 ADC0804引腳圖3.引腳說明/CS(引腳1)芯片選擇信號,低電平有效 /RD(引腳 2) 外部讀取轉(zhuǎn)換結(jié) 果的控制輸出信號。/RD為 HI 時,DB0DB7處理高阻抗:/RD為 LO時, 數(shù)字數(shù)據(jù)才會輸出。 /WR(引腳 3)用來啟動轉(zhuǎn)換的控制輸入,相當(dāng)于 ADC的轉(zhuǎn)換開始(

6、/CS=0 時), 當(dāng) /WR由 HI變?yōu)?LO時,轉(zhuǎn)換器被清除:當(dāng)/WR回到 HI 時,轉(zhuǎn)換正式開始。 CS 、RD 、WR (引腳1、2、3):是數(shù)字控制輸入端,滿足標(biāo)準(zhǔn)TTL 邏輯電平。其中CS 和WR 用來控制A/D 轉(zhuǎn)換的啟 動信號。CS 、RD 用來讀A/D 轉(zhuǎn)換的結(jié)果,當(dāng)它們同時為低電平時,輸出數(shù)據(jù)鎖存器DB0DB7 各端上出現(xiàn)8 位并行二進制數(shù)碼。CLKI(引腳4)和CLKR(引腳19):ADC08010805 片內(nèi)有時鐘電路,只要在外部“CLKI”和“CLKR”兩端外接一對電阻電容即可產(chǎn)生 A/D 轉(zhuǎn)換所要求的時鐘,其振蕩頻率為fCLK1/1.1RC。其典型應(yīng)用參數(shù)為:R=1

7、0K,C=150PF,fCLK640KHZ,轉(zhuǎn)換速度為100。若采用外部時鐘,則外部fCLK 可從CLKI 端送入,此時不接R、C。允許的時鐘頻率范圍為100KHZ1460KHZ。INTR (引腳5): INTR 是轉(zhuǎn)換結(jié)束信號輸出端,輸出跳轉(zhuǎn)為低電平表示本次轉(zhuǎn)換已經(jīng)完成,可作為微處理器的中斷或查詢信號。如果將CS 和WR 端與INTR 端相連,則ADC0804 就處于自動循環(huán)轉(zhuǎn)換狀態(tài)。CS 0 時,允許進行A/D 轉(zhuǎn)換。WR 由低跳高時A/D 轉(zhuǎn)換開始,8 位逐次比較需88=64 個時鐘周期,再加上控制邏輯操作,一次轉(zhuǎn)換需要6673 個時鐘周期。在典型應(yīng)用fCLK640KHZ 時,轉(zhuǎn)換時間約

8、為103114。當(dāng)fCLK 超過640KHZ,轉(zhuǎn)換精度下降,超過極限值1460KHZ 時便不能正常工作。Vin()(引腳 6)和Vin()(引腳7):被轉(zhuǎn)換的電壓信號從Vin()和Vin()輸入,允許此信號是差動的或不共地的電壓信號。如果輸入電壓V的變化范圍從0V到Vmax,則芯片的Vin()端接地,輸入電壓加到Vin()引腳。由于該芯片允許差動輸入,在共模輸入電壓允許的情況下,輸入電壓范圍可以從非零伏開始,即Vmin 至Vmas。此時芯片的Vin()端應(yīng)該接入等于Vmin 的恒值電碼墳上,而輸入電壓V仍然加到Vin()引腳上。AGND(引腳8)和DGND(引腳10):A/D 轉(zhuǎn)換器一般都有這

9、兩個引腳。模擬地AGND 和數(shù)字地DGND 分別設(shè)置引入端,使數(shù)字電路的地電流不影響模擬信號回路,以防止寄生耦合造成的干擾。Vref2(引腳9):參考電壓Vref/2 可以由外部電路供給從“Vref/2”端直接送入,Vref/2 端電壓值應(yīng)是輸入電壓范圍的二分之一所以輸入電壓的范圍可以通過調(diào)整Vref/2 引腳處的電壓加以改變,轉(zhuǎn)換器的零點無調(diào)整。圖4 ADC0804 轉(zhuǎn)換器的工作時序圖5.AD轉(zhuǎn)換器的設(shè)計接口電路圖:圖中,ADC0804 數(shù)據(jù)輸出線與AT89C51 的數(shù)據(jù)總線直接相連,AT89C51 的RD 、WR 和INT1直接連到ADC0804,由于用P1.0 線來產(chǎn)生片選信號,故無需外

10、加地址譯碼器。當(dāng)AT89C51 向ADC0804 發(fā)WR (啟動轉(zhuǎn)換)、RD (讀取結(jié)果)信號時,只要虛擬一個系統(tǒng)不占用的數(shù)據(jù)存儲器地址即可。圖5ADC0804接法2. 源代碼#include#include#define uchar unsigned char#define uint unsigned intsbit wela=P27;sbit dula=P26;sbit adrd=P37;sbit adwr=P36;uchar adval;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c

11、,0x39,0x5e,0x79,0x71;void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void display(uchar bai,uchar shi,uchar ge) wela=1;P0=0x7e;wela=0;P0=0xff;dula=1;P0=tablebai;dula=0;P0=0xff;delayms(5);wela=1;P0=0x7d;wela=0;P0=0xff;dula=1;P0=tableshi;dula=0;P0=0xff;delayms(5);wela=1;P0=0x7b;wela=0;P0=0xff;dula=1;P0=tablege;dula=0;P0=0xff;delayms(5);void main()uchar a,A1,A2,A3;EA=1; /開總中斷EX0=1;/開外部中斷0IT0=1; /設(shè)置電平觸發(fā)方式為下降沿while(1)adwr=1;_nop_();adwr=0;_nop_();adwr=1;for(a=10;a0;a-)display(A1,A2,A3);A1=adv

溫馨提示

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

評論

0/150

提交評論