基于_單片機的簡易數(shù)字直流電壓表畢業(yè)設(shè)計_第1頁
基于_單片機的簡易數(shù)字直流電壓表畢業(yè)設(shè)計_第2頁
基于_單片機的簡易數(shù)字直流電壓表畢業(yè)設(shè)計_第3頁
基于_單片機的簡易數(shù)字直流電壓表畢業(yè)設(shè)計_第4頁
基于_單片機的簡易數(shù)字直流電壓表畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.基于MCS-51單片機的簡易數(shù)字直流電壓表設(shè)計設(shè)計一個簡易數(shù)字直流電壓表。(量程0V-2V、測量速度為大于等于2 次/秒、測量誤差在±0.05V以內(nèi),有超限報警、數(shù)碼管顯示。)1:系統(tǒng)設(shè)計(1)分析任務要求,寫出系統(tǒng)整體設(shè)計思路從試題的要求分析,主要包括的內(nèi)容為ADC 轉(zhuǎn)換電路的控制、采用定時器定時讀取ADC 轉(zhuǎn)換器的數(shù)據(jù)、將ADC 轉(zhuǎn)換器的數(shù)據(jù)計算為對應的電壓值,最后在數(shù)碼管上顯示出來。整體設(shè)計思路:硬件采用單片機的P0 輸出數(shù)碼管的7 段碼,P2 口輸出數(shù)碼管的位控信號。用P1 的三個I/O 管腳連接ADC 轉(zhuǎn)換器的接口,通過查詢定時器T0 中斷標志是否有效來啟動ADC 轉(zhuǎn)換器

2、的工作,并讀取ADC 轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果。然后,根據(jù)ADC 轉(zhuǎn)換器的參考電壓將ADC 轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果計算為對應的電壓值,并在數(shù)碼管上顯示出來。(2)選擇單片機型號和所需外圍器件型號,設(shè)計單片機硬件電路原理圖采用MCS51 系列單片機At89S51 作為主控制器,外圍電路器件包括數(shù)碼管驅(qū)動、AD 轉(zhuǎn)換器TLC549、基準電壓TL431 等。數(shù)碼管驅(qū)動采用2 個四聯(lián)共陰極數(shù)碼管顯示,由于單片機驅(qū)動能力有限,采用74HC244 作為數(shù)碼管的驅(qū)動。在74HC244 的7 段碼輸出線上串聯(lián)100 歐姆電阻起限流作用。AD 轉(zhuǎn)換器的參考電壓由精密基準電源TL431 提供,標準參考電壓Vref+為2.5 伏

3、, Vref-為0 伏。由于0V-2V 內(nèi)的測量誤差控制在±0.05V 內(nèi),因此8 位A/D 轉(zhuǎn)換器即可滿足要求。AD 轉(zhuǎn)換器TLC549是以8 位開關(guān)電容逐次逼近A/D 轉(zhuǎn)換器為基礎(chǔ)而構(gòu)造的CMOS A/D 轉(zhuǎn)換器。它們設(shè)計成能通過3態(tài)數(shù)據(jù)輸出和模擬輸入與微處理器或外圍設(shè)備串行接口。TLC549 僅用輸入/輸出時鐘(I/O CLOCK)和芯片選擇(CS)輸入作數(shù)據(jù)控制。TLC549 的IO CLOCK 輸入頻率最高可達1.1MHz。TLC549 提供了片內(nèi)系統(tǒng)時鐘,它通常工作在4MHz 且不需要外部元件。片內(nèi)系統(tǒng)時鐘使內(nèi)部器件的操作獨立于串行輸入/輸出的時序并允許TLC548 和T

4、LC549 象許多軟件和硬件所要求的I/O CLOCK 和內(nèi)部系統(tǒng)時鐘一起可以實現(xiàn)高速數(shù)據(jù)傳送以及對于TLC549 為每秒40,000 次轉(zhuǎn)換的轉(zhuǎn)換速度。TLC549 的引腳排列分別如圖1。圖1 TLC549 的引腳排列TLC549 的工作時序如圖2所示。圖2 TLC549 的工作時序轉(zhuǎn)換周期需要36 個系統(tǒng)時鐘周期(最大為17s),它開始于CS 變?yōu)榈碗娖街驣/O CLOCK的第8 個下降沿,這適用于該時刻其地址存在于存儲器中的通道。在CS 變?yōu)榈碗娖胶?,最高有效位(A7)自動被放置在DATA OUT 總線上。其余的7 位(A6-A0)在前7 個I/O CLOCK 下降沿由時鐘同步輸出。T

