ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:190.26KB ,
资源ID:27162513      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27162513.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《微机式医学仪器设计》实验教材实验45.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《微机式医学仪器设计》实验教材实验45.docx

1、微机式医学仪器设计实验教材实验45实验四 生物信号的数据采集一、实验要求 利用8位串行控制模数转换器TLC0832做A/D转换器,采用实验板上的电位器,或其它信号(如心电仿真仪信号)提供模拟量输入,编制程序,将模拟量转换成二进制数字量。存放在RAM区,以供查阅。二、实验目的1、 熟悉串行外围设备接口SPI总线技术的结构和原理。2、 掌握8位串行控制模数转换器TLC0832的转换性能及编程。3、 掌握TLC0832与80C51单片机的接口方法。4、 通过实验了解如何使用单片机进行数据采集。 三、 实验设备 1 机 一台 2 实验面包板 一个 3 80C51仿真器 一套 4 元件:TLC0832

2、一片 4 导线 若干四、实验说明一个微处理器系统中除了作为核心部件的微处理器外,多少要使用一些外围设备(通常被简称为“外设”)。微处理器外设之间的连接方式基本上可以分为并行和串行2大类,也就是通过并行或串行接口连接。并行接口设备使用了多根数据线,一次同时可以传递多个BIT的数据,所以传递速度较快,单器件之间的连线复杂。而串行接口设备仅使用了一根数据线,每次只能传递一个BIT的数据,所以传递速度较慢,但由于使用串行接口的系统中器件之间的连线比较简单,在微型化的系统中倍受重视。随着器件时钟速度的不断提高,串行接口的数据交换率同样可以做得很高。另外基于异步串行接口电路的技术的器件因其相当高的效率,在

3、DSP 系统中被广泛采用。(1)SPI总线介绍串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口。SPI总线是一种三线制同步式串行总线,其物理结构是相当典型的。因其硬件配备(在各种串行接口中)较为“完整”,所以,与SPI有关的软件就相对简单,使CPU有更多的时间处理其他事务。它基本上由3根连线构成,即:DI,DO,CLK,故称为三线制串行总线。除了这3条基本信号线以外,当系统使用多个SPI器件时,为区别各个器件,往往还要加上一条片选信号线“/CS”。使用了/CS信号后,所有的SPI器件可以使用公共的DI,DO,C

4、LK信号,而只有/CS有效的芯片才被主控器件操纵。各信号线的意义为:信号符号信号名称信号意义DI数据输入线外设的数据输入端,其电平表示当前输入的数据DO数据输出线外设的数据输出端,其电平表示当前输出的数据CLK时钟信号主控器件提供的同步时钟,以保证数据的正确/CS片选信号用来选通所操纵的器件除了上述引线之外,由于各种外设控制功能的不同,采用SPI接口,有时还要添加一些辅助的控制线,例如复位信号、中断信号等。(2)实际SPI器件TLC0832实际的SPI器件品种繁多,本次实验使用的TLC0832是一种基于SPI接口的双路A/D转换器。该器件的详细资料参见参考文献1和文献2TLC0832是一种2通

5、道逐次逼近似方式的A/D转换器。基本性能如下: 8位分辨率 可以“满量程”工作或使用5V基准电压 单通道或多路器选择的双通道,可单端或差分输入选择 当时钟频率为250kHz时,转换时间为32s 总非调整误差为1LSB TLC0832的引脚及其功能:实验用的TLC0832芯片为8脚的“双列直插”(DIP)式封装。其引线方式参见下图。各引脚的意义参见下表:序号引脚名称意义1/CS片选信号。当该信号为高电平时,芯片未被选中,所有信号引线均为高阻态。芯片的任何功能必须当该信号为低电平时方能实现。2CH0模拟通道0的输入端。可以作为独立的输入通道使用,也可以由程序控制,与CH1配合实现差分输入方式。3C

6、H1模拟通道1的输入端。可以作为独立的输入通道使用,也可以由程序控制,与CH0配合实现差分输入方式。4GND地线。5DI数据输入端。来自主控器件(CPU)的控制命令由此输入。6DO数据输出端。转换结果由此输出。7CLK时钟信号。8VCC/REF电源/参考电压输入端。TLC0832的动作时序:TLC0832的动作时序见下图。图中可见TLC0832的全部动作过程。应当注意以下要点:1 任何有效操作均必须在/CS为低电平时才能实现。所以,开始对TLC0832作任何操作都必须首先将/CS由高电平置为低电平,一次完整的操作结束后,应当及时地将/CS置为高电平;2 时钟信号CLK是由主控器件(CPU)主动

