徐錦鋼鄢 妍/.江西師范大學(xué)科學(xué)技術(shù)學(xué)院 .江西機電職業(yè)技術(shù)學(xué)院
PCF8591芯片在數(shù)模轉(zhuǎn)換電路中的應(yīng)用研究
徐錦鋼1鄢 妍2/1.江西師范大學(xué)科學(xué)技術(shù)學(xué)院 2.江西機電職業(yè)技術(shù)學(xué)院
本文闡述了PCF8591芯片在數(shù)模轉(zhuǎn)換電路中的軟硬件設(shè)計方法,設(shè)計和繪制了使用PCF8591生成正弦波信號的電路圖,并使用proteus仿真軟件進行了測試,通過使用虛擬示波器觀察波形的方法驗證了數(shù)模轉(zhuǎn)換電路設(shè)計的正確性,并給出了電路圖和部分C語言源程序代碼。
PCF8591;數(shù)模轉(zhuǎn)換;仿真
數(shù)模轉(zhuǎn)換(D/A)是將離散的數(shù)字信號轉(zhuǎn)化為連續(xù)變化的模擬信號,例如我們在單片機系統(tǒng)中經(jīng)常要將輸出的數(shù)字量轉(zhuǎn)化為具有一定波形規(guī)律的電流、電壓等模擬信號(正弦波、方波等),從而驅(qū)動負(fù)載進行工作。在具體設(shè)計中,通常采用專用的D/A芯片完成數(shù)模轉(zhuǎn)換功能,D/A芯片種類繁多,本文以PCF8591為例,闡述數(shù)模轉(zhuǎn)換電路的軟硬件設(shè)計方法。
PCF8591是一種兼有A/D模數(shù)轉(zhuǎn)換和D/A數(shù)模轉(zhuǎn)換功能的芯片,轉(zhuǎn)換精度為8bits。它具有4個模擬輸入、1個模擬輸出和1個IIC總線接口。最大轉(zhuǎn)換速率由IIC總線的最大速率決定。
圖1 電路連接圖
電路連接如上圖1所示,使用proteus繪制,主要包括PCF8591、1個發(fā)光二極管和1個觀察波形用的虛擬示波器。PCF8591的第9腳(SDA)和第10腳(SCL)分別接單片機的P2.0和P2.1,表示PCF8591和單片機通過IIC總線形式進行信息的讀寫交互,在做D/A轉(zhuǎn)換時,單片機通過SDA和SCL引腳將數(shù)字量送人PCF8591中去等待數(shù)模轉(zhuǎn)換;第5腳(A0)、第6腳(A1)和第7腳(A2)接地,表示PCF8591的外部器件地址為0;第12腳(EXT)接地,表示PCF8591使用其內(nèi)部時鐘進行工作;第15腳(AOUT)為轉(zhuǎn)換完后對外輸出的模擬量[1],為便于觀察轉(zhuǎn)換效果,該引腳外接了1個發(fā)光二極管和1個虛擬示波器,如果電路設(shè)計合理并且程序編寫正確的話,發(fā)光二極管應(yīng)該產(chǎn)生從暗漸變?yōu)榱恋男Ч?,同時虛擬示波器上可以觀察到規(guī)則的正弦波。
本文編寫了一個完整的PCF8591數(shù)模轉(zhuǎn)換測試程序,主要包括IIC總線啟動函數(shù)、IIC總線停止函數(shù)、IIC總線應(yīng)答函數(shù)、發(fā)送字節(jié)函數(shù)以及寫入DA數(shù)模轉(zhuǎn)換函數(shù)。下面給出其中的2個函數(shù)作為示例,并給出程序注釋。
void Start()//IIC總線啟動函數(shù)
{
Sda=1;//Sda、Scl先置高
_nop_();
Scl=1;
_nop_();
Sda=0;//Sda、Scl再清零
_nop_();
Scl=0;
}
Sda、Scl先置高,后清零就完成了IIC總線的啟動工作[2]。
void Send(unsigned char Data)//發(fā)送1個字節(jié)函數(shù)
{
unsigned char BitCounter=8;
unsigned char temp;
do
{
temp=Data;//Data為要發(fā)送的數(shù)
Scl=0;
_nop_();
if((temp&0x80)==0x80)//如果Data最高位為1
Sda=1;//將Sda置為1
else
Sda=0;//否則將Sda清為0
Scl=1;
temp=Data<<1;//Data
Data=temp;
BitCounter--;
}
while(BitCounter);
Scl=0;
}
按照圖1搭好電路后,將下面的正弦波編碼通過IIC總線送入到PCF8591中去,數(shù)模轉(zhuǎn)換后,AOUT口就能輸出按照正弦波規(guī)律變化的模擬電壓信號,最后在示波器上呈現(xiàn)出正弦波,同時發(fā)光二極管也會出現(xiàn)亮、滅、較暗、較亮的狀態(tài)變化,見下圖2所示。
uchar code SinWave[32]= {//正弦波編碼
127, 152, 176, 198, 217, 233, 245, 252,
圖2 測試結(jié)果
本文采用AT89S52單片機作為控制器,設(shè)計了基于PCF8591的數(shù)模轉(zhuǎn)換電路,論述了PCF8591的工作原理,給出了部分測試程序,并加以注釋。通過測試,該電路能夠正常工作。
[1]PCF8591芯片手冊[DB/OL].百度文庫,1997-04.
[2]黃智偉.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程[M].北京:電子工業(yè)出版社,2006-06.
徐錦鋼(1983-),男,江西高安人,講師,碩士研究生,研究方向:自動化裝置軟硬件研制。