欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    基于汇编、C51及混合编程单片机的AD转换器.ppt

    • 资源ID:6262576       资源大小:408KB        全文页数:16页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于汇编、C51及混合编程单片机的AD转换器.ppt

    第9章 STC12C5A60S2单片机的片内A/D转换器,9.1 A/D转换器的内部结构9.2 A/D转换器的相关寄存器9.3 A/D转换器的应用,第9章 STC12C5A60S2单片机的片内A/D转换器,传统的单片机只能处理数字量信息,但在应用中经常需要处理一些连续变化的模拟量,例如温度、流量、电压、频谱等,这就需要先经过A/D转换转变成单片机可以处理的数字量。STC90C58AD、STC12C5A60S2、STC12C5410AD等单片机内部集成了8路10位A/D转换电路,转换速度可达到250KHz(25万次/秒),即转换周期为4s。,9.1 A/D转换的内部结构,STC12C5A60S2单片机的A/D转换的输入端在P1口(P1.7P1.0),上电复位后,P1口为弱上拉,用户可以通过程序将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。,从最高位开始的逐位试探法,逐次逼近型A/D转换器转换原理:,模拟量输入,逐次逼近式:转换前,N位寄存器写入的数据先由最高位置1,DAC输出值与被测的模拟值进行比较:如果“低于”,该位的1被保留;如果“高于”该位的1被清除。然后下一位再置1,再比较,决定是否保留直至最低位完成同一过程。写入的数据从最高位到最低位都试探过一遍的最终值就是AD转换的结果。,9.2 A/D转换器的相关寄存器,与A/D转换器相关的寄存器有:P1口模拟功能控制寄存器P1ASFA/D转换器控制寄存器ADC_CONTRA/D转换结果寄存器ADC_RES、ADC_RESL辅助寄存器AUXR1与A/D中断有关的寄存器IE、IPH和IP,1P1口模拟功能控制寄存器P1ASF(地址9DH),当P1口中某引脚要作为A/D使用时,要将P1ASF寄存器 中该引脚所对应的位置1,即该引脚设置为模拟功能;通过MOV P1ASF,#DATA指令实现。,2.ADC控制寄存器ADC_CONTR(地址BCH),启动A/D转换之前一定要保证A/D转换器的电源已打开,并且首次开启内部A/D转换电源时,需要适当的延时,等内部电源稳定后,再启动A/D转换。A/D转换结束后关闭A/D转换器的电源可降低功耗。,ADC_POWER:A/D转换器的电源控制位。当该位为1时,开启A/D转换器电源;当该位为 0时,关闭A/D转换器电源。,SPEED1、SPEED0:转换速度控制位。对SPEED1、SPEED0两位取不同的值时,A/D转换所需的时间不同,具体情况如表91所示,ADC_FLAG:A/D转换器转换结束标志位,当A/D转换完成后,硬件自动将ADC_FLAG位置1,但要通过程序将其清0。,ADC_START:转换启动控制位。将该位设置为1时,启动转换。转换结束后,该位自动清0。下次需要启动A/D转换时,必须再次将该位置1。,CHS2、CHS1、CHS0:模拟输入通道选择。当CHS2、CHS1、CHS0三位取不同的值时,选择P1口不同的引脚作为模拟输入通道,具体情况如表92所示。,3A/D转换结果寄存器ADC_RES、ADC_RESL(地址0BDH、0BEH),用于保存A/D转换结果。当辅助寄存器AUXR1(参见图28)中ADRJ(A/D转换结果寄存器的数据格式调整控制)位为0时,10位A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中。ADRJ位为1时,10位A/D转换结果的高2位存放在ADC_RES寄存器的低2位中,低8位存放在ADC_RESL寄存器中。10位A/D转换的结果与输入电压的关系为:(ADC_RES1:0,ADC_RESL7:0)=210,9.3 A/D转换器的应用,实现A/D转换的步骤如下:(1)设置P1ASF寄存器,确定P1口的相应引脚作为模拟输入通道,设置辅助寄存器AUXR1中的ADRJ位确定转换结果保存格式;(2)设置A/D转换控制寄存器ADC_CONTR,打开A/D转换电源,确定转换速度和转换通道;(3)启动A/D转换。上电后首次打开内部AD转换模拟电源时,需适当延时,待内部模拟电源稳定后,再启动A/D转换。(4)A/D转换启动后经4个时钟周期延时可以通过软件查询ADC_CONTR寄存器中的ADC_FLAG位是否为1,当ADC_FLAG为1时表明A/D转换结束。AD转换结束后需将ADC_FLAG位清0。,【例91】设单片机的系统时钟频率为12MHz,利用STC12C5A60S2单片机中的A/D转换模块,将测温电阻PT1000的阻值随温度变化所形成的电压信号转换成数字信号,单片机读取后存放于30H、31H单元,如图95所示。,【例91】设单片机的系统时钟频率为12MHz,利用STC12C5A60S2单片机中的A/D转换模块,将测温电阻PT1000的阻值随温度变化所形成的电压信号转换成数字信号,单片机读取后存放于30H、31H单元,如图95所示。,分析:首先将PT1000阻值变化所反应出的电压信号经仪表放大器AD623放大成05V的电压信号。经单片机内部的A/D转换器转换成数字量,为了提高转换的精确度,尽量减小电源噪声的影响,可连续采集64次,并对A/D转换的结果求和,相当于实现16位的A/D转换。汇编语言子程序,AD_RESULT1 EQU 30H;A/D转换结果的高8位AD_RESULT2 EQU 31H;A/D转换结果的低8位P1ASF EQU 9DHAUXR1 EQU A2HADC_CONTR EQU BCH AD_CONVERT:MOV P1ASF,#01H;选择P1.0为A/D转换模拟量的输入 ORL AUXR1,#00000100B;选择ADRJ位为1 MOV A,#0E0H MOV ADC_CONTR,A;开启A/D转换的电源 MOVAD_RESULT1,#00H MOVAD_RESULT2,#00H LCALL DELAY_10s;等待A/D转换电源稳定 MOVA,#11101000B MOV ADC_CONTR,A;启动A/D转换 MOVR6,#64;R6作为计数器,AD_CONVERT1:LCALL AD_CONV;调用A/D转换的子程序DJNZ R6,AD_CONVERT1;64次转换未结束,继续转换 MOV A,#0 MOV ADC_CONTR,A;清ADC_FLAG位,并停止AD转换RETAD_CONV:MOV A,ADC_CONTRJNB ACC.4,AD_CONV;等待A/D转换结束MOVA,#11101000BMOV ADC_CONTR,A;再次启动AD转换MOVA,ADC_RESL;读转换结果的低8位ADDA,AD_RESULT2;与低8位结果相加,MOV AD_RESULT2,A;将得到的结果存放至31H单元 MOV A,ADC_RES;读转换结果的高两位 ANL A,#03H;屏蔽ADC_RES寄存器的高6位 ADDC A,AD_RESULT1;与高8位结果相加 MOV AD_RESULT1,A;将得到的结果存放至30H单元RETDELAY_10s:MOVR5,#1EH DJNZR5,$RET,C51程序:,#include#include/声明本征函数库unsigned int temp,result;unsigned char num=0 x40;/设置A/D转换次数void AD_CONV();/A/D转换函数的声明void DELAY_10s();/延时10s函数的声明void main()P1ASF=0 x01;选择P1.0为A/D转换模拟量的输入 AUXR1=0 x04;选择ADRJ位为1ADC_CONTR=0 xE0;/开启动A/D转换的电源DELAY_10s();/延时10sADC_CONTR=0 xE8;/启动A/D转换while(num!=0)AD_CONV();/调用A/D转换函数num-;/计数值减1while(1);,void AD_CONV()dotemp=ADC_CONTR;/读A/D转换的控制寄存器的内容while((temp,

    注意事项

    本文(基于汇编、C51及混合编程单片机的AD转换器.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开