1 / 73

本章学习目标 : 了解单片机测控系统中接口元件的作用 了解 D/A 转换器与 80C51 的连接方法,能读懂教材中的控制实例。

第 7 章 80C51 的测控技术. 本章学习目标 : 了解单片机测控系统中接口元件的作用 了解 D/A 转换器与 80C51 的连接方法,能读懂教材中的控制实例。 掌握 A/D 转换器与 80C51 的连接方法,能编写与教材同等难度的应用程序。 了解直流电机控制芯片 TA7257P 的应用 理解步进电机的工作原理、励磁方式,能用其实现简单控制. 模拟信号:如被控对象的温度、压力等. {. 为什么要研究单片机测控系统?. 单片机的输入信号. 开关信号 : 如指拨开关和按键开关. {. 模拟设备 : 电动调节阀、模拟记录仪. 单片机的驱动控制设备.

keena
Télécharger la présentation

本章学习目标 : 了解单片机测控系统中接口元件的作用 了解 D/A 转换器与 80C51 的连接方法,能读懂教材中的控制实例。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第7章 80C51 的测控技术 • 本章学习目标: • 了解单片机测控系统中接口元件的作用 • 了解D/A转换器与80C51的连接方法,能读懂教材中的控制实例。 • 掌握A/D转换器与80C51的连接方法,能编写与教材同等难度的应用程序。 • 了解直流电机控制芯片TA7257P的应用 • 理解步进电机的工作原理、励磁方式,能用其实现简单控制

  2. 模拟信号:如被控对象的温度、压力等 { 为什么要研究单片机测控系统? • 单片机的输入信号 开关信号: 如指拨开关和按键开关 { 模拟设备:电动调节阀、模拟记录仪 • 单片机的驱动控制设备 数字设备: 数字显示仪表、继电器触点 单片机用于智能仪表和测控系统时,要与各种各样的外界信号打交道: 由于单片机的输入和输出信号只能是数字量,因此在由单片机构成的测控系统中经常要用到模/数转换和数/模转换接口。单片机和被控对象间的接口示意图如图7-1所示。

  3. 图7-1 单片机和被控对象间的接口示意图

  4. 7.1 数/模转换接口 数/模转换接口的任务:将数字信号转换成与其量值成正比的电流信号或电压信号(即模拟信号)。 数/模转换接口的作用:相当于一个实现二进制数到十进制数转换,并将转换结果以电流或电压形式输出的物理器件。 数/模转换接口常接在单片机的输出端与执行设备(如电磁阀)之间。常用的数/模转换接口芯片有DAC0832(TTL 8位)、AD7524(CMOS 8位)和DAC1208(12位)等。 下面以DAC0832为例说明数/模转换接口的使用。

  5. 7.1.1 DAC0832的结构1. DAC0832的内部结构 DAC0832是美国国家半导体公司生产的8位电流输出型D/A转换器,是DAC0830系列产品中的一种。它的主要技术指标是:分辨率为8位,转换速度约1μs,单一电源(+5~+15V)供电,参考电压为+10~-10V等。 DAC0832的内部结构如图7-2所示,它含有: • 1个8位数据输入寄存器:8位输入数据暂存 • 1个8位DAC寄存器:与8位数据输入寄存器构成两级缓冲,使芯片功能更灵活。 • 1个8位D/A转换器:实现D/A转换。

  6. 图7- 2 DAC0832的内部结构

  7. 2.DAC0832的引脚功能 DAC0832的引脚如图7-3所示,下面对各引脚功能作简要说明:

  8. 7.1.2 DAC0832与80C51的接口与编程 1.DAC0832与80C51的接口 DAC0832内部具有两级8位寄存器,通过与80C51的适当连接可以构成直通、单缓冲、双缓冲三种工作方式。下面以单缓冲方式为例说明其接口形式。电路如图。

  9. 在单缓冲方式下,80C51的P2.7与DAC0832的和数据传送控制信号线相连,这样,当地址线P2.7选通DAC0832后,只要输出信号,DAC0832就能进一步完成数字量的输入锁存和D/A转换输出功能。在上图中,由于地址线P2.7=0时选通DAC0832,所以DAC0832的接口地址为7FFFH。在单缓冲方式下,80C51的P2.7与DAC0832的和数据传送控制信号线相连,这样,当地址线P2.7选通DAC0832后,只要输出信号,DAC0832就能进一步完成数字量的输入锁存和D/A转换输出功能。在上图中,由于地址线P2.7=0时选通DAC0832,所以DAC0832的接口地址为7FFFH。 注意:DAC0832的转换输出量为电流,而在实际应用中,作为输出控制的信号大多为模拟电压,如直流电机、线性电磁阀等,因此还需要将电流信号转换为电压信号。图中采用LM747作反向电压输出。

  10. 2.DAC0832的编程 DAC0832的编程比较容易,只要向80C51提供芯片地址,并进行一次简单的数据读写操作即可。 例1 电路如图7- 4,试编程实现一次DAC0832的数据转换,设拟转换数据为#DATA。 参考程序如下: MOV DPTR,#7FFFH ;指向DAC0832的单元地址 MOV A,#DATA ;转换数据“DATA”装入A MOVX @DPTR, A ;转换数据送往DAC0832,并使 ; =0,完成一次转换 =0,完成一次转换

  11. 7.1.3 课题与实训15 DAC0832构成波形发生器 一. 实训目的 1.学习8位D/A转换器DAC0832的使用方法 2.掌握8位D/A转换器DAC0832与单片机的接口技术及编程方法 二. 课题要求 用一片DAC0832和必要的外围器件与80C51接口,设计一个简易波形发生器,要求能输出三种波形:方波、锯齿波、梯形波。请编写相应程序。

  12. 三. 背景知识 1.DAC0832的输出电压 DAC0832有两种输出形式:单极性输出和双极性输出。在图7-4中,DAC0832采用单极性输出形式。其输出电压为: 在该实训中,DAC0832以双极性形式输出,电路如图7-5。此时输出电压为: 式中B为输入数字量,其范围为0~255,VREF为参考电压。

  13. 2.波形产生原理 • 方波 • 单片机连续255次输出数字量0,然后再连续255次输出数字量255。如此重复,0832即可输出连续方波。 • 锯齿波 • 单片机从输出数字量0开始,逐次加1直到255;然后再从0开始,如此重复,0832即可输出锯齿波。 • 梯形波 • 单片机从输出数字量0开始,逐次加1直到255,并保持255次,然后从输出255逐次减1直至为0。如此重复,0832即可输出连续梯形波。

  14. 四.硬件原理 图7-5 由DAC0832构成的简易波形发生器

  15. 五.软件设计 1.输出连续方波: 参考程序如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV DPTR,#7FFFH ;指向0832 LOOP:MOV A,#0 MOV R7,#255 ;循环次数初始化 MOVX @DPTR,A ;向DAC送方波最小值0 DJNZ R7,$ ;循环255次,形成方波 ;的低电平

  16. MOV A,#255 ;将方波最大值255送到A MOV R7,#255 ;重置循环次数 MOVX @DPTR,A ;向DAC送255,D/A输出为高 DJNZ R7,$ ;循环255次,形成方波的高电平 AJMP LOOP ;重复上述过程,形成连续方波 END

  17. 2.输出连续锯齿波: 参考程序如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV DPTR,#7FFFH ;指向0832 LOOP: MOV A,#0 LOOP 1:MOVX @DPTR,A;向DAC送锯齿波最小值0 INC A ;加1 CJNE A,#255,LOOP 1;循环256次,形成 ;锯齿波的上升沿 END

  18. 3.输出连续梯形波 参考程序如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV DPTR,#7FFFH ;指向0832 LOOP:MOV A,#0 LOOP 1:MOVX @DPTR,A ; 向DAC送梯形波最小值0 INC A CJNE A,#255,LOOP 1 ;循环255次,形成 ;梯形波的上升沿 MOV A,#255 ;将梯形波的高度数值255 ;送A,此255表示梯形波的高

  19. MOV R2,#255 ;255为形成梯形波上底需 ;要循环的次数 LOOP 2:MOVX @DPTR,A;向DAC送255,D/A输出为高 DJNZ R2,LOOP 2 ;循环255次,形成梯形 ;波的上底 LOOP 3:MOVX @DPTR,A ; DAC输出 DEC A CJNE A,#0,LOOP 3 ;循环256次,形成 ;梯形波的下降沿 LJMP LOOP;重复上述过程,形成多个梯形波 END

  20. 六.总结与提高 在上述三组程序设计中,通过DAC0832输出端输出的波形均为直线型的波形,没有考虑波形频率。如果改变程序可以使DAC0832输出满足频率要求的各种曲线。 仍采用该实训电路,请编程输出图7-6所示的1ms阶梯波。 图7-6 1ms阶梯波形图

  21. 7.2 模/数转换接口 模/数转换接口的任务:将模拟信号转换成数字信号,它常与单片机的输入端相连。 常用的模/数转换接口芯片有ADC0809(8位)、ADC0804(8位)和AD574(12位)等。 7.2.1 ADC0809的结构 1.ADC0809的内部结构 ADC0809的内部结构如图7-7所示。

  22. 图7- 7 ADC0809的内部结构

  23. ADC0809包含: • 8路模拟量选择开关:根据地址锁存与译码装置提供的地址从8个输入的0~5V的模拟量中选择一个输出。 • 8位A/D转换器:能对选择出来的模拟量进行A/D转换 • 3位地址码的锁存与译码装置:对输入的3位地址码进行锁存和译码,并将地址选择结果送给8路模拟量选择开关。 • 三态输出的锁存缓冲器:TTL结构,负责输出转换的最终结果。此结果可直接连到单片机的数据总线上。

  24. 图7-8 ADC0809的引脚 该信号可以作为CPU查询A/D转换是否完成的信号,也可以作为向CPU发出中断申请的信号。 • 2.ADC0809的引脚功能 • IN0~IN7:8个模拟量的输入端。 • D0~D7:8位数字量输出端。 • START:启动A/D转换,加正脉冲后A/D转换开始。 • EOC:转换结束信号,转换开始时EOC信号变低;转换结束时EOC信号返回高电平。 此信号有效时,CPU可以从ADC0809中读取数据,同时也可以作为ADC0809的片选信号。 • OE:输出允许信号,输入高电平有效。OE端的电平由低变高时转换结果被送到数据线上。

  25. 图7-8 ADC0809的引脚 在ALE=1时,锁存ADDA~ADDC,选中模拟量输入。 • CLK:实时时钟,频率范围10~1280KHz,典型值为640KHz。 • ALE:通道地址锁存允许信号,输入高电平有效。 • ADDA~ADDC:通道地址选择输入,其排列顺序从低到高依次为ADDA、ADDB、ADDC。 • VREF+、VREF-:正负参考电压。一般情况下,VREF+接+5V,VREF-接地。 • VCC、GND:工作电源和地 该地址与8个模拟量输入通道的对应关系见表7- 2。 转换关系见表7- 1

  26. 表7-1 ADC0809的输入输出关系 注:此表在VREF+=+5V,VREF-=0情况下

  27. 7.2.2 ADC0809与80C51的接口 • ADC0809与80C51的接口要满足ADC0809转换时序的要求,电路如图7-9所示。 图7-9 ADC0809与80C51的接口

  28. (1)地址线与数据线的连接 ADC0809的内部输出电路有三态缓冲器,所以其8位输出数据线可以直接和80C51的P0口相连。它的通道地址选择信号ADDA~ADDC均经过74LS373锁存,与80C51的P0口中的任意三根I/O口线相连接(图中与P0.0、P0.1、P0.2相连)。 (2)时钟信号的连接 ADC0809必须外接时钟。此电路中借用80C51的ALE输出。 (3)控制信号的连接 由于ADC0809的ALE和START均为正脉冲,而且基本同步,所以可由80C51的P2.0和 或非而成。同理,OE信号也可以由80C51的P2.0和 或非而成。EOC信号经非门与80C51的 相接,可申请中断。 若80C51晶振频率太高,则需对ALE输出脉冲进行分频。如晶振采用12MHz时,ALE频率为2MHz,经4分频后为500KHz,才能与 ADC0809的CLK时钟端相连。

  29. 7.2.3 ADC0809的应用指导 • 1.ADC0809转换结束的判断方法 • 软件延时法   •    指用软件延时等待一次A/D转换结束。延时时间取决于通过计算和调试而获得的ADC完成一次转换所需要的时间。 • 中断法   • 利用EOC作为向80C51申请中断的信号。在主程序中启动A/D转换,再继续执行主程序。在中断服务程序中读取转换结果。 • 查询法 • 将EOC接至80C51的某端口I/O口线。启动A/D转换后,利用查询该I/O口线引脚电平是否为0的方法读取转换结果。

  30. 2.ADC0809的编程方法 ⑴初始化 用来设置ADC0809的IN0~IN7通道地址;设置存放转换结果的首单元地址和通道数。 ⑵启动ADC0809 先送通道号地址到ADDA~ADDC,由ALE锁存通道号地址;再让START有效启动A/D转换,即执行一条“MOVX @DPTR,A”指令产生信号,使ALE、START有效,锁存通道号并启动A/D转换。 ⑶判断A/D转换是否结束 ⑷读转换结果 A/D转换完成后,EOC端会发出一个正脉冲,接着执行“MOVX A,@DPTR” 指令产生 信号,使OE端有效,打开锁存器三态门,8位数据就读入到单片机中。

  31. 7.2.4 ADC0809的应用实例 根据图7-9的电路,采用软件延时方法,将8路模拟信号轮流采集一次,并依次将转换后的结果存放到80C51内部从30H开始的单元中。从上图所示的电路可知,IN0~IN7的通道地址为FEF8H~FEFFH。 参考程序如下: MOV R1,#30H ;设置存放转换结果首单元指针 MOV DPTR,#0FEF8H ;指向通道0 MOV R7,#08H ;设置通道数 LOOP:MOVX @DPTR, A ;启动A/D转换 MOV R5,#10 ;软件延时,等待A/D转换结束 DELAY: NOP

  32. NOP NOP DJNZ R5,DELAY MOVX A,@DPTR ;读取转换结果 MOV  @R1,A ;存放转换结果 INC  DPTR ;指向下一个通道 INC R1 ;修改存储单元指针 DJNZ R7,LOOP ;8个通道未采集完,继续 RET

  33. ☆7.2.5串行A/D转换芯片TLC1549 • 单片机测控系统需要进行A/D转换时,有两种选择: • 选用自身具有A/D转换功能的单片机,如PIC单片机。 • 扩展A/D转换芯片。 • 除ADC0809等常用的并行A/D转换芯片外,还有串行A/D转换芯片,如TLC1549。图7-10 TLC1549的引脚功能 • TLC1549是美国TI公司生产的10位模数转换器。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入、抗干扰,可按比例量程校准转换范围,总不可调整误差达到(±)1LSB Max(4.8mv) 等特点,而且芯片体积小巧。

  34. 1.引脚功能 • :片选,低电平有效。 • ANALOG IN:模拟信号输入端,要求驱动电流必须大于10mA。 • I/O CLOCK:I/O时钟,下跳沿输出数据,最大频率可达2.1MHz。 • DATA OUT :转换后的数字信号输出, =1时,呈现高阻; =0时,在时钟作用下将数据由高到低依次输出。 • REF+:参考电源高端,通常接+VCC。 • REF—:参考电源低端,通常接GND。 • VCC:正电源(4.5V≤ VCC≤5.5V) 7-10 TLC1549的引脚功能

  35. 2.工作方式 TLC1549有6种工作方式,见表7-3。其中方式1和方式3属于同一种类型;方式2和方式4属于同一种类型。如果不考虑I/O CLOCK周期的大小,方式3与方式5相同,方式4与方式6相同。 表7-3 TLC1549的6种工作方式 一般情况下,I/O CLOCK的时钟频率大于280KHz时,芯片工作于快速方式; 一般情况下,I/O CLOCK的时钟频率小于280KHz时,芯片工作于慢速方式。

  36. 方式1为经典工作方式。其工作原理为: • 在芯片选择 无效情况下,I/O CLOCK被禁止且DATA OUT处于高阻状态。 • 当串行接口把 拉至有效时,转换时序开始允许I/O CLOCK工作并使DATA OUT脱离高阻状态: • 由80C51单片机产生10个时钟序列提供给TLC1549的I/O CLOCK引脚;在 的下降沿时刻,前次转换的MSB出现在DATA OUT引脚,单片机从DATA OUT接收前次转换结果。如果连续进行A/D转换,TLC1549能在前次转换结果输出的过程中,同时完成本次转换的采样。

  37. 2.TLC1549与80C51的接口 TLC1549采用串行输出的方式,体积小巧,方便灵活,与单片机的接口也简单,电路如图7-12所示。 图7- 12 TLC1549与80C51的接口示意图

  38. 3.软件设计 入口参数:使用累加器A,进位标志CY及工作寄存器R7; 出口参数:20H单元存放转换结果的低8位,21H单元存放转换结果的高2位。 ADCCON: MOV 20H,#00H MOV 21H,#00H ;结果单元清零 MOV R7,#0AH ;A/D转换位数标志 CLR P1.4 ;选通TLC1549 LOOP1: MOV C,P1.0 ;读转换结果送至CY MOV A,20H ;转换结果移至结果单元 RLC A

  39. MOV 20H,A MOV A,21H RLC A MOV 21H,A SETB P1.2 ;形成移位脉冲 CLR P1.2 DJNZ R7,LOOP1 ;转换结束否? SETB P1.4 ;TLC1549复位并进行一 ;次转换 RET ;上述程序执行时间约120μs

  40. 7.2.6 课题与实训16 简易数字电压表 一. 实训目的 1.了解A/D转换器ADC0809的基本性能 2.掌握ADC0809与单片机的接口方法及编程方法 3.通过实训了解单片机的数据采集过程 二. 课题要求 用一片ADC0809和必要的外围器件与AT89C51接口,设计一个简易数字电压表,要求能对IN0输入的模拟电压进行识别,将其转换成相应的二进制数以发光二极管的形式显示;用万用表测量IN0输入的模拟电压值,并与转换结果相对比,计算测量误差。请编写相应程序。

  41. 三. 背景知识 • 1.A/D转换的种类 • 计数型:速度慢、价格低 • 逐次逼近型:分辨率、速度、价格适中 • 双积分型:分辨率高、抗干扰性强、价格低、速度较慢 • 高速A/D转换器 • 2.ADC0809的性能特点 • 是逐次逼近型8通道8位A/D转换CMOS器件。转换电压为正负5V,转换时间100微秒,功耗15mW,具有锁存的三态输出,与TTL电平兼容,便于与微机接口。 • 3.ADC0809与单片机的联系方式 • 可采用延时等待、软件查询和硬件中断方式。

  42. 四.硬件原理 电路如图7-13,该连接方式下,IN0 的通道地址是0FEF8H。 图7-13 简易数字电压表硬件电路

  43. 五.软件设计 利用中断方式,参考程序如下: ORG 0000H LJMP START ORG 0013H LJMP INT_1 ORG 0100H START: MOV R7,#00H ;读数标志初始化 MOV DPTR,# 0FEF8H;P2.0=0,指向IN0 SETB IT1;低电平触发 SETB EA SETB EX1 ;INT1 允许 A_D: MOV R0,#00H ;通道数

  44. MOV A,R0 MOVX @DPTR,A ;启动 A/D CJNE R7,#00H,$ ;等待 A/D 转换结束 MOV A,B MOV P1,A ;数据输出 MOV R7,#0FFH ;清读数标志 SJMP A_D INT_1: MOVX A,@DPTR ;读 A/D 数据 MOV B,A MOV R7,#00H ;置读数标志 RETI END

  45. 六.总结与提高 在上述程序设计中,我们采用中断的方式,只对IN0的模拟电压值进行测量显示,实际上,我们可以同时对8路模拟电压值进行测量。仍采用该实训电路,请编程实现该功能,将IN0~IN7的数字电压值存放在内RAM30H开始的8个单元。

  46. 7.3电动机控制 • ☆7.3.1 直流电动机控制芯片——TA7257P • 1.TA7257P的功能特性: • TA7257P为全桥式结构的直流电动机旋转控制器,具有正转、反转、停止及刹车功能。 • 操作电压范围6V~18V。 • 输出平均电流可达1.5A,峰值电流可达4.5A。 • 内部设计有电流过载保护装置和过热保护电路。 • 工作电路电压引脚与电动机电源电压引脚相对独立,故可用于伺服控制。 • TA7257P适合工业上的应用,如磁带盘、影片盘等机械运转装置的控制。

More Related