您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 模数数据采集系统毕业设计
安阳师范学院安阳师范学院本科学生毕业论文A/D数据采集系统设计作者系(院)物理与电气工程学院专业电气工程及其自动化年级学号指导教师日期2011.6.安阳师范学院学生诚信承诺书本人郑重承诺:所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。所有合作者对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。签名:日期:论文使用授权说明本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。签名:导师签名:日期:安阳师范学院第1页A/D数据采集系统设计XXX(安阳师范学院物理与电气学院河南安阳455000)摘要:由于系统的实际对象往往都是一些模拟量(如温度,压力,位移,图像等),要使计算机或数字仪表能识别处理这些信号,必须首先将这些模拟信号转换成数字信号,而经计算机分析处理后输出的数字量也往往需要将其转换成相应模拟信号才能为执行机构所接受。本文研究了一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器,硬件实验证明设计的A/D转换器可实现预期的转换精度和转换速度标准。关键词:模数转换器;转换精度;转换速度1引言随着数字技术,特别是信息技术的飞速发展与普及,在现代控制,通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器。将模拟信号转换成数字信号的电路称为模数转换器;将数字信号转换成模拟信号的电路称为数模转换器。为确保系统处理结果的精确度,A/D转换器和D/A转换器还要求具有较高的转换速度。转换精度和转换速度是衡量A/D转换器和D/A转换器的重要指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成性的A/D转换器和D/A转换器,它们具有愈来愈先进的技术指标。本文在深入理解《单片机原理及应用》课程的基础上,利用STC12C5A60S2系列单片机设计可实现A/D转换和D/A转换的控制器,在设计的过程中进行模块化处理,并进行程序的设计,通过最后的硬件试验,证明设计的A/D转换器和D/A转换器可以在满足转化速度和转换精度的前提下,完成预期的设计目的。2A/D转换器介绍2.1A/D转换器的结构STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口(P1.0-P1.7),有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测,电池电压检测,按键扫描,频谱检测等。上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。STC12C5A60S2系列单片机ADC(A/D转换器)的结构图如下图所示。安阳师范学院第2页图1ADC_CONTRRegister当AUXR.1/ADRJ=0时,A/D转换结果寄存器格式如下:ADC_RES[7:0]ADC_B9ADC_B8ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2ADC_RESL[1:0]------ADC_B1ADC_B0当AUXR.1/ADRJ=1时,A/D转换结果寄存器格式如下:ADC_RES[1:0]------ADC_B9ADC_B8ADC_RESL[7:0]ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2ADC_B1ADC_B0STC12C5A60S2系列单片机ADC由多路选择开关,比较器,逐次比较寄存器,0位DAC,转换寄存器以及ADC_CONTR构成。STC12C5A60S2系列单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型A/D转换器具有速度高,功耗低等优点。从上图可以看出,通过模拟多路开关,将通过ADC0-7的模拟量输入送给比较器。用数/模转换器转换的模拟量与本次输入的模拟量通过比较器进行比较,将比较结果保存到逐次比较器,并通过逐次比较寄存器输出转换结果。A/D转换结束后,最终的转换结果保存到ADC转换结果寄存器ADC_RES和ADC_RESL,同时,置位ADC控制寄存器ADC_CONTR中的A/D转换结束标志位ADC_FLAG,以供程序查询或发出终端申请。模拟通道的选择控制由ADC控制寄存器ADC_CONTR中的CHS2-CHS0确定。ADC的转换速度由ADC控制寄存器中的SPEED和SPEED0确定。在使用ADC之前,应先给ADC上电,也就是置位ADC控制寄存安阳师范学院第3页器中的ADC_POWER位。当ADRJ=0时,如果取10位结果,则按下面公式计算:10-bitA/DConversionResult:(ADC_RES[7:0],ADC_RESL[1:0])=1024x(Vin/Vcc)当ADRJ=0时,如果取8位结果,按下面公式计算:8-bitA/DConversionResult:(ADC_RES[7:0])=256x(Vin/Vcc)当ADRJ=1时,如果取10位结果,则按下面公式计算:10-bitA/DConversionResult:(ADC_RES[1:0],ADC_RESL[7:0])=1024式中,Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。2.2与A/D转换相关的寄存器(1)P1口模拟功能控制寄存器P1ASFSTC12C5A60S2系列单片机的A/D转换通道与P1口复位,上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。需作为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为‘1’,将相应的口设置为模拟功能。P1ASF寄存器的格式如下:P1ASF:P1口模拟功能控制寄存器(该寄存器是只写寄存器,读无效)SFRnameAddressBitB7B6B5B4B3B2B1B0P1ASF9DHNameP17ASFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF当P1口中的相应位作为A/D使用时,要将P1ASF中的相应位置置1.P1ASF[7:0]P1.x的功能其中P1ASF寄存器地址为:P1ASF.0=1P1.0口作为模拟功能A/D使用P1ASF.1=1P1.1口作为模拟功能A/D使用P1ASF.2=1P1.2口作为模拟功能A/D使用P1ASF.3=1P1.3口作为模拟功能A/D使用P1ASF.4=1P1.4口作为模拟功能A/D使用P1ASF.5=1P1.5口作为模拟功能A/D使用P1ASF.6=1P1.6口作为模拟功能A/D使用P1ASF.7=1P1.7口作为模拟功能A/D使用(2)ADC控制寄存器ADC_CONTRADCC_CONTR寄存器的格式如下:ADC_CONTR:ADC控制寄存器SFRnameAddressBitB7B6B5B4B3B2B1B0ADC_CONTRBCHNameADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS1对ADC_CONTR寄存器进行操作,建议直接用MOV赋值语句,不要‘与’和‘或’语句。ADC_POWER:ADC电源控制位。1:打开A/D转换器电源;0:关闭A/D转换器电源;建议进入空闲模式前,将ADC电源关闭,即ADC_POWER=0.启动A/D转换前一定要确认A/D电源已打开,A/D转换结束后关闭A/D电源可降低功耗,也可不关闭。初次打开内部安阳师范学院第4页A/D转换模拟电源,需适时延时,等内部模拟电源稳定后,再启动A/D转换。建议启动A/D转换后,在A/D转换结束前,不改变任何I/O口得状态,有利于高精度A/D转换,若能将定时器/串行口/中断系统关闭更好。SPEED1,SPEED2:模数转换器转换速度控制位SPEED1SPEED0A/D转换所需时间1190个时钟周期转换一次,CPU工作频率21MHz时,A/D转换速度约250MHz10180个时钟周期转换一次01360个时钟周期转换一次00540个时钟周期转换一次STC12C5A60S2系列单片机的A/D转换模块说使用的时钟是内部R/C振荡器所产生的系统时钟,不使用时钟分频寄存器CLK_DIV对系统时钟分频后所产生的供给CPU工作所使用的时钟。好处:这样可以让ADC用较高的频率工作,提高A/D的转换速度这样可以让CPU用较低的频率工作,降低系统的功耗ADC_FLAG:模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG=1,要由软件清0.不管是A/D转换完成后由该位申请产生中断,还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后,ADC_FLAG=1,一定要软件清0.ADC_START:模数转换器(ADC)转换启动控制位,设置为1时,开始转换,转换结束后为0.CHS2/CHS1/CHS0:模数输入通道选择,CHS2/CHS1/CHS0CHS2CHS1CHS0AnalogChannelSelect000选择P1.0为A/D输入来用001选择P1.1为A/D输入来用010选择P1.2为A/D输入来用011选择P1.3为A/D输入来用100选择P1.4为A/D输入来用101选择P1.5为A/D输入来用110选择P1.6为A/D输入来用111选择P1.7为A/D输入来用程序中需要注意的事项:由于是2套时钟,所以,设置ADC_CONTR控制寄存器后,要加4个空操作延时才可以正确读到ADC_CONTR寄存器的值。原因是设置ADC_CONTR控制寄存器的语句执行后,要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR控制寄存器。MOVADC_CONTR,#DATANOPNOPNOPNOPMOVA,ADC_CONTR;经过4个时钟延时,才能够正确读到ADC_CONTR控制寄存器的值。(3)A/D转换结果寄存器ADC_RES、ADC_RESL安阳师范学院第5页特殊功能寄存器ADC_RES和ADC_RESL寄存器用于保存A/D转换结果,其格式如下:MnemonicAddNameB7B6B5B4B3B2B1B0ADC_RESBDHA/D转换结果寄存器高ADC_RESLBEHA/D转换结果寄存器低AUXR1A2HAuxiliaryregister1-PCA_P4SPI_P4S2_P4GF2ADRJ-DPSAUXR1寄存器的ADRJ位是A/D转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位。当ADRJ=0时,10位A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中。MnemonicAddNameB7B6B5B4B3B2B1B0ADC_RESBDHA/D转换结果寄存器高8位ADC_RES9ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RESLBEHA/D转换结果寄存器低2位------ADC_RES1ADC_RES0AUXR1A2HAuxiliaryregister1ADRJ=0此时,如果用户需取完整10位结果,按下面公式计算:10-bitA/DConversionResult:(ADC_RES[7:0],ADC_RESL[1:0])=1024x(Vin/Vcc)如果用户只需取8位结果,按下面公式计算:8-bitA/DConversionResult:(ADC_RES[7:0])=256
本文标题:模数数据采集系统毕业设计
链接地址:https://www.777doc.com/doc-2305350 .html