PCF芯片的使用_第1頁
PCF芯片的使用_第2頁
PCF芯片的使用_第3頁
PCF芯片的使用_第4頁
PCF芯片的使用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、pcf8591芯片的使用基于 pcf8591 的 ad da的程序設(shè)計。本設(shè)計是通過 pcf8591 芯片選擇通道 1將滑動變阻器的電壓記過a/d轉(zhuǎn)換,有單片機讀回,并在數(shù)碼管顯示,比且有這個數(shù)據(jù)再經(jīng)過d/a 轉(zhuǎn)換成模擬電壓驅(qū)動發(fā)光二極管。發(fā)光二極管的亮度與數(shù)碼管顯示的電壓值相對。1. pcf8591 芯片 pcf8591是單片、單電源低功耗8 位 cmos 數(shù)據(jù)采集器件,具有4 個模擬輸入、一個輸出和一個串行i2c總線接口。 3 個地址引腳 a0、a1和 a2用于編程硬件地址,允許將最多 8 個器件連接至 i2c總線而不需要額外硬件。 器件地址、控制和數(shù)據(jù)通道通過兩線雙向i2c總線傳輸。器件

2、功能包括多路復用模擬量輸入、片上跟蹤和保持功能、 8 位模數(shù)轉(zhuǎn)換和 8位數(shù)模轉(zhuǎn)換。最大轉(zhuǎn)換速率取決于i2c總線的最高速率。我實現(xiàn)的 ad轉(zhuǎn)換是使用通道0 將滑動變阻器兩端的電壓ain0ain3:模擬信號輸入端。a0a2:引腳地址端。vdd 、vss :電源端。( 6v)sda 、scl :i2c 總線的數(shù)據(jù)線、時鐘線。osc :外部時鐘輸入端,內(nèi)部時鐘輸出端。ext :內(nèi)部、外部時鐘選擇線,使用內(nèi)部時鐘時 ext 接地。agnd :地。aout :d/a 轉(zhuǎn)換輸出端。vref :基準電源端。地址:i2c總線系統(tǒng)中的每一片pcf8591 通過發(fā)送有效地址到該器件來激活。該地址包括固定部分和可編程

3、部分??删幊滩糠直仨毟鶕?jù)地址引腳a0、a1和 a2來設(shè)置。在 i2c總線協(xié)議中地址必須是起始條件后作為第一個字節(jié)發(fā)送。地址字節(jié)的最后一位是用于設(shè)置以后數(shù)據(jù)傳輸方向的讀/ 寫位。(見下圖)控制字: 發(fā)送到 pcf8591 的第二個字節(jié)將被存儲在控制寄存器,用于控制器件功能??刂萍拇嫫鞯母甙遄止?jié)用于允許模擬輸出,和將模擬輸入編程為單端過查分輸入。低半字節(jié)選擇一個有高板字節(jié)定義的模擬輸入通道。如果自動增量標志置1,每次 a/d轉(zhuǎn)換后通道號將自動增加。如果自動增量模式是使用內(nèi)部振蕩器的應用中所需要的,那么控制字中模擬輸出允許標志應置 1。 這要求內(nèi)部振蕩器持續(xù)運行, 因此要防止振蕩器啟動延時的轉(zhuǎn)換錯誤

4、結(jié)果。模擬輸出標志可以在其他時候復位以減少靜態(tài)功耗。d/a 轉(zhuǎn)換: 發(fā)送給 pcf8591 的第三個字節(jié)被存儲到dac數(shù)據(jù)寄存器,并使用片上d/a轉(zhuǎn)換器轉(zhuǎn)換成對應的模擬電壓。 這個 d/a 轉(zhuǎn)換器由連接至外部參考電壓的具有256個接頭的電阻分壓電路和選擇開關(guān)組成。模擬輸出電壓由自動清零單位增益放大器緩沖。這個緩沖放大器可通過設(shè)置控制寄存器的模擬輸出允許標志來開戶或關(guān)閉。在激活狀態(tài),輸出電壓保持到新的數(shù)據(jù)字節(jié)被發(fā)送。a/d 轉(zhuǎn)換:a/d 轉(zhuǎn)換器采用逐次逼近轉(zhuǎn)換技術(shù)。在 a/d轉(zhuǎn)換周期將來臨時片上d/a抓換器和高增益比較器。 一個 a/d 轉(zhuǎn)換周期總是開始于發(fā)送一個有效讀模式地址給pcf8591之

