第6章 模拟量输入与输出
6.1A/D转换的应用
例6.1A/D转换初始化程序
//A/D转换初始化子程序
void adinitial( )
{
ADCON0 = 0x51;//选择A/D通道为RA2,打开A/D转换器
//在工作状态,且使AD转换时钟为8tosc
ADCON1 = 0X80; //转换结果右移,及ADRESH寄存器的高6位为"0"
//且把RA2口设置为模拟量输入方式
PIE1 = 0X00;
PIE2 = 0X00;
ADIE = 1; //A/D转换中断允许
PEIE = 1;//外围中断允许
TRISA2=1; //设置RA2为输入方式
}
6.1.2程序清单
下面给出一个调试通过的例程,可作为读者编制程序的参考。该程序中用共用体的方式把A/D转换的10位结果组合在一起。有关共用体的详细资料请参考本书相关章节。
# include <pic.h>
union adres
{int y1;
unsignedcharadre[2];
}adresult; //定义一个共用体,用于存放A/D转换的结果
unsigned chari;
unsigned int j;
//系统各I/O口初始化子程序
void initial()
{
TRISD=0X00; //D口为输出
i=0x00;
}
//A/D转化初始化子程序
void adinitial()
{
ADCON0=0x51;//选择A/D通道为RA2,打开A/D转换器
//在工作状态,且使A/D转换时钟为8tosc
&nbs