新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PIC16F877单片机的应用--A/D转换器

PIC16F877单片机的应用--A/D转换器

作者:时间:2011-02-24来源:网络收藏
PIC16F877片内有8路10位A/D转换器,引脚②~⑤为AN0~AN3、⑦~⑩为AN4~AN7。MPLAB-ICD的实验板上16F877的RA0口接了一只供有电压的10kΩ电位器,在D口(RD0~RD7)接了8只LED,如附图所示。笔者用16F877A/D转换通道其中一路作A/D转换,以说明A/D转换编写程序的方法和在线调试及编程。
在附图中,笔者把R6的可变输出(电压模拟量)端接到RA0/AN0作为模拟量输入;用D口(RD0~RD7)的8只LED显示A/D转换的结果(按二进制显示)。
一、建立A/D转换源程序的要点编写10位的一路A/D转换程序看似简单,但对初学者却有一定难度,因为编写A/D转换程序时,要熟练使用PIC16F877内部的多个特殊功能寄存器。附表列出了与A/D转换有关的部分特殊功能寄存器。在A/D转换器中未用到的寄存器位以空白表示。
1.A/D引脚控制寄存器ADCON1ADCON1的bit0~bit3(PCFG0~PCFG3)为A/D转换功能选择位,若为1110,则表示AN0(RA0)通道是模拟量输入,其余通道为数字I/O(其他编码功能,请参见书籍介绍)。Bit7(ADFM)为A/D结果格式选择位,1表示结果右移,0表示结果左移。
2.中断标志寄存器PIR1PIR1的bit6(ADIF)为A/D中断标志位,该位为1表示模数转换已完成,为0表示转换未完成。
3.A/D操作控制寄存器ADCON0ADCON0的bit0(ADON)为A/D转换允许位,该位为1打开A/D转换器,为0关闭A/D转换器;bit2(GO/DONE)为A/D转换状态位,该位为1启动A/D转换,为0表示A/D转换已完成(A/D转换完成后该位自动清零);bit3~bit5为A/D通道选择位,其值对应于通道号,000为0通道;bit6~Bit7(ADCS0、ADCS1)为A/D转换时钟选择,00=fosc/2,01=fosc/8,10=fosc/32,11=fRC(RC振荡器)。为正确进行A/D转换,A/D转换时钟值不宜选得太小。
4.A/D结果高字节寄存器ADRESH存放A/D转换结果的高字节。
编写A/D转换的源程序,还会用到STATUS、OPTION、INTCON……寄存器。
二、PIC16F877A/D转换源程序.ASM实例
笔者编写的A/D转换源程序清单如下:
LISTP=PIC16F877;选单片机型号
#INCLUDEP16F877.INC
ORG0;复位矢量
GOTUSTART
ORGD'20";程序起始
STARTBCFSTATUS,6
BSFSTATUS,5;选BANK1
CLRFTRISD;设D口为输出
CLRW;0→W
MOVLWB'10000111';TMR0,预分频
MOVWFOPTION_REG;1:256
CLRW
MOVLWB'00000001'
MOVWFTRISB;设B0为输入
MOVWFTRISA
MOVLW0
MOVLWB'00001110';A/D结果左移
MOVWFADCON1;VDD为参考电压
BCFSTATUS,5;复位
;BANK0
CLRFPORTD;清D口
MOVLWB'01000001';打开A/D选时钟
MOVWFADCON0;fosc/8
MAINBTFSSINTCON,T0IF;TMR0溢出?
GOTOMAIN;等待
BCFINTCON,T0IF;TMR0溢出
BCFPIR1,ADIF;清标志位
;T0IF
BSFADCON0,GO;启动A/D变换
WAITBTFSSPIR1,ADIF;变换判标志位?
GOTOWAIT;等待
MOVFADRESH,W;A/D转换完成
MOVWFPORTD;高字节到D口
CLRFPORTD;0→D口
WAITPWSHBTFSSPORTB,0;判0位
GOTOWAITPUSH;等待
MOVWFPORTD;高字节送D口
GOTOMAIN
END
说明:1.因LED显示仅用了8位(D口上),所以A/D转换的低二位未显示。2.从源程序中可以看出,A/D转换是通过控制PIC16F877内部特殊功能寄存器来完成的。
三、PIC01.ASM的在线调试和程序固化
上述源程序可按照上期本版介绍的方法进行在线调试。调试时可用MPLAB工具栏中的连续功能键操作。若在操作一次后再连续调试时,应改变附图中电位器中心抽头的电压值,方能观察A/D变换的结果。程序调试好后再把目标码.Hex固化到16F877单片机中,即可观察不同的模拟量变换成数字量的结果,并可用三用表实测进行验证。

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理




评论


相关推荐

技术专区

关闭