基于80c51單片機的數據采集和顯示系統設計_第1頁
基于80c51單片機的數據采集和顯示系統設計_第2頁
基于80c51單片機的數據采集和顯示系統設計_第3頁
基于80c51單片機的數據采集和顯示系統設計_第4頁
基于80c51單片機的數據采集和顯示系統設計_第5頁
免費預覽已結束,剩余11頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、題目:數據采集及顯示系統設計設計基本功能:利用 TLC549 做 A/D 轉換器,外界提供模擬電壓輸入信號,將模擬量轉 化成數字量, 在單片機控制下實現對外部輸入信號的數據采集, 并將采集數據結 果在 LED 數碼管上顯示,顯示結果為實際輸入電壓數值。要求能夠實現單次觸發存儲顯示方式,即每按動一次“單次觸發”鍵,能 對被測信號進行一次采集和顯示。系統在不采集信號時,顯示當前時間。、硬件設計本方案分為三個模塊:單片機模塊、 AD 模塊、 I2C 模塊,其中 I2C 模塊有時鐘、鍵盤和 LED 三部分組成。1、單片機模塊 該模塊設計實現單片機最小系統和和其他模塊的接口。電路圖見圖一圖一2、AD模塊

2、該模塊是 TLC549 的電路連接。見圖3、 I2C 模塊本模塊是由時鐘芯片 PCF8563和由 ZLG7290連接的鍵盤、 6 位 LED組成。實 現時鐘設置、讀取,鍵盤識別,以及顯示功能。電路連接見圖三、四。圖四 PCF8563二、軟件設計1、流程圖見圖五圖五 流程圖2 程序#include <REG51.h>#include <intrins.h>#include <absacc.h>#include "VIIC_C51.h"#include "ZLG7290.h"#define PCF8563 0xA2 / 定

3、義器件地址#defineWRADDR 0x00/ 定義寫單元首地址#define RDADDR 0x02/ 定義讀單元首地址#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#defineZLG7290 0x70/ 定義器件地址/ 定義 TLC549串行總線操作端口 sbit CLK=P10;sbit DAT=P11;sbit CS=P12;/ 定義 I2C 總線控制端口sbit SDA=P17;sbit SCL=P16;/ 顯示緩沖區初始化 :DP-51PRO unsigned cha

4、r disp_buf8=0,0,0,0,0,0,0,0;/ 顯示緩存 uchar bdata ADCdata;sbit ADbit=ADCdata0;sbit KEY_INT=P32;sbit RST=P10;unsigned char KEY; / 保存鍵值* 函數名稱 :TLC549ADC()* 函數功能 :讀取上一次 A/D 轉換的數據 , 啟動下一次 A/D 轉換uchar TLC549ADC(void)uchar i;CLK=0;DAT=1;CS=0;for(i=0;i<8;i+)CLK=1;_nop_();_nop_();ADCdata<<=1;ADbit=DAT

5、;CLK=0;_nop_();return (ADCdata);/* 函數名稱 :delay()* 函數功能 :硬件延時程序* 入口參數 :i/ 延時參數*/ unsigned char DelayNS(unsigned char no) unsigned char i,j;for(; no>0; no-)for(i=0; i<100; i+) for(j=0; j<100; j+);return 0;/*A/D 數據轉換處理和輸出顯示功能函數 */* 函數名稱 : display()* 函數功能 : 處理 A/D 轉換后的數據并輸出顯示*/void display(ucha

6、r 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_buf6 = 31;disp_buf7 = 31;ZLG7290_SendBuf(disp_buf,8);unsigned char display_time(unsigne

7、d 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 =(sd2%16);disp_buf7 =(sd2/16);ZLG7290_SendBuf(disp_buf,8);return 0;unsigned char display_date(

8、unsigned char *sd)sd0=sd0&0x3f;/ 日屏蔽保留位sd2=sd2&0x1f;/ 月屏蔽保留位disp_buf0 =(sd0%16);disp_buf1 =(sd0/16);disp_buf2 =(sd2%16)+0x80;/后面加小數點disp_buf3 =(sd2/16);disp_buf4 =(sd3%16)+0x80;/后面加小數點disp_buf5 =(sd3/16);disp_buf6 =0;disp_buf7 =2;ZLG7290_SendBuf(disp_buf,8);return 0;void main()uchar ad_sampl

9、e;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; / 定義接收緩沖區RST=0;DelayNS(1);RST=1;ISendStr(PCF8563,WRADDR,td,0x5); / 初始化 PCF8563DelayNS(1);ISendStr(PCF8563,WRADDR+5,&td5,0x4);/ 初始化 PCF8563ZLG7290_SendBuf(d

10、isp_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); / 讀現在的時、分、秒DelayNS(1);while(1)if(KEY_INT=0)KEY=ZLG7290_GetKey();if(KEY=1) / 顯示切換key1_count+;if(key1_count>2)key1_count=0;if(KEY=2) / 調

11、整日期key2_count+; if(key2_count>3) key2_count=0;if(KEY=3) / 調整時間key3_count+; if(key3_count>2) key3_count=0;if(KEY=5) / 采集電壓ad_sample=TLC549ADC();/* 修改日期 */if(key2_count=1) / 調整年disp_buf5 =31;disp_buf4 =31;ZLG7290_SendBuf(disp_buf,8);DelayNS(2);if(KEY=4)rd6+;if(rd6&0x0f)>=0x0a)rd6&=0xf

12、0;rd6+=0x10;else if(key2_count=2) / 調整月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(key2_count=3) / 調整日 disp_buf1 =31;disp_buf0 =31;ZLG7290_SendBuf(disp_buf,8);DelayNS(2);if(KEY=4)r

13、d3+;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(KEY=4)

溫馨提示

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

評論

0/150

提交評論