7、提供的,它控制了转换的节拍;3 一个完整的转换过程分2个基本步骤:A. 由CPU向器件发出控制命令;B. CPU从器件读出转换后的数据;4 控制命令由CPU通过DI线向器件发出,包括3个BIT。第1个BIT为启动位,后2个BIT为配置位;5 2个BIT的配置位的名称为SGL/DIF和ODD/EVEN,共同决定了器件的输入性质(参见附表);6 CLK信号是由CPU操纵下“人为制造”出高低电平变化而形成的。每当需要向器件写入命令时,应当首先将所需要的数据加到DI脚上,然后让CLK由低电平向高电平变化(上升沿),这时器件会自动保持DI上的数据,之后,应当将CLK恢复到低电平,以便下一个节拍的操作;7

8、 由器件中读出数据时有些不同,此时应当首先将CLK置为高电平,然后,再将CLK由高电平置为低电平,在由高电平向低电平变化的“下降沿”后,器件的DO端会出现有效的数据信号。CPU可以在此时检测DO端的状态,读出有效的数据;8 命令BIT发送之后,便可以开始读出转换结果,事实上,器件内部的逐次近似转换过程是在CLK的控制下一拍、一拍地进行,每一拍完成一个BIT的转换,转换的结果同时就出现在DO上,这就是所谓的“外部时钟方式”。特点是简单,但是对于外部时钟的“占空比”有较严格的控制,否则精度将受到影响有些串行A/D器件内部自己配备了时钟系统,无须CPU的CLK信号,而是利用自身的时钟系统完成转换,这

9、样的器件精度比较有保障。使用这种器件时,在启动器件开始转换后,CPU应当等待“转换完成(EOC)”信号,当EOC出现后,才开始读取数据;9 数据读出时,器件首先以“高位在前”(MSB-First)方式输出数据,然后再以“低位在前”(LSB-First)方式输出数据。事实上,应用系统的设计人员可以根据自己的需要选择适当的方式读取数据,如果只需要MSB-First方式,则启动转换后只需要8个CLK就可以完成全部操作,这时,从图中的第12个CLK后面的操作可以不必进行;10 全部操作完成后应当将/CS置为高电平。使用TLC0832需要注意: TLC0832要求在转换数据时CLK占空比为40%60%,

10、否则会导致转换结果不正确,CLK可由单片机的一根I/O口线驱动,用软件控制脉冲的频率和占空比。TLC0832的模拟输入信号的的功能比较齐备,可以通过控制命令灵活地配置为差分或单端方式。即,2个输入通道CH0和CH1可以作为一对差分输入的互补信号线,也可以配置为各自独立的单端输入信号线。请注意以下要点:1、 配置命令由信号SGL/DIF 和ODD/EVEN 2个BIT组成,排列顺序是SGL/DIF在前,ODD/EVEN在后,2个控制BIT组合的意义参见附表;2、 差分输入方式是指一对大小相同方向相反的输入方式,它需要2个输入端,而且这2个输入端有极性之分;3、 单端输入实际上也需要2个输入端,一

11、个是信号端,另一个是参考端,即所谓的“地”。但是应当注意,地线作为参考端被假定为稳定不变的,输入信号完全由输入端上的电压变化而决定; 4、 TLC0832配置为差分输入方式时只能组成一路输入;配置为单端输入方式时,可以提供2路独立的输入。TLC0832 输入信号地址控制逻辑表地址选择通道号操作意义SGL/DIFODD/EVENCH0CH1LLH HLHLH+CH0 为正极性,CH1 为负极性的差分输入方式CH0 为负极性,CH1 为正极性的差分输入方式选择 CH0 的单极性,单通道方式选择 CH1 的单极性,单通道方式 H = 高电平, L = 低电平, or + = 所选择的输入端的终端极性

12、五、实验电路及连线LC0832与51系列微处理器的连接相当简单,具体的参考电路参见下图:实验中,我们采用选择 CH0 的单极性,单通道方式。因此,CH1端应接地,CH0端为输入电压。我们采用通过可调电位器的方法改变输入电压,以观察A/D转换结果。配置命令由信号SGL/DIF 和ODD/EVEN 2个BIT组成,在本实验中应设置为:SGL/DIF =1;ODD/EVEN=0六、软件流程及编程1、A/D转换的软件流程图图中绘出了A/D转换的基本过程。必须说明,这个流程图并不是最优化的,而仅仅表现了A/D转换的主要步骤。流程图的右侧绘出了每个步骤相应的注释。图中使用了sCLK子程序,该子程序的流程图

