1014604841數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計_第1頁
1014604841數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計_第2頁
1014604841數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計_第3頁
1014604841數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計_第4頁
1014604841數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目:數(shù)據(jù)采集及顯示系統(tǒng)設(shè)計設(shè)計基本功能:利用tlc549做a/d轉(zhuǎn)換器,外界提供模擬電壓輸入信號,將模擬量轉(zhuǎn)化成數(shù)字量,在單片機(jī)控制下實現(xiàn)對外部輸入信號的數(shù)據(jù)采集,并將采集數(shù)據(jù)結(jié)果在led數(shù)碼管上顯示,顯示結(jié)果為實際輸入電壓數(shù)值。 要求能夠?qū)崿F(xiàn)單次觸發(fā)存儲顯示方式,即每按動一次“單次觸發(fā)”鍵,能對被測信號進(jìn)行一次采集與顯示。系統(tǒng)在不采集信號時,顯示當(dāng)前時間。一、 硬件設(shè)計本方案分為三個模塊:單片機(jī)模塊、ad模塊、i2c模塊,其中i2c模塊有時鐘、鍵盤和led三部分組成。1、 單片機(jī)模塊該模塊設(shè)計實現(xiàn)單片機(jī)最小系統(tǒng)和與其他模塊的接口。電路圖見圖一。圖一 2、 ad模塊該模塊是tlc549的電路

2、連接。見圖二。圖二 tlc5493、 i2c模塊本模塊是由時鐘芯片pcf8563和由zlg7290連接的鍵盤、6位led組成。實現(xiàn)時鐘設(shè)置、讀取,鍵盤識別,以及顯示功能。電路連接見圖三、四。圖三 zlg7290圖四 pcf8563二、 軟件設(shè)計1、流程圖見圖五。按下2鍵按一下3鍵按 兩 下3鍵按 兩 下2鍵按下5鍵按下1鍵再次按1鍵第一次按下1鍵開始時鐘、鍵盤初始化顯示年月日掃描鍵盤ad采樣顯示結(jié)果掃描鍵盤顯示時間掃描鍵盤時位閃爍按4鍵加1年份閃爍按4鍵加1月份閃爍按4鍵加1分位閃爍按4鍵加1日閃爍按4鍵加1按 三 下2鍵圖五 流程圖2程序#include <reg51.h>#in

3、clude <intrins.h>#include <absacc.h>#include "viic_c51.h"#include "zlg7290.h"#definepcf85630xa2/定義器件地址#definewraddr0x00/定義寫單元首地址#definerdaddr0x02/定義讀單元首地址#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#definezlg72900x70/定義器件地址/定義tlc549串

4、行總線操作端口sbitclk=p10;sbitdat=p11;sbitcs=p12;/定義i2c總線控制端口sbitsda=p17;sbitscl=p16;/顯示緩沖區(qū)初始化:dp-51prounsigned char disp_buf8=0,0,0,0,0,0,0,0;/顯示緩存ucharbdata adcdata;sbitadbit=adcdata0;sbitkey_int=p32;sbitrst=p10;unsigned char key;/保存鍵值/*函數(shù)名稱:tlc549adc()*函數(shù)功能:讀取上一次a/d轉(zhuǎn)換的數(shù)據(jù),啟動下一次a/d轉(zhuǎn)換*/uchartlc549adc(void)

5、uchar i;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);/*函數(shù)名稱:delay()*函數(shù)功能:硬件延時程序*入口參數(shù):i*/unsigned char delayns(unsigned char no) unsigned char i,j;/延時參數(shù)for(; no>0; no-) for(i=0; i<100; i+) for(j=0; j<100; j+); return 0; /

6、*a/d數(shù)據(jù)轉(zhuǎn)換處理和輸出顯示功能函數(shù)*/*函數(shù)名稱:display()*函數(shù)功能:處理a/d轉(zhuǎn)換后的數(shù)據(jù)并輸出顯示*/void display(uchar advalue) ulong ad_disp;ad_disp=(ulong)advalue)*500/255; disp_buf2 =(uchar)(ad_disp/100%10)+0x80; disp_buf1 =(uchar)(ad_disp/10%10); disp_buf0 =(uchar)(ad_disp/1%10);disp_buf3 = 31; disp_buf4 = 31; disp_buf5 = 31; disp_buf

