PIC实验四 用AD转换模块实现模拟量采集.docx
《PIC实验四 用AD转换模块实现模拟量采集.docx》由会员分享,可在线阅读,更多相关《PIC实验四 用AD转换模块实现模拟量采集.docx(10页珍藏版)》请在冰豆网上搜索。
![PIC实验四 用AD转换模块实现模拟量采集.docx](https://file1.bdocx.com/fileroot1/2022-12/6/5f839d34-ab8b-4ffc-bec8-26d155e4a6fe/5f839d34-ab8b-4ffc-bec8-26d155e4a6fe1.gif)
PIC实验四用AD转换模块实现模拟量采集
本科实验报告
实验名称:
实验四用AD转换模块实现模拟量采集
课程名称:
PIC单片机实验
实验时间:
2015.12.2
任课教师:
梁蕻
实验地点:
4-338
实验教师:
梁蕻
实验类型:
□原理验证
√综合设计
□自主创新
学生姓名:
学号/班级:
组号:
学院:
信息与电子学院
同组搭档:
专业:
信息工程
成绩:
实验四用AD转换模块实现模拟量采集
一、实验目的:
1.学习使用硬件外设函数实现A/D转换
2.学习对PIC单片机外围模块A/D转换器的控制
二、实验原理:
1.与A/D转换相关的特殊功能寄存器的设置
PIC18F452自带的A/D转换模块的功能是将一个模拟输入信号转换成一个16位数字信号,此模块有4个寄存器,分别是:
(1)A/D转换结果高位寄存器(ADRESH)
(2)A/D转换结果低位寄存器(ADRESH)
(3)A/D转换控制寄存器(ADCON0)
(4)A/D转换控制寄存器(ADCON1)
这4个寄存器的用法可参考PIC18F452数据手册的相关内容。
2.与A/D转换相关的硬件外设函数的使用
三.程序设计内容:
完善例程2
查看程序,发现有几处需要完善
在开头处需要添加三行代码
关闭看门狗计时器
#pragmaconfigWDT=OFF
配置晶振
#pragmaconfigOSC=HS
关闭低电平
#pragmaconfigLVP=OFF
并且需要配置A/D转换器
OpenADC(ADC_FOSC_8&
ADC_LEFT_JUST&
ADC_1ANA_0REF,
ADC_CH0&
ADC_INT_OFF);
通过左右对齐控制灯的开关,并且选择0通道,禁止中断。
修改后的实验代码:
#include
#include
#pragmaconfigWDT=OFF
#pragmaconfigOSC=HS
#pragmaconfigLVP=OFF
//Exercise1:
/*SetconfigurationbitsforusewithICD2/PICDEM2PLUSDemoBoard:
*-setHSoscillator
*-disablewatchdogtimer
*-disablelowvoltageprogramming
*/
voidInitializeAD(void);
voidmain(void)
{
TRISD=0;//SetPORTDforLEDoutput
InitializeAD();//InitialA/Dmodule
while
(1)
{
ConvertADC();//ConvertA/D
while(BusyADC());//WaitingA/Duntildone
PORTD=ADRESH;//PutA/DresultonLEDs
}
}
//************************************************
//*Function:
InitializeAD*
//*-Fosc/8clocksource*
//*-Leftjustified*
//*-1analogchannels,0references*
//*-Channel0*
//*-DisableA/Dinterrupt*
//************************************************
voidInitializeAD(void)
{
OpenADC(ADC_FOSC_8&
ADC_LEFT_JUST&
ADC_1ANA_0REF,
ADC_CH0&
ADC_INT_OFF);
//Exercise2:
OpentheA/DperipheralwithA/DLibraryfunction
//SeePage11-13ofMPLAB-C18C编译器库函数
}
四.实验步骤:
1.编辑源文件并将源文件存于mcc18目录中
2.选择目标处理器
3.建立项目,项目名与源文件同名
4.选择项目设置
选择语言工具套件:
MPLABc18cToolsuite(mcc18.exe),
MPLINKObjectLinker(Mplink.exe)
选择MPLABC18安装目录中头文件和函数库子目录的路径。
5.加载源文件和链接文件
6.编译
7.用MPLABSIM软件模拟器进行调试
8.用MPLABICD2进行调试
五.实验结果:
通过转动旋钮,可以观察到LED灯有规律的变化,代表数字的加减,是模拟信号实现了A/D转换,变为数字编码。
六、实验感想
有了之前几次实验的经验,本次实验异常顺利,不管是实验代码的完善,还是程序的编译连接都十分顺利,很快就出了实验的结果。
本次实验是关于A\D转换的实验,就是将模拟电压转换为(10位,6位为空)数字编码,实验结束之后又参考网络资源,找到了A\D转换结构图,才彻底明白了A\D转换的结构和功能。
A/D模块转换图: