本帖最后由 芯圣电子官方QQ 于 2023-7-24 14:21 编辑
在开发板没有配置显示功能的情况下,使用串行通讯功能是较好的显示观察手段。对于ADC的检测效果的观察,就可以采用这种办法。 程序设计的思想是使用引脚P06来采集外部模拟信号值,并通过程序通讯来显示采样值。其中,P16为串行通讯的发送端,而P17为串行通讯的接收端。 ADC采集的显示函数为: void PRT(void)
{
int f=0;
guc_Uartbuf_a[0]=gui_AdcValue/1000+'0';
guc_Uartbuf_a[1]=gui_AdcValue%1000/100+'0';
guc_Uartbuf_a[2]=gui_AdcValue%100/10+'0';
guc_Uartbuf_a[3]=gui_AdcValue%10+'0';
guc_Uartbuf_a[4]=0x0D;
guc_Uartbuf_a[5]=0x0A;
IE &=~ 0x40;
for(guc_i=0;guc_i<6;guc_i++)
{
if((guc_Uartbuf_a[guc_i]>'0')||(f==1))
{
S2BUF = guc_Uartbuf_a[guc_i];
f=1;
}
else
{
S2BUF = ' ';
}
if(guc_i==2) f=1;
while(!(S2CON & 0x02));
S2CON &=~ 0x02;
}
IE |= 0x40;
}
ADC采集的主程序为: void main()
{
while((CLKCON&0x20)!=0x20);
CLKSWR = 0x51;
while((CLKSWR&0xC0)!=0x40);
CLKDIV = 0x01;
P1M4 = 0xC2;
P0M6 = 0x02;
ADCC0 = 0x80;
ADCC1 = 0x06;
ADCC2 = 0x4B;
P1M6 = 0xC2;
P1M7 = 0x62;
TXD2_MAP = 0x16;
RXD2_MAP = 0x17;
RCAP5H = 0xFF;
RCAP5L = 0x98;
T5CON = 0x06;
S2CON2 = 0x00;
S2CON = 0x10;
IE |= 0x40;
EA = 1;
while(1)
{
ADCC0 |= 0x40;
while(!(ADCC0&0x20));
ADCC0 &=~ 0x20;
gui_AdcValue = ADCR;
PRT();
delay();
}
}
经程序下载后,检测的效果如下图所示。 检测效果
|