使用單片機制作多路輸入電壓表_第1頁
使用單片機制作多路輸入電壓表_第2頁
使用單片機制作多路輸入電壓表_第3頁
使用單片機制作多路輸入電壓表_第4頁
使用單片機制作多路輸入電壓表_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、使用單片機制作多路輸入電壓表在工業控制和智能化儀表中,常由單片機進行實時控制及實時數據處理。單片機所加工的信息都是數字量,而被控制或測量對象的有關參量往往是連續變化的模擬量,如溫度、速度、壓力等等,與此對應的電信號是模擬電信號。單片機要處理這種信號,首先必須將模擬量轉換成數字量,這一轉換過程就是模數轉換,實現模/數轉換的設備稱為A/D轉換器或ADC。AD轉換器是單片機應用中常見的接口,從事單片機開發的人員通常都會遇到使用AD的要求,本文通過一個典型的例子來學習一種常用AD轉換器的用法。一、模數轉換簡介A/D轉換電路種類很多,在選擇模/數轉換器時,主要考慮以下的一些技術指標:轉換時間和轉換頻率、

2、量化誤差與分辨率、轉換精度、接口形式等。目前,較為流行的AD轉換器件有很多都采用了串行接口,這使得這類芯片與單片機的硬件連接非常簡單,而軟件編程相對要復雜一些,下面,我們以TI公司的TLC1543為例,制作一個多路輸入的電壓表,了解一下這類芯片的使用特點。二、TLC1543特性簡介TLC1543是由TI公司開發的開關電容式AD轉換器,該芯片具有如下的一些特點:10位精度、11通道、三種內建的自測模式、提供EOC(轉換完成)信號等。該芯片與單片機的接口采用串行接口方式,引線很少,與單片機連接簡單。圖1是TLC1543的引腳示意圖,其中A0A10是11路輸入,Vcc和GND分別是電源引腳,REF+

3、和REF-分別是參考電源的正負引腳,使用時一般將REF-接到系統的地,達到一點接地的要求,以減少干擾。其余的引腳是TLC1543與CPU的接口,其中CS為片選端,如不需選片,可直接接地。I/OClock是芯片的時鐘端,Adress是地址選擇端,DataOut是數據輸出端,這三根引腳分別接到CPU的三個I/O端即可。EOC用于指示一次AD轉換已完成,CPU可以讀取數據,該引腳是低電平有效,根據需要,該引腳可接入CPU的中斷引腳,一旦數據轉換完成,向CPU提出中斷請求;此外,也可將該引腳接入一個普通的I/O引腳,CPU通過查詢該引腳的狀態來了解當前的狀態,甚至該引腳也可以不接,在CPU向TLC15

4、43發出轉換命令后,過一段固定的時間去讀取數據即可。三、單片機與TLC1543芯片的接口圖2使用TLC1543制作的多路輸入電壓表的電路圖,從圖中可以看出,這里使用了TLC1543作為基準電壓源,將REF-直接接地,P1.0、P1.1、P1.2、P1.3和P1.4分別與EOC、時鐘、地址、數據、片選端分別相連。制作時,請參考表1進制連線。注意電容E1和C1一定要用,E1可用10u/16V電解,C1可用0.1uCBB電容,安裝時盡量接近20腳和第10腳。輸入端可根所需要,接入相應的信號。編程的要求是在六位數碼管的后四位數碼管上輪流顯示TLC1543各通道的測量值,同時用十六進制表示的通道號顯示在

5、第1位數碼管上。圖2用單片機制作多路輸入電壓表四、TLC1543驅動程序編寫由于采用串行接口,在硬件電路簡單的同時,帶來了軟件編制的復雜性,初學單片機的入門者很難掌握這類芯片的編程方法,這給此類芯片的應用帶來一定的限制。為解決這一問題,我們在實際應用該芯片的基礎上寫出了該芯片的驅動程序,有了驅動程序,使用者不必再關心TLC1543數據手冊中的時序圖之類不易懂的部份,只要了解清楚驅動程序的用法,即可使用該芯片。TLC1543共有11條輸入通道,這11條通道的編號從010,讀取時,根據編號來獲得想應通道的數據,此外,內部還有三條用于測試的通道,分別是接:、和其通道編號分別是11、12和13.1驅動

