微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC16F873的A/D转换程序

PIC16F873的A/D转换程序

时间:11-13 来源:互联网 点击:
PIC16F873A/D转换程序

;用于PIC16F873的A/D测试程序,实现如下功能:
;(1)应用RA0/AN0作为此A/D转换输入信道;
;(2)参考电压源VREF选择内部VDD和VSS;
;(3)A/D转换时钟源选用4MHz振荡器;
;(4)八位数据精度,并将AD结果写入C口。

;8L8ADSY.ASM A/D转换
list p=16f873
INCLUDE "P16F873.INC"

ORG 0x000
MAIN
NOP
BANKSEL ADCON1 ;选择RAM数据存储器体1,等价于BSF STATUS,RP0
MOVLW B00000000 ;选定RA5/AN4为模拟输入,结果格式为左对齐
MOVWF ADCON1 ;参考电压源VREF选择内部VDD和VSS
CLRF TRISC ;设C口为输出
BANKSEL ADCON0 ;选择RAM数据存储器体0,等于BCF STATUS,RP0
MOVLW B01100001 ;设置时钟源8Tosc,使能ADC,AN0信道被选中
MOVWF ADCON0
CLRF PORTC ;对C口清0

AtoD
NOP ;为了保证采样时间,通常,应该插入20us以上的
NOP ;时间延迟或者安排一段有相当长度的应用程序。
BSF ADCON0,GO ;GO位置1,开始A/D转换
ADWAIT
BTFSC ADCON0,GO ;在A/D转换完成后,GO位将被清0
GOTO ADWAIT ;如果没有转换完毕,则返回继续检测
MOVF ADRESH,W ;如果转换完毕,把A/D结果读入W中
MOVWF PORTC ;将AD结果写入C口
GOTO AtoD ;循环进行A/D转换
END

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top