13、附在本小节的后部。这里应当注意的是,sCLK子程序中使用了2个延时子程序,DELAY1和DELAY2,其目的是为了调整时钟信号的频率和占空比,实际的延时子程序可以用不同长度的循环来实现,或者简单地插入若干个NOP来解决。具体的延时长度应当视实际需要而定。延时时间的确定原则在于使得CLK信号处于高电平和低电平的时段基本相等,而且必须考虑到sCLK子程序返回后,A/D程序进行其它操作时CLK处于低电平的时段长度。2、A/D转换程序:( 见源程序文件TLC0832.ASM) BEGIN: CLR P1.4 ; /CS=0,选通器件 SETB P1.1 ;DI=1,置启动条件 CALL SCLK ;发

14、出一个时钟 SETB P1.1 ;DI=S/D=1,送控制命令的第1个BIT CALL SCLK ;发出一个时钟 CLR P1.1 ;DI=O/E=0,送控制命令的第2个BIT MOV A, #00H ;设存放转换结果的寄存器A初值 MOV R0, #08H ;读8位BIT GETDATA: CALL SCLK ;发出一个时钟 MOV C, P1.0 ;由DO读出一个BIT,检测DO的状态 RLC A ;将读出的BIT用于字节输出到指定的BYTE,选通器件 DJNZ R0, GETDATA;读完8次了吗?未读完,继续 SETB P1.4 ;/CS=1. 读完,放弃对于器件的控制 SJMP $

15、;SCLK入口 SCLK: SETB P1.2 ;CLK=1,发出时钟的高电平 NOP ;适当延时片刻 NOP NOP NOP CLR P1.2 ;CLK=0,发出时钟的低电平 NOP ;适当延时片刻 NOP NOP NOP RET END ; 查指令表可知NOP指令需用1个机器周期,在12MHz晶振时,一个机器周期时间长度为12/(12MHZ)=1us ; 所以该段延时程序执行时间为:2*1us=2us ; 因此,若取CLK的时钟占空比为50%,则高低电平延时时间相同,即总共的时钟周期为:2*2us=4us, ; 即CLK时钟频率为1/(4us)=250KHz ; 同学们可以编写两个不同的延

16、时程序,实现不同的CLK时钟频率和占空比, ; 但是要注意CLK必须在10KHz600KHz之间,占空比必须在40%60%之间. 参考文献 1 武汉力源电子股份有限公司. TLC0831C/I,TLC0832C/I 8位串行控制模数转换器产品资料. 1998.6 武汉2 Texas Instruments Incorporated. Data Sheet of TLC0831C, TLC0831I, TLC0832C, TLC0832I 8-BIT ANALOG-TO-DIGITAL CONVERTERS WITH SERIAL CONTROL. APRIL 1996, USA七、实验思考题1

17、 单步执行参考程序,观察记录实验结果:Vi=0V,1V,2V,3V,4V,5V时,A/D转换的数据。2 A/D转换数据的分辨率?3 A/D转换数据的时间(1个字节)?4 修改完善参考程序,实现定时采样的功能。查看记录DATA、CODE空间的数据,实现数据的采集。实验五 生物信号数据通讯与存储一、实验要求 本实验利用AT24C16对单片机进行外部数据存储器的扩展,使用8051单片机模拟I2C总线实现串行E2PROM的读写。将单片机内部RAM 30H开始的16个字节的数据写到外部数据区,然后再将外部数据区的16个字节的内容读到内部RAM 40H开始的单元中,以检验是否将数据正确的写到外部存储器。二

18、、实验目的5、 熟悉I2C串行数据总线技术的结构和原理。6、 掌握AT24C系列 E2PROM接口的转换性能及编程。7、 掌握AT24C系列与80C51单片机的接口方法。8、 通过实验了解如何使用具有I2C总线接口功能的串行E2PROM来扩展单片机的外部数据存储区。三、实验设备 1 机 一台 2 实验面包板 一个 3 80C51仿真器 一套4 元件: AT24C16 1片5 导线 若干四、实验说明 I2C 是一种新的芯片间的通讯方式,由PHILIPS 开发和推广。I2C通讯采用两条线进行通讯,一条数据线,一条时钟线,可进行多器件通讯。总线上的每个器件都有自己的地址。数据传送是双向的,总线支持多

19、主机,8051上I2C总线的接口为P0 端口的两根线,有专门的特殊功能寄存器来控制总线的工作和执行传输协议。而在单片机系统中广泛使用E2PROM作为数据存储器,AT24C系列串行E2PROM是具有I2C总线接口功能的数据存储器。本实验介绍了I2C总线及AT24C系列串行E2PROM,给出了8051单片机与串行E2PROM通讯的硬软件实现方法和实用的读/写子程序。1、I2C总线简介 I2C总线是一种双线串行数据总线,具有多端控制能力,由串行数据(SDA)线和串行时钟(SCL)线,在CPU与被控IC与IC之间进行数据双向传输,最高传输率为100千比特/秒。SDA线与SCL线均为双向I/O线,经电阻

20、接+5伏,当总线空闲时,两线为高电平,当I2C总线有所挂IC准备发送数据时,把集电极电压拉低,从而使与之相连的SDA线电压降低,占据了SDA线发送数据。在传送数据过程,有三种信号出现,分别是: 开始信号。SCL线为高电平,SDA线由高电平变低电平,视为开始传送数据。 结束信号。SCL线为高电平,SDA线由低电平变高电平,视为结束传送数据。 应答信号。接收数据的IC收到期1字节(8比特)数据后,向发送数据的IC发出低电平脉冲信号,视为已收到信号。在I2C总线上传送的一个数据字节由八位组成。总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。数据传送首先传送最高位(MSB),数据传送按图

21、1所示格式进行。首先由主机发出启动信号“S”(SDA在SCL高电平期间由高电平跳变为低电平),然后由主机发送一个字节的数据。启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读)。被寻址到的从机设备按传送方向位设置为对应工作方式。标准I2C总线的设备都有一个七位地址,所有连接在I2C总线上的设备都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第九位答时钟脉冲时向SDA线送出低电平作为应答。除了第一字节是通用呼叫地址或十位从机地址之外,第二字节开始即数据字节。数据

22、传送完毕,由主机发出停止信号“P”(SDA在SCL高电平期间由低电平跳变为高电平)。2、AT24C系列串行E2PROMAT24C系列串行E2PROM具有I2C总线接口功能,功耗小,宽电源电压(根据不同型号2.5V6.0V),工作电流约为3mA,静态电流随电源电压不同为30A110A,存储容量见表1。(1) AT24C系列 E2PROM接口及地址选择由于I2C总线可挂接多个串行接口器件,在I2C总线中每个器件应有唯一的器件地址,按I2C总线规则,器件地址为7位数据(即一个I2C总线系统中理论上可挂接128个不同地址的器件),它和1位数据方向位构成一个器件寻址字节,最低位D0为方向位(读/写)。器

23、件寻址字节中的最高4位(D7D4)为器件型号地址,不同的I2C总线接口器件的型号地址是厂家给定的,如AT24C系列E2PROM的型号地址皆为1010,器件地址中的低3位为引脚地址A2A1A0,对应器件寻址字节中的D3、D2、D1位,在硬件设计时由连接的引脚电平给定。对于E2PROM的片内地址,容量小于256字节的芯片(AT24C01/02),8位片内寻址(A0A7)即可满足要求。然而对于容量大于256字节的芯片,则8位片内寻址范围不够,如AT24C16,相应的寻址位数应为11位(211=2048)。若以256字节为1页,则多于8位的寻址视为页面寻址。在AT24C系列中对页面寻址位采取占用器件引

24、脚地址(A2、A1、A0)的办法,如AT24C16将A2、A1、A0作为页地址。凡在系统中引脚地址用作页地址后,该引脚在电路中不得使用,作悬空处理。AT24C系列串行E2PROM的器件地址寻址字节如表1所示,表中P0P1P2表示页面寻址位。(2)AT24C系列 E2PROM读写操作对AT24C系列 E2PROM的读写操作完全遵守I2C总线的主收从发和主发从收的规则。连续写操作:连续写操作是对E2PROM连续装载n个字节数据的写入操作,n随型号不同而不同,一次可装载字节数见表1。SDA线上连续写操作数据状态如图2。 AT24C系列片内地址在接收到每一个数据字节地址后自动加1,故装载一页以内规定数

