计算机工业控制

上传人:zw****58 文档编号:44972275 上传时间:2018-06-14 格式:DOC 页数:9 大小:165KB
返回 下载 相关 举报
计算机工业控制_第1页
第1页 / 共9页
计算机工业控制_第2页
第2页 / 共9页
计算机工业控制_第3页
第3页 / 共9页
计算机工业控制_第4页
第4页 / 共9页
计算机工业控制_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《计算机工业控制》由会员分享,可在线阅读,更多相关《计算机工业控制(9页珍藏版)》请在金锄头文库上搜索。

1、西南科技大学学 生 实 验 报 告实验课程名称 计算机工业控制 开课实验室 东六D-213 学 院 制造 专业 机械 班级 0903 学 生 姓 名 李杰 学 号 20096988 开 课 时 间 2012 至 2013 学年第 1 学期总 成 绩教师签名制造科学与工程学院制ADC0804模/数转换和DAC0832数/模拟换接口实验实验报告 开课实验室: 2012年 11 月27 日学院制造学院年级、专业、班机械0903姓名李杰成绩课程名称计算机工业控制实验项目名 称ADC0804模/数转换和DAC0832数/模拟换接口实验指导教师张杰一、实验目的1、了解模数转换基本原理,掌握ADC0804的

2、使用方法。2、了解D/A转换的基本原理。3、了解D/A转换芯片DAC0832的性能及编程方法。4、了解单片机系统中扩展D/A转换的基本方法。二、实验原理A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0804属第二类,是八位A/D转换器。每采集一次一般需100us。中断方式下,A/D转换结束后会自动产生EOC信号,将其与8051的INT0相接。 图2-1中,DB1到DB8这8个口连接到P1口。CS-AD这个是片选端口,低电平表示选中,RD写入信

3、号,WR读出信号。 使用是需要将AD-IN口的1和2短接。CSAD接口连着P07.RD接口P36,WR连着P37.D/A转换是把数字量转换成模拟量的变换,从本书D/A电路输出的是模拟电压信号。要想实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分两段来产生。要产生正弦波,较简单的手段是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。这样做虽然简单,但是费时费力,没有充分发挥单片机的能力。利用嵌入式定点、浮点运算子程序库可方便的完成正弦波的波形表生成工作。 D/A转换取值范围为一个周期,

4、采样点越多,精度越高些。1、实验线路及连接 图2-1 ADC0804接线电路 图2-2 DAC0832接线电路2、 实验程序参考框图 图2-3 AD基本流程图三、 使用仪器、材料1、 单片机实验板 一台2、计算机 一台四、实验步骤(1)、AD实验步骤1. 观察实验板的电路连接情况,检查JP1和P1口跳线帽是否已经插上并确认连线是否正确2. 用USB线连接实验板与PC机,利用PC的USB接口给实验板供电3. 输入程序并检查无误,运行实验程序 4. 调节电位器W1,观察数码管上显示数据的变化,新的转换结果应实时的在数码管上显示模拟量和数字量对应关系的典型值为:0V 00H;+2.5V 80H;+5

5、V FFH (2)、DA实验步骤观察实验板的电路连接情况,检查P1口跳线帽是否已经插上并确认连线是否正确。1. 用USB线连接实验板与PC机,利用PC的USB接口给实验板供电2. 输入程序并检查无误,运行实验程序 3. 用示波器测量DAC0832左侧AOUT插孔,改变程序相应代码,观察输出波形的变化五、实验过程原始记录(数据、图表、计算等) 图2-4 DA基本流程图#图2-4 DA基本流程图编写程序如下:include #define uchar unsigned char#define uint unsigned intvoid delay(uchar);void start();void

6、timer0init();volatile uchar count,temp,i,tempbai,tempshi,tempge;sbit csad=P07; /ADC0804的片选信号sbit wr=P36;/写信号sbit rd=P37;sbit duanx=P26;sbit weix=P27;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98;void main () timer0init();csad=0; while(1) if(count=5) count=0;start();delay(1);rd=0

7、;delay(1); temp=P1; tempbai=(temp/100); temp=temp%100; tempshi=temp/10; tempge=temp%10; rd=1; for(i=5;i=3;i-) if(i=5) weix=1;P0=0x20;weix=0;duanx=1;P0=tabletempge; duanx=0;delay(10); if(i=4) weix=1;P0=0x10;weix=0;duanx=1;P0=tabletempshi;duanx=0;delay(10); if(i=3) weix=1;P0=0x08;weix=0;duanx=1;P0=tab

8、letempbai;duanx=0;delay(10); void timer0init()/中断csad=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1; void delay(uchar z) uchar x,y; for(x=z;x0;x-) for(y=110;y0;y-);void start() weix=1; /锁存器打开 csad=0; /选中ADC0804 weix=0; rd=1; wr=1; delay(1); wr=0; delay(1); wr=1;void timer0

9、() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;DA实验程序:#include #define uchar unsigned char #define uint unsigned int sbit wr=P36; sbit csda=P32; /位选uchar b,c,d,e;uchar code tosin256=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,

10、0xbc,0xbf,0xc2,0xc5 ,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd ,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0x

11、f6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,

12、0x5d,0x5a,0x57,0x55,0x51 ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x

13、01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15 ,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e ,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80 ; /正弦波查表

14、代码void zhengxuan()/正弦波P0=tosinb;b+;if(b256)b=0;void fangbo()/方波d+; if(d=128) P0=0x00; else P0=0xff; void juchi()/锯齿波 e+;if(e128) P0=e; else P0=255-e; void main(void) csda=0;wr=0; while(1) P2=0; juchi(); /zhengxuan(); /fangbo(); /把注释符号去掉就可以观看相应波形 P0=0xff; 六、实验结果分析本实验主要让我们熟悉了模/数转换技术和数/模转换技术,D/A转换的基本原理、D/A转换芯片DAC0832的性能及编程方法并且利用试验仪中ADC0809模块,测量电位器输出电压,同时启动后需要等待一定时间才能完成,而DAC0832模块,产生IV输出电压,启动转换后至少需要1us,所以需要编制延时函数。七、实验思考及建议1、由于接线问题,导致两个显示器读数值有误差,这个问题有待解决2、实验时间短,自己下来再认真学习,方能彻底了解知识。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号