向兵 呂佳璐
摘 要:隨著電子技術(shù)和計(jì)算機(jī)應(yīng)用的發(fā)展,單片機(jī)技術(shù)在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用,A/D轉(zhuǎn)換作為單片機(jī)在進(jìn)行信號(hào)處理過(guò)程中模擬量和數(shù)字量轉(zhuǎn)化的重要渠道,在當(dāng)今的智能化工業(yè)控制領(lǐng)域中,被廣泛應(yīng)用于各種實(shí)時(shí)監(jiān)測(cè)、控制系統(tǒng),對(duì)單片機(jī)在信號(hào)采集、傳輸?shù)阮I(lǐng)域有著重要的意義。而PCF8591是一種具有IIC總線接口的8位A/D、D/A轉(zhuǎn)換芯片,在與CPU的信息傳輸過(guò)程中僅靠時(shí)鐘線SCL和數(shù)據(jù)線SDA就可以實(shí)現(xiàn)信息交換。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);PCF8591;A/D轉(zhuǎn)換;IIC總線
一、A/D轉(zhuǎn)換器發(fā)展現(xiàn)狀及發(fā)展趨勢(shì)
在自動(dòng)化檢測(cè)控制系統(tǒng)中,微型計(jì)算機(jī)是一個(gè)典型的數(shù)字系統(tǒng),為了實(shí)現(xiàn)數(shù)據(jù)采集和輸出,A/D轉(zhuǎn)換是必不可少的一個(gè)過(guò)程。A/D轉(zhuǎn)換器是一種廣泛應(yīng)用的器件,A/D轉(zhuǎn)換器是將摸擬量轉(zhuǎn)換為一定進(jìn)制的數(shù)字量。A/D轉(zhuǎn)換器大多是將電壓量轉(zhuǎn)換為正比的二進(jìn)制數(shù)字量,乘以轉(zhuǎn)換系數(shù)后可獲得電壓的數(shù)值量,也有先將電壓量轉(zhuǎn)換為時(shí)間或頻率,然后再經(jīng)計(jì)數(shù)得到電壓的數(shù)值量。目前,A/D轉(zhuǎn)換器已經(jīng)在轉(zhuǎn)換速度和轉(zhuǎn)換精度等主要指標(biāo)上有了重大突破,而低電壓、高精度、高集成度、高效率則是A/D轉(zhuǎn)換器繼續(xù)發(fā)展的主要趨勢(shì)。
二、PCF8591芯片簡(jiǎn)介
PCF8591 是單電源,低功耗8 位CMOS 數(shù)據(jù)采集器件,具有4路模擬輸入、一個(gè)輸出和一個(gè)串行IIC 總線接口與CPU進(jìn)行通信。它的3 個(gè)地址引腳A0、A1 和A2 用于編程硬件地址,允許將最多8 個(gè)器件連接至IIC總線而不需要額外硬件,相比其他A/D轉(zhuǎn)換芯片,集成度更高,使用方法更加簡(jiǎn)便。
三、IIC協(xié)議簡(jiǎn)介
IIC 即Inter-Integrated Circuit(集成電路總線),這種總線類型是由飛利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來(lái)的,主要是用來(lái)連接整體電路(ICS) ,IIC是一種多向控制總線,也就是說(shuō)多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下,同時(shí)每個(gè)芯片都可以作為實(shí)時(shí)數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡(jiǎn)化了信號(hào)傳輸總線接口。
IIC實(shí)際上就是隨需求的增長(zhǎng)應(yīng)運(yùn)而生的一種多機(jī)(以下分主機(jī)、從機(jī))串行數(shù)據(jù)傳輸方式,而常說(shuō)的IIC協(xié)議就是指的IIC的使用規(guī)則,必須遵守,以保證數(shù)據(jù)的正確傳輸。
應(yīng)用IIC協(xié)議的器件一定有時(shí)鐘總線SCL和數(shù)據(jù)總線SDA,協(xié)議的主要規(guī)定有以下幾點(diǎn):
1.SCL在高電平期間,SDA不準(zhǔn)變化;SCL在低電平期間,SDA可以變化(數(shù)據(jù)傳輸);
2.主機(jī)的起始與停止信號(hào)控制二者數(shù)據(jù)傳輸?shù)墓?jié)奏;
3.主機(jī)發(fā)出讀寫數(shù)據(jù)命令后,如果從機(jī)不應(yīng)答,一個(gè)stop信號(hào)就停止數(shù)據(jù)傳輸。
四、程序初始化步驟
要驅(qū)動(dòng)PCF8591芯片必須要有驅(qū)動(dòng)的程序,驅(qū)動(dòng)PCF8591主要有以下步驟:
1、總線的啟動(dòng)條件
2、總線停止條件
3、應(yīng)答位的控制
4、等待應(yīng)答
5、通過(guò)總線發(fā)送數(shù)據(jù)
6、從總線上接收數(shù)據(jù)
7、寫數(shù)據(jù)
8、讀數(shù)據(jù)
五、程序代碼
ADC的寫法基本與IIC一致,PCF8951和AT24C02的協(xié)議是一樣,需要注意的重點(diǎn)是讀寫命令的,主要的程序如下:
1.發(fā)送測(cè)量ADC命令
例:void init_pcf8591(void)
{
i2c_start();//初始化
i2c_sendbyte(0x90);//寫命令
i2c_waitack();//等待應(yīng)答
i2c_sendbyte(0x03);//ADC通道 0x03電位器 0x01光敏電阻
i2c_waitack();//等待應(yīng)答
i2c_stop();//停止
operate_delay(10);//延時(shí)10us
}
2.接收PCF8591轉(zhuǎn)換過(guò)的采樣電壓值
unsigned char adc_pcf8591(void)
{
unsigned char temp;
i2c_start();//初始化
i2c_sendbyte(0x91);//讀命令
i2c_waitack();//等待應(yīng)答
temp = i2c_receivebyte();//將讀取的值給temp
iic_ack(0);
i2c_stop();
return temp;
}
3.轉(zhuǎn)換數(shù)據(jù):(注:轉(zhuǎn)換后的電壓?jiǎn)挝粸閙v)
cnt=adc_pcf8591();
dspbuf[4]=cnt*196/10000;
dspbuf[5]=cnt*196%10000/1000;
dspbuf[6]=cnt*196%10000%1000/100;
dspbuf[7]=cnt*196%10000%1000%100/10;
(以上為存儲(chǔ)器映射寫法的數(shù)碼管顯示,dspbuf代表的是數(shù)碼管段選緩沖數(shù)組)
六、小結(jié)
傳統(tǒng)的A/D轉(zhuǎn)換器需要占用較多的I/O口,而且轉(zhuǎn)換時(shí)間長(zhǎng),讀寫操作復(fù)雜,并且不易實(shí)現(xiàn)系統(tǒng)擴(kuò)展。從以上程序可以看出,PCF8591這種具有IIC總線結(jié)構(gòu)的多通道8bits的A/D轉(zhuǎn)換器,相比于傳統(tǒng)的A/D轉(zhuǎn)換器,結(jié)構(gòu)較為簡(jiǎn)單,節(jié)約I/O資源(只需要兩個(gè)I/O口,即:時(shí)鐘線和數(shù)據(jù)線),擴(kuò)展性強(qiáng),可靠性高,能進(jìn)行更多更強(qiáng)的處理。
參考文獻(xiàn)
[1] 姚越,吳寶慶.關(guān)于單片機(jī)技術(shù)應(yīng)用的研究[J]. 科技資訊,2018,16(09):112-113.
[2] 梁小廷.單片機(jī)技術(shù)的發(fā)展及應(yīng)用研究[J]. 民營(yíng)科技,2018(06):9.
[3] 秦國(guó)棟.單片機(jī)技術(shù)微課庫(kù)建設(shè)實(shí)例[J]. 科學(xué)咨詢(科技?管理),2018(03):52.
[4] 劉玉叢.單片機(jī)技術(shù)應(yīng)用課程實(shí)踐化教學(xué)改革的探索[J]. 電子世界,2018(03):97.
作者簡(jiǎn)介:
向兵(1990-),男,漢,四川南充人,助教,碩士研究生,從事單片機(jī)原理與應(yīng)用、電子產(chǎn)品分析與制作等課程研究及項(xiàng)目開(kāi)發(fā)。
呂佳璐(1999-),女,漢,四川成都人,綿陽(yáng)職業(yè)技術(shù)學(xué)院信息工程系2017級(jí),電子信息工程技術(shù)專業(yè)專科在讀,擅長(zhǎng)單片機(jī)開(kāi)發(fā)項(xiàng)目設(shè)計(jì)與研究。
*課題項(xiàng)目:綿陽(yáng)職業(yè)技術(shù)學(xué)院,校級(jí)精品在線開(kāi)放課程-《電子產(chǎn)品分析與制作》