您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > AD转换DA转换及pwm转速测量实验
工程实训实验报告单位(二级学院):自动化学院学生姓名:张宝川专业:电气工程及其自动化班级:0831302学号:2013212629实验一、数据采集_A/D转换一、实验目的(1)掌握A/D转换与单片机接口的方法;(2)了解A/D芯片0809转换性能及编程方法;(3)通过实验了解单片机如何进行数据采集。(4)ADC0809引脚结构:ADC0809各脚功能如下:D7~D0:8位数字量输出引脚。IN0~IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。二、实验任务1.硬件电路设计:设计基于单片机控制的AD转换应用电路。AD转换芯片采用ADC0809。ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。ADC0809的VREF接+5V电压。2.软件设计:程序设计内容(1)进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,经过数据处理之后在数码管上显示。(2)进行A/D转换之前,要启动转换的方法:ABC=110选择第三通道。ST=0,ST=1,ST=0产生启动转换的正脉冲信号图1.2ADC0809时序图三、实验代码#includereg52.h#includereg51.h#defineuintunsignedint#defineucharunsignedcharsbitOE=P1^0;sbitST=P1^2;sbitEOC=P1^1;sbitCLK=P1^3;sbitC1=P1^6;sbitC2=P1^5;sbitC3=P1^4;unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsigneddate;voiddelay(unsignedintz){unsignedinti,j;for(i=z;i0;i--)for(j=110;j0;j--);}voiddisplay(unsignedintx){P2=0xfe;P0=table[x/100];delay(10);P0=0x00;P2=0xfd;P0=table[x/10%10];delay(10);P0=0x00;P2=0xfb;P0=table[x%10];delay(10);P0=0x00;}voidmain(){TMOD=0x01;TH0=(65536-900)/256;TL0=(65536-900)%256;TR0=1;ET0=1;EA=1;C1=0;C2=1;C3=1;while(1){ST=0;ST=1;ST=0;delay(2);while(!EOC)display(date);OE=1;date=P3;OE=0;}}voidtimer0()interrupt1{TH0=(65536-900)/256;TL0=(65536-900)%256;CLK=~CLK;}四、实验结果实验二、D/A转换及数字式波形发生器一、实验目的1、熟悉DAC0832内部结构及引脚。2、掌握D/A转换与接口电路的方法。3、通过实验了解单片机如何进行波形输出。二、D/A转换器的主要性能参数(1)分辨率:该参数是描述D/A转换对输入变量变化的敏感程度。具体指D/A转换器能分辨的最小电压值。分辨率的表示有两种:最小输出电压VLSB(输入数字只有最低位为1)与最大输出电压输入数字全为1)的比值来表示用输入端待进行转换的二进制数的位数来表示,位数越多,分辨率越高。分辨率的表示式为:分辨率=Vref/2位数或分辨率=(V+ref+V-ref)/2位数若Vref=5V,8位的D/A转换器分辨率为5/256=20mV。(2)转换时间:指数字量输入到模拟量输出达到稳定所需的时间。一般电流型D/A转换器在几秒到几百微秒之内;而电压型D/A转换器转换较慢,取决于运算放大器的响应时间。(3)转换精度:指D/A转换器实际输出与理论值之间的误差,一般采用数字量的最低有效位作为衡量单位。如:±1/2LSB表示,当D/A分辨率为20mV,则精度为±10mV.(4)线性度:当数字量变化时,D/A转换器输出的模拟量按比例变化的程度。线性误差——模拟量输出值与理想输出值之间偏离的最大值。三、实验内容1.AT89C51控制DAC0832实现数/模转换(D/A)转换。从单片机输出数据到DAC0832,经其转换成模拟量输出。2.设计一个由单片机控制的信号发生器。运用单片机系统控制产生多种波形,这些波形包括方波、三角波、锯齿波、正弦波等。信号发生器所产生的波形的频率、幅度均可调节。并可通过软件任意改变信号的波形。基本要求:①产生三种以上波形。如正弦波、三角波、矩形波等。②最大频率不低于500Hz。并且频率可按一定规律调节。③幅度可调,峰峰值在0~5V之间变化。扩展要求:产生更多的频率和波形。四、实验代码#includereg51.hsbitkey1=P1^0;sbitkey2=P1^3;sbitkey3=P1^6;#defineucharunsignedchar#defineuintunsignedintvoidsanjiaobo();voidfangbo();voidjuchibo();voidmain(){P1=0xff;while(1){if(key1==0)sanjiaobo();if(key2==0)fangbo();if(key3==0)juchibo();}}voidsanjiaobo(){unsignedinti;charflag=0;P2=0;while(1){if(flag==0){for(i=0;i10;i++);P2+=1;if(P2=255)flag=1;}if(flag==1){for(i=0;i10;i++);P2-=1;if(P2==0)flag=0;}}}voidfangbo(){unsignedinti;while(1){for(i=0;i1000;i++);P2=255;for(i=0;i1000;i++);P2=0;}}voidjuchibo(){unsignedinti;charflag=0;P2=0;while(1){if(flag==0){for(i=0;i10;i++);P2+=1;if(P2=255)flag=1;}if(flag==1){P2=0;if(P2==0)flag=0;}}}五、实验结果实验三、基于旋转编码器的转速测量一、实验目的1.了解编码器工作原理2.掌握编码器速度检测的方法;二、编码器工作原理绝对脉冲编码器:APC增量脉冲编码器:SPC两者一般都应用于速度控制或位置控制系统的检测元件旋转编码器分为单路输出和双路输出两种:单路输出是指旋转编码器的输出是一组脉冲,双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。编码器电路外接74HC74的作用74HC74在旋转编码器旋转时输出两路正交脉冲A、B,为了判断旋转编码器旋转方向,用74HC74做鉴相器。A作为时钟脉冲接入74HC74,B作为D接入74HC74,理论上74HC74应该在A的上升沿判断B状态,如果B为低电平,则输出Q为低电平,说明旋转编码器正转;如果B为高电平,则输出Q为高电平,说明旋转编码器反转。因为A、B是正交脉冲,只要旋转编码器旋转方向不变,74HC74的输出Q就应该维持高电平或低电平状态。三、实验内容1.根据旋转编码器的工作原理,设计基于旋转编码器的速度检测原理图;2.利于实验室提供的单片机最小系统,设计位置检测、速度检测系统的应用电路;画出系统框图;3.编写相关程序,实现对位置及转速的测量,并显示;四、实验代码#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitIN1=P1^0;sbitIN2=P1^1;sbitENA=P1^2;sfrldata=0x80;sbitdula=P2^6;sbitwela=P2^7;sbitq1=P3^4;bitbit_0;uintcount_N,count_N1,count_N2;uintcount_n8;//计数值ucharT_N=20;ucharT_N1=3;voidmsplay(uchar,uchar);voidINT_0_Init();voidTimer0_Init();voidMotor_Init();ucharcodex1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x40,0x7c,0x39,0x5e,0x3e,0x48};ucharcodex2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};ucharcodex3[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};ucharcodex4[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};voiddelay(uintz)//延时函数{uintx;for(x=z;x0;x--);}voidMotor_Init(){ENA=1;IN1=1;IN2=0;}voidINT_0_Init(){IT0=1;EX0=1;}voidTimer0_Init(){TMOD=0X11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidmain(){uchark5,k4,k3,k2,k1,k0,k6;INT_0_Init();Timer0_Init();while(1){k0=0x0e;k1=0x0f;if(!q1){k6=0;}else{k6=10;}if(!bit_0){k2=count_N%10000/1000;k3=count_N%1000/100;k4=count_N%100/10;k5=count_N%10;bit_0=1;}msplay(k0,0);msplay(k1,1);msplay(k6,3);msplay(k2,4);msplay(k3,5);msplay(k4,6);msplay(k5,7);}}voidint_0()interrupt0{count_n8++;}voidtimer0()interrupt1{TR0=0;TH0=(65536-45000)/256;TL0=(65536-45000)%256;T_N--;if(0==T_N){count_N2=count_n8;count_N=27.952*count_N2;bit_0=0;count_n8=0;T_N=20;}TR0=1;}voidmsplay(uchary1,uchary2){ldata=x1[y1];if(y2==6){ldata=ldata|0x80;}dula=1;dula=0;delay(1);ldata=x3[y2];wela=1;wela=0;delay(1);ldata=0x00;dula=1;dula=0;delay(1);ldata=0x0ff;wela=1;wela=0;delay(1);}五、实验结果实验四、基于51系列单片机控制的直流电机PWM调速一、实验目的1.掌握脉宽调制(PWM)的方法。2.用程序实现脉宽调制,并对直流电机进行调速控制。二、脉宽调制(PWM)基本
本文标题:AD转换DA转换及pwm转速测量实验
链接地址:https://www.777doc.com/doc-2896338 .html