




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、學生實驗報告 實驗課名稱:微型計算機控制技術 實驗項目名稱:多路數(shù)據(jù)采集系統(tǒng)設計 專業(yè):電氣工程及其自動化 學號: 姓名: 目錄一、實驗目的二、實驗原理1、TLC2543的基本原理2、SPI總線3、數(shù)字濾波3、 硬件電路設計及proteus仿真四、程序設計1、 實驗目的1、掌握串行總線的使用方法。2、學會利用串行總線實現(xiàn)單片機與外設之間的數(shù)據(jù)傳送與接收。3、掌握數(shù)字濾波的使用,并有一個深刻的認識。4、將總線接口技術、數(shù)字濾波、人機交互接口技術、模擬量輸入 輸出通道技術綜合設計,多微機系統(tǒng)有一個大概的認識。2、 實驗原理該多路數(shù)據(jù)采集系統(tǒng)是基于89C52和TLC2543而設計的,含有數(shù)字濾波(此
2、處采用平均值濾波的數(shù)字濾波方式)的功能,用一片TLC2543實現(xiàn)5路模擬量的巡回檢測,并通過液晶顯示器12864顯示最終處理之后經(jīng)標度變換的數(shù)據(jù)采集量。1、 TCL2543的基本原理一)引言TLC2543是TI公司的12位串行模數(shù)轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節(jié)省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。二) TLC2543的特點(1)12位分辯率A/D轉換器;(2) 在工作溫度范圍內(nèi)10s轉換時間;(3)11個模擬輸入通道;(4)3路內(nèi)置自測試方式;(5) 采樣率為66kbps;(6) (6)線性誤差1L
3、SBmax;(7) (7)有轉換結束輸出EOC;(8) (8)具有單、雙極性輸出;(9) (9)可編程的MSB或LSB前導;(10) (10)可編程輸出數(shù)據(jù)長度。三)TLC2543的引腳排列及說明TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1。圖1 TLC2543的封裝 表1 TLC2543引腳說明2、 SPI總線MOTOROLA公司的SPI總線的基本信號線為3根傳輸線,即SI、SO、SCK。傳輸?shù)乃俾视蓵r鐘信號SCK決定,SI為數(shù)據(jù)輸入、SO為數(shù)據(jù)輸出。采用SPI總線的系統(tǒng)如圖8-27所示,它包含了一個主片和多個從片,主片通過發(fā)出片選
4、信號-CS來控制對哪個從片進行通信,當某個從片的-CS信號有效時,能通過SI接收指令、數(shù)據(jù),并通過SO發(fā)回數(shù)據(jù)。而未被選中的從片的SO端處于高阻狀態(tài)。圖8-27 SPI總線的系統(tǒng)主片在訪問某一從片時,必須使該從片的片選信號有效;主片在SCK信號的同步下,通過SI線發(fā)出指令、地址信息;如需將數(shù)據(jù)輸出,則接著寫指令,由SCK同步在SI線上發(fā)出數(shù)據(jù);如需讀回數(shù)據(jù),則接著讀指令,由主片發(fā)出SCK,從片根據(jù)SCK的節(jié)拍通過SO發(fā)回數(shù)據(jù)。因而對具有SPI接口的從片器件來講,SCK、SI是輸入信號,SO是輸出信號。SCK用于主片和從片通信的同步。SI用于將信息傳輸?shù)狡骷斎氲男畔ㄖ噶?、地址和?shù)據(jù),指令
5、、地址和數(shù)據(jù)的變化在SCK的低電平期間進行,并由SCK信號的上升沿鎖存。SO 用于將信息從器件傳出,傳出的信息包括狀態(tài)和數(shù)據(jù),信息在SCK信號的下降沿移出。4、 硬件電路設計及proteus仿真proteus仿真圖如下:5、 程序設計實現(xiàn)5路數(shù)據(jù)巡回檢測,并且采用數(shù)字濾波,并將最終處理結果通過12864顯示。#include#include #include#include#define uint unsigned int#define uchar unsigned charsbit EOC=P27;sbit cs=P33;sbit clk=P30;sbit SDI=P31;sbit SDO=
6、P32;sbit bit7=B7;bit cy;#define N 12 char value_bufN;char i=0; uint adval; /AD轉換uint temp;uint ge,x1,x2;/數(shù)字char code TABLENUM16=0x00,0x00,0xF0,0xF8,0x08,0x68,0xF8,0xF0,0x00,0x00,0x07,0x0F,0x0B,0x08,0x0F,0x07, /00x00,0x20,0x20,0x30,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00, /10x00,0
7、x30,0x38,0x08,0x88,0xF8,0x70,0x00,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x08,0x00, /20x00,0x30,0x38,0x88,0x88,0xF8,0x70,0x00,0x00,0x06,0x0E,0x08,0x08,0x0F,0x07,0x00, /30x00,0x00,0xF8,0xF8,0x00,0xE0,0xE0,0x00,0x00,0x03,0x03,0x02,0x02,0x0F,0x0F,0x02, /40x00,0xF8,0xF8,0x88,0x88,0x88,0x08,0x00,0x00,0x08,0x08,0x
8、08,0x0C,0x07,0x03,0x00, /50x00,0xC0,0xE0,0x78,0x58,0xC8,0x80,0x00,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00, /60x00,0x08,0x08,0x88,0xE8,0x78,0x18,0x00,0x00,0x00,0x0E,0x0F,0x01,0x00,0x00,0x00, /70x00,0x70,0xF8,0xC8,0x88,0xF8,0x70,0x00,0x00,0x07,0x0F,0x08,0x09,0x0F,0x07,0x00, /80x00,0xF0,0xF8,0x08,0x08,
9、0xF8,0xF0,0x00,0x00,0x00,0x09,0x0D,0x0F,0x03,0x01,0x00, /9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00, /. 100x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,/:11 ; /LCD地址定義 #define CWADD1 XBYTE0xe000 /寫指令代碼地址(左)#define CRADD1 XBYTE0
10、xe800 /讀狀態(tài)字地址 (左)#define DWADD1 XBYTE0xe400 /寫顯示數(shù)據(jù)地址(左)#define DRADD1 XBYTE0xec00 /讀顯示數(shù)據(jù)地址(左)#define CWADD2 XBYTE0xf000 /寫指令代碼地址(右)#define CRADD2 XBYTE0xf800 /讀狀態(tài)字地址 (右)#define DWADD2 XBYTE0xf400 /寫顯示數(shù)據(jù)地址(右)#define DRADD2 XBYTE0xfc00 /讀顯示數(shù)據(jù)地址(右)/函數(shù)原型申明void PRL0(unsigned char a);void PRL1(unsigned ch
11、ar a);void PRL1(unsigned char a);void PRR1(unsigned char b);void INIT();void INITN();void Clear();void DIS(unsigned char c,unsigned char p,int e);void DIS_CW(int c,char p,int e);/寫左半屏指令void PRL0(unsigned char a) CWADD1=a; /寫右半屏指令void PRR0(unsigned char b) CWADD2=b;/往左半屏寫數(shù)據(jù)void PRL1(unsigned char a)
12、DWADD1=a; /往寫右半屏寫數(shù)據(jù)void PRR1(unsigned char b) DWADD2=b;/初始化顯示屏打開void INIT() PRL0(0xc0); PRR0(0xc0); PRL0(0x3F); PRR0(0x3F);/關顯示void INITN()PRL0(0xC0);PRR0(0xC0);PRL0(0x3E); PRR0(0x3E);/清屏void Clear() int i,j;for(i=2;i6;i+) PRL0(i+0xb8); PRR0(i+0xb8); PRL0(0x40); for(j=16;j64;j+) PRL1(0x00); PRR0(0x4
13、0); for(j=0;j48;j+) PRR1(0x00); /* 函數(shù)名:DIS_CW * 功能:顯示西文 * 輸入?yún)?shù):c:起始列0x000x7F,p:起始行0x000x3F,e:顯示數(shù)字在表中的位置 * 返回參數(shù):無 */void DIS_CW(int c,char p,int e) char x; bit FLAG; int i,j=2,k=0;if (c0;j-) x=p+; /數(shù)據(jù)顯示x+=0xb8;if (FLAG=0) CWADD1=x;else CWADD2=x;x=c;x+=0x40;if (FLAG=0) CWADD1=x;else CWADD2=x;for (i=0;
14、i8;i+)if(FLAG=0) DWADD1=TABLENUMei+k; else DWADD2=TABLENUMei+k;k=8; /延時usvoid delayus(uint cnt) while(-cnt);/延時msvoid delayms(uint time) uint i; for(i=0; i0;i-) cy=SDO; SDI=bit7; clk=1; B=B1; clk=0; temp=temp1; if(cy=1) temp+; adval=temp; temp=0; adval=adval0;i-) /讀取低四位 cy=SDO; temp=temp1; if(cy=1)
15、temp+; clk=1; clk=0; cs=1;while(EOC=0) /等待轉換完成adval=adval+temp; /讀取的值return(adval);void biaoduzhuanhuan(int ad)float zhuanhuan;int a;zhuanhuan=(ad*6.25)/51;a=(int)(zhuanhuan);ge=a/100;x1=a/10%10;x2=a%10;int biaoduge(int ad)biaoduzhuanhuan(ad);return ge;int biaodux1(int ad)biaoduzhuanhuan(ad);return
16、x1;int biaodux2(int ad)biaoduzhuanhuan(ad);return x2;int filter(int ad) /滑動平均濾波 int count; int sum=0; value_bufi+=ad; if ( i = N ) i=0; for(count=0;countN;count+) sum=value_bufcount; return(int)(sum/N); void main() uint ad1,ad2,ad3,ad4,ad5; uint bai1,shi1,ge1,bai2,shi2,ge2,bai3,shi3,ge3,bai4,shi4,ge
17、4,bai5,shi5,ge5; INIT(); while(1) ad1=ADC_read(0x00);filter(ad1); ad2=ADC_read(0x10);filter(ad2);ad3=ADC_read(0x20);filter(ad3);ad4=ADC_read(0x30);filter(ad4);ad5=ADC_read(0x40);filter(ad5); bai1=biaoduge(ad1);shi1=biaodux1(ad1);ge1=biaodux2(ad1); bai2=biaoduge(ad2);shi2=biaodux1(ad2);ge2=biaodux2(a
18、d2);bai3=biaoduge(ad3);shi3=biaodux1(ad3);ge3=biaodux2(ad3);bai4=biaoduge(ad4);shi4=biaodux1(ad4);ge4=biaodux2(ad4);bai5=biaoduge(ad5);shi5=biaodux1(ad5);ge5=biaodux2(ad5); DIS_CW(0x00,0x00,1);/第1次ad轉換DIS_CW(0x06,0x00,11);DIS_CW(0x10,0x00,bai3);DIS_CW(0x18,0x00,10);DIS_CW(0x20,0x00,shi3);DIS_CW(0x28,0x00,ge3); DIS_CW(0x40,0x00,2);/第2次ad轉換DIS_CW(0x48,0x00,11);DIS_CW(0x50,0x00,bai4);DIS_CW(0x58,0x00,10);DIS_CW(0x60,0x00,shi4);DIS_CW(0x68,0x00,ge4); DIS_CW(0x00,0x02,3);/第3次ad轉換DIS_CW(0x07,0x02,11);DIS_CW(0x10,0x02,bai5);DIS_CW(0x18,0x02,10);DIS_CW(0x20,0x02,shi5);DIS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腰椎壓榨性骨折護理查房
- 游戲化拼音學習
- 銀行文化的重塑與實踐
- 心理成長:青春解讀
- 教育教學工作述職報告
- 2025年交通運輸行業(yè)試題及答案
- 2025年方劑學解表劑試題及答案
- 腹主動脈損傷護理查房
- 二年級數(shù)學計算題專項練習1000題匯編集錦
- 定性探究-2025年高考化學實驗??碱}型突破(解析版)
- 2023年安徽審計職業(yè)學院單招職業(yè)適應性測試題庫及答案解析
- LS/T 3311-2017花生醬
- 蘇教版二年級科學下冊第10課《認識工具》教案(定稿)
- GB/T 40262-2021金屬鍍膜織物金屬層結合力的測定膠帶法
- GB/T 3279-2009彈簧鋼熱軋鋼板
- GB/T 16823.3-2010緊固件扭矩-夾緊力試驗
- 應用文寫作-第四章公務文書(請示報告)課件
- Premiere-視頻剪輯操作-課件
- PDCA降低I類切口感染發(fā)生率
- 麻醉藥理學阿片類鎮(zhèn)痛藥PPT
- 新湘版小學科學四年級下冊教案(全冊)
評論
0/150
提交評論