ADC数据采集显示实验_第1页
ADC数据采集显示实验_第2页
ADC数据采集显示实验_第3页
ADC数据采集显示实验_第4页
ADC数据采集显示实验_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、预习报告实验目的:1、熟练ATmega16内部的ADC特点; 2、了解ATmega16内部的ADC在数据采集中的相关操作和寄存器说明; 3、熟练的应用ATmega16内部的ADC转换器 主要实验仪器:1、计算机一台 (安装有PROTEUS和ICC软件) 实验原理及主要工作:一、实验原理 ATmega16内部的ADC拥有很多的特点,更具这些特点可以知道本次实验的有些内容的要求。本次试验是数据采集和显示,用ADC转换器来进行数据的采集,并在1602的液晶显示屏上显示出数据采集的结果。 要做本次实验还需了解ATmega16内部的ADC的寄存器,ADC有以下几个寄存器: (1)多路复用器选择寄存器 A

2、DMUX :其中 REFS1/REFS0:参考电压源选择设置;ADLAR: ADC 转换结果 对齐选择位。 (2)ADC 数据寄存器 ADCL 及 ADCH:读取 ADCL 之后,ADC 数据寄存器一直要等到 ADCH 也被读出才可以进行数据更新。因此,如果转换结果为左对齐,且要求的精度不高于 8 比特,那么仅需读取 ADCH 就足够了。否则必须先读出ADCL 再读 ADCH ,其中MUX40: 模拟通道与增益选择位。 (3)ADC 控制和状态寄存器A ADCSRA:其中ADEN: ADC 使能位;ADSC: ADC转换启动位;ADATE: ADC 自动触发使能位;ADIF: ADC 中断标志

3、;ADIE: ADC 中断使能; ADPS20: ADC 预分频器选择位。 (4)特殊功能 IO 寄存器 SFIOR:其中ADTS20: ADC 自动触发源;Res: 保留位。 预习中遇到的问题及思考: 1、怎样选择变阻器? 实验原始数据记录: 教师签字: 实验报告请按以下几个部分完成实验报告。一、实验步骤二、实验原理图(proteus)三、程序流程图四、C程序代码全部五、调试结果截图六、实验总结及心得体会七、附件(原理图及程序压缩包) 一、实验步骤 1、ADC端口初始化(设置为不带上拉电阻的输入口); 2、基准电压源设置;(设置特殊功能寄存器 ADMUX的位REFS1、REFS0 ) 3、转

4、换结果对其方式设置:(设置特殊功能寄存器 ADMUX的位ADLAR) 4、输入通道选择设置:(设置特殊功能寄存器 ADMUX的位MUX4:0 ) 5、AD使能、启动转换、中断设置:(设置特殊功能寄存器 ADCSRA) 6、触发源选择设置:(设置特殊功能寄存器 SFIOR) 二、实验原理图 如下图,使用软件PROTEUS画出原理图。 因为在实际中没有AVR的开发板,所以使用软件来模型出,来显示。 当然也要了解这个软件的使用方法。 因此,在下面的图形中能够显示出ADC的数据采集与显示,所以如下图: 三、程序流程图 四、C程序代码 #include #include #define uint uns

5、igned int #define uchar unsigned char #define RS_CLR PORTC&=BIT(0) #define RS_SET PORTC|=BIT(0) #define RW_CLR PORTC&=BIT(1) #define RW_SET PORTC|=BIT(1) #define E_CLR PORTC&=BIT(2) #define E_SET PORTC|=BIT(2) const uchar biaoti=ADC TEST; uint value=0; void delay_ms(uint t) uchar x,y; for(;t0;t-) fo

6、r(x=0;x114;x+) for(y=0;y1;y+); void WRITE_DATA(uchar data) E_CLR; RS_SET; RW_CLR; PORTD=data; E_SET; delay_ms(5); E_CLR; void WRITE_COM(uchar data) E_CLR; RS_CLR; RW_CLR; PORTD=data; E_SET; delay_ms(5); E_CLR; void init_1602(void) DDRC=0xFF; DDRD=0xFF; delay_ms(20); WRITE_COM(0x38); delay_ms(5); WRI

7、TE_COM(0x38); delay_ms(5); WRITE_COM(0x38); delay_ms(5); WRITE_COM(0x08); WRITE_COM(0x0c); WRITE_COM(0x06); WRITE_COM(0x84); void ADC_init(void) DDRA=0x00;PORTA=0x00; ADMUX=0x00; ADCSRA=0xe7; SFIOR=0x00; void main(void) uchar i; uchar ADC_L,ADC_H; init_1602(); for(i=0;i10;i+) WRITE_DATA(biaotii); AD

8、C_init(); while(1) ADC_init(); ADC_L=ADCL; ADC_H=ADCH; value=(ADC_H*256+ADC_L)*5/10.24; WRITE_COM(0xc4); WRITE_DATA(0+value/100); WRITE_DATA(.); WRITE_DATA(0+value%100/10); WRITE_DATA(0+value%100%10); WRITE_DATA(V); 五、调试结果截图 1、在电阻的%51时的显示值。 2、在电阻%80时的显示值。 3、在电阻%20时的显示值。 六、实验体会 通过次的实验,我不但对ADC转换的理论知识有了更加深刻的理解,对于实际的

温馨提示

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

评论

0/150

提交评论