第十章 8051输出控制的C编程.ppt_第1页
第十章 8051输出控制的C编程.ppt_第2页
第十章 8051输出控制的C编程.ppt_第3页
第十章 8051输出控制的C编程.ppt_第4页
第十章 8051输出控制的C编程.ppt_第5页
已阅读5页,还剩50页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第10 章 8051输出控制的C编程,10. 1 8位D/A芯片DAC0832,10. 2 12位D/A芯片AD7521,10. 3 步进电机与单片机的接口,D/A转换器输入的是数字量,经转换后输出的是模拟量。有关D/A转换器的技术性能指标很多,例如绝对精度、相对精度、线性度、输出电压范围、温度系数、输入数字代码种类(二进制或BCD码)等。 1) 分辩率 分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为1/(2n-1)。这就意味着数/模转换器能对满刻度的1/(2n-1)输入量作出反应。,10. 1 8位D/A芯片DAC083

2、2,10.1.0 D/A转换器概述,2) 建立时间 建立时间是描述D/A转换速度快慢的一个参数,指从输入数字量变化到输出达到规定的误差范围(1/2)LSB(最低有效位)时所需的时间。通常以建立时间来表示转换速度。,转换器的输出形式为电流时,建立时间较短;输出形式为电压时,由于建立时间还要加上运算放大器的延迟时间,因此建立时间要长一点。 但总的来说,D/A转换速度远高于A/D转换速度,快速的D/A转换器的建立时间可达1 s。,3) 接口形式 D/A转换器与单片机接口方便与否,主要决定于转换器本身是否带数据锁存器。 有两类D/A转换器: 一类是不带锁存器的, 一类是带锁存器的。 对于不带锁存器的D

3、/A转换器,为了保存来自单片机的转换数据,接口时要另加锁存器,因此这类转换器必须在口线上;而带锁存器的D/A转换器,可以把它看作是一个输出口,因此可直接在数据总线上,而不需另加锁存器。,DAC0832是一个8位D/A转换器。单电源供电,从+5V+15V均可正常工作。基准电压的范围为10V;电流建立时间为1s;CMOS工艺,低功耗20 mW。,10.1.1 DAC0832的结构和引脚,DAC0832引脚图,DAC 0832内部结构框图,有3种工作方法:直通方式、单缓冲方式和双缓冲方式。,1、直通方式 输入寄存器和DAC寄存器共用一个地址,同时选通输出; WR1和WR2同时进行,并且不与CPU相接

4、。 特点:转换速度快。,10.1.2 8051与DAC0832的接口电路,2、单缓冲方式 输入寄存器和DAC寄存器共用一个地址,同时选通输出,输入数据在控制信号作用下,直接进入DAC寄存器中; WR1和WR2同时进行,并且与CPU的WR相连,CPU对0832执行一次写操作,将数据直接写入DAC寄存器中。 适用:只有一路模拟信号输出或几路模拟信号非同步输出。,3、双缓冲器方式输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。适用:同时输出几路模拟信号的场合,可构成多个0832同步输出电路。(DA1和DA2的输入寄存器地址,DAC寄存器地址?),例 1 、DAC 0832

5、的双缓冲接口电路P231,# include # include # define INPUTR1 XBYTE 0 x8fff # define INPUTR2 XBYTE 0 xa7ff # define DACR XBYTE 0 x2fff # define uchar unsigned char void dac2b (uchar data1 , uchar data2 ) INPUTR1 = data1 ; /* 送数据到一片0832 */ INPUTR2 = data2 ; /* 送数据到另一片0832 */ DACR= 0 ; /* 启动两路D/A 同时转换 * / ,例2 DAC

6、0832单缓冲区接口,# include # include # define DA0832 XBYTE 0 xfffe # define uchar unsigned char # define uint unsigned int void stair (void ) uchar i ; while ( 1 ) for ( i=0 ; i=255 ; i=i+ ) /* 形成锯齿波输出值,最大值为255 */ DA0832 = i ; /* D/A转换输出 */ ,按片选线确定FFFEH为DAC0832的端口地址。使运行输出端输出一个锯齿波电压信号的C51程序如下:,10.2 12位D/A芯

7、片 AD7521,10.2.1 AD7521 的引脚,12位D/A转换器,内部不带输入寄存器。 当输入数据发生变化时,输出电流或电压也发生变化。 使用时,需要增加一个数据锁存器与总线相连。,10.2.2 AD7521 与8051的接口p223,例 8031与AD7521接口的数据转换程序举例。,使AD7521输出梯形波的C51程序如下: # include # include # define DA7521L XBYTE0 x7fff # define DA7521H XBYTE0 xbfff # define UP 0 x010 # define T 1000 # define uint u

