1、 STC12C5A60S2 单片机 A/D 编程要点 ⑴ 打开电源。第一次使用 A/D 时要打开单片机内部模拟电源(设置 ADC_CONTR 寄存器); ⑵ 适当延时,等单片机内部 A/D 转换器电源稳定,一般延时 1mS 即可; ⑶ 设置 P1 口中的相应端口作为 A/D 转换通道(设置 P1ASF 寄存器相应位); ⑷选择 ADC 通道(设置 ADC_CONTR 中的 CHS2~CHS0);如果是对多通道模拟量进行转换,则更换通道后要适当延时,使输入模拟电压稳定,延时量取 20μS~200μS。 ⑸根据需要,设置 A/D 转换结果存储格式(设置 AUXR1 寄存器中的 ADRJ 位); ⑹设置 A/D 转换速度(设置 ADC_CONTR 寄存器中 SPEED1、SPEED0 相应的值); ⑺查询 A/D 转换结果标志 ADC_FLAG(该标志位在 ADC_CONTR 寄存器中),判断一次 A/D 转换是否结束:当 ADC_FLAG=1 时,一次转换完成;当 ADC_FLAG=0 时,一次转换未完成。由于A/D 转换结束时,ADC_FLAG自动置1,因此当因此转换完成后,要用软件将ADC_FLAG 置为 0。 ⑻ 读取 A/D 转换结果,结果保存在 ADC_RES 和 ADC_RESL 寄存器中,然后进行数据处理。 ⑼ 若采用中断方式,还需要进行中断设置(EADC 置 1,EA 置 1),在中断服务程序中读取 ADC 转换结果,并将 ADC 中断请求标志 ADC_FLAG 清零。 2、 与 A/D 转换相关的寄存器 P1ASF:P1 口模拟功能控制寄存器,该寄存器是只写寄存器,读无效。 ADC_CONTR:ADC 控制寄存器。 ADC_RES:A/D 转换结果寄存器(寄存 A/D 转换结果高位)。 ADC_RESL:A/D 转换结果寄存器(寄存 A/D 转换结果低位)。 AUXR1:辅助寄存器,其中 ADRJ 位是 A/D 转换结果寄存器(ADC_RES、ADC_RESL)的数据格式调整控制位。 IE:中断允许寄存器。 IP:中断优先级控制寄存器低(可位寻址); IPH:中断优先级控制寄存器高(不可位寻址); 3、 与 A/D 转换相关寄存器的格式与说明 ⑴ P1 口模拟功能控制寄存器 P1ASF 格式与说明 当 P1 口中某个端口作为 A/D 使用时,只要先将 P1ASF 寄存器中相应位置为 1,即设置为模拟功能。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !