8-2stc15系列单片机技术应用(6).ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ADRJ=1时,ADC_RES[1:0]存放高2位ADC结果,ADC_RESL[7:0]存放低8位ADC结果。 位名称 寄存器 D7 D6 D5 D4 D3 D2 D1 D0 ADC_RES 9 8 ADC_RESL 7 6 5 4 3 2 1 0 CLK_DIV ADRJ=1 如果STC15F2K60S2单片机的10位A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中,模/数转换结果计算公式如下: 取10位结果 (ADC_RES[7:0],ADC_RESL[1:0]) = 1024×Vin/Vcc 取8位结果 ADC_RES[7:0] = 256×Vin / Vcc Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。 与A/D转换中断有关的寄存器 中断允许控制寄存器IE中的EADC位(D5位)用于开放ADC中断 EA位(D7位)用于开放CPU中断 中断优先级寄存器IP中的PADC位(D5位)用于设置A/D中断的优先级 在中断服务程序中,要使用软件将A/D中断 标志位ADC_FLAG(也是A/D转换结束标志 位)清0。 2、STC15F2K60S2单片机ADC模块的使用 编程要点 打开ADC电源,第一次使用时要打开内部模拟电源(设置ADC_CONTR)。 适当延时,等内部模拟电源稳定。一般延时1ms以内即可。 设置P1口中的相应口线作为A/D转换通道(设置P1ASF寄存器)。 选择ADC通道(设置ADC_CONTR中的CHS2~CHS0)。 根据需要设置转换结果存储格式(设置CLK_DIV中的ADRJ位)。 查询A/D转换结束标志ADC_FLAG,判断A/D转换是否完成,若完成,则读出结果(结果保存在ADC_RES和ADC_RESL寄存器中),并进行数据处理。 读取转换结果注意: 如果是多通道模拟量进行转换,则更换A/D转换通道后要适当延时,使输入电压稳定,延时量取20μs~200μs即可,与输入电压源的内阻有关。 如果输入电压信号源的内阻在10K?以下,可不加延时。 如果是单通道模拟量转换,则不需要更换A/D转换通道,也就不需要加延时。 若采用中断方式,还需进行中断设置(EADC置1,EA置1)。 在中断服务程序中读取ADC转换结果,并将ADC中断请求标志ADC_FLAG清零。 8.4.2 片上A/D转换器的使用 例1 用STC15F2K60S2单片机P1.2口作为模拟输入端,实现A/D转换。 程序设计方法: 1、设置ADRJ=0 ANL CLK_DIV,#1101 1111B 2、打开A/D转换电源 ORL ADC_CONTR,#80H 3、选择P1.2口为模拟输入端 4、设置转换周期,选择通道 5、延时1ms,启动A/D转换 6、检测A/D转换是否结束 7、如果转换结束,清除标志,停止A/D转换 8、读取A/D转换结果 ADC_CONTR EQU 0BCH ADC_RES EQU 0BDH P1ASF EQU 9DH CLK_DIV EQU 97H GET_ADG: ANL CLK_DIV,#0DFH ORL ADC_CONTR,#80H MOV A,#0000 0100B ORL P1ASF,A MOV ADC_CONTR,#1110 0010B ACALL DELL1MS MOV ADC_RES,#0 ORL ADC_CONTR,#0000 1000B NOP WAIT_AD: MOV A,#0001 0000B ANL A,ADC_CONTR JZ WAIT_AD ANL ADC_CONTR,#1110 0111B MOV A,ADC_RES RET 1、设置ADRJ=0 2、打开A/D转换电源 3、选择P1.2口为模拟输入端 4、设置转换周期,选择通道 5、延时1ms,启动A/D转换, 6、检测A/D转换是否结束 7、如果转换结束,清除标志,停止A/D转换 8、读取A/D转换结果 例2 用STC15F2K60S2单片机的A/D转换通道(P1.2)扩展4个按键,要求编程实现按键扫描。 程序段如下: KEY_IN:ACALL Get_ADC ;读A/D转换值(键值) CJNE A,#00,JK1 ;键值比较判断识别 AJMP PK1 ;跳转到处理K1键 JK1

文档评论(0)

wx171113 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档