25、据字节时,只须输入首地址,若装载字节多于规定的最多字节数,数据地址将“上卷”,前面的数据被覆盖。连续读操作:连续读操作时为了指定首地址,需要两个伪字节写来给定器件地址和片内地址,重复一次启动信号和器件地址(读),就可读出该地址的数据。由于伪字节写中并未执行写操作,地址没有加1。以后每读取一个字节,地址自动加1。 在读操作中接收器接收到最后一个数据字节后不返回肯定应答(保持SDA高电平)随后发停止信号。连续读操作SDA上数据状态如图3。五、8051单片机与AT24C系列 E2PROM通讯的硬软件实现(1) 硬件电路图4是用8051 P1口模拟I2C总线与E2PROM连接电路图(以AT24C16为

26、例),由于AT24C16是漏极开路,图中R1、R2为上拉电阻(5.1k)。A0A2地址引脚、TEST测试脚均悬空。(2) 软件实现由前述分析和图4的硬件电路,我们编制了E2PROM的读写子程序。两者的主要区别在于读子程序需发器件地址(写)和片内地址作为伪字节,之后再发一次开始信号和器件地址(读命令)。读写程序分别见: I2CREAD.ASM I2CWRITE.ASM 写程序: I2CWRITE.ASM ;将51单片机内部RAM区30H开始的16个字节写到E2PRPR0M的第0页中00H单元开始的区域 ;写串行E2PROM子程序EEPW ; (R3)=器件地址 1010 p2p1p0 R/W =

27、 1010*0 ; (R4)=片内字节地址 A7A6A5A4A3A2A1A0=* ; (R1)=欲写数据存放地址指针 8051RAM区地址0255 ; (R7)=连续写字节数n 224C16连续写字节数n=16 MOV R3, #10100000B ;器件寻址(写),选择向24c16第0页写数据 MOV R4, #00000000B ;片内地址为00H MOV R1, #30H ; 8051RAM区地址30H MOV R7, #16 ;24C16连续写字节数n=16 EEPW: MOV P1, #0FFH CLR P1.0 ;发开始信号( 高电平变为低电平) MOV A, R3 ;送器件地址

28、CALL SUBS MOV A, R4 ;送片内字节地址 CALL SUBSAGAIN: MOV A, R1 CALL SUBS ;调发送单字节子程序 INC R1 ; 8051RAM区地址 DJNZ R7, AGAIN ;连续写n个字节 CLR P1.0 ;SDA置0, 准备送停止信号 CALL DELAY ;延时以满足传输速率要求 SETB P1.1 ;发停止信号 CALL DELAY SETB P1.0 ;电平变高,写停止位 SJMP FINISH ;结束写数据,转读数据程序 ;写一个字节 SUBS: MOV R0,#08H ;发送单字节子程序 LOOP: CLR P1.1 ;产生低电平

29、 RLC A ;从高位到低位发送,左移到进位标志中 MOV P1.0, C NOP SETB P1.1 ;产生高电平,形成写数据脉冲 CALL DELAY DJNZ R0, LOOP ;循环8次送8个bit CLR P1.1 CALL DELAY SETB P1.1 ;产生应答脉冲REP: MOV C, P1.0 ;读应答信号 JC REP ;判应答到否,未到则等待 CLR P1.1 ;应达到,使电平变低,准备下一字节数据的发送 RETDELAY: NOP NOP RETFINISH:END读程序: I2CREAD.ASM ;将E2PRPR0M的第0页中00H单元开始的16个字节读到51单片机

30、内部RAM区40H开始的区域 ;读串行E2PROM子程序EEPR ;(R1)=欲读数据存放地址指针 8051RAM区地址0255 ;(R3)=器件地址 1010 p2p1p0 R/W = 1010*0 和 1010 p2p1p0 R/W = 1010*1分别送一次 ;(R4)=片内字节地址 A7A6A5A4A3A2A1A0=* ;(R7)=连续读字节数 24C16连续读字节数n=16 READDATA: MOV R3, #10100000B ;器件寻址(写),选择24c16第0页 MOV R4, #00000000B ;片内地址为00H MOV R1, #40H ; 8051RAM区地址40H MOV R7, #16 ;24C16连续写字节数n=16 EEPR: MOV P1,#0FFH CLR P1.0 ;发开始信号 MOV A ,R3 ;送器件地址(写) CALL SUBS ;调发送单字节子程序 MOV A,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1