8、nsigned int,void dlms ( uint a ); void stair(void) uint i ; for ( i=0 ; i=4095 ; i=i+UP ) /* 以阶高增量增值,形成梯形波输出值最大4095*/ DA7521L= i % 256 ; /* 送低8位数据到第一级缓冲器 */ DA7521H= i /256 ; /* 送高4位数据到高4位缓冲器,同时送低8位到第二级 /* 缓冲转换 */ dlms ( T ) ; /* 延时 */ ,10.3 步进电机控制,10.3.1 步进电机及其工作方式,原理: 步进电机是利用电磁铁原理,将脉冲信号转换成线位移或角位移的

9、电机。每来一个电脉冲,电机转动一个角度,带动机械移 动一小段距离。,特点: (1) 来一个脉冲,转一个步距角。 (2) 控制脉冲频率,可控制电机转速。 (3) 改变脉冲顺序,可改变转动方向。,种类: 有励磁式和反应式两种。两种的区别在于励磁式步进电机的转子上有励磁线圈,反应式步进电机的转子上没有励磁线圈。,应用: 步进机的应用非常广泛。如:在数控机床、自动 绘图仪等设备中都得到应用。,下面以反应式步进电机为例说明步进电机的结构和工作原理。,步进机主要由两部分构成:定子和转子。它们均由磁性材料构成,其上分别有六个、四个磁极 。,定子,转子,定子绕组,1、 结构,定子的六个磁极上有控制绕组,两个相

10、对的磁极组成一相。,注意:这里的相和三相交流电中的“相”的概念不同。步进机通的是直流电脉冲,这主要是指线图的联接和组数的区别。,IA,IB,IC,2、 工作方式,步进电机的工作方式可分为:三相单三拍、三相单双六拍、三相双三拍等。,(1)三相单三拍,三相绕组联接方式:Y 型,工作过程,A 相通电,A 方向的磁通经转子形成闭合回路。若转子和磁场轴线方向原有一定角度,则在磁场的作用下,转子被磁化,吸引转子,使转子的位置力图使通电相磁路的磁阻最小,使转、定子的齿对齐停止转动。,A 相通电使转子1、3齿和 AA 对齐。,同理,B相通电,转子2、4齿和B相轴线对齐,相对A相通电位置转30;C相通电再转30

11、。,这种工作方式,因三相绕组中每次只有一相通电,而且,一个循环周期共包括三个脉冲,所以称三相单三拍。,三相单三拍的特点:,(1)每来一个电脉冲,转子转过 30。此角称为步距角,用S表示。,(2)转子的旋转方向取决于三相线圈通电的顺序,改变通电顺序即可改变转向。,(2)三相单双六拍,三相绕组的通电顺序为: AABBBCCCAA 共六拍。,工作过程:, A相通电,转子1、3齿和A相对齐。,所以转子转到两磁拉力平衡的位置上。相对AA 通电,转子转了15。,BB 磁场对 2、4 齿有磁拉力,该拉力使转子顺时针方向转动。, A、B相同时通电,AA 磁场继续对1、3齿有拉力。,总之,每个循环周期,有六种通

12、电状态,所以称为三相六拍,步距角为15。, B相通电,转子2、4齿和B相对齐,又转了15。,(3)三相双三拍,三相绕组的通电顺序为: AB BC CA AB 共三拍。,工作方式为三相双三拍时,每通入一个电脉冲,转子也是转30,即 S = 30。,3、小步距角的步进电动机,实际采用的步进电机的步距角多为3度和1.5度,步距角越小,机加工的精度越高。,为产生小步距角,定、转子都做成多齿的,图中转子40个齿,定子仍是 6个磁极,但每个磁极上也有五个齿。,转子的齿距等于360/ 40=9 ,齿宽、齿槽各4.5 。,为使转、定子的齿对齐,定子磁极上的小齿,齿宽和齿槽和转子相同。,工作原理:假设是单三拍通