5、LC549 的工作原理TLC549 是在單個芯片內(nèi)的完善的數(shù)據(jù)采集系統(tǒng)。每一個器件包含內(nèi)部系統(tǒng)時鐘,采樣和保持,8 位A/D 轉(zhuǎn)換器,數(shù)據(jù)寄存器以及控制邏輯電路。為了提高靈活性和訪問速度,器件有兩個控制輸入:I/OCLOCK 和芯片選擇(CS)。這些控制輸入和與TTL 兼容的3 態(tài)輸出易于與微處理器或小型計算機的串行通信。器件可在17s 或更短時間內(nèi)完成轉(zhuǎn)換。TLC549 每25s 重復一次完整的輸入-轉(zhuǎn)換-輸出(input-conversion-output)周期。內(nèi)部系統(tǒng)時鐘和I/OCLOCK 獨立使用且不需要任何特定的速度或二者之間的相位關(guān)系。這種獨立性簡化了器件的硬件和軟件控制任務。由

6、于這種獨立性和系統(tǒng)時鐘的內(nèi)部產(chǎn)生,控制硬件和軟件只需關(guān)心利用I/O 時鐘讀出先前轉(zhuǎn)換結(jié)果和啟動轉(zhuǎn)換。內(nèi)部系統(tǒng)時鐘以這種方式驅(qū)動轉(zhuǎn)換電路以便控制硬件和軟件不需要涉及此項任務。當CS 為高電平時,DATAOUT 處于高阻狀態(tài)且I/OCLOCK(I/O 時鐘)被禁止。正??刂茣r序為:1.CS 被拉至低電平。當CS 變?yōu)榈碗娖綍r,前次轉(zhuǎn)換結(jié)果的最高有效位(MSB)開始出現(xiàn)在DATAOUT端。2.前4 個I/OCLOCK 周期的下降沿輸出前次轉(zhuǎn)換結(jié)果的第2、第3、第4 和第5 個最高有效位。在I/OCLOCK 第4 個高電平至低電平的跳變之后,片內(nèi)采樣和保持電路開始對模擬輸入采樣。采樣操作主要包括內(nèi)部電

7、容器充電到模擬輸入電壓的電平。3.其后再把三個I/OCLOCK 周期加至I/OCLOCK 端,在這些時鐘周期的下降沿,第6、第7 和第8 個轉(zhuǎn)換位被移出。4.最后(第8 個)時鐘周期被加至I/OCLOCK。此時鐘周期高電平至低電平的跳變使片內(nèi)采樣和保持電路開始保持功能。保持功能在接著四個內(nèi)部系統(tǒng)時鐘周期內(nèi)繼續(xù)進行,在此之后保持功能結(jié)束且在下面32 個系統(tǒng)時鐘周期內(nèi)完成轉(zhuǎn)換,總共為36 個周期。在第8 個I/OCLOCK 周期之后,CS必須變?yōu)楦唠娖?,否則I/OCLOCK 必須保持低電平達至少36 個系統(tǒng)時鐘周期以供保持和轉(zhuǎn)換功能的完成。在多個轉(zhuǎn)換周期內(nèi)CS 可保持低電平。在多個轉(zhuǎn)換周期內(nèi)使CS

8、 保持低電平時必須特別注意防止I/OCLOCK 線上的噪聲閃變。如果在I/OCLOCK 上發(fā)生閃變,那么在微處理器/控制器和器件之間的I/O 時序?qū)⑹ネ?。此外,如果CS 變?yōu)楦唠娖?,那么它必須保持高電平直至轉(zhuǎn)換結(jié)束為止。否則,CS 的有效高電平至低電平跳變將引起復位,它使正在進行的轉(zhuǎn)換失敗。在36 個系統(tǒng)時鐘周期發(fā)生之前,通過完成步驟1 至4 可以啟動新的轉(zhuǎn)換,同時正在進行的轉(zhuǎn)換中止。此操作產(chǎn)生先前的轉(zhuǎn)換結(jié)果而不是正在進行的轉(zhuǎn)換結(jié)果。(3)分析軟件任務要求,寫出程序設(shè)計思路,分配單片機內(nèi)部資源,畫出程序流程圖軟件的任務包括定時器的定時功能、AD 轉(zhuǎn)換器TLC549 的控制與數(shù)據(jù)的讀取,數(shù)碼

