专栏中心

EEPW首页 > 专栏 > MPLAB C18学习 简单的AD中断程序

MPLAB C18学习 简单的AD中断程序

发布人:0750long 时间:2009-07-24 来源:工程师 发布文章
MPLAB C18学习 简单的AD中断程序

 

注意,本人新学C18,不能保证代码质量。代码基于PIC18Fxx20系列,和PIC18Fxx2系列在寄存器上有不小差异,不能通用,具体请参照数据手册。
 
#include <p18cxxx.h>
#include <delays.h>              //需要用到其中的延时函数

#pragma config WDT = OFF

void ADCInt(void);

#pragma code HighVecter = 0x08   //高优先级中断向量
void ADC(void)
{
    _asm
    goto ADCInt
    _endasm
}

#pragma code

volatile union res                  //保存AD结果的联合
{
    int resault;
    unsigned char res[2];
}resault;

#pragma interrupt ADCInt            //高优先级中断服务程序
void ADCInt(void)
{
    resault.res[0] = ADRESH;    //读取AD结果
    resault.res[1] = ADRESL;
    PIR1bits.ADIF = 0;          //清除AD中断标志
    Delay10TCYx(3);             //延时,等待AD转换。根据数据手册,每次
                                         //采集前至少需等待2*1.6μs。Delay10TCYx
                                    //函数即为延时10xX个机器周期,在delays.h
                                    //中定义
    ADCON0bits.GO = 1;          //继续下次采集
}

void main(void)
{
    ADCON1bits.PCFG3 = 1;       //配置引脚。此处定义AN0为模拟输入,其余
    ADCON1bits.PCFG2 = 1;       //均为IO口
    ADCON1bits.PCFG1 = 1;
    ADCON1bits.PCFG0 = 0;
    ADCON1bits.VCFG1 = 0;       //定义VREF+为AVDD,VREF-为AVSS
    ADCON1bits.VCFG0 = 0;
    ADCON0bits.CHS3 = 0;        //选择通道AN0
    ADCON0bits.CHS2 = 0;
    ADCON0bits.CHS1 = 0;
    ADCON0bits.CHS0 = 0;
    ADCON2bits.ADCS2 = 0;       //选择时钟分频,此处为8分频
    ADCON2bits.ADCS1 = 0;
    ADCON2bits.ADCS0 = 1;
    ADCON2bits.ADFM = 1;        //把转换结果设置为右对齐(高位置0)
    ADCON0bits.ADON = 1;        //打开AD转换
    PIR1bits.ADIF = 0;          //清除AD中断标志
    PIE1bits.ADIE = 1;        //使能AD中断
    INTCONbits.PEIE = 1;        //打开外部中断使能
    INTCONbits.GIE = 1;         //打开全局中断使能
    Delay10TCYx(3);             //延时等待采集结束
    ADCON0bits.GO = 1;          //开始转换
    while(1);
}
在Proteus下的仿真结果:

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

TI RFID概述(上海)(下)

视频 2009-10-16

当主控芯片架构不断变化时,系统研发团队真正需要什么样的开发平台?

C716-F716.pdf

英特尔据传退出与Tower的300毫米晶圆代工协议,产能或将转移至日本

EDA/PCB 2026-02-13

高朋满座话未来|专访vivo高级副总裁、首席技术官施玉坚

芯粒与三维集成电路带来全新的电气和机械挑战

高朋满座话未来|专访百度集团副总裁、小度科技CEO李莹

ARM9(2410)开发板资料.zip

资源下载 2007-12-16

dsPIC30F_to_dsPIC33F_Conversion_Guidelines.pdf

TI RFID概述(上海)(上)

视频 2009-10-16

12C50X-12C50XA.pdf

C76_77-F76_77.pdf

三星率先交付全球首款商用HBM4,速率从11.7 Gbps提升至13 Gbps

网络与存储 2026-02-13

MSP430的开发工具和仿真软件

视频 2009-10-16

深度求索上下文窗口扩大十倍,智谱同步发布新模型,中国AI竞赛加速

智能计算 2026-02-13

面测试测量市场的环境动荡, Pickering Interfaces开关与仿真领域的重点成果回顾与展望

应用材料晶体管与布线创新技术,助力打造更快的人工智能芯片

超高频RFID IC封装

视频 2009-10-16

台积电AI产能:黄称英伟达的需求可能迫使其实现翻倍

智能计算 2026-02-12

超低功率高性能新一代产品MSP430F5xx

视频 2009-10-16
更多 培训课堂
更多 焦点
更多 视频

技术专区