5、后。a/d 轉(zhuǎn)換周期在應答時鐘脈沖的后沿被觸發(fā),并在傳輸前一次轉(zhuǎn)換結(jié)果時執(zhí)行。一旦一個轉(zhuǎn)換周期被觸發(fā), 所選通道的輸入電壓采樣將保存到芯片被轉(zhuǎn)換為對應的8為二進制碼。2. 74hc573 芯片 74hc573 為八位制 3態(tài)非反轉(zhuǎn)透明鎖存器,具有高性能硅門cmos 器件。管腳圖如下:1腳三態(tài)允許控制端低電平有效d0d7為數(shù)據(jù)輸入端/q0/q7為數(shù)據(jù)輸出端3. 74ls138 芯片74ls138 為3線8線譯碼器,引腳圖如下:工作原理: 當一個選通端( e1)為高電平,另兩個選通端( (/e2) 和/(e3) )為低電平時,可將地址端( a0、a1、a2)的在 y0至 y7對應的輸出端以低電平譯

6、出。:a2a1a0=110時,則 y6輸出端輸出低。利用 e1、e2和 e3可級聯(lián)擴展成 24 線;若外接一個還可級聯(lián)擴展成 32 線。若將選通端中的一個作為數(shù)據(jù)輸入端時,74ls138 還可作。可用在 8086的電路中,。引腳功能:ac :地址輸入端sta (g1 ):選通端/stb(/g2a)、/stc(/g2b):選通端(低電平有效)/y0/y7:輸出端(低電平有效)vcc :電源正gnd :地4. 電路圖5. 源程序代碼#include #define uchar unsigned char #define uint unsigned int #define pcf8591 0 x90

7、 /pcf8591 地址bit write=0; /寫 24c02 的標志sbit scl=p15; /串行時鐘輸入端sbit sda=p36; /串行數(shù)據(jù)輸入端sbit ls138a=p20;/138譯碼器的 3 位 控制數(shù)碼管的sbit ls138b=p21; sbit ls138c=p22; uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; / 數(shù)顯管字模void delay() /延時 4-5 個微秒; void delay_1ms(uint z) uint x,y; for(x=

8、z;x0;x-) for(y=110;y0;y-) ; void start()/開始信號 sda=1; delay(); scl=1; delay(); sda=0; delay(); void stop() /停止信號 sda=0; delay(); scl=1; delay(); sda=1; delay(); void respons()/應答相當于一個智能的延時函數(shù) uchar i; scl=1; delay(); while(sda=1)&(i250) i+; scl=0; delay(); void init() /初始化 sda=1; delay(); scl=1; d

9、elay(); uchar read_byte() uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i8;i+) scl=1; delay(); k=(k1)|sda;/先左移一位,再在最低位接受當前位 scl=0; delay(); return k; void write_byte(uchar date) /寫一字節(jié)數(shù)據(jù) uchar i,temp; temp=date; for(i=0;i8;i+) temp=temp1; /左移一位移出的一位在 cy中 scl=0; /只有在 scl=0 時 sda 能變化值 delay(); sda

10、=cy; delay(); scl=1; delay(); scl=0; delay(); sda=1; delay(); void write_add(uchar control,uchar date) start(); respons(); write_byte(control); respons(); write_byte(date); respons(); stop(); uchar read_add(uchar control) uchar date; start(); write_byte(pcf8591); respons(); write_byte(control); resp

11、ons(); start(); write_byte(pcf8591+1); /把最后一位變成 1,讀 respons(); date=read_byte(); stop(); return date; uchar dac(uchar light) start(); write_byte(pcf8591); respons(); write_byte(0 x40); /寫入控制位,使能dac 輸出 respons(); write_byte(light); respons(); stop(); return(1); void display(uchar ge,uchar shi,uchar bai) p0=0 xff; ls138a=1; /第一位 ls138b=1; ls138c=1; p0=tablege; delay_1ms(5); p0=0 xff; ls138a=0; /第二位 ls138b=1; ls138c=1; p0=tableshi; delay_1ms(5); p0=0 xff; ls138a=1; /第三位 ls138b=0; ls138c=1; p0=tablebai+0 x80;

溫馨提示

  • 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

提交評論