9、管的動態(tài)掃描。程序設(shè)計思路,采用查詢定時器中斷標志的方式來啟動AD 轉(zhuǎn)換器TLC549 的工作,在讀取AD轉(zhuǎn)換器的數(shù)據(jù)之后,再對數(shù)據(jù)進行計算換算為對應的電壓值。需要分配的單片機存儲資源包括AD 轉(zhuǎn)換器數(shù)據(jù)的暫存變量(re_data)、定時器溢出次數(shù)的計數(shù)變量(T_cnt)、數(shù)據(jù)換算的系數(shù)(xishu)以及電壓值(volt)等。主程序的流程圖如圖3所示。由于采用查詢中斷標志的方式來響應的中斷,所以主程序要循環(huán)完成如下任務:中斷標志的查詢、AD 轉(zhuǎn)換器數(shù)據(jù)的讀取、電壓值的換算以及數(shù)碼管的動態(tài)掃描顯示。圖3 數(shù)字電壓表的主程序流程圖(4)設(shè)計系統(tǒng)軟件調(diào)試方案、硬件調(diào)試方案及軟硬件聯(lián)合調(diào)試方案軟件調(diào)試

10、方案:偉福軟件中,在“文件新建文件”中,新建C 語言源程序文件,編寫相應的程序。在“文件新建項目”的菜單中,新建項目并將C 語言源程序文件包括在項目文件中。在“項目編譯”菜單中將C 源文件編譯,檢查語法錯誤及邏輯錯誤。在編譯成功后,產(chǎn)生以“*.hex”和“*.bin” 后綴的目標文件。硬件調(diào)試方案:在設(shè)計平臺中,將單片機的P1.0 接TLC549 的CLK 管腳,P1.1 接TLC549 的DOUT 管腳,P1.2 接TLC549 的CS 管腳。在偉福中將程序文件編譯成目標文件后,將下載線安裝在實驗平臺上,運行“MCU 下載程序”,選擇相應的flash 數(shù)據(jù)文件,點擊“編程”按鈕,將程序文件下

11、載到單片機的Flash 中。然后,上電重新啟動單片機,檢查所編寫的程序是否達到題目的要求,是否全面完整地完成試題的內(nèi)容。2 程序設(shè)計/晶振:11.0592MHz,定時器T0 每50ms 中斷一次,每隔0.1 秒讀ADC 一次/* AD 轉(zhuǎn)換器使用TLC549p1.0-Clockp1.1-Data outp1.2-CS*/#include "reg51.h"#include "intrins.h"#include "math.h"sbit ad_clk=P10;sbit ad_dout=P11;sbit ad_cs=P12;unsign

12、ed char data re_data;unsigned int data T_cnt;double volt,xishu;char code led_seg_code10=0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/led_seg_code0-9代表0-9 的7 段碼/-void delay(unsigned int i)/延時 while(-i); /-void led_show(double f) unsigned char i,s;unsigned int k,*j;if (f<2) k=f;/取整數(shù)部分i=k;P0

13、=led_seg_codei | 0x80;P2=0xfb;delay(50);i=f*10;i=i%10;P0=led_seg_codei;P2=0xfd;delay(50);i=f*100; /取小數(shù)后1 位i=i%10;P0=led_seg_codei;P2=0xfe;delay(50);else /超限報警,顯示“-” P0=0x40;P2=0xfb;delay(50);/-P2=0xfd;delay(50);/-P2=0xfe;delay(50);/-讀取ADC 轉(zhuǎn)換器TLC549 的數(shù)據(jù)-unsigned char receive_data()unsigned char i,d;d

14、=0;ad_cs=1; / /CS 置高,片選無效ad_clk=0;ad_cs=0;_nop_();for(i<0;i<8;i+) ad_clk=1;d=d<<1;if (ad_dout) d+;ad_clk=0;ad_cs=1;for(i=0;i<10;i+) / 適當延時超過17us_nop_();return d;/-main()T_cnt=0;TMOD=0x01; /定時器設(shè)置T0TH0=0x4c; /50000us=(65536-0x4c00)*12/11.0592TL0=00;EA=0;TR0=1;re_data=0x00;volt=0;xishu=2.5/255.0;/-while(1) i

溫馨提示

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

最新文檔

評論

0/150

提交評論