MSP430 单片机 AD 转换实验(38 页)Good is good, but better carries it.精益求精,善益求善。A/D 转换实验 一、转换原理MSP430F149 的 A/D 转换器原理请参考相关书籍。实验板上与 AD 相关的硬件电路: 编程工作实际就是对以下寄存器的操作:寄存器类型寄存器缩写寄存器的含义转换控制寄存器ADC12CTL0 转换控制寄存器 0ADC12CTL1 转换控制寄存器 1中 断控制寄存器ADC12IFG中断标志寄存器ADC12IE中断使能寄存器ADC12IV中断向量寄存器存 储及其控制寄存器ADC12MCTL0 ~ ADC12MCTL15存储控制寄存器 0~15ADC12MEM0 ~ADC12MEM15存储寄存器0~15设计主程序和中断服务程序。二、转换程序1、程序 1:转换结果发送到 PC主程序中进行 A/D 初始化,中断服务程序读A/D 转换结果,主程序中通过串口发送结果。“main.c”主程序与中断程序:/*********************************************************程序功能:将 ADC 对 P6.0 端口电压的转换结果按转换数据和对应的 模拟电压的形式通过串口发送到 PC 机屏幕上显示-----------------------------------------------------------通信格式:N.8.1, 9600-----------------------------------------------------------测试说明:打开串口调试精灵,正确设置通信格式,观察接收数据**********************************************************/#include #include "allfunc.h"#include "UART0_Func.c"#include "ADC_Func.c"#define Num_of_Results 32uint results[Num_of_Results]; //保存 ADC转换结果的数组uint average;uchar tcnt = 0;/***********************主函数***********************/void main( void ){ uchar i; uchar buffer[5]; WDTCTL = WDTPW + WDTHOLD; //关狗 /*下面六行程序关闭所有的 IO 口*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换 P6DIR|=BIT6;P6OUT&=~BIT6; //关闭数码管显示 InitUART(); Init_ADC(); _EINT(); buffer[4] = '\0'; while(1) { LPM1; Hex2Dec(average,buffer); for(i = 0; i < 4; i++) buffer[i] += 0x30; PutString0("The digital value is: "...