[PIC®/AVR®/dsPIC®产品] PIC18 47Q10单片机ADC模块是怎么用的?大神们

[复制链接]
 楼主| 橘子阿小 发表于 2021-8-11 16:39 | 显示全部楼层 |阅读模式
PIC18 47Q10单片机ADC模块是怎么用的?看了47q10的说明书,看不懂啊
奔波儿熊 发表于 2021-8-11 17:59 | 显示全部楼层
试试MCC, 然后研究MCC生成的代码, 配合手册一起看, 就懂了。
panxiaoyi 发表于 2021-8-11 19:32 | 显示全部楼层
自己写的,比较简单,不知道是否合你意
  1. #include "ADC.h"

  2. void FVR_Init(void)
  3. {
  4.     FVRCON B7H;                                                                 //使能固定参考电压
  5.     FVRCON B5H;                                                                 //温度指示器使能
  6.     FVRCON B4H;                                                                 //温度指示器范围选择位
  7.     FVRCON &=(0xFF<<2);                                                         //清零ADC参考电压
  8.     FVRCON |=FVR_4096;                                                          //配置ADC参考电压
  9.     while(!(FVRCON & 1<<6));                                                    //等待参考电压稳定
  10. }

  11. void ADC_Init(void)
  12. {
  13.     FVR_Init();                                                                 //内部参考电压初始化
  14.    
  15.     TRISC B7H;                                                                  //禁止端口输出驱动器
  16.     TRISC B6H;
  17.    
  18.     ANSELC B7H;                                                                 //禁止数字输入缓冲器
  19.     ANSELC B6H;

  20.     ADREF=VREF_VDD;                                                             //参考电压选择
  21.    
  22.     ADCON0 B7H;                                                                 //使能ADC
  23.     ADCON0 B4H;                                                                 //由FRC专用振荡器提供时钟
  24.     ADCON0 B2H;                                                                 //结果右对齐,即12位结果
  25. }

  26. void ADC_Start(unsigned char in)
  27. {
  28.     ADPCH=in;
  29.     ADCON0 B0H;                                                                 //启动转换   
  30. }

  31. unsigned short ADC_Read(void)
  32. {
  33.     unsigned short adc_data;
  34.     while(ADCON0&1);                                                            //等待转换完成,不用清零标志位
  35.     adc_data=ADRESH;
  36.     adc_data<<=8;
  37.     adc_data=adc_data+ADRESL;
  38.     return adc_data;
  39. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
hu9jj 发表于 2021-8-12 09:52 | 显示全部楼层
这个帖子也许对您有点帮助:
https://bbs.21ic.com/icview-2982384-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 橘子阿小 发表于 2021-8-13 11:22 | 显示全部楼层
        帮我看看我写的AD初始化是对的吗?代码附下:
//AD模块初始化
ADCON0 = 0x84;//ADGO=0;右对齐;使能ADC
    ADCLK = 0x0F;//ADC转换时钟Fosc/32
    ADCON1 = 0x00;
    ADCON2 = 0x00;//ADC模式为基本模式
    ADCON3 = 0x00;
    ADREF = 0x00;//参考电压
    ADPCH = 0x00;//默认为AN0*/
    ADACQ = 0x00;
    ADCAP = 0x00;
    ADRPT = 0x00;
        ADACT = 0x00;
   
        ANSELA=0X2F;//开启AN0-AN4
    ANSELB=0x10;//开启AN9
        ADIF=0;//中断标志位清0
        ADIE=1;//允许中断
        ADIP=0;//低优先级
  //  ADCON0bits.ADGO=1;
 楼主| 橘子阿小 发表于 2021-8-13 11:23 | 显示全部楼层
panxiaoyi 发表于 2021-8-11 19:32
自己写的,比较简单,不知道是否合你意

帮我看看我写的AD初始化是对的吗?代码附下:
//AD模块初始化
ADCON0 = 0x84;//ADGO=0;右对齐;使能ADC
    ADCLK = 0x0F;//ADC转换时钟Fosc/32
    ADCON1 = 0x00;
    ADCON2 = 0x00;//ADC模式为基本模式
    ADCON3 = 0x00;
    ADREF = 0x00;//参考电压
    ADPCH = 0x00;//默认为AN0*/
    ADACQ = 0x00;
    ADCAP = 0x00;
    ADRPT = 0x00;
        ADACT = 0x00;
   
        ANSELA=0X2F;//开启AN0-AN4
    ANSELB=0x10;//开启AN9
        ADIF=0;//中断标志位清0
        ADIE=1;//允许中断
        ADIP=0;//低优先级
  //  ADCON0bits.ADGO=1;
panxiaoyi 发表于 2021-8-13 14:15 | 显示全部楼层
请问你的初始化遇到了什么问题?

ANSELA=0X2F;//开启AN0-AN4

这个应该是 0x1F 吧?
 楼主| 橘子阿小 发表于 2021-8-18 14:52 | 显示全部楼层
panxiaoyi 发表于 2021-8-11 19:32
自己写的,比较简单,不知道是否合你意

你好,请教一下,27q10 44引脚的单片机EUSART模块,如果想把RC7引脚作为RX1,RC6引脚作为Tx1,我应该怎么办?
panxiaoyi 发表于 2021-8-20 22:40 | 显示全部楼层

RC6PPS=0x09;                                                                 //输出端口选择PPS: TXD1 => RC6
RX1PPS=(A=0,B=1,C=2,d=3)<<3 + 0/1/2/3/4/5/6/7           //RXD1=>RC7
RX1PPS=2<<3+7=0x17                                                    //RXD1=>RC7
gwsan 发表于 2021-9-6 10:49 | 显示全部楼层
楼主想要怎么用呢
zljiu 发表于 2021-9-6 10:51 | 显示全部楼层
看代码没觉得有什么问题啊
tfqi 发表于 2021-9-6 10:54 | 显示全部楼层
哪一部分看不懂啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

152

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

65

主题

152

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部