在开发板没有配置显示功能的情况下,使用串行通讯功能是较好的显示观察手段。对于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();
- }
- }
复制代码
经程序下载后,检测的效果如下图所示。 检测效果
|