13、电工作方式。,(1)A 相通电时,定子A 相的五个小齿和转子对齐。此时,B 相和 A 相空间差120,含 120/9 = 齿 A 相和 C 相差240,含240/ 9 = 个齿。所以,A 相的转子、定子的五个小齿对齐时,B 相、C 相不能对齐,B相的转子、定子相差 1/3 个齿(3),C相的转子、定子相差2/3个齿(6)。,若工作方式改为三相六拍,则每通一个电脉冲, 转子只转 1.5 。,异步机的转动方向仍由相序决定。,同理,C 相通电再转3 ,(2)A 相断电、B 相通电后,转子只需转过1/3个 齿(3),使 B 相转子、定子对齐。,步进机通过一个电脉冲,转子转过的角度,称为 步距角。,10

14、.3.2 步进电机与单片机的接口,步进电机功率驱动电路采用光电隔离 步进电机功率驱动电路工作在较大脉冲电流状态,采用光电耦合器将单片机与步机电机隔离可以避免单片机与步进电机功率回路的共地干扰,此外,万一驱动电路发生故障。也不致让功放中较高的电压串入单片机而使其损坏。,1、软件选择单三拍的工作方式 单三拍的通电方式为ABCA,要想达到这个目的,只需依次向P1口输出如下控制字: P1.2 P11 P10 编码 (C相)(B相) (A相) 0 0 1 (01H) A相通,B、C相断 0 1 0 (02H) B相通,A、C相断 1 0 0 (04H) C相通,A、B相断,在控制字间也应加入软件延时来保

15、证一定的时间间隔。 假定要求时间间隔为1ms,控制电机按三相三拍正转的程序是: ZHEN:MOV P1, 01H ;A相通电 ACALL D1MS MOV P1, 02H ;B相通电 ACALL D1MS MOV P1, 40H ;C相通电 ACALL D1MS RET D1MS: MOV R7, 64H ;延时1ms子程序 D1MS1: NOP ;2s NOP ;2s NOP ;2s DJNZ R7,D1MSl ;4s RET,要想控制步进电机反转,只需把输出的控制字的次序按: 01H(A)04H(C)02H(B)01H(A) 组合即可。 反转程序如下: FAN:MOV P1, 01H ;A

16、相通电 ACALL D1MS MOV P1, 04H ;C相通电 ACALL D1MS MOV P1, 02H ;B相通电 ACALL D1MS ,#include #define DL 500 #define DR 1 #define uchar unsigned char #define uint unsigned int void dlms(uint x);,void ctrl(bit cf , uint n) uint i; uchar j=0 x01; if(cf=0) for(i=0;i1; if( j = 0) j = 0 x04; ,void main( void ) if (

17、 DR = 1 ) ctrl(1,100); else ctrl(0,100); ,2、软件选择三相六拍的工作方式 P12 P11 P10 (C相) (B相) (A相)控制编码 导通情况 0 0 1 (01H) A相通电 0 1 1 (03H) AB相通电 0 1 0 (02H) B相通电 1 1 0 (06H) BC相通电 1 0 0 (04H) C相通电 1 0 1 (05H) CA相通电,如果按: 001101100110010011001 A CA C CB B BA A 的次序输出,就可达到反转的目的。,FAN: MOV P1, 01H ;A相通电 ACALL D1MS MOV P1

18、,05H ;CA相通电 ACALL D1MS MOV P1,04H ;C相通电 ACALL D1MS MOV P1,06H ;CB相通电 ACALL D1MS MOV P1,02H ;B相通电 ACALL D1MS MOV P1,03H ;BA相通电 ACALL D1MS RET,#include #define DL 50 #define DR 0 #define uchar unsigned char #define uint unsigned int uchar idata plus7=0 x01,0 x03,0 x02,0 x06,0 x04,0 x05,0 x00; uchar id

19、ata minu7=0 x01,0 x05,0 x04,0 x06,0 x02,0 x03,0 x00; uchar k=0; uchar idata *x;,void control(bit cf , uint n ) uint i; if(cf=0) x= ,void delay(void) interrupt 1 using 1 P1 = *x+; if ( *x = 0) x = x - 6; TH0=(65536-DL*500)/256; TL0=(65536-DL*500)%256; k=1; void main(void) if ( DR = 0 ) control(0,10); else control(1,10); ,3、步进电机变速控制,步进电动机的转速控制,实际上就是控制各相线通电状态持续时间的长短。这可以采取两种方法:一种是软件延时,另一种是定时器延时。,#include #define uchar unsigned char uchar sn=10; uchar idata nowrate2=0 x00,0 x00; uchar idata *pp; bit pf=1; void intt0( void ) interrupt 1 TL

温馨提示

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

最新文档

评论

0/150

提交评论