功能
用6個引腳采集ADC,串口發送到電腦
部分程序
/** Otherwise, the compiler removes it* because it is not used for anything.*/
int kaiguanliang[4]; /* 四個開關量 */unsigned char adok_ifg = 1; /* 轉換結束后變成0 */char fasong[20];int main( void )
{WDTCTL = WDTPW | WDTHOLD; /* Stop watchdog timer */Clock_Init(); /* 系統時鐘設置 */UART_Init(); /* 串口設置初始化 115200 */init_AD(); /* 初始化ad */init_key(); /* 初始化按鍵 */_EINT(); /* 開中斷 */while ( 1 ){/* 檢測AD */adok_ifg = 1; /* 轉換結束后變成0 */ADC12CTL0 |= ADC12SC; /* Start conversion */while ( adok_ifg == 1 ); /* 等待裝換結束 *//* p1.0 電平高低 決定了kaiguanliang【0】是1還是0 以此作為開關量 */if ( (P1IN & BIT0) == 0 ){kaiguanliang[0] = 0;} else {kaiguanliang[0] = 1;}if ( (P1IN & BIT1) == 0 ){kaiguanliang[1] = 0;} else {kaiguanliang[1] = 1;}if ( (P1IN & BIT2) == 0 ){kaiguanliang[2] = 0;} else {kaiguanliang[2] = 1;}if ( (P1IN & BIT3) == 0 ){kaiguanliang[3] = 0;} else {kaiguanliang[3] = 1;}/* 發送模擬量0 ad0 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "AD0:%d ", results[0] );Print_Str( fasong );delay_ms( 5 );/* 發送模擬量1 ad1 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "AD1:%d \r\n", results[1] );Print_Str( fasong );delay_ms( 5 );/* 發送模擬量2 ad2 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "AD2:%d ", results[2] );Print_Str( fasong );delay_ms( 5 );/* 發送模擬量3 ad3 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "AD3:%d \r\n", results[3] );Print_Str( fasong );delay_ms( 5 );/* 發送模開關量0 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "KAIGUAN0:%d ", kaiguanliang[0] );Print_Str( fasong );delay_ms( 5 );/* 發送開關量1 */memset( fasong, 0, sizeof(fasong) ); /* 清空發送數組 */sprintf( fasong, "KAIGUAN1:%d \r\n\r\n\r\n", kaiguanliang[1] );Print_Str( fasong );delay_ms( 5 );delay_ms( 500 );}
}
全部代碼
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2