本帖最后由 jinglixixi 于 2019-12-19 12:07 编辑
前面介绍了OLED屏的驱动显示,在此基础上若添加上A/D转换则可对模拟信号进行采集及显示,其效果如图1所示。
图1 模拟信号采集
为能使用PB6和PC2作为模拟信号采集口,通过MCC可对引脚功能加以配置,其内容如图2所示。
图2 MCC引脚配置
对应的引脚命名见图3,为使A/D正常进行,其时钟设置见图4。
图3 引脚命名
图4 时钟设置
在使用MCC生成框架代码后,实现图示效果的主程序如下:
void main(void)
{
unsigned int jg;
SYSTEM_Initialize();
OLED_Init();
__delay_ms(1);
OLED_CLS();
OLED_P8x16Str(0,0,"PIC16F18446");
OLED_P8x16Str(0,2,"OLED Display");
ADCC_Initialize();
ADCC_StartConversion(channel_ANC2);
while (1)
{
led0_Toggle();
__delay_ms(200);
jg=ADCC_GetSingleConversion(channel_ANC2); //channel_ANB6
OLED_P8x16ch(0,6,'A');
OLED_P8x16ch(8,6,'D');
OLED_P8x16ch(16,6,'C');
OLED_P8x16ch(24,6,'='); // 可按4095对应一定电压值的方式进行转换,然后直接显示电压值。
OLED_P8x16ch(32,6,jg/10000+'0'); // A/D为12位,该语句可注释掉。
OLED_P8x16ch(40,6,jg%10000/1000+'0');
OLED_P8x16ch(48,6,jg%1000/100+'0');
OLED_P8x16ch(56,6,jg%100/10+'0');
OLED_P8x16ch(64,6,jg%10+'0');
}
}
|