微型計算機控制技術 課設_第1頁
微型計算機控制技術 課設_第2頁
微型計算機控制技術 課設_第3頁
微型計算機控制技術 課設_第4頁
微型計算機控制技術 課設_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、學生實驗報告 實驗課名稱:微型計算機控制技術 實驗項目名稱:多路數據采集系統設計 專業:電氣工程及其自動化 學號: 姓名: 目錄一、實驗目的二、實驗原理1、TLC2543的基本原理2、SPI總線3、數字濾波3、 硬件電路設計及proteus仿真四、程序設計1、 實驗目的1、掌握串行總線的使用方法。2、學會利用串行總線實現單片機與外設之間的數據傳送與接收。3、掌握數字濾波的使用,并有一個深刻的認識。4、將總線接口技術、數字濾波、人機交互接口技術、模擬量輸入 輸出通道技術綜合設計,多微機系統有一個大概的認識。2、 實驗原理該多路數據采集系統是基于89C52和TLC2543而設計的,含有數字濾波(此

2、處采用平均值濾波的數字濾波方式)的功能,用一片TLC2543實現5路模擬量的巡回檢測,并通過液晶顯示器12864顯示最終處理之后經標度變換的數據采集量。1、 TCL2543的基本原理一)引言 TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 二) TLC2543的特點 (1)12位分辯率A/D轉換器; (2) 在工作溫度范圍內10s轉換時間; (3)11個模擬輸入通道; (4)3路

3、內置自測試方式; (5) 采樣率為66kbps; (6) (6)線性誤差±1LSBmax;(7)  (7)有轉換結束輸出EOC; (8) (8)具有單、雙極性輸出; (9) (9)可編程的MSB或LSB前導; (10) (10)可編程輸出數據長度。 三)TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1。圖1 TLC2543的封裝 表1 TLC2543引腳說明2、 SPI總線MOTOROLA公司的SPI總線的基本信號線為

4、3根傳輸線,即SI、SO、SCK。傳輸的速率由時鐘信號SCK決定,SI為數據輸入、SO為數據輸出。采用SPI總線的系統如圖8-27所示,它包含了一個主片和多個從片,主片通過發出片選信號-CS來控制對哪個從片進行通信,當某個從片的-CS信號有效時,能通過SI接收指令、數據,并通過SO發回數據。而未被選中的從片的SO端處于高阻狀態。圖8-27 SPI總線的系統主片在訪問某一從片時,必須使該從片的片選信號有效;主片在SCK信號的同步下,通過SI線發出指令、地址信息;如需將數據輸出,則接著寫指令,由SCK同步在SI線上發出數據;如需讀回數據,則接著讀指令,由主片發出SCK,從片根據SCK的節拍通過SO

5、發回數據。因而對具有SPI接口的從片器件來講,SCK、SI是輸入信號,SO是輸出信號。SCK用于主片和從片通信的同步。SI用于將信息傳輸到器件,輸入的信息包括指令、地址和數據,指令、地址和數據的變化在SCK的低電平期間進行,并由SCK信號的上升沿鎖存。SO 用于將信息從器件傳出,傳出的信息包括狀態和數據,信息在SCK信號的下降沿移出。4、 硬件電路設計及proteus仿真proteus仿真圖如下:5、 程序設計實現5路數據巡回檢測,并且采用數字濾波,并將最終處理結果通過12864顯示。#include<reg52.h>#include <absacc.h>#includ

6、e<math.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit EOC=P27;sbit cs=P33;sbit clk=P30;sbit SDI=P31;sbit SDO=P32;sbit bit7=B7;bit cy;#define N 12 char value_bufN;char i=0; uint adval; /AD轉換uint temp;uint ge,x1,x2;/數字char code TABLENUM16=0x00,0x00,0xF0,0xF8,

7、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,0x30,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,0

8、x07,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,0x08,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

9、,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,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, /. 100x0

10、0,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,/:11 ; /LCD地址定義 #define CWADD1 XBYTE0xe000 /寫指令代碼地址(左)#define CRADD1 XBYTE0xe800 /讀狀態字地址 (左)#define DWADD1 XBYTE0xe400 /寫顯示數據地址(左)#define DRADD1 XBYTE0xec00 /讀顯示數據地址(左)#define CWADD2 XBYTE0xf000 /寫指令代碼地址(右)#define CRADD2 XB

11、YTE0xf800 /讀狀態字地址 (右)#define DWADD2 XBYTE0xf400 /寫顯示數據地址(右)#define DRADD2 XBYTE0xfc00 /讀顯示數據地址(右)/函數原型申明void PRL0(unsigned char a);void PRL1(unsigned char 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);vo

12、id DIS_CW(int c,char p,int e);/寫左半屏指令void PRL0(unsigned char a) CWADD1=a; /寫右半屏指令void PRR0(unsigned char b) CWADD2=b;/往左半屏寫數據void PRL1(unsigned char a) DWADD1=a; /往寫右半屏寫數據void PRR1(unsigned char b) DWADD2=b;/初始化顯示屏打開void INIT() PRL0(0xc0); PRR0(0xc0); PRL0(0x3F); PRR0(0x3F);/關顯示void INITN()PRL0(0xC0

13、);PRR0(0xC0);PRL0(0x3E); PRR0(0x3E);/清屏void Clear() int i,j;for(i=2;i<6;i+) PRL0(i+0xb8); PRR0(i+0xb8); PRL0(0x40); for(j=16;j<64;j+) PRL1(0x00); PRR0(0x40); for(j=0;j<48;j+) PRR1(0x00); /* 函數名:DIS_CW * 功能:顯示西文 * 輸入參數:c:起始列0x000x7F,p:起始行0x000x3F,e:顯示數字在表中的位置 * 返回參數:無 */void DIS_CW(int c,cha

14、r p,int e) char x; bit FLAG; int i,j=2,k=0;if (c<64)FLAG=0; /左半屏標志位else c-=64;FLAG=1; /右半屏標志位 for(;j>0;j-) x=p+; /數據顯示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;i<8;i+)if(FLAG=0) DWADD1=TABLENUMei+k; else DWADD2=TABLENUMei+k;k=8; /延時us

15、void delayus(uint cnt) while(-cnt);/延時msvoid delayms(uint time) uint i; for(i=0; i<time; i+) delayus(120);uint ADC_read(uchar CH) /讀取模擬量函數 uchar i; temp=0; adval=0; clk=0; cs=1; _nop_(); _nop_();_nop_(); cs=0; B=CH; for(i=8;i>0;i-) cy=SDO; SDI=bit7; clk=1; B=B<<1; clk=0; temp=temp<<

16、;1; if(cy=1) temp+; adval=temp; temp=0; adval=adval<<4; /存入高八位的值 for(i=4;i>0;i-) /讀取低四位 cy=SDO; temp=temp<<1; if(cy=1) 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)(zh

17、uanhuan);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 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;count<N;count+)

18、 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,ge4,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

19、=ADC_read(0x40);filter(ad5); bai1=biaoduge(ad1);shi1=biaodux1(ad1);ge1=biaodux2(ad1); bai2=biaoduge(ad2);shi2=biaodux1(ad2);ge2=biaodux2(ad2);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

溫馨提示

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

評論

0/150

提交評論