6、程序;以下定義各引腳ADCLK EQU P1.1 ;時鐘ADaddr EQU P1.2 ;地址引腳ADDout EQU P1.3 ;數據端ADCS EQU P1.4 ;片選端命令:ADConver參數:r2通道號,轉換前存入轉換結后數據在r0r1中,高位在前資源占用:r0,r1,r7,AADConver:CLR ADClk CLR ADCSMOV A,R2RLC A;送出地址信號MOV R7,#4C_L1:RLC AMOV ADAddr,CSETB ADClkNOPNOPNOPNOPCLR ADClkDJNZ R7,C_L1;補6個脈沖MOV R7,#6C_L2:SETB ADClkNOPNO

7、PNOPNOPCLR ADClkDJNZ R7,C_L2;等待轉換結束 SETB ADCSNOPNOPNOPNOPCLR ADCS;取高2位NOPNOPNOPNOPSETB ADDoutSETB ADClkMOV C,ADDoutMOV ACC.1,CCLR ADClkNOPNOPNOPNOPSETB ADDoutSETB ADClkMOV C,ADDoutMOV ACC.0,CCLR ADClkANL A,#00000011B ;清A的高6位MOV R0,A ;保存數據MOV R7,#8C_L3:NOPNOPNOPNOPSETB ADDoutSETB ADClkMOV C,ADDoutMOV

8、 ACC.0,C RLC ACLR ADClkDJNZ R7,C_L3SETB ADCSMOV R1,ARET2驅動程序的使用該驅動程序中用到了四個標記符號:ADClk與TLC1543的Clk引腳相連的單片機引腳ADaddr與TLC1543的Address引腳相連的單片機引腳ADDout與TLC1543的AdDout引腳相連的單片機引腳ADCS 與TLC1543的引腳相連的單片機引腳實際使用時,根據接線的情況定義好ADclk、ADaddr、ADDout、ADCS,將通道號送入R2,調用ADConver,即可從R0、R1中得到轉換后的數據,使用非常簡單。;*;平凡單片機工作室;Copyright

9、2003pingfansMcuStudio;AllrightsReserved;作者:周堅;文件名:ad.asm;功能簡介:每隔1s輪流將一個通道的值顯示在數碼管后4位,首位顯示通道號;*gCoun DATA 22H ;通道計數器CLK bit P1.1 ;時鐘端ADDR bit P1.0 ;地址端Dout bit P1.4 ;數據輸出端CS bit P1.3 ;片選端Hidden DATA 10H ;消隱碼Counter DATA 57H ;顯示程序用計數器DISPBUFDATA 58H ;顯示緩沖區首地址ORG 0000HJMP STARTORG 000BH ;定時中斷使用T0JMP DI

10、SP ;定時中斷程序ORG 30HSTART:MOV SP,#5FH ;初始化MOV P1,#0FFHMOV P0,#0FFHMOV P2,#0FFH ;關所有LED及數碼管MOV TMOD,#00000001B MOV TH0,#HIGH(65536-3000)MOV TL0,#LOW(65536-3000)SETB TR0SETB EASETB ET0MOV Counter,#0 ;計數器清零MOV DISPBUF+1,#Hidden ;第2位顯示器消隱MOV gCoun,#0 ;通道計數器清零,指向通道0LOOP:CALL Delay ;延時1sMOV R2,gCoun ;送通道號CALL ADConverMOV A,R0MOV R6,AMOV A,R1MOV R7,ACALL HB2;調用二十進制轉換程序;入口:待轉換的雙字節十六進制數在R6和R7中;出口:轉換結束的結果在R3、R4和R5中,壓縮BCD碼方式存儲MOV A,R4ANL A,#0F0HSWAP A ;高低4位互換MOV DispBuf+2,A ;最高位MOV A,R4ANL A,#0FHMOV DispBuf+3,AMOV A,R5ANL A,#0F0HSWAP AMOV DispBuf+4,AMOV A,R5ANL A,#0FHMOV DispBuf+5,A ;以上程序段將壓縮BCD碼轉換

溫馨提示

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

評論

0/150

提交評論