Ⅰ 單片機如何進行數據採集
對於液壓設備中的8個待測參數選用相應的感測器來來檢測,試驗時選取應變式感測器作為測試現場的工具。這些選用的檢測元件輸出都是標準的4-20mA微弱的電流信號,電流信號又經過由LM324組成的放大轉換電路轉換成0-5V的電壓信號輸入到C8051F020的模擬輸入端,如圖2所示,經內部集成的A/D轉換器轉換成相應的數字量。C8051F020將8路采樣值作為液壓設備現場的狀況存入相應的內存單元。
3.2 LCD顯示
為了使數據採集系統小巧美觀,同時又獲得較高的性價比,選用德彼克公司生產的DMF-50174藍屏液晶顯示器,該顯示器是320×240點陣式液晶,圖形和文本都可以顯示。顯示驅動控制晶元採用EPSON 公司的一種高性能LCD 控制器SED1335。硬體電路採用間接接法,如圖3所示。用單片機的P5.0~P5.7口作為SED1335的DB0~DB7數據匯流排的輸入通道。P4.5作為SED1335的片選信號, 配合地址信號A0實現SED1335 通過數據匯流排接收來自單片機的指令和數據。當A 0= 0, P4.6(WR)=0,P4.7(RD)= 1時, 實現指令的寫入和從SED1335 中讀取數據。當A 0= 1, P4.6(WR)= 0, P4.7(RD)=1時, 則是顯示數據的寫入,該功能通過軟體實現。
3.3 數據通訊
單片機C8051F020的TX0、RX0及P0.2通過MAX485與上位機相連,進行串列通信,如圖3所示。P0.2控制MAX485的狀態或發送,用軟體控制。RX0為單片機的串列輸入端,接收上位機通過MAX485向單片機發送的數據。TX0為單片機的串列輸出端,通過MAX485發送給上位機。
4 系統軟體設計
4.1 軟體設計總體上由兩部分組成:一部分為單片機C8051F020
主程序設計,一部分為LCD液晶顯示程序設計。由於用C語言編程可以降低程序的復雜度,提高程序的可讀性和可修改性,所以本軟體採用C51進行編程,keil μVision2編譯器進行編譯。
Ⅱ 單片機多路數據採集如何選通,是選擇多通道的模擬開關還是多路復用器
AD輸入的信號不能用模擬開關,更不能用多路復用器。模擬開關一般都有幾百Ω的導通電阻,多路復用器是數字邏輯,就不用說了。
AD輸入信號不得不在外部切換的話,唯一的方法就是用繼電器。
--電子設計網dzsj
Ⅲ 基於51單片機的數據採集器ADC0808(含Keil程序和Proteus文件)
系統概述
本系統採用的模塊包括AT89C51單片機、LCD1602顯示屏以及ADCO808數據轉換器。
本系統以AT89C51單片機為主控單元,通過電位器模擬採集信息,利用ADCO808數據轉換器將模擬電壓值轉換為數字電壓信號,並在LCD1602顯示屏上顯示。該數據採集器廣泛應用於模擬信號感測器的數據轉換,具有廣泛的應用前景。
模擬概述
1. 利用LCD1602顯示屏展示採集到的數據。
2. 通過電位器模擬採集信號的模擬量,並利用ADCO808數據轉換器進行信號轉換。
程序設計
使用Keil 51進行程序設計,當打開Proteus時,程序處於默認燒錄狀態。若未進行燒錄,需將程序導入AT89C51單片機中即可運行系統(程序文件為hex後綴)。
Ⅳ 跪求大專單片機的畢業論文
智能化多路串列數據採集/傳輸模塊的設計
廣州市光機電工程研究中心 行聯合
廣州市方統生物科技有限公司 關 強
引言
隨著電子技術的不斷發展,目前對各種物理量的檢測和控制都可得以實現。微機檢測控制系統不僅運用到航天航空、機器人技術、紡織機械、食品加工等工業過程式控制制,而且已經成為日常各種家用電器當中的主要組成部分。其中,A/D(模擬數字轉換)設備起著十分重要的作用。這樣,一個系統中就會需要更多的A/D設備。一般是用擴展一塊或多塊A/D採集卡的方法去實現。當模擬量較少或是溫度、壓力等緩變信號場合,採用匯流排型A/D卡並不是最合適、最經濟的方案。這里介紹一種以AT89C2051單片機為核心,採用TLC2543L 12位串列A/D轉換器構成的采樣模塊,該模塊的采樣數據由單片機串口經電平轉換後送到上位機(PC機)的串口COM1或COM2,形成一種串列數據採集串列數據傳輸的方式。
主要元件功能介紹
AT89C2051單片機
AT89C2051是ATMEL公司推出的一種性能價格比極高的 8位單片機,其指令系統與MCS-51系列完全兼容。引腳排列如圖1所示。
TLC2543L串列A/D轉換器
TLC2543L 採用SPI串列介面匯流排,SPI串列介面匯流排由Motorola公司提出,它是一種三線同步介面,分別為同步信號、輸入信號和輸出信號。另外晶元還有一根片選線,單片機通過片選線選通TLC2543L。其中,CLK為同步時鍾脈沖,CS為片選線,DIN為單片機的數據輸出和TLC2543L的數據輸入線,DOUT為單片機的數據輸入線和TLC2543L的數據輸出線。圖2為TLC2543L時序圖。TLC2543L 是全雙工的,即數據的發送和接收可同時進行。如果只是對TLC2543L寫數據,單片機可以丟棄同時讀入的數據;反之,如果只讀數據,可以在命令位元組後,寫入任意數據。數據傳送以位元組為單位,並採用高位在前的格式。
模塊採用TI公司的TLC2543L 12位串列A/D轉換器,使用開關電容逐次逼近法完成A/D轉換過程。串列輸入結構,能夠大大節省51系列單片機I/O資源,且價格適中。其特點有:
(1) 11個模擬輸入通道;
(2) 轉換時間10 s;
(3) 12位解析度A/D轉換器;
(4) 3路內置自測試方式;
(5) 采樣率為66kbps;
(6) 線性誤差+1LSB(max)
(7) 有轉換結束(EOC)輸出;
(8) 具有單、雙極性輸出;
(9) 可編程的MSB或LSB前導;
(10)可編程的輸出數據長度。 TLC2543L的引腳排列如圖3所示。圖3中AIN0~AIN10為模擬輸入端; 為片選端;DIN 為串列數據輸入端;DOUT為A/D轉換結果的三態串列輸出端;EOC為轉換結束端;CLK為I/O時鍾;REF+為正基準電壓端;REF-為負基準電壓端;VCC為電源;GND為地。
電平轉換器MAX232C
MAX232C為RS-232收發器,簡單易用,單+5V電源供電,僅需外接幾個電容即可完成從TTL電平到RS-232電平的轉換,引腳排列如圖4所示。
硬體設計
硬體電路如圖5所示。
單片機AT89C2051是整個系統的核心,TLC2543L對輸入的模擬信號進行採集,轉換結果由單片機通過P3.5(9腳)接收,AD晶元的通道選擇和方式數據通過P3.4(8腳)輸入到其內部的一個8位地址和控制寄存器,單片機採集的數據通過串口(3、2腳)經MAX232C轉換成RS232電平向上位機傳輸。
單片機軟體設計
單片機程序主要包括串列數據採集/傳輸模塊的系統信息、通道數、採集周期和通訊協議定義,以及數據採集和傳輸的標准子程序。
TLC2543L的通道選擇和方式數據為8位,其功能為:D7、D6、D5和D4用來選擇要求轉換的通道,D7D6D5D4=0000時選擇0通道,D7D6D5D4=0001時選擇1通道,依次類推;D3和D2用來選擇輸出數據長度,本程序選擇輸出數據長度為12位,即D3D2=00或D3D2=10;D1,D0選擇輸入數據的導前位,D1D0=00選擇高位導前。
TLC2543L在每次I/O周期讀取的數據都是上次轉換的結果,當前的轉換結果在下一個I/O周期中被串列移出。第一次讀數由於內部調整,讀取的轉換結果可能不準確,應丟棄。
數據採集程序如下:
sbit DATAIN=P1^1;
sbit CLOCK=P1^0;
sbit DATAOUT=P1^2;
sbit CS=P1^3;
bit datain_a_bit0()
{ bit m=0;
DATAOUT=1;
m=DATAOUT;
DATAIN=0;
Nop();
CLOCK=1;
Nop();
CLOCK=0;
Return(m);
}
bit datain_a_bit1()
{ bit m=0;
DATAOUT=1;
m=DATAOUT;
DATAIN=1;
Nop();
CLOCK=1;
Nop();
CLOCK=0;
Return(m);
}
單片機通過編程產生串列時鍾,並按時序發送與接收數據位,完成通道方式/通道數據的寫入和轉換結果的讀出,程序如下:
unsigned int Tlc2543L(unsigned char ch)
{unsigned char i,chch=0;<br>unsigned int xdata xxx=0;<br>unsigned int xdata y=0;<br>CS=0;<br>Chch=ch<<4;<br>Y=chch;<br>Y<<=8;<br>I=0;<br>While(I<12)<br>{if((y&0x8000)==0)<br>{if(datain_a_bit0()==0) xxx&=0xfffe;<br>else xxx|=0x0001;<br>if(I!=11) xxx<<=1;<br>}
else
{if(datain_a_bit1()==0) xxx&=0xfffe;<br>else xxx|=0x0001;<br>if(I!=11) xxx<<=1;<br>}
y<<=1;
I+=1;
}
CS=1;
Return(xxx);
}
串列數據傳輸模塊包括串列口初始化子程序和數據傳輸子程序,各子程序分別如下。其中數據傳輸採用查詢方式,也可以方便地改為中斷方式。
Void rs232init()
{TMOD=0x20;<br>TH1=0xfd;<br>TR1=1;<br>SCON=0x50;<br>}
void receandtran()
{unsigned char da;<br>while(!RI)<br>RI=0;<br>Da=SBUF;<br>SBUF==da;<br>While(!TI);<br>TI=0;<br>}
上位機接收數據所用C語言程序包括初始化子程序和接收子程序。各子程序分別如下:
void cominit(void)
{
outportb(0x3fb,0x80);
outportb(0x3f8,0x18); /與單片機波特率一致為9600bps*/
outportb(0x3f9,0x00);
outportb(0x3fb,0x03); /8位數據位,1位停止位,無奇偶校驗*/
outportb(0x3fc,0x03); /*Modem控制寄存器設置,使DTR和RTS輸出有效*/
outportb(0x3f9,0x00); /*設置中斷允許寄存器,禁止一切中斷*/
}
void data_rece(void) /*查詢方式接收數據子程序*/
{
while(!kbhit())
{
while(!(inportb(0x3fd)&0x01));/*若接收寄存器為空,則等待*/
printf("%x ",inportb(0x3f8)); /*讀取結果並顯示*/
}
getch();
}
智能化串列採集/傳輸模塊在PCR儀中的應用
在PCR儀的電路設計中,因需要檢測的信號很多,包括熱蓋的溫度檢測,散熱器的溫度檢測,腔體內部的溫度檢測,氣流的溫度檢測,光信號的檢測等等,為了簡化電路,節約成本,減小體積,在選擇A/D轉換電路時選用了SPI匯流排的TLC2543,該晶元有多達11路的模擬信號輸入端,完全滿足PCR儀電路設計的需要,一個晶元既能完成檢測多個信號的功能,又能節約單片機的資源,圖6是其硬體原理圖。
結論
本文所述的智能化串列數據模塊,可直接用於任何微機控制和檢測系統中以取代原來的模數轉換設計。經過實踐檢驗,該模塊功耗低、采樣精度高、可靠性好、介面簡便,有很高的實用價值。該智能模塊的軟體和硬體成功應用於生命科學儀器「熱循環儀」的設計和實踐中,使用方便,簡單可行,節約成本,能夠滿足大多數數據采樣的應用場合。資料來源:www.lw3721.com