基于CH554开发板的多通道数据采集与显示
<div class='showpostmsg'>前面已对LCD5110液晶屏的驱动及显示做了介绍,这次就在其基础上添加多通道数据采集与显示功能,其硬件构成如图1所示。图1 4通道数据采集效果在采样过程中,4个通道的引脚占用情况如下:AIN0--P1.1AIN1--P1.4AIN2--P1.5AIN3--P3.2 由于P1.1在原来的LCD5110显示程序中曾被使用,会导致采样时显示消失,故将原来使用PI.1的引脚改用P3.5,这样处理后两者就不冲突了,采用串口显示的效果如图2所示。图2 串口显示效果
多通道数据采集与显示的主程序如下:void main( )
{
UINT16 i;
UINT16 j = 0;
CfgFsys( ); //CH554时钟选择配置
mDelaymS(20);
mInitSTDIO( ); //串口0初始化
printf("start ...\n");
LCD_Init();
LCD_Clear();
LCD_write_hanzi(32,0,0);
LCD_write_hanzi(44,0,1);
LCD_write_hanzi(56,0,2);
LCD_write_english_string(0,0,"CH554");
mDelaymS(1000);
ADCInit( 0 ); //ADC时钟配置,ADC模块开启
while(1)
{ //ADC 查询方式
for(i=0;i<4;i++){
printf("AIN%02x ",(UINT16)i);
//显示采样通道
LCD_write_english_string(0,i+2,"AIN0");
LCD_write_char(i+'0');
LCD_write_char(':');
ADC_ChannelSelect( i );
//ADC采样初始化
ADC_START = 1;
//开始采样,采样完成进入中断
while(ADC_START);
//ADC_START变为0时,表示采样完成
printf("DATA: %02x\n",(UINT16)ADC_DATA);
//显示采样值
j=ADC_DATA;
LCD_set_XY(50,i+2);
LCD_write_char(j/100+0x30);
LCD_write_char(j%100/10+0x30);
LCD_write_char(j%10+0x30);
mDelaymS(100);
}
}
}
此内容由EEWORLD论坛网友jennyzhaojie原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> :):handshake 沁恒USB单片机 发表于 2017-10-30 09:11
感谢支持与鼓励!!!
页:
[1]