Msp430f5529时钟系统与定时器以及中断PPT
- 格式:ppt
- 大小:6.82 MB
- 文档页数:16
MSP430F5529 实验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验1、熟悉2、掌握3、掌握1、2、PC【实验原理】CCS(Code Composer Studio)是 TI 公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
CCSv5.1 为 CCS 软件的最新版本,功能更强大、性能更稳定、可用性更高,是 MSP430 软件开发的理想工具。
SEED-EXP430F5529v1.0开发板上的有8个可操作的LED灯,与MCU的IO口对应关系如图1-1所示:图1-1 LED与MCU的IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。
开发板上还有2个可操作的按键S1,S2。
如图1-2所示。
图1-2 按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。
此外,S1,S2还可以作为外部中断源,触发中断。
【实验内容】1、用调用头文件的方法,使能MSP430F5529开发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。
【实验步骤】family,Finish。
__delay_cycles(500000); //延时P8OUT &= ~BIT2;for(i=BIT1;i<=BIT5; i=i<<1){P1OUT = i;__delay_cycles(500000); //延时}}}6、保存程序后Bulid(单击菜单中,或快捷键Ctrl+B)编译程序。
7、调试程序(单击菜单中)自动进入调试界面并下载程序。
8、运行程序(单击菜单中)进行程序的运行、暂停、停止、单步运行等操作。
MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。
MSP430单片机称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。
该系列单片机多应用于需要电池供电的便携式仪器仪表中。
什么是单片机?单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),英文缩写:MCU。
它是把中央处理器、存储器、定时/计数器、各种输入输出接口等都集成在一块芯片上的微型计算机。
什么是嵌入式?IEEE(国际电气和电子工程师协会) 对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置.Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants.国内普遍认同的嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
MSP430单片机内核是16位RISC处理器的超低功耗混合信号处理器丰富的片内外设灵活的开发手段MSP430单片机特点◆超低功耗低电压工作1.8~3.6V,RAM数据不丢失情况下耗电仅0.1μA,活动模式耗电290μA/MIPS,I/O输入最大漏电流仅为50nA灵活的时钟系统采用向量中断,需要运行时通过中断唤醒CPU,只需3.5μs◆强大的处理能力指令速度高达25MIPS◆高性能模拟技术及丰富的片上外设时钟模块、Flash控制器、RAM控制器、通用I/O端口、定时器、数模转换器、比较器、UART、SPI、I2C、USB等MSP430单片机的应用领域◆能量收集太阳能、热能、振动能、人体运动的动能等;◆计量仪表水表、电表、流量表等;◆安全与安防烟雾探测器、破损玻璃检测系统等;◆便携式医疗血糖计、个人血压监控器、心率检测计等;MSP430F5529单片机特性◆低工作电压:1.8V到3.6V;◆超低功耗:--活动模式(AM):所有系统时钟活动290 μA/MHz在8MHz,3.0V,Flash Program150 μA/MHz在8MHz,3.0V,RAM Program--待机模式(LPM3):实时时钟、看门狗、电源监控、RAM数据保持、快速唤醒:1.9μA在2.2V,2.1μA在3.0V(典型)低功耗振荡器、通用计数器、看门狗、电源监控、RAM数据保持、快速唤醒:1.4 μA在3.0V(典型)--关闭模式(LPM4):RAM数据保持,电源监控,快速唤醒:1.1μA在3.0V(典型)--关断模式(LPM4.5):0.18μA在3.0V(典型)◆从待机模式下唤醒时间在3.5μs内(典型);◆16位RISC结构,可拓展内存,高达25-MHZ的系统时钟;◆灵活的电源管理系统:--核心供电电压可编程调节的内置LDO--电源电压监控、监测及掉电检测◆UCS统一时钟系统:--频率稳定的FLL控制回路--低功率或低频率内置时钟源(VLO)MSP430F5529单片机特性◆UCS统一时钟系统:--修整后的低频内置参考源(REFO)--32KHZ低频晶振(XT1)--高达32MHZ高频晶振(XT2)◆具有五个捕获/比较寄存器的16位定时器TA0,Timer_A;◆具有三个捕获/比较寄存器的16位定时器TA1,Timer_A;◆具有三个捕获/比较寄存器的16位定时器TA2,Timer_A;◆具有七个捕获/比较映射寄存器的16位定时器TB0,Timer_B;◆两个通用串行通讯接口:--USCI_A0和USCI_A1,每个支持:增强UART、IrDA、同步SPI--USCI_B0和USCI_B1,每个支持:I2C 、同步SPI◆全速USB:--集成USB-PHY--集成3.3V/1.8V USB 电源系统--集成USB-PLL--8输入,8输出端点◆具有内部基准电压,采样和保持及自动扫描功能的12位ADC(MSP430F552X系列仅有);◆比较器;◆支持32位运算的硬件乘法器;◆串行系统编程,无需添加外部编程电压;◆三通道内部DMA;◆具有实时时钟功能的基本定时器;MSP430F5529引脚图MSP430F5529结构图MSP430F5529LP开发板介绍eZ-FET仿真模块的LED说明隔离跳线块eZ-FET仿真器适用于几乎所有MSP430产品短路跳线块,eZ-FET仿真器可以选择连接开发板上的F5529芯片断开跳线块,eZ-FET仿真器可以作用于外接的其他芯片隔离跳线模块应用设置见TI官网MSP430F5529 LaunchPad User’s guide Section2.2.7各接口引脚介绍见Quickstart Guide一些缩写说明(x为数字):GPIO: 通用数字I/O口;CBx: 比较器B输入通道CBx;Ax: ADC输入通道Ax;RTC: 实时时钟;UCAx: USCI_Ax;TAxCLK: TAx时钟信号输入;CBOUT: 比较器B输出;STE: 从机传输使能;PM_: 默认映射;SDA: I2C数据;SCL: I2C时钟;DMAEx: DMA外部触发输入;SOMI: 在SPI模式下的从机输出、主机输入;SIMO:在SPI模式下的从机输入、主机输出;UCAxRXD: USCI_Ax在UART模式下的接收数据输入; TXD为数据输出;CCS简介TI公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境。
MSP430F5529 (六)定时器Timer_A-1MSP430F5529 共有两类共4 个定时器,分别是Timer_A 定时器3 个和Timer_B 定时器1 个,按照每个寄存器配备的捕获/比较器的个数分别命名为Timer0_A(内有5 个捕获比较器)、Timer1_A(3 个)、Timer2_A(3 个)、Timer0_B(7 个)。
这一章,我们讲定时器Timer0_A.(A 类的都一样)注意:下面所提到的所有寄存器,在TA 后面插入0 或1 或2 就分别表示Timer0_A、Timer1_A、Timer2_A(我这里省略了数字)定时器很重要啊!6.1简介一下定时器A 是一个复合了捕获/比较寄存器的十六位的定时(加减)计数器。
定时器A 支持多重捕获/比较,PWM 输出和内部定时,具有扩展中断功能,中断可以由定时器溢出产生或由捕获/比较寄存器产生。
特征简介:○四种运行模式的异步16 位定时/计数器○自身时钟源可选择配置○最多达5 个可配置的捕获/比较寄存器(CCR)capture/compare registers○可配置的PWM 输出○异步输入和输出锁存○对所有Timer_A 中断快速响应的中断向量寄存器下面这张图形象的解释了Timer_A 的结构特性 6.2 TA(Timer_A)的几个基本操作设置(含寄存器介绍及设置)声明:所有寄存器同样支持字和字节操作,不要忘记这是什么意思所有寄存器初始化都为0x00006.2.1 TA 控制寄存器TACTL(最常用最基本)再次说明一下例如:TA0CTL、TA1CTL、TA2CTL分别表示3 个不同定时器A 的控制寄存器rw-(0)表示默认读写均为0TASSELx:时钟源选择。
尽量不要选TASSEL0-TACLK 外部时钟源,因为如果TACLK 和CPU 时钟不同步,很容易出问题。
(TA0CLK 接P1.0 引脚)00TACLK01ACLK10SMCLK11~TACLKIDx:第一次分频控制。
MSP430F5529 实验指导书(V1.0)2014年10月27日东北林业大学机电工程学院“3+1”实验室实验一基础GPIO实验实验二键盘与液晶显示实验实验三时钟系统配置实验实验四看门狗与定时器实验实验五 AD/DA实验实验六比较器实验实验七 Flash实验实验八串行通信实验实验一基础GPIO实验【实验目的】1、熟悉CCS的基本使用方法;2、掌握MSP430系列单片机程序开发的基本步骤;3、掌握MSP430 IO口的基本功能。
【实验仪器】1、SEED-EXP430F5529v1.0开发板一套;2、PC机操作系统Windows XP或Windows 7,CCSv5.1集成开发环境。
【实验原理】CCS(Code Composer Studio)是 TI 公司研发的一款具有环境配置、源文件编辑、程序调试、跟踪和分析等功能的集成开发环境,能够帮助用户在一个软件环境下完成编辑、编译、链接、调试和数据分析等工作。
CCSv5.1 为 CCS 软件的最新版本,功能更强大、性能更稳定、可用性更高,是 MSP430 软件开发的理想工具。
SEED-EXP430F5529v1.0开发板上的有8个可操作的LED灯,与MCU的IO口对应关系如图1-1所示:图1-1 LED与MCU的IO对应关系电路我们可以通过控制单片机IO口的输出电平状态来控制各个LED灯的亮灭。
开发板上还有2个可操作的按键S1,S2。
如图1-2所示。
图1-2 按键电路我们可以通过读取与按键相连的IO口的输入电平状态来执行相应的操作。
此外,S1,S2还可以作为外部中断源,触发中断。
【实验内容】1、用调用头文件的方法,使能MSP430F5529开发板上的8个LED灯依次按顺序循环点亮;2、用按键S1控制开发板上LED1的亮灭状态(查询法);3、用按键S2控制开发板上跑马灯的循环速度(中断方式)。
【实验步骤】内容1:使能开发板上的8个LED灯依次按顺序循环点亮1、打开CCSv5并确定工作区间,然后选择File-->New-->CCS Project 弹出图1-3对话框。
程序如下,但是进不了中断,有谁知道可以告诉我么?万万分感谢~~~char buffer[255];int flag = 0,cont = 0;char data[3]= {'0','0','\0'};uint8_t data1 = 0;uint16_t intialWheelValue = 0;uint16_t wheelValue = 0;FRESULT WriteFile(char* fileName, char* text, WORD size);void TimerB_Init(void);void DataAcq(){char data[3]= {'0','0','\0'};uint8_t data1 = 0;uint16_t intialWheelValue = 0;uint16_t wheelValue = 0;TimerB_Init();Dogs102x6_init();Dogs102x6_clearScreen();Buttons_interruptEnable(BUTTON_ALL); //按键中断使能buttonsPressed = 0;intialWheelValue = Wheel_getValue(); // 得到初始齿轮电位计采样值__enable_interrupt(); //使能全局中断while(!(buttonsPressed & BUTTON_S2)){Dogs102x6_stringDraw(3, 45, &data[0], DOGS102x6_DRAW_INVERT); //显示数wheelValue = Wheel_getValue();data1 = wheelValue/68; //得到当前齿轮电位计采样值if (intialWheelValue != wheelValue){ //若当前齿轮电位计采样值与初始齿轮电位计采样值不同,进行小时重置if (data1 < 10){data[0] = '0';data[1] = '0' + data1;}else if (data1 < 20){data[0] = '1';data[1] = '0' + (data1 - 10);}else if (data1 < 30){data[0] = '2';data[1] = '0' + (data1 - 20);}else if (data1 < 40){data[0] = '3';data[1] = '0' + (data1 - 30);}else if (data1 < 50){data[0] = '4';data[1] = '0' + (data1 - 40);}else if (data1 < 60){data[0] = '5';data[1] = '0' + (data1 - 50);}else {data[0] = '6';data[1] = '0';}}}}FRESULT WriteFile(char* fileName, char* text, WORD size){// Result codeFRESULT rc;// File system objectFATFS fatfs;// File objectFIL fil;UINT bw;// Register volume work area (never fails)f_mount(0, &fatfs);// Open filerc = f_open(&fil, fileName, FA_READ | FA_WRITE | FA_OPEN_ALWAYS);if (rc){die(rc);}//指针指到文本最后rc = f_lseek(&fil, f_size(&fil));if(rc){die(rc);}// Write to filerc = f_write(&fil, text, size, &bw);if (rc){die(rc);}// Close the filerc = f_close(&fil);if (rc){die(rc);}return rc;}/*定时器初始化*/void TimerB_Init(void){TB0CCR0 = 32768;TB0CTL = TBSSEL_0+TBCLR+MC_1; //TB0CCTL0 = CCIE;}#pragma vector = TIMERB0_VECTOR__interrupt void Timer_B0(void){cont = cont+1;if(cont == 1){cont = 0;flag = 1;buffer[0] = '[';buffer[1] = data[0];buffer[2] = data[1];buffer[3] = ']';WriteFile("1.txt",buffer,4); //写入数据}}。