7、6 = 31; disp_buf7 = 31; zlg7290_sendbuf(disp_buf,8);unsigned char display_time(unsigned char *sd) sd0=sd0&0x7f;/秒屏蔽保留位sd1=sd1&0x7f;/分屏蔽保留位sd2=sd2&0x3f;/時屏蔽保留位 disp_buf0 =(sd0%16); disp_buf1 =(sd0/16); disp_buf2 = 31; disp_buf3 =(sd1%16); disp_buf4 =(sd1/16); disp_buf5 = 31; disp_buf6 =(s

8、d2%16); disp_buf7 =(sd2/16); zlg7290_sendbuf(disp_buf,8);return 0;unsigned char display_date(unsigned char *sd) sd0=sd0&0x3f;/日屏蔽保留位sd2=sd2&0x1f;/月屏蔽保留位disp_buf0 =(sd0%16); disp_buf1 =(sd0/16); disp_buf2 =(sd2%16)+0x80;/后面加小數(shù)點 disp_buf3 =(sd2/16); disp_buf4 =(sd3%16)+0x80;/后面加小數(shù)點 disp_buf5 =

9、(sd3/16); disp_buf6 =0; disp_buf7 =2; zlg7290_sendbuf(disp_buf,8);return 0;voidmain()uchar ad_sample;uchar key1_count=0,key2_count=0,key3_count=0;unsigned char code td9=0x00,0x12,0x00,0x15,0x12,0x13,0x05,0x01,0x11;/定義初始化字unsigned char rd7;/定義接收緩沖區(qū)rst=0;delayns(1);rst=1;isendstr(pcf8563,wraddr,td,0x5

10、);/初始化pcf8563delayns(1);isendstr(pcf8563,wraddr+5,&td5,0x4);/初始化pcf8563zlg7290_sendbuf(disp_buf,8);zlg7290_senddata(0x15,0x02); disp_buf7 =0x1f; disp_buf6 =0x1f; disp_buf5 =0x1f; disp_buf4 =0x1f; disp_buf3 =0x1f;delayns(50);ircvstr(pcf8563,rdaddr,rd,0x7);/讀現(xiàn)在的時、分、秒delayns(1);while(1) if(key_int=

11、0) key=zlg7290_getkey(); if(key=1) /顯示切換key1_count+;if(key1_count>2)key1_count=0;if(key=2)/調(diào)整日期 key2_count+;if(key2_count>3)key2_count=0; if(key=3)/調(diào)整時間 key3_count+;if(key3_count>2)key3_count=0; if(key=5)/采集電壓 ad_sample=tlc549adc(); /*修改日期*/if(key2_count=1) /調(diào)整年disp_buf5 =31;disp_buf4 =31;

12、zlg7290_sendbuf(disp_buf,8);delayns(2); if(key=4) rd6+;if(rd6&0x0f)>=0x0a)rd6&=0xf0;rd6+=0x10;else if(key2_count=2) /調(diào)整月 disp_buf3 =31;disp_buf2 =31; zlg7290_sendbuf(disp_buf,8);delayns(2);if(key=4) rd5+;if(rd5&0x0f)>=0x0a)rd5&=0xf0;rd5+=0x10;if(rd5>=0x13)rd5=0x01; else if(k

13、ey2_count=3)/調(diào)整日disp_buf1 =31;disp_buf0 =31; zlg7290_sendbuf(disp_buf,8);delayns(2);if(key=4) rd3+;if(rd3&0x0f)>=0x0a)rd3&=0xf0;rd3+=0x10;if(rd3>=0x32)rd3=0x01;/*修改時間*/if(key3_count=1)/修改小時disp_buf6 =31;disp_buf7 =31; zlg7290_sendbuf(disp_buf,8);delayns(2); if(key=4) rd2+;if(rd2&0x0f)>=0x0a)rd2&=0xf0;rd2+=0x10;if(rd2>=0x24)rd2=0x00;else if(key3_count=2) /修改分鐘disp_buf3 =31;disp_buf4 =31; zlg7290_sendbuf(disp_buf,8);delayns(2);if(ke

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論