歡迎來到天天文庫
瀏覽記錄
ID:9938250
大?。?34.50 KB
頁數:14頁
時間:2018-05-16
《數據采集及顯示系統(tǒng)設計》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、題目:數據采集及顯示系統(tǒng)設計設計基本功能:利用TLC549做A/D轉換器,外界提供模擬電壓輸入信號,將模擬量轉化成數字量,在單片機控制下實現對外部輸入信號的數據采集,并將采集數據結果在LED數碼管上顯示,顯示結果為實際輸入電壓數值。要求能夠實現單次觸發(fā)存儲顯示方式,即每按動一次“單次觸發(fā)”鍵,能對被測信號進行一次采集與顯示。系統(tǒng)在不采集信號時,顯示當前時間。硬件設計本方案分為三個模塊:單片機模塊、AD模塊、I2C模塊,其中I2C模塊有時鐘、鍵盤和LED三部分組成。1、單片機模塊該模塊設計實現單片機最小系統(tǒng)和與其他模塊的接口。電路圖見圖一。圖一2、AD模塊該模塊是TLC549的電路連接。見圖二。
2、圖二TLC5491、I2C模塊本模塊是由時鐘芯片PCF8563和由ZLG7290連接的鍵盤、6位LED組成。實現時鐘設置、讀取,鍵盤識別,以及顯示功能。電路連接見圖三、四。圖三ZLG7290圖四PCF8563軟件設計1、流程圖見圖五。按下2鍵按一下3鍵按兩下3鍵按兩下2鍵按下5鍵按下1鍵再次按1鍵第一次按下1鍵開始時鐘、鍵盤初始化顯示年月日掃描鍵盤AD采樣顯示結果掃描鍵盤顯示時間掃描鍵盤時位閃爍按4鍵加1年份閃爍按4鍵加1月份閃爍按4鍵加1分位閃爍按4鍵加1日閃爍按4鍵加1按三下2鍵圖五流程圖2程序#include#include#include3、acc.h>#include"VIIC_C51.h"#include"ZLG7290.h"#definePCF85630xA2//定義器件地址#defineWRADDR0x00//定義寫單元首地址#defineRDADDR0x02//定義讀單元首地址#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineZLG72900x70//定義器件地址//定義TLC549串行總線操作端口sbitCLK=P1^0;sbitDAT=P1^1;sbitCS=P1^2;//定義I2C總線控制端口sbitSDA=P14、^7;sbitSCL=P1^6;//顯示緩沖區(qū)初始化:DP-51PROunsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//顯示緩存ucharbdataADCdata;sbitADbit=ADCdata^0;sbitKEY_INT=P3^2;sbitRST=P1^0;unsignedcharKEY;//保存鍵值/*****************************************************函數名稱:TLC549ADC()**函數功能:讀取上一次A/D轉換的數據,啟動下一次A/D轉換**************************5、**************************/ucharTLC549ADC(void){uchari;CLK=0;DAT=1;CS=0;for(i=0;i<8;i++){CLK=1;_nop_();_nop_();ADCdata<<=1;ADbit=DAT;CLK=0;_nop_();}return(ADCdata);}/******************************************函數名稱:delay()**函數功能:硬件延時程序**入口參數:i****************************************/unsignedcharDelayN6、S(unsignedcharno){unsignedchari,j;//延時參數for(;no>0;no--)for(i=0;i<100;i++)for(j=0;j<100;j++);return0;}/*A/D數據轉換處理和輸出顯示功能函數*//*********************************************函數名稱:display()**函數功能:處理A/D轉換后的數據并輸出顯示********************************************/voiddisplay(ucharadvalue){ulongad_disp;ad_disp=((7、ulong)advalue)*500/255;disp_buf[2]=(uchar)(ad_disp/100%10)+0x80;disp_buf[1]=(uchar)(ad_disp/10%10);disp_buf[0]=(uchar)(ad_disp/1%10);disp_buf[3]=31;disp_buf[4]=31;disp_buf[5]=31;disp_buf[6]=31;disp_bu
3、acc.h>#include"VIIC_C51.h"#include"ZLG7290.h"#definePCF85630xA2//定義器件地址#defineWRADDR0x00//定義寫單元首地址#defineRDADDR0x02//定義讀單元首地址#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineZLG72900x70//定義器件地址//定義TLC549串行總線操作端口sbitCLK=P1^0;sbitDAT=P1^1;sbitCS=P1^2;//定義I2C總線控制端口sbitSDA=P1
4、^7;sbitSCL=P1^6;//顯示緩沖區(qū)初始化:DP-51PROunsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//顯示緩存ucharbdataADCdata;sbitADbit=ADCdata^0;sbitKEY_INT=P3^2;sbitRST=P1^0;unsignedcharKEY;//保存鍵值/*****************************************************函數名稱:TLC549ADC()**函數功能:讀取上一次A/D轉換的數據,啟動下一次A/D轉換**************************
5、**************************/ucharTLC549ADC(void){uchari;CLK=0;DAT=1;CS=0;for(i=0;i<8;i++){CLK=1;_nop_();_nop_();ADCdata<<=1;ADbit=DAT;CLK=0;_nop_();}return(ADCdata);}/******************************************函數名稱:delay()**函數功能:硬件延時程序**入口參數:i****************************************/unsignedcharDelayN
6、S(unsignedcharno){unsignedchari,j;//延時參數for(;no>0;no--)for(i=0;i<100;i++)for(j=0;j<100;j++);return0;}/*A/D數據轉換處理和輸出顯示功能函數*//*********************************************函數名稱:display()**函數功能:處理A/D轉換后的數據并輸出顯示********************************************/voiddisplay(ucharadvalue){ulongad_disp;ad_disp=((
7、ulong)advalue)*500/255;disp_buf[2]=(uchar)(ad_disp/100%10)+0x80;disp_buf[1]=(uchar)(ad_disp/10%10);disp_buf[0]=(uchar)(ad_disp/1%10);disp_buf[3]=31;disp_buf[4]=31;disp_buf[5]=31;disp_buf[6]=31;disp_bu
此文檔下載收益歸作者所有