MSP430单片机开发环境的使用
- 格式:pdf
- 大小:258.83 KB
- 文档页数:2
MSP430单片机的原理与应用1. 简介MSP430单片机是德州仪器公司(Texas Instruments)推出的一款低功耗、高性能的16位单片机,广泛应用于各种嵌入式系统和物联网设备中。
本文将介绍MSP430单片机的基本原理和常见应用场景。
2. 基本原理MSP430单片机采用哈佛结构的架构,拥有16位的CPU,8到256KB的闪存和0.5到16KB的RAM。
其低功耗特点使得它在电池供电的嵌入式设备中得到广泛应用。
MSP430单片机的工作原理可以简单概括为以下几个步骤: - 程序存储器中的指令被取出并送入指令译码器。
- 指令译码器将指令解码,并执行相应的操作。
- 执行的结果被存储器读写单元读取或写入。
- 控制单元协调整个系统的操作,包括时钟、中断、输入输出等。
3. 应用场景3.1 智能家居MSP430单片机在智能家居领域中具有广泛的应用。
通过连接传感器、执行器和通信模块,MSP430单片机可以实现对温度、湿度、光照等环境参数的监控与控制。
并且,MSP430单片机能够通过无线通信和云平台实现智能家居设备的远程控制和监测。
3.2 工业自动化在工业自动化领域,MSP430单片机能够通过连接传感器和执行器实现对生产过程的监测和控制。
它能够实时采集温度、压力、流量等参数,并根据设定的逻辑进行自动控制。
同时,MSP430单片机的低功耗特性使得它适合在工业现场长时间运行。
3.3 物联网设备随着物联网的快速发展,MSP430单片机在物联网设备中的应用越来越广泛。
它可以用于连接各种传感器、执行器和通信模块,实现对环境、设备等的监测和控制。
而且,MSP430单片机的低功耗特性使得它非常适合在物联网设备中使用,能够延长电池寿命。
3.4 医疗设备在医疗设备领域,MSP430单片机能够实现对患者的生理参数的监测和控制。
它可以连接各种传感器,如心电传感器、体温传感器等,实时采集患者的生理数据,并可以根据需要进行报警和控制操作。
MSP430单片机在调控LED植物智能补光系统中的应用中国是一个发展中的农业大国,农业问题始终是关系到中国经济社会发展的根本问题。
在我国, 农业的现状在极大程度上依然按传统方式, 高成本, 低效率, 投入较高, 产值较低, 这些特征使得农业成为国民经济中亟待发展的一环。
科学研究表明,光照度和光质对植物的光合作用、生长发育、物质代谢及结构形态等具有重要影响,其中380~760 nm 可见光波段是决定光合作用最重要的光照波段,但有效吸收波段主要为其中红、蓝两波段。
对农作物使用红、蓝光进行补光,使其处于最佳生长环境中,可以很大程度提高农作物产量,缓解我国的农业问题,为人们提供更加新鲜、高质量与高效的农产品。
同时,本项目采用了新光源LED灯(发光二极管,lighting emitting diode,简称LED)。
与目前传统光源(白炽灯、日光灯、高压钠灯)相比,拥有光源纯、波长类型多、节能环保、使用寿命长、发热少和易于控制等优点,更有利于节约能源。
同时我们设计的植物智能补光系统可以根据不同植物在不同生长阶段的需光量不同,进行精准化定量补光,从而能以最少的能耗使植物处于最佳生长状态。
本项目以LED植物智能补光系统为研究对象,通过科学的研究与分析,最终做成一个基于单片机的LED植物智能补光系统的模拟机。
在此系统工作前预先设定好该时期植物生长所需的温度、红蓝光照度阀值,温度传感器对温室内温度进行检测,当温度高于促进光合作用的温度阀值时,再分别对红、蓝光照度进行检测,实际光照度在阀值以内时,系统可以自动对补光状态,根据所设阈值与实际值之差计算实际需光量,进而再根据与实际需光量对应的两路PWM 控制信号的占空比,分别产生对应的PWM 信号,达到控制LED 灯组的亮度对植物实施精确补光的目的。
从而保证植物一直处于最佳生长状态。
2 系统硬软件设计2.1系统整体结构整个系统由五个模块组成,分别是控制模块、检测模块、电源模块、补光模块和用户交换模块组成。
MSP430单片机的开发及应用设计人:陈小忠西安邮电学院电子信息工程系电子0002班西安邮电学院63# 7100612003年7月目录第一章概述第二章MSP430 F149语言介绍第一节开发环境及程序下载第二节语言介绍第三章MSP430F149 资源的应用介绍及开发第一节中断介绍及存储器段介绍第二节硬件乘法器第三节P口第四节定时器及数模转换第五节时钟模块第六节USART通信模块第七节比较器第八节模数转换第四章MSP430F149开发板的介绍及测试第一节模数转换模块第二节传感器模块第三节外存和实时时钟模块第四节485和232模块第五节电源管理模块及晶振模块第六节PWM波形滤波第一章概述MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART 通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH 型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化 ,MSP430系列将会得到越来越多人的喜爱.通过两过多月的毕业设计,我对MSP430有了初步了解,对内部的硬件资源和自身的汇编语法进行了实验,并开发了一个应用板,并进行了调试.鉴于时间和能力有限,没能对所有的应用一一实验.第二章 MSP430 F149语言介绍MSP430是德州公司的新产品,有独特的开发环境和自身语言,下面是我在毕业设计中对F149的开发环境熟悉中遇到的一些问题的处理和汇编语言的用法及程序中遇到的问题的体会.第一节开发环境及程序下载1.开发环境:在EW23环境下进行编程,汇编,连接,在C—SPY环境下进行调试,下载是在连接之后,调试之前,通过计算机的串口下载的.关于环境的操作,可以参考有关资料,其中可能遇到的问题及解决方法有:(1) .汇编是对源程序而言的,因此必须打开一个源文件才能汇编,而连接是对一个工程文件而言的,连接是对工程文件的所有源代码(包括多个源文件)和数据的定位,因此连接必须打开一个工程文件才能连接.(2) 连接中必须将库文件的路径改正确,且必须选定C—SPY的驱动方式,即在project中的options的xlink的include下修改(先选中)xcl的库路径为$TOOLKIT_DIR$\icc430\msp430F149A.xcl ,选择C—SPY 的驱动drive为simulator或FLASH EMULATION TOOL ,当没连接430片子时可以选simulator,当连接430片子时,选 FLASH EMULATION TOOL进行在线下载调试.(3) 由于430支持汇编语言和C语言两种语言,因此可以在一个工程文件中同时用两种语言,但建议用汇编语言,因为便于在调试时寻找逻辑和指令的联系及地址的定位正确与否.(4) 在在线的C—SPY 的调试中,单步需要将Control的Reatime前的勾取消才能进行单步测试.(5) 在线调试时,不能将58 管脚(复位/非屏蔽中断)外部变高,否则,会强制退出调试环境.2.程序下载原理及脱机工作原理:程序的在线调试是通过JATG口和F149片子的 RST、TCK、TDI、TDO、TMS引脚按一定的时序串行的传递程序代码和数据的,调试指令的命令传递都是通过这些数据线和控制线传递的,下载时序可参见资料1,其中的地址0FFFEH为复位向量的地址,它是程序遇到非屏蔽中断和程序启动的首要地址,地址中存放的是程序段开始的首地址,因此必须把程序段的首地址标号表示在中断向量中或程序伪指令的开头位置,否则,连接时将会出错,具体的表示方法在下一节中表示.程序的下载和在线调试的电源是通过计算机在JATG提供的,不须另外给加电源.脱机工作时,是将F149的电源线上电,此时的复位时序同下载后在线复位的时序一样,只是时钟是通过F149内部时钟DCO提供的,上电后,程序将复位向量0FFFE中的地址装入PC,PC开始从程序段的首地址开始执行.脱机工作启动不需要任何操作,只需上电即可,电压要大于1.8v,一般取3v左右,另外,在脱机工作时,可以给RST端口加一个低电平脉冲以复位从程序开始重新执行.第二节指令介绍MSP430有自身语言,汇编语言也不同于其他类型的单片机,伪指令也是变幻魔测,但又很重要,下面是我毕业设计的一些尝试、出问题的地方.也可参见资料。
msp430 学习经验总结:⼀.MSP430开发环境建⽴1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。
2.插⼊USB仿真器,驱动选择安装⽬录的/drivers/TIUSBFET3.建⽴⼀个⼯程,选择"option"选项,设置a、选择器件,在"General"项的"Target"标签选择⽬标器件b、选择输出仿真,在"Linker"项⾥的"Output"标签,选择输出"Debug information for C-SPY",以输出调试信息⽤于仿真。
c、若选择"Other",Output下拉框选择"zax-m"即可以输出hex⽂件⽤以烧录,注意,此时仿真不了。
d、选择"Debugger"项的"Setup"标签,"Driver"下拉框选择"FET Debugger"e、选择"FET Debugger"项的"Setup"标签,"Connection"下拉框选择"Texas Instrument USB-I"4.仿真器的接⼝,从左到右分别为 " GND,RST,TEST,VCC"⼆.IO⼝数字输⼊/输出端⼝有下列特性:每个输⼊/输出位都可以独⽴编程。
允许任意组合输⼊、输出。
P1 和 P2 所有 8 个位都可以分别设置为中断。
可以独⽴操作输⼊和输出数据寄存器。
可以分别设置上拉或下拉电阻。
在介绍这四个I/O⼝时提到了⼀个“上拉电阻”那么上拉电阻⼜是⼀个什么东东呢?他起什么作⽤呢?都说了是电阻那当然就是⼀个电阻啦,当作为输⼊时,上拉电阻将其电位拉⾼,若输⼊为低电平则可提供电流源;所以如果P0⼝如果作为输⼊时,处在⾼阻抗状态,只有外接⼀个上拉电阻才能有效。
没学习一种单片机,第一步就是了解他所使用的开发环境,本文简单的介绍一下,IAR for MSP430的使用方法。
首先要安装好IAR for MSP430的开发环境。
安装完成后建议修改以下编辑选项,修改c语言关键字的字体和颜色,默认是粗体,黑色,看起来比较别扭,改为我们习惯的常规字体,蓝色就好了,具体修改操作如下:菜单栏tools----->options------>editor------>colours and fronts下面开始建立工程project----->create new project出现以下界面,根据个人爱好,可以选择创建的模板,我现在以empty project为例。
单击OK,跳出工程文件保存选项,选择好路径,输入工程文件名后保存,出现如下工程界面接下来开始创建源文件,创建方式有三种1、单击file---->new----->file2、file按钮下面的new document选项3、使用快捷键ctrl+n然后单击保存,在工程目录下创建source文件夹,用来保存.c文件,保存刚刚的文件名为main.c,如下图所示,单击保存,用同样的方式在创建main.h文件在workspace工作区,找到刚刚的工程名,右击他出现菜单,选择add------>add group,创建组,这里我们创建两个组,一个是source还一个是include,分别用来存放源文件和头文件,创建好后将main.c和main.h分别添加到这两个组中去,完后后如下图所示。
注意需要添加include查找目录,不然,include里的头文件找不到的,../include表示工程目录下的include文件夹打开main.c和main.h添加您的代码,保存后可以开始编译了,编译之前最好先保存一下workspace,然第一次编译的时候还是会提示你保存的,单击file----->save workspace,输入文件名后单击保存,如下图所示接下来还要选择cpu选项和调试选项,右击workspace下的工程名,出现options 选项,单击后打开options for node"工程名"窗口,里面对本工程进行修改1、修改cpu,在general options----->target下修改2、修改调试选项,在debugger---->setup里面选择仿真方式,根据您实际情况出发选择,如果有硬件仿真器就选择fet debugger,没得话就选择simulator 软防好了。
msp430f1611数据手册1. 引言MSP430F1611是一款高性能、超低功耗的16位微控制器,广泛应用于嵌入式系统开发等领域。
本数据手册将详细介绍MSP430F1611的技术规格、功能特性以及使用方法,旨在帮助开发人员更好地理解和应用该微控制器。
2. 技术规格2.1 主要参数MSP430F1611采用16位RISC结构,工作频率可达16MHz,具有8KB的可编程闪存以及512B的RAM。
其供电电压范围为1.8V至3.6V,功耗极低,适合电池供电系统。
此外,MSP430F1611还提供了多种通信接口,如UART、SPI和I2C,以及多种定时器和比较器功能。
2.2 存储器MSP430F1611拥有8KB的闪存,可用于存储用户程序和数据。
闪存不易丢失数据,且具有较快的读写速度。
同时,该微控制器还有512B的RAM用于暂存计算过程中的数据。
2.3 通信接口MSP430F1611支持多种通信接口,包括UART、SPI和I2C。
UART用于串行通信,可与其他设备进行数据传输。
SPI接口可实现高速的串行数据传输,广泛用于片上外设控制等场景。
I2C接口则适用于连接多个设备,并以多主从模式进行通信。
3. 功能特性3.1 ADC模块MSP430F1611集成了一套精密的模数转换模块(ADC),可进行模拟信号的采样和转换。
ADC模块具有多通道和多样本模式,能够实现高精度的模拟信号采集。
3.2 定时器MSP430F1611内部集成了多个定时器,如Watchdog Timer(WDT)和Timer_A。
WDT用于监控系统运行状态,防止死锁和系统崩溃。
Timer_A是一个通用定时器,可用于测量时间间隔、产生精确的时间延迟等。
3.3 低功耗模式MSP430F1611提供了多种低功耗模式,如休眠模式、停机模式和待机模式。
在这些模式下,微控制器的功耗将大幅降低,有助于延长电池寿命。
此外,MSP430F1611还支持快速唤醒,可在短时间内恢复到正常工作状态。
2.2 开发环境(实验1)MSP430的IAR最新版本软件按照默认安装之后,由程序组的IAR Systems――IAR Embedded Workbench KickStart for MSP430 V3 ――IAR Embedded Workbench可以进入IAR 的MSP430开发环境(见图2.2.1)。
图2.2.1 进入开发环境的方法第一次进入开发环境之后的界面如图 2.2.2。
这时,需要添加一个工作区,以及在工作区中添加一个项目,然后在项目中添加自己的程序代码。
最后编译,调试。
下面将分别讲述如何操作。
图2.2.2 第一次进入开发环境的界面添加一个新的工作区的方法为:点击菜单:File――New――Workspace,见图2.2.3。
图2.2.3 添加新的工作区屏幕将出现新的工作区(如图2.2.4),这时工作区内没有任何内容,需要添加一个用户项目。
具体方法见图 2.2.5。
图示为添加新的项目,也可以打开以前的项目(使用菜单中下面条目)。
按添加新项目之后,出现图2.2.6所示的界面,按ok即可。
之后需要填写项目名称,以及存放的位置,见图 2.2.7,注意记住自己输入的项目名称以及位置。
生成新项目之后,在工作区中显示出来,见图2.2.8。
如果此时关闭IAR开发环境,会提示是否保存工作区文件以及项目文件,同时要求输入工作区名以及路径。
如果再次打开IAR开发环境,会提示是否打开以前编辑过(或已经存在)的工作区文件,如图2.2.9所示。
这时点击test文件名,再点击“open”,即可进入图2.2.8所示的刚才正在编辑的项目工程文件“test项目”。
图2.2.4 刚添加没有项目的工作区图2.2.5 在工作区添加项目图2.2.6 在工作区添加项目图2.2.7 输入的项目名称以及存放位置图2.2.8 生成新项目之后,在工作区中显示出来图2.2.9 进入开发环境时提示是否打开已经存在的工作区文件此时的项目文件为空的项目,并没有任何实质内容,需要将所编写的源文件添加到这个空的项目中。
IAR环境下的msp430c语言编程MSP430系列单片机实用C语言程序设计扩展的关键字1.asm也可以写成__asm。
功能是在C程序中直接嵌入汇编语言。
语法:asm(“string”);其中string必须是有效的汇编语句。
2.__interrupt放在函数前面,标志中断函数。
下面这段程序是异步串行口UART0的接收中断函数。
UART0RX_VECTOR为异步串行口UART0的接收中断向量。
举例:#pragma vector=UART0RX_VECTOR__interrupt void UART0_R(void) //UART0接收中断{TXBUF0=RXBUF0;}3.__monitor放在函数前面,功能是但这一函数执行的时候自动关闭中断。
应该尽量缩短这样的函数,否则,中断事件无法得到及时的响应。
4.__no_init放在全局变量前面,功能是使程序启动时不为变量赋初值。
5.__raw编译中断函数时,编译器会自动生成一段代码,首先保存当时所用到CPU内寄存器的内容,退出中断程序时再进行恢复。
将__raw放在中断函数前可以禁止保存CPU内寄存器的过程,当然退出时也不会恢复。
是否为中断函数使用此关键字要根据需要而定。
6.__regvar放在变量前面,作用是声明变量为寄存器变量。
可以用于整数、指针、32位浮点数以及只含有一个元素的结构和联合。
寄存器变量的地址只能为R4或者R5,也不能用指针指向这个寄存器变量,而且必须用__no_init禁止初始化。
如:__regvar __no_init unsigned char q0 @ __R4;其他不常用的关键字还有:__data16、__intrinsic、__noreturn、__root、__task、__word16。
内部函数本节将介绍内部函数的原型和功能。
1.__bcd_add_shortunsigned short __bcd_add_short(unsigned short, unsigned short);功能:两个16位BCD格式的数相加,返回和。
MSP430开发环境一、 硬件平台1、MSP430最小系统及外围部件基于MSP430F149芯片所设计的最小系统如图1-1所示。
J3...图1-1 MSP430最小系统图MSP430F149模块提供如下外围部件功能:◆ 基础时钟模块,包括1个数控振荡器(DCO )和2个晶体振荡器; ◆ 看门狗定时器Watchdog Timer ,可用作通用定时器; ◆ 带有3个捕捉/比较寄存器的16位定时器Timer-A ; ◆ 带有7个捕捉/比较寄存器的16位定时器Timer-B ; ◆ 2个具有中断功能的8位并行端口:P1与P2; ◆ 4个8位并行端口:P3、P4、P5与P6; ◆ 模拟比较器COMPARA TOR_A ; ◆ 12位A/D 转换器;◆ 2通道串行通信端口(软件选择UART/SPI 模式);◆ 1个硬件乘法器;◆ 60KB+256字节FLASH ,2KRAM 。
MSP430F149模块外围部件的操作方法、寄存器使用可参考说明文档:MSP430x1xx Family User's Guide (Rev. F).pdf 2.开发板基于MSP430F149芯片所设计的MSP430开发板如图1-2所示。
该开发板包含的部件如下:YUYINGSMLCDZIGBEEI/OJTAGMSP430SWRESET LED2POWERLED1switch图1-2 MSP430开发板表1-1 LCD 引脚功能表1-2:YUYIN引脚功能表1-3:GSM引脚功能表1-4:I/O引脚功能表1-4:ZIGBEE引脚功能二、软件平台1.建立开发环境在光盘中找到software文件夹下的EW430-ev-web-342A.exe文件并运行。
在图1-3 IAR软件安装界面安装过程中,最简单的方法是按默认位置安装。
图1-3为安装时出现的第一个界面,选择按钮Next,当图1-4界面出现后,默认选择Accept按钮。
图1-4 IAR软件安装界面-同意协议在下一个界面(图1-5)中,需要输入License号,这时找到software文件夹下的keygen.exe文件并运行。
MSP430系列超低功耗单片机及应用O引言单片机的应用日趋广泛,对处理器的综合性能要求也越来越高。
纵观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题。
单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域。
在这些应用中,目前也出现了一些新的趋势,主要体现在以下几个方面:1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用纽扣电池供电,如无线传感器网络(WSN)、手持式仪表、玩具等。
这就要求系统功耗O 引言单片机的应用日趋广泛,对处理器的综合性能要求也越来越高。
纵观单片机的发展,以应用需求为目标,市场越来越细化,充分突出以“单片”解决问题。
单片机系统作为嵌入式系统的一部分,主要集中在中、低端应用领域。
在这些应用中,目前也出现了一些新的趋势,主要体现在以下几个方面:1)以电池供电的应用越来越多,而且由于产品体积的限制,很多是用纽扣电池供电,如无线传感器网络(WSN)、手持式仪表、玩具等。
这就要求系统功耗尽可能低。
2)随着应用的复杂度的提高,对处理器的功能和性能要求不断提高,既要外设丰富、功能灵活,又要有一定的运算能力,能做一些实时算法,而不仅仅做简单的控制。
3)产品更新速度快,开发时间短,希望开发工具简单、廉价、功能完善。
特别是仿真工具要有延续性,能适应多种MCU,以免重复投资,增加开发投入。
4)产品性能稳定,可靠性高,既能加密保护,又能方便升级。
本文介绍一种迎合这种趋势的超低功耗单片机,即MSP430系列单片机,它代表了未来单片机的一种发展方向。
l MSP430单片机美国德州仪器公司(TI)推出的MSP430系列超低功耗16位混合信号处理器(Mixed Signal Processor),集多种领先技术于一体,以16位RISI处理器、超低功耗、高性能模拟技术及丰富的片内外设、JTAG仿真调试定义了新一代单片机的概念,产品线也非常完整,给人耳目一新的感觉。
MSP430单片机实验报告--段式LCD显示1.实验介绍:实验演示了将ADC结果用段式LCD显示,并且还原输入电压也采用段式LCD显示。
ADC的结果可以通过ADC12MEM0的值来显示。
当程序运行时,LCD屏幕采用10进制显示出ADC12MEM0的值。
2.实验目的:a.熟悉IAR5.0软件开发环境的使用b.了解MSP430段式LCD的工作方式c.掌握MSP430段式LCD的编程方法3.实验原理:驱动LCD需要在段电极和公共电极上施加交流电压。
若只在电极上施加直流电压,液晶本身发生劣化。
解决这个问题的一般方法是使用短时也就驱动器,如MSP430F4xx系列单片机就集成有段式液晶驱动。
如果要在没有液晶驱动器的情况下使用段式液晶显示器,就要用到如图1所示电路。
图1中,A为电极信号输入端,控制该段液晶是否被点亮;B为交流方波信号输入端,将有一个固定频率的方波信号从此端输入;com为公共背极信号。
工作原理为;固定的方波信号被直接加载到液晶公共背极,同时该信号通过一个异或门加载到液晶段极。
当A端为低电平时,液晶的段极与公共背极将得到一个同相、同频率、同幅度的方波信号,液晶的两端始终保持没有电压差;当A端为高电平时,液晶的段极也公共背极将得到一个反相、同幅度、同频率的方波信号,液晶两端将保持一个交流的电压差。
这样既能使液晶保持点亮状态,又不会发生劣化而损坏液晶显示器。
图一.段式液晶驱动电路4.实验步骤:(1)将PC 和板载仿真器通过USB 线相连;5.实验现象:段式LCD显示屏显示的数字为002031,ADC12MEM0的值为07EF,其值为16进制,将其转换后值为2031与屏幕显示一致。
6.关键代码分析:#include <msp430x26x.h>#include "General_File.h"#include "I2C_Define.h"void I2C_Start(void){DIR_OUT;SDA_1;I2C_Delay();SCL_1;I2C_Delay();SDA_0;I2C_Delay();SCL_0;}//End I2C_Start/*函数名:I2C_Stop 功能:遵循I2C总线协议定义的停止*/void I2C_Stop(void){DIR_OUT;SDA_0;I2C_Delay();SCL_1;I2C_Delay();SDA_1;}//End I2C_Stop/* 函数名:I2C_ReceiveACK 功能:待接受ACK 信号,完成一次操作*/void I2C_Write_ACK( void ){SDA_1;DIR_IN;SCL_1;I2C_Delay();while(SDA_IN );SCL_0;I2C_Delay();DIR_OUT;return;}//End I2C_ReceiveACK/* 函数名:2C_Read_Ack 功能:接受数据后发送一个ACK信号*/void I2C_Read_Ack(void){DIR_OUT;SCL_0;SDA_0;I2C_Delay();SCL_1;I2C_Delay();SCL_0;SDA_1;}//End I2C_Read_Ack/* 函数名:I2C_Read_NoAck 功能:最后接受数据后发送NoACK信号*/void I2C_Read_NoAck( void ){DIR_OUT;SCL_0;SDA_1;I2C_Delay();SCL_1;I2C_Delay();SCL_0;}//End I2C_Read_Ack/* 函数名:I2C_Receiveuchar 功能:接受一个字节的数据*/uchar I2C_Receiveuchar(void){uchar Read_Data = 0x00; //返回值uchar DataBit = 0x00; //每一个clk 接受到的数据SCL_0;I2C_Delay();SDA_1;DIR_IN;for( uchar i = 0;i < 8;i++ ){SCL_1;I2C_Delay();DataBit = SDA_IN;SCL_0;I2C_Delay();I2C_Delay();Read_Data = ( ( Read_Data << 1 ) | DataBit ); //将数据依次存入Read_Data }return( Read_Data );}//End I2C_Receiveuchar/* 函数名:I2C_Senduchar 功能:遵循I2C总线协议定义发送一字节数据*/void I2C_Senduchar( uchar Wr_Data ){DIR_OUT;SCL_0;SDA_1;for( uchar i = 0;i < 8;i++ ){if( Wr_Data & 0x80 ){SDA_1; //最高位是否为1,为1则SDA= 1 }else{SDA_0; //否则SDA=0}I2C_Delay();SCL_1;I2C_Delay();SCL_0;I2C_Delay();Wr_Data <<= 1; //数据左移一位,进入下一轮送数}SDA_1;return;}//End I2C_Senduchar/************ BU9796FS相关指令定义**********/#define Write_Com 0x80#define Write_Data 0x00#define Display_ON 0x48#define Half_Bias 0x44#define Set_Reset 0x6A#define Ext_Clock 0x69#define Blink_Mode0 0x70#define Blink_Mode1 0x71#define Blink_Mode2 0x72#define Blink_Mode3 0x73#define Pixel_ON 0x7E#define Pixel_OFF 0x7D#define BU9796_Addr 0x7C#define Base_Add 0x00/************** 引用的外部函数*********************/extern void I2C_Start(void);extern void I2C_Stop(void);extern void I2C_Write_ACK(void);extern void I2C_Senduchar( uchar Wr_Data );/************** 定义段式LCD的阿拉伯数字码*********************/const uchar Num_Code[] ={0xAF, // 00x06, // 10x6D, // 20x4F, // 30xC6, // 40xCB, // 50xEB, // 60x0E, // 70xEF, // 80xCF, // 90x10, //. 如果要显示小数点,必须要将此值与下一位值相加0x88 //: ,包括LCD上的两个":"};uchar Disp_Data[]={ 5,5,7,3,1,5 };/* 函数名:Segment_Display 功能:段式LCD数据包写入服务程序,负责将一串字符送到段式LCD 上去显示*/void Segment_Display( const uchar Addr,const uchar *P_Data, uchar Length ){uchar User_Addr = Addr;I2C_Start(); //启动BU9796I2C_Senduchar( BU9796_Addr ); //写BU9796的物理地址I2C_Write_ACK();I2C_Senduchar( Base_Add + User_Addr * 2 ); //发送起始地址,下一个紧跟的是数据I2C_Write_ACK();for( uchar i = Length ;i > 0;i-- ){if( *P_Data != 0x0A ) // 显存中是否有小数点?如果有,就将小数点码值与下一位码值相加{I2C_Senduchar( Num_Code[ *P_Data++ ] );}else{uchar Temp_Disp_Data = Num_Code[ *P_Data++ ];I2C_Senduchar( Temp_Disp_Data + Num_Code[ *P_Data++ ]);i--;}I2C_Write_ACK();}I2C_Stop(); //访问结束}/* 函数名:Init_BU9796FS 功能:初始化驱动芯片BU9796的相关参数*/void Init_BU9796FS( void ){I2C_Start(); //启动BU9796I2C_Senduchar( BU9796_Addr ); //写BU9796的物理地址I2C_Write_ACK(); //等待ackI2C_Senduchar( Write_Com + Set_Reset); //启动软复位I2C_Write_ACK(); //等待ackI2C_Senduchar( Write_Com + Blink_Mode2 );I2C_Write_ACK();I2C_Senduchar( Write_Com + Display_ON ); //开显示I2C_Write_ACK();I2C_Senduchar( Write_Data + Base_Add ); //发送起始地址,下一个紧跟的是数据I2C_Write_ACK();for( uchar i = 0;i<10;i++ ) //清LCD显示屏{I2C_Senduchar( 0x00 );I2C_Write_ACK();}I2C_Stop(); //访问结束}/* 函数名:Init_MCU 功能:初始化MSP430的相关参数*/void Init_MCU( void ){/* WDTCTL = WDTPW + WDTHOLD; */ // 关看门狗BCSCTL3 |= XT2S_2; // XT2频率范围设置BCSCTL1 &= ~XT2OFF; // 打开XT2振荡器do{IFG1 &= ~OFIFG; // 清振荡器失效标志BCSCTL3 &= ~XT2OF; // 清XT2失效标志for( uint i = 0x47FF; i > 0; i-- ); // 等待XT2频率稳定}while (IFG1 & OFIFG); // 外部时钟源正常起动了吗?BCSCTL2 |= SELM_2 + SELS ; // 设置MCLK、SMCLK为XT2P4OUT &= ~BIT4;P4DIR |= BIT4; // 打开LCD显示部分的电源//P8REN |= BIT3 + BIT4;P8DIR |= BIT3 + BIT4; // 配置MSP430与BU9796的数据数P8OUT |= BIT3 + BIT4;P5OUT &= ~BIT7; // 点亮外部LEDP5DIR |= BIT7;}/* 函数名:main 功能:系统入口主函数*/void main( void ){WDTCTL = WDTPW + WDTHOLD; // 停看门狗ADC12CTL0 = SHT0_2 + ADC12ON; // 设置采样时间,开ADC12,Vref = V ACC ADC12CTL1 = SHP; // 使用定时器采样ADC12MCTL0 = INCH_1; // 选用A1通道ADC12IE = 0x01; // 开ADC12MCTL0中断ADC12CTL0 |= ENC; // 启动转换ADC12MCTL0 = INCH_1;P5DIR |= BIT7; // P5.7输出-LED/*for (;;){ADC12CTL0 |= ADC12SC; // 软件启动转换_BIS_SR(CPUOFF + GIE); // LPM0模式,由ADC12中断唤醒}*//* 功能:将16进制转化为10进制*/int a,b;a=ADC12MEM0;Disp_Data[5]=a%10;b=a/10;Disp_Data[4]=b%10;a=b/10;Disp_Data[3]=a%10;b=a/10;Disp_Data[2]=b%10;a=b/10;Disp_Data[1]=a%10;b=a/10;Disp_Data[0]=b%10;Init_MCU();Init_BU9796FS();P5OUT |= BIT7;Segment_Display( 0,Disp_Data,6 );_BIS_SR( CPUOFF );}#pragma vector=ADC12_VECTOR__interrupt void ADC12_ISR (void){ _BIC_SR_IRQ(CPUOFF); }。
MSP430开发环境-AQ430使用说明本文档只针对AQ430 V2.0.5.4-V2.0.6.2有效,使用更低的版本时本文当只供参考,并请留意我们针对更高版本的更新。
是公司专为(德州仪器)16位单片机MSP430系列单片机开发的软件环境,该AQ430AQ TI开发环境包含项目管理、源代码编辑和强大的程序调试环境,该调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外功能。
特性● AQ430软件开发工具是基于MSP430flash单片机的完整的软件环境。
● 用户可以在IDE软件环境下建立工程文件、编辑、编译、链接、调试。
● 用户直接通过JITAG接口和目标板(MSP430flash开发工具)连接调试用户程序● 在非实时时钟调试中,AQ430在C和汇编语言中软件断点不受限制。
在实时时钟调试中,硬件断点保持通常个数。
● 用户可以自由地在C语言和汇编语言窗口中切换,汇编代码由C语言直接产生。
● 不占用MSP430硬件资源。
● 支持多操作系统:Win98/ME/NT4/2000/XP支持型号MSP430F1xx系列:MSP430F1101A, F1111A, F1121A, F1122, F1132, F1222, F1232, F122, F123,,、F156、F157、,F149,F1491F155F133, F135, F147,F1471,F148,F1481F,,、F167,F168, F169F1610F1611F1612MSP430F4XX系列,、、、、、F423, F425,F412,F413, FE413F415F417FW423FW425FW427、、、、、、、、7FG438FG439F427,FE423FE425FE427F435F436F437FG43、F447, F448, F449,软件下载AQ430软件开发工具允许用户免费使用30天。
30天若要继续使用,则需购买该软件。