打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】A/D数据采集与显示

[复制链接]
8467|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2021-8-27 10:15 编辑

前面介绍了串行数码管显示,在此基础上若添加上A/D转换则可对模拟信号进行采集及显示,其效果如图1所示。

图1 模拟信号采集

为了使PC2作为模拟信号采集端口,通过MCC可对该引脚加以功能配置,其内容如图2所示。


图2 MCC引脚配置
对应的引脚命名见图3,为使A/D正常进行,其时钟设置见图4。

图3 引脚命名


图4 时钟设置

在使用MCC生成框架代码后,实现图示效果的主程序如下:
void main(void)
{
int v,d;
float s;
// Initialize the device
SYSTEM_Initialize();
DELAY_milliseconds(50);
Init_MAX7219();
DELAY_milliseconds(200);
Write_Max7219(0xff,0x00);
Write_Max7219(1,8);
Write_Max7219(2,7);
Write_Max7219(3,6);
Write_Max7219(4,5);
Write_Max7219(5,4);
Write_Max7219(6,3);
Write_Max7219(7,2);
Write_Max7219(8,1);
ADCC_Initialize();
ADCC_StartConversion(channel_ANC2);
while (1)
{
// Add your application code
LED_SetHigh();
DELAY_milliseconds(1000);
LED_SetLow();
DELAY_milliseconds(1000);
v=ADCC_GetSingleConversion(channel_ANC2);
// A/D为12位
Write_Max7219(1,v%10);
if(v>10) Write_Max7219(2,v%100/10);
else Write_Max7219(2,0x0f);
if(v>100) Write_Max7219(3,v%1000/100);
else Write_Max7219(3,0x0f);
if(v>1000)  Write_Max7219(4,v/1000);
else Write_Max7219(4,0x0f);
s=v*3.3/409.5;
d=s;
Write_Max7219(5,0x0f);
Write_Max7219(6,d%10);
Write_Max7219(7,(d%100/10)|0x80);
Write_Max7219(8,0x0f);
}
}



图4 双值显示

此外,在添加线型LED模块的情况下,还可实现图5所示的电位高低的指示。
图5 电位指示

使用特权

评论回复
沙发
sujinfu| | 2021-8-26 14:58 | 只看该作者
收到板子了?

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2021-8-26 23:40 | 只看该作者

啥板子?

使用特权

评论回复
地板
sujinfu| | 2021-8-27 10:17 | 只看该作者
你是这个板子吗  PIC18F16Q41 Curiosity Nano

使用特权

评论回复
5
jinglixixi|  楼主 | 2021-8-27 10:39 | 只看该作者
sujinfu 发表于 2021-8-27 10:17
你是这个板子吗  PIC18F16Q41 Curiosity Nano

是呀

使用特权

评论回复
6
sujinfu| | 2021-8-28 19:33 | 只看该作者
我还没收到

使用特权

评论回复
7
jinglixixi|  楼主 | 2021-8-28 23:21 | 只看该作者

那时间可不短了

使用特权

评论回复
8
hu9jj| | 2021-8-29 08:20 | 只看该作者

都半个多月了,该查询一下京东快递。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

454

主题

2753

帖子

38

粉丝