微型计算机控制技术 课设_第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路内置自测试方式;(5) 采样率为66kbps;(6) (6)线性误差1L

3、SBmax;(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总线的基本信号线为3根传输线,即SI、SO、SCK。传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。采用SPI总线的系统如图8-27所示,它包含了一个主片和多个从片,主片通过发出片选

4、信号-CS来控制对哪个从片进行通信,当某个从片的-CS信号有效时,能通过SI接收指令、数据,并通过SO发回数据。而未被选中的从片的SO端处于高阻状态。图8-27 SPI总线的系统主片在访问某一从片时,必须使该从片的片选信号有效;主片在SCK信号的同步下,通过SI线发出指令、地址信息;如需将数据输出,则接着写指令,由SCK同步在SI线上发出数据;如需读回数据,则接着读指令,由主片发出SCK,从片根据SCK的节拍通过SO发回数据。因而对具有SPI接口的从片器件来讲,SCK、SI是输入信号,SO是输出信号。SCK用于主片和从片通信的同步。SI用于将信息传输到器件,输入的信息包括指令、地址和数据,指令

5、、地址和数据的变化在SCK的低电平期间进行,并由SCK信号的上升沿锁存。SO 用于将信息从器件传出,传出的信息包括状态和数据,信息在SCK信号的下降沿移出。4、 硬件电路设计及proteus仿真proteus仿真图如下:5、 程序设计实现5路数据巡回检测,并且采用数字滤波,并将最终处理结果通过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;/数字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 /读状态字地址 (左)#define DWADD1 XBYTE0xe400 /写显示数据地址(左)#define DRADD1 XBYTE0xec00 /读显示数据地址(左)#define CWADD2 XBYTE0xf000 /写指令代码地址(右)#define CRADD2 XBYTE0xf800 /读状态字地址 (右)#define DWADD2 XBYTE0xf400 /写显示数据地址(右)#define DRADD2 XBYTE0xfc00 /读显示数据地址(右)/函数原型申明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;/往左半屏写数据void PRL1(unsigned char a)

12、DWADD1=a; /往写右半屏写数据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); /* 函数名:DIS_CW * 功能:显示西文 * 输入参数:c:起始列0x000x7F,p:起始行0x000x3F,e:显示数字在表中的位置 * 返回参数:无 */void DIS_CW(int c,char p,int e) char x; bit FLAG; int i,j=2,k=0;if (c0;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;

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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论