STC-单片机ADC应用.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STC-单片机ADC应用

第4 章 STC15F2K60S2 单片机的A/D 转换 例题 例4 .l 编程实现利用STC15F2K60S2 单片机ADC 通道1 采集外部模拟电压信号,8 位 精度,采用查询方式循环进行转换,并将转换结果保存于30H 单元中,并送P2 口LED 灯显示 (低电平驱动)。假设时钟频率为18.432MHz 。 解:取8 位精度时.可设置ADRJ =0 .直接使用转换结果寄存器ADC_ RES 的值。选 择通道 1,则(CHS2~CHS0 )=001B 。按照 ADC 的编程要点进行初始化后,直接判断 ADC_FLAG 标志是否为l ?若为l,则读出ADC_ RES 寄存器的值;若为0,则继续查询。 汇编语语言参考程序如下: $INCLUDE (STC15F2K60S2. INC ) ;包含STC15F2K60S2 单片机寄存器定义文件,若无现成的STC15F2K60S2. INC 文件, ;则可以用 “EQU ”和“DATA ”直接对A/D 转换用到的新增特殊功能寄存器进行定义 ADC_DATA EQU 30H ;定义A D 转换结果保存单元 ORG 0000H LJMP MAIN ORG 0000H MAIN : MOV SP,#70H ;设置堆栈 MOV P 1ASF ,#02H ;设置Pl.1 为模拟量输入功能 MOV ADC_CONTR,#81H ;打开A /D 转换电源,设置输入通道 MOV A, #20H LCALL DELAY ;打开A /D 转换电源后,延时1 ms 即可 LOOP : MOV ADC_ CONTR , ; 启动A/D 转换 NOP ;适当延时,确保设置有效 NOP NOP NOP WAIT_AD : MOV A,ADC_CONTR JNB ACC.4, WAIT_AD ;判断A/D 转换是否完成 MOV ADC_ CONTR , #81H ; 将ADC_FLAG 清零 MOV A, ADC_RES ;读取A /D 转换结果 1 MOV ADC_ DATA, A ;保存A /D 转换结果 CPL A MOV P2, A ;送P2 口LED 灯显示 LJMP LOOP ;循环检测 DELAΥ: PUSH 02 ;将寄存器组0 的R2 、R3 、R4 入栈 PUSH 03 PUSH 04 MOV R4 , A ;取最外循环的循环次数 DELAY_LOOP0 : MOV R3, #200 DELAY_LOOP1 : MOV R2, #249 DELAY_LOOP : DJNZ R2 ,DELAY_ LOOP DJNZ R3 ,DELAY_LOOP1 DJNZ R4 ,DELAY_LOOP0 POP 04 ;恢复现场 POP 03 POP 02 RET END C51 语言参考程序如下: # inclu

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档