超详细msp430示例程序DOC.docx
《超详细msp430示例程序DOC.docx》由会员分享,可在线阅读,更多相关《超详细msp430示例程序DOC.docx(161页珍藏版)》请在冰豆网上搜索。
超详细msp430示例程序DOC
一、基础_实验【10个】
1、入门试验:
LED闪烁(1个)
2、时钟实验:
设置MCLK、ACLK、SMCLK(1个)
3、低功耗实验:
设置低功耗模式(1个)
4、IO端口试验:
IO端口寄存器设置(1个)
5、定时器:
看门狗定时器、TimerA寄存器设置(2个)
6、比较器:
比较器A寄存器(1个)
7、Flash:
flash读写(1个)
8、异步通信:
异步通信寄存器设置(1个)
9、ADC:
ADC12寄存器设置(1个)
二、开发板模块简单程序【56个】
1、LED流水灯实验(红、黄、绿)
(1)LED1:
检测开发板
(2)LED2:
普通IO控制闪烁
(3)LED3:
PWM信号控制闪烁
2、蜂鸣器实验
(1)蜂鸣器1:
单频音(步进变音调)
(2)蜂鸣器2:
奏乐(祝你平安)
3、数码管实验
(1)数码管1(显示123456)
(2)数码管2(动态显示0~F)
(3)数码管3(流动光圈)
(4)数码管4(来回光标)
4、4×1独立按键实验
(1)4×1键盘1:
扫描数码管显示
(2)4×1键盘2:
中断数码管显示
(3)4×1键盘3:
控制LED
(4)4×1键盘4:
控制蜂鸣器
5、4×4矩阵键盘实验
(1)4×4键盘1:
行列扫描数码管显示
(2)4×4键盘2:
行列扫描1602液晶显示
(3)4×4键盘3:
控制LED蜂鸣器
6、1602液晶实验
(1)1602液晶1:
动态字符显示
(2)1602液晶2:
静态字符显示
(3)1602液晶3:
内部时钟显示
7、3.3V-5V电平转换实验
(1)电平转换1:
输出5V方波
(2)电平转换2:
输出不同占空比的方波
(3)电平转换3:
MCLK,SMCLK,ACLK
8、RS232接口实验
(1)RS232接口1:
MCU发送数据PC机显示
(2)RS232接口2:
按键控制MCU发送数据PC机显示
(3)RS232接口3:
PC机发送数据MCU液晶显示
(4)RS232接口4:
MCU回发接收到的PC机数据
(5)RS232接口5:
RS232控制蜂鸣器
9、RS485接口实验
(1)RS485接口1:
发送程序
(2)RS485接口2:
接收程序
10、USB接口实验
(1)USB接口1:
简单连接测试
(2)USB接口2:
USB接收数据
(3)USB接口3:
USB发送数据
11、PS2接口实验
(1)PS2接口1:
PS2控制1602显示
(2)PS2接口2:
PS2控制数码管显示
(3)PS2接口3:
PS2控制LED和蜂鸣器
12、12-Bit高精度温度传感器实验
(1)温度传感器1:
DS18B20在数码管显示
(2)温度传感器2:
DS18B20在液晶显示
13、RTC实时时钟实验
(1)实时时钟1:
DS1302测试
(2)实时时钟2:
DS1302电子钟
14、2kBitEEPROM实验
(1)EEPROM1:
AT24C02测试
(2)EEPROM2:
读出数据通过串口在PC机显示
15、12-Bit模数转换器(ADC)接口实验
(1)模数转换器1:
ADC在数码管显示
(2)模数转换器2:
ADC在1602液晶在显示
(3)模数转换器3:
ADC通过串口在PC机显示
16、8-Bit数模转换器(DAC)实验
(1)数模转换器1:
DAC控制LED
(2)数模转换器2:
DAC输出电压,ADC采样转换并在液晶上显示
17、12864液晶实验(与12864液晶配套)
(1)12864液晶并口1:
字符显示
(2)12864液晶并口2:
汉字显示
(3)12864液晶并口3:
图形显示
(4)12864液晶并口4:
综合演示
(5)12864液晶串口5:
字符显示
(6)12864液晶串口6:
汉字显示
(7)12864液晶串口7:
图形显示
(8)12864液晶串口8:
综合演示
18、射频模块CC1000实验
(1)射频模块1:
发送数据
(2)射频模块2:
接收数据
19、ucos移植
注:
17、18程序随模块赠送
三、开发板综合程序【30】
1、键盘综合实验
(1)4×4键盘+蜂鸣器+LED+数码管显示
(2)4×4键盘+蜂鸣器+LED+1602液晶显示
(3)4×4键盘+蜂鸣器+LED+PC机显示
(4)PS2键盘+UART+PC机显示
(5)PS2键盘+USB+PC机显示
2、接口综合实验
(1)USBUART
(2)UARTUSB
(3)RS232RS485
(4)RS485RS232
3、温度时间综合实验
(1)DS18B20+DS1302+数码管
(2)DS18B20+DS1302+USB
(3)DS18B20+DS1302+UART
(4)DS18B20+DS1302+1602
4、ADDA综合实验
(1)ADC+1602
(2)ADC+UART
(3)ADC+USB
(4)DAC+LED+KEY
(5)DAC+UART
(6)DAC+USB
(7)ADC+UART+DS1302
(8)ADC+DAC+1602+KEY
(9)ADC+DAC+UART+KEY
5、其他综合实验
(1)AT24C02高级应用(搜索,擦除,读出全部)
(2)DS1302高级应用(内部RAM存取数据)
6、12864液晶综合实验
(1)汉字库
(2)图形库
7、3.2寸TFT触摸屏实验
(1)静态图片
(2)动画
/***************************************************
程序功能:
BoardConfig.h头文件
---------------------------------------------------
***************************************************/
typedefunsignedcharuchar;
typedefunsignedintuint;
//控制位的宏定义
#defineCtrl_OutP3DIR|=BIT3+BIT6+BIT7;
#defineCtrl_0P3OUT&=~(BIT3+BIT6+BIT7)
#defineSRCLK_1P3OUT|=BIT7
#defineSRCLK_0P3OUT&=~BIT7
#defineSER_1P3OUT|=BIT6
#defineSER_0P3OUT&=~BIT6
#defineRCLK_1P3OUT|=BIT3
#defineRCLK_0P3OUT&=~BIT3
//板上资源配置函数
voidBoardConfig(ucharcmd)
{
uchari;
Ctrl_Out;
Ctrl_0;
for(i=0;i<8;i++)
{
SRCLK_0;
if(cmd&0x80)SER_1;
elseSER_0;
SRCLK_1;
cmd<<=1;
}
RCLK_1;
_NOP();
RCLK_0;
}
/***************************************************
程序功能:
控制8个LED闪烁,用于测试下载功能是否正常
---------------------------------------------------
测试说明:
观察LED闪烁
***************************************************/
#include
#include"BoardConfig.h"
/****************主函数****************/
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BoardConfig(0xf0);//关闭数码管和电平转换,打开流水灯
CCTL0=CCIE;//使能CCR0中断
CCR0=2047;//设定周期0.5S
TACTL=TASSEL_1+ID_3+MC_1;//定时器A的时钟源选择ACLK,增计数模式
P2DIR=0xff;//设置P2口方向为输出
P2OUT=0xff;
_EINT();//使能全局中断
LPM3;//CPU进入LPM3模式
}
/*******************************************
函数名称:
Timer_A
功能:
定时器A的中断服务函数
参数:
无
返回值:
无
********************************************/
#pragmavector=TIMERA0_VECTOR
__interruptvoidTimer_A(void)
{
P2OUT^=0xff;//P2口输出取反
}
/***********************************************
程序功能:
实现流水灯以三种流动方式和四种流动速度
的不同组合而进行点亮"流动"
------------------------------------------------
测试说明:
观察流水灯流动顺序和速度的变化
************************************************/
#include
#include"BoardConfig.h"
uinti=0,j=0,dir=0;
uintflag=0,speed=0;//flag--灯光流动方式,speed--灯光流动速度
/****************主函数****************/
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
BoardConfig(0xf0);
CCTL0=CCIE;//使能CCR0中断
CCR0=50000;
TACTL=TASSEL_2+ID_3+MC_1;//定时器A的时钟源选择SMCLK,增计数模式
P2DIR=0xff;//设置P2口方向为输出
P2OUT=0xff;
_EINT();//使能全局中断
LPM0;//CPU进入LPM0模式
}
/*******************************************
函数名称:
Timer_A
功能:
定时器A的中断服务函数,在这里通过标志
控制流水灯的流动方向和流动速度
参数:
无
返回值:
无
********************************************/
#pragmavector=TIMERA0_VECTOR
__interruptvoidTimer_A(void)
{
if(flag==0)
{
P2OUT=~(0x80>>(i++));//灯的点亮顺序D8->D1
}
elseif(fla