单片机原理及应用数据采集系统设计.docVIP

  • 36
  • 0
  • 约3.79千字
  • 约 8页
  • 2018-10-13 发布于重庆
  • 举报

单片机原理及应用数据采集系统设计.doc

单片机原理及应用数据采集系统设计

宁波大学信息学院 2013(2)“单片机原理及应用1” PAGE PAGE 2 数据采集系统设计 姓名: 学号: 班级: 实验时间: 姓名: 学号: 班级: 实验地点: 一、实验目的 1. 掌握单片机片内ADC及温度传感器的使用及应用程序设计 二、实验内容 应用单片机片内ADC实现数据的采集,使用片内温度传感器实现温度的测量。要求: 1. 应用C8051F020单片机片内温度传感器实现温度的测量,并用数码管显示实测温度值,显示精度为0.1oC。 2. 应用C8051F020单片机内ADC实现两路数据的采集,要求对外部输入0-2V的直流电压进行数据采集,测量精度为5mV,显示精度为0.001V。 3. 两种采集功能可以用按键进行切换,可以用按键控制数据采集的通路。 三、实验说明 通过本实验,掌握单片机片内ADC使用方法,掌握基于单片机的数据采集系统的工作原理与设计方法。 必须用模块化方法进行C语言程序设计。 四、实验仪器和设备 PC机、Keil uVision2软件,C8051F020单片机,EC3在线仿真器。 五、实验原理 1:ADC0的使用方法 (1):初始化: a:输入模式:单端 or双端; b:选定模拟输入通道; c:确定PGA增益; d:确定ADC0转换时钟; e:选定基准电压VREF; f:选定启动转换的方式; 定时器溢出方式:选择定时器(定时器初始化) g:确定查询方式还是中断方式 中断方式:需进行中断初始化 (2):开启ADC0:AD0EN=1 (3):启动ADC0: (4) 读取转换结果。 2:温度传感器的传输函数示于图 6.2。当温度传感器被选中(用 AMX0SL 中的 AMX0AD3-0) 时,其输出电压(VTEMP)是 PGA 的输入;PGA 对该电压的放大倍数由用户编程的 PGA 设置 值决定。 而关于电压的公式为: 为基准电压,经测量,。 六、程序流程图 七、实验结果与分析 1、测温度: 经过测量,温度显示为26.5℃ 2、测电压: 通过AID0的得的数据如下表1所示 输入电压U理/V 实测电压U实/V 绝对误差|U理—U实| /mV 0.30 0.298 2 0.50 0.497 3 0.80 0.799 1 1.30 1.299 1 1.50 1.488 2 1.80 1.799 1 2.00 1.999 1 表 SEQ 表格 \* ARABIC 1 通过AID1的得的数据如下表2所示 输入电压U理/V 实测电压U实/V 绝对误差|U理—U实| /mV 0.30 0.297 3 0.50 0.497 3 0.80 0.798 2 1.30 1.299 1 1.50 1.489 1 1.80 1.797 3 2.00 1.998 2 表 SEQ 表格 \* ARABIC 2 结果分析: 通过实验,利用单片机内置的温度传感器测出了单片机的温度,但是所测的温度是单片机芯片的温度,并非室温,由于工作状态的单片机会产热,所以此温度会比实际的室温高,通过查询资料得知大概高1.4℃。单片机显示的温度减去1.4℃的值会更接近室温。 实验利用ADC测出了电压值,通过表1和表2的数据可知,在0~2V的范围内,测得的温度精确度很高,绝对误差小于5mV,而且还利用了两个通道测电压。其实这只是单测一次的电压值,从实验的习惯来讲是不太好的,实验次数太少偶然误差比较大,所以将来测电压时,应该多测几次,取平均值,当然此步骤可以在程序内部执行,不必自己测多组再取平均值。 八、源代码 源代码必须有必要的注释,且要与流程图的逻辑关系对应。 主代码: #includeZLG7289.h #includedelay.h #includesysc.h #includebdwtd.h unsigned char key=0xff; void display(unsigned long number)//频率显示函数 { unsigned char T1,T2,T3,T4; T1=number%10; T2=(number/10)%10; T3=(number/100)%10; T4=number/1000; if(AMX0SL==0X00||AMX0SL==0X01) //测电压时的显示 {ZLG7289_Download(1,7,0,T1); ZLG7289_Download(1,6,0,T2);

文档评论(0)

1亿VIP精品文档

相关文档