C语言程序例程//程序实现A/D转换功能,A/D采用中断方式。该程序通过单片机的RA2模拟通道送入一直流电压,//当送入的直流电压大于2.5V时,与PORTD口相连的8个发光二极管闪动,当直流电压恢复到//2.5V以下时,发光二极管停止闪动,且只有低四个发光。#include"p18f458.h"unionadres{inty1;unsignedcharadre[2];}adresult;//定义一个共用体,用于存放A/D转换的结果unsignedchari;unsignedintj;voidInterruptHandlerHigh(void);//系统各I/O口初始化子程序voidinitial(){TRISD=0X00;//D口为输出i=0x00;}//A/D转化初始化子程序voidadinitial(){INTCON=0X00;//禁止总中断和外围中断ADCON0=0x51;//选择A/D通道为RA2,打开A/D转换器//在工作状态,且使A/D转换时钟为8toscADCON1=0X80;//转换结果右移,及ADRESH寄存器的高6位为"0"//且把RA2口设置为模拟量输入方式PIR1bits.ADIF=0;//清除A/D转换标志PIE1bits.ADIE=1;//A/D转换中断允许INTCONbits.PEIE=1;//外围中断允许IPR1bi