【TB作品】MSP430F149单片机,6通道ADC,串口发送

功能

用6个引脚采集ADC,串口发送到电脑

部分程序

cpp 复制代码
/*
 * 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 );
	}
}

全部代码

cpp 复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
相关推荐
史蒂芬_丁8 小时前
Cortex-M内核中断保护机制详解:PRIMASK寄存器的正确使用方法
单片机·嵌入式硬件
榴莲llll8 小时前
LED高亮数码管显示驱动芯片数显屏驱动器最大支持13×3的按键VK16K33A
单片机
崇山峻岭之间9 小时前
单片机传感器实验
单片机·嵌入式硬件
芯岭技术11 小时前
PY32F030国产32位MCU,应用场景广泛,宽工作电压、丰富外设
单片机·嵌入式硬件·物联网
FreakStudio15 小时前
大话电容传感器和电容SOC芯片,看这一篇就够了
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
信看16 小时前
常见通信接口
单片机·嵌入式硬件
Rsingstarzengjx17 小时前
STM32-F103ZET6开发板
stm32·单片机·嵌入式硬件
我先去打把游戏先17 小时前
VMware NAT 模式 Ubuntu 虚拟机「宿主机能上网、虚拟机 ping 不通外网 + apt 更新卡死」全故障复盘
linux·运维·vscode·单片机·嵌入式硬件·ubuntu·keil5
aini_lovee18 小时前
STM32 串口转CAN + WiFi模块实现WiFi转CAN网关
stm32·单片机·嵌入式硬件
zlinear数据采集卡18 小时前
输出短路保护电路深度解析:从电源的“最后一道防线”到ZLinear采集卡的硬核守护实战
开发语言·嵌入式硬件·持续集成