msp430f6638实验指导书教学开发系统_第1页
msp430f6638实验指导书教学开发系统_第2页
msp430f6638实验指导书教学开发系统_第3页
msp430f6638实验指导书教学开发系统_第4页
msp430f6638实验指导书教学开发系统_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章MSP430F6638教学开发系 MSP430F6638微控制器介 MSP430F6638特 MSP430F6638引脚图及结构框 教学开发系统硬件资源介 第2章集成开发环境CCS的安装与使 利用CCSv5.3导入已有工 利用CCSv5.3新建工 利用CCSv5.3调试工 CC5.3资源管理器介 第3章基础实 GPIO模 Lab1-1按键对LED灯的控制实验(查询方式 Lab1-2多个按键对LED灯的控制实验(查询方式 Lab2-1段式液晶实 中 Lab3-2低功耗工作模式实 定时 Lab4-2看门狗定时器(WDT)实 Lab4-3实时时钟(RTC)实 Lab4-4频率计实 模拟电压比较器B模 Lab5-1电压比较器实 Lab5-2触摸按键实 Lab6-1直流电机简单控制实 Lab6-2步进电机简单控制实 通用串行通口----SPI模 Lab7-1SD卡读写实 Lab7-2TFT屏幕显示实 通用串行通口----I2C模 Lab8-1数码管显示实 Lab8-2矩阵键盘实 Lab8-3温度检测与电量检测实 通用串行通口----UART模 Lab7-1RS232串口实 ADC与DAC模 Lab10-1ADC实 Flash模 第4章综合实 4.2.7问题思 1章MSP430F6638教学开发MSP430F6638教学开发系统由主板及电池板、键盘板、电机3个子板构成。系统核心CPU采用TI公司MSP430系列16位超低功耗MCU中的F6638,系统还拥有MSP430F6638微控制器MSP430F6638低电源电压范围:1.8V激活模式待机模式带有晶振的安全装置、且电源器可用、完全RAM保持、快速唤醒2.2V1.8µA,3.0V2.1µA(典型值RTC(LPM3.0V1.1µA(典型值关断模式3.0V0.3µA(典型值3µs内从待机模式唤醒(典型值16(RISC)20MHz(FLL)低功耗低频时钟源低频修整参照源32kHz32MHz3,57个捕捉/162个通用串行通具有共用基准、采样保持、和自动扫面功能的12位模数(A/D)转换12(D/A)转换160LCD326通道直接内存 MSP430F6638的引脚图如图1.1.1所示,结构框图如图1.1.21.1.1MSP430F66381.1.2MSP430F6638 主板是MSP430F6638教学开发系统的,板上不但有TI公司高性能低功耗的16MCUMSP430F6638,还集成了板载仿真器以及丰富的外设资源,主要包括有电源模块:集成了电源选择开关(3种电源串行通口:1个RS232、1个音频模块:Linein、Lineout人机交互模块:LED1~LED5、S1~S5、I2C接口:2组—P11、段式液晶模块:单色,68MicroSD主板硬件资源图请看图1.2.1。注意:主板有3个硬件版本,分别v1.93、v1.93av1.953个硬件版本区别不大,只与v1.95版本主板的程序完全通用,与v1.93版本的程序大部分通用,只是涉及TFT屏幕显1.2.1MSP430F6638电源模供3.3V供电(v1.95版本主板采用TITPS73533,SW1电源选择开关为用户提供3种1.2.2系统3种供电选择提供1A电流);SW1拨至USB位置,系统由主板右侧的USB接口(J1)供电1.2.3.1.2.41.2.53.3V电源的供电跳线帽,断开后串接电流表可用于测量系统功耗;LED7、LED8指示灯指示5V、3.3V电源供电状态。Header接口,外观与电路原理见下图。1.2.61.2.71.2.81.2.9位序号定说序号定说13781.2.1CC1101位序号定说序号定说(RF左侧124位序号定说序号定说(RF右侧1234567891.2.2RFHeadereZ430-FET模块上拥有独立的电源转换TPS77301,该向eZ430-FET模块提供3.6V,最大250mA的电流,该电平仅提供eZ430-FET不向其它任何位置供电,供电状态LED6模块中右下角的P2跳线就是eZ430-FET模块与MSP430F6638的通口,连接“TEST”的UART1的串行通讯连接功能。1.2.10位J6PC时RESETJ6PC时RESET连接J6与MSP430F6638的UART断开J6与MSP430F6638的UART连接J6与MSP430F6638的UART断开J6与MSP430F6638的UART1.2.3P2串行通信口,P24的跳线移除时,断开MSP430F6638与RS485串口的连接。1.2.11RS4851.2.12RS485RS232通信模块采用的是TI公司的MAX3232E,RS232接口与MicroSD接口通过TI公司的TS3A24157高速开关构成端口复用形式。1.2.13RS2321.2.14RS2321.2.15RS232音频模(MIC信号由麦克风(MIC)输入;短接右侧两个插针时,音频信号由Linein接口(J4)输入。侧两个插针时,音频信号由扬声器(Speaker)输出;短接右侧两个插针时,音频信号由Lineout接口(J3)输出。1.2.161.2.171.2.18ADC0~3.3VP23,

1.2.191.2.20人机交互1.2.21Jumper(P191.2.221.2.231.2.4TFT屏幕模TFT屏幕采用是一块高亮度、低功耗的2.2英寸LCD屏幕,屏幕分辨率为320×240、具有18位色彩深度。系统通过SPI接口控制屏幕显示,在无信号情况下为常黑状态。v1.93与v1.93a版本主板屏幕的LED背光由TI公司的TPS76650进行控制(v1.95版本主板采用TPS75105P10的最右侧跳线来手动关闭背光。1.2.25TFT1.2.26TFT1.2.27TFT段式液晶1.2.281.2.29I2C位序号定说序号定说I2C1234781.2.4I2CBoosterPack位序号定说序号定说1234568912381.2.5BoosterPack接口引脚定义(v1.93v1.93a版本主板电池子板上包含一块3.7V,800mAH的聚合物锂离子电池,可以为系统提供长达10小时以上的供电。板上还有TI公司先进的电源管理,能够实现智能充放电管理、电池状态监测、DC-DC稳压输出等功能。1.2.30Li- 电压3.7V,容量持续放电电流:1.0C(800mA;最大充电电流:1.0C(800mA;电池需要充电时,只可以将电池子板插到主板背面后通过主板左侧USB口(J6)给电池充电(USBJ1没有充电功能,不支持其他方式为电池充电。充电时,将主板左LED9LED9熄灭(300mA充电电流约需要4.5小时。根据负载不同,环境温度不池供电时间会发生变化。电池子板上采用TI公司BQ24230锂离子电池充电管理做充放电控制最大充电电500mA1.2.31充电时,电池子板上的LED1会点亮,同时主板右上角处的LED9也同时点亮。当充电结束时,这两处的LED灯会同时熄灭。电池的最大充电电流可以通过电池子板上P31.2.32充电电流选择跳线P3位挂起(不充电1.2.6电池子板上通过TI公司是BQ27410电量监测对电池电量做实时监测,BQ27410采用获专利的ImpedanceTrack™算法量监测,可提供剩余电池容量(mAH)、充电状态1.2.33电池升压锂离子电池输出电压为3.7V且不稳定,电池子板上使用TI公司的TPS63061DC-DC转换将电池电压提升到稳定的5V电压对外输出。TPS63061专门为电池供电的产品提供了一套电源解决方案,可以升压或者降压,效率高达93%。1.2.341.2.35矩阵键4×4矩阵键盘通过子板上的TI公司TCA6408A8位I2C扩展进行行列扫描,获取扫描结果后通过I2C总线将结果发送给主板。1.2.36数码子板上的8个七段数码管通过TI公司的TCA6416A16位I2C扩展控制显示,点。如七段数码管显示异常,可通过模块上的RESET按键来随时重置数码管模块。1.2.371.2.38Motor用TI公司DRV8833双路H桥接驱动控制,且都带有光耦测速模块。1.2.39直流电1.2.40步进电1.2.41光耦测速1.2.42CCS(CodeComposerStudio)是TI公司研发的一款具有环境配置、源文件编辑、程序调试和数据分析等工作。CCSv5.3为CCS的版本,功能更强大、性能更稳定、可用性更高,是MSP430开发的理想工具。CCSv5.3的安运行的安装程序ccs_setup_5.3.0.00090.exe,当运行到如图2.1.1处时,选Custom选项,进入手动选择安装通道2.1.1LowPowerMCUs的选项。单击Next,保持默认配置,继续安装。2.1.2安装过程图2.1.3安装图2.1.4安装完单击Finish,将运行CCS,弹出如图2.1.5所示窗口,打开“电脑”,在某一磁所建文件夹,不勾选"Usethisasthedefaultanddonotaskagain"。2.1.5Workspace在此,选择CODESIZELIMITED(MSP430)选项,在该选项下MSP430,CCS免费开放16KB的程序空间;若您有,可以参考以下进行的认证:/index.php/GSG:CCSv5Runningforthetime,单Finish即可进入CCSv5.3开发集成环境,如图2.7所示。图2.1.6选择窗图2.1.7CCSv5开发集成环境界CCSv5.3在此以实验一的工程为例进行讲解,首先打开CCSv5.32.2.1CCSv52.2.2(3)单击Browse选择需导入的工程所 ,在此,选择F\MSP430F6638\Workspace\MSP430F6638EVM\LAB01(需在此之前,将实验代码到工2.2.3(4)单击Finish,即可完成既有工程的导入CCSv5.3图2.3.1新建CCS工程在Device部分选择器件的型号:在此Family选择MSP430ariant选择MSP430X6XXfamily,选择MSP430F6638;Connection保持默认选择空工程,然后单击Finish完成新工程的创2.3.2特别提示:若要新建或导入已有.h或.c文件,步骤图2.3.3新建h文件图2.3.4新建.c文件图2.3.5导入已有文件2.3.6若已用其它编程(例如IAR),完成了整个工程的开发,该工程无法直接移植入有.h和.c文件,从而完成整个工程的移植。CCSv5.3验一为例进行讲解:首先导入实验一的工程,导入步骤请参考2.2节,如图2.4.1所示,其中MSP430F6638.ccxml目标配置文件已经正确创建,即可以进行编译调试,无需重新创在此对myccs1的工程再次创建目标配置文件。F6638F6638目标2.4.1LAB1ConfigurationFile2.4.2置文件,因此,将配置文件命名为MSP430F6638.ccxml,如图2.4.3所示。2.4.32.4.42.4.5所示,一个项目可以有多个目标配置,但只有一个目标配置在活动模式。要查看系统上所有现有目标配置,只需要去View-->Configurations查看。2.4.5编译目标工程。在第一次编译实验工程时,系统会提示自动创建rts430xl.lib库文件,您可以选择等待创建完成,但可能会花费较长的时间。或者,为了方便,在编译之前将本实验文件夹内的rts430xl.lib库文件到CCSV5.3的库资源文件夹内,其路径为:编译结果,如图2.4.6所示,表示编译没有错误产生,可以进行调试;如果程序有Problems窗口显示,根据显示的错误修改程序,并重新编译,直到无错误提2.4.6单击绿色的Debug按钮进 调试,得到图2.4.7所示的界面2.4.7断点来调试程序:选择需要设置断点的位置,右击鼠标选择Breakpoints→Breakpoint,断单步调试按钮配合断点单步的调试程序,单击重新开始图标定位到在程序调试的过程中,可以通过CCSV5.3查看变量、寄存器、汇编程序或者是击菜单View→Variables,可以查看到变量的值,如图2.4.8所示。2.4.8View→Registers,可以查看到寄存器的值,如图2.4.92.4.9点击菜单View→Expressions,可以得到观察窗口,如图2.4.102.4.10View→Disassembly,可以得到汇编程序观察窗口,如图2.4.112.4.11View→MemoryBrowser2.4.122.4.12View→Breakpoints,可以得到断点查看窗口,如图2.4.132.4.13 CC5.3CCSv5.3具有很强大的功能,并且其的资源也非常丰富,利用其资源进行MSP430单片机开发,将会非常方便。现在演示CCSv5.3资源管理器的应用。如图2.5.1所示,通过Help--> etoCCS打开CCSv5.3的欢迎界面。2.5.1具体TI欢迎界面如图2.5.2所示,利用NewProject可以新建CCS工程,具体新建步骤可以参考2.3节:利用CCSv5.3新建工程;利用Examples可以搜索到示例程序资源;利用ImportProject可以导入已有CCS工程文件,具体导入步骤可以参考2.2节:利用CCSv5.3导入已有工程;利用Support可以获得技术支持;利用WebResources可以进入CCSv5.3网络,学习CCSv5.3有关知识。2.5.2TI在“Packages”下拉菜单下选择ALL,进入CCSv5.3资源管理器,如图2.5.3所示。MSP430Ware。MSP430WareMSP430MCU器件的代码范例、数据表与其他设计资源整一个便于使用的程序包,基本上包含了成为一名MSP430MCU2.5.3CCSv5.3开发装置资源以及MSP430。2.5.4MSP430ware界其中包含F5xx/6xx系列的用户指导、、勘误表以及示例代码。2.5.5CodeExamplesMSP430F663x,在右面窗口中,将得到MSP430F663x有关各外设的应用程序资源,如图2.5.6所示。2.5.6MSP430F663x展开Libraries,得到如图2.5.7所示的界面,其中包含MSP430驱动程序库以及USB的开发资源包。“MSP430驱动程序库”为全新高级API,这种新型驱动程序库能够使用户更容易地对MSP430硬件进行开发。就目前而言,MSP430驱动程序库可支持MSP430F5xx和F6xx器件。MSP430USB开发资源含了开发一个基于USB的MSP430项目所需的所有源代码和示例应用程序,该开发资源包只支持MSP430USB设备。图2.5.7管理430Ware430Ware是CCS中的一个附带应用,在安装CCSV5的时候可选择同时安430Ware,在 官网上也提供单独的 安装程序 p430ware)430WareMSP430所有系列型号Datasheet,User’sguide430WareTI开发板(持续以方便用户进行上层的开发。CCS中单击“view”->“TIResourceExplorer”2.5.8所示的MSP430Ware430Ware的界面。2.5.8TIResourceExplorer430Ware的界面左侧3个子菜单,分Device,里面包MSP430所有的系列型号;DevelopmentTools,里面包括TIMSP430较新的一些开发套件的资料;和Libaries,包含了可用于F5F6系列的驱动库函数以及USB的驱动函数。2.5.9TIResourceExplorer2.5.10Devices的子目前所有的MSP430的型号,找到正在使用的型号,例如MSP430G2xx,同样单击文字前的三角下拉键,在子User’sGuide,在用户指南中有对该系列MSP430的CPU以及模块,包括寄存器配置,工作模式的详细介绍和使用说明;同时可以找到的是该系列的Datasheet,是与具体的型号相关,所以在datasheet的子2.5.10MSP430ware界参考。如图2.5.11所示,选择具体型号后,在右侧窗口中看到提供到的参考示例程序。为更好2.5.11MSP430ware界2.5.12MSP430ware界经过上一步操作后,CCS会自动生成一个包含该示例程序的工程,用户可以直接进 和调试。在DevelopmentTools的子 2.5.13MSP430ware界为简化用户上层开发,TI给出了MSP430模块的驱动库函数,这样用户可以430WareLibraries子中方便地找到。目前对DriverLib的支持仅限于MSP430F5F6系列。2.5.14MSP430ware界面驱动库函找到进行430开发所需要的一些帮助,包括用户指南,和参考例程。3实MSP430F6638教学开发系统拥有众多的外设资源,可以完成丰富的实验项目,这一章GPIO设计了两个简单的实验让大家了解GPIO的用法,这为后面更次的IO操作做了铺GPIOMCUGPIO接口,GPIO管脚也是MCU上数量最多的管脚,现在MCU上的GPIO一般都具有多种复用功能,可以通过进行配置。GPIO是MCU与外界交互的重要途径,它具有如下的可以独立控制每个GPIO口的方向(输入/输出模式可以独立设置每个GPIO的输出状态(高/低电平所有GPIO口在复位后都有个默认方向(输入/输出MSP430F8O接口类型丰富,1~4具有输入输出、中断和外部功能模块,98OI/O引脚单独配置输入或输出方向,每个引脚可以单独读或写。1~4~P4I/O引脚的中断可以单独启用和配置,在输入信号处于上升或下降沿时提供中断。在一些设备中,还会附加具有中断能力的端口,(除中断向量寄存器是用命名的方式来操作的。例如:V在1V和2常O的配置方式通过来实现。Lab1- 按键对LED灯的控制实验(查询方式实验介电平控制,实现LED灯的亮与灭。实验目实验原方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,中断中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求图3.1.1MSP430F6638P4图3.1.2按键模块原理图图3.1.3寄存器描述主板上右下角LED1~LED5指示灯与MSP430F6638P4.5~P4.7、P5.7、P8.0图3.1.4LED#define/*Port4Input#define/*Port4Output#defineP4REN/*Port4Direction/*Port4ResistorEnable3.1.1.4程序分询判断,最后对P4.0的电平高低分别作处理来控制LED灯。图3.1.5程序流程图voidmain(void){WDTCTLWDTPW //关闭看门狗定时P4DIR| //设置4.5口为输出模P4REN| //使能P4.0上下拉电阻功P4OUT| //置P4.0为上拉电while{if(P4IN&BIT0) P4OUT|=BIT5; //S7按键抬起,P4.5输出高(LED5点亮)P4OUT&=}}实验步PCUSB打开CCS集成开发工具,选择Project->ImportExistingCCSEclipseProject,导入选择对该工程进行编译,生成.out文件。然后选择,将程序序到实验板中。程序完毕之后,可以选择全速运行程序,也可以选择单步调试程序,选择F3查看具体函数。也可以程序之后,按下终止调试,界面恢复到原编辑程序的画面。再按下实验实验现实验思MSP430IOLab1- 多个按键对LED灯的控制实验(查询方式实验介IO口添加3.1.1.2实验目实验原LEDintIO口 {const uint8_t*PxOUT; uint8_t*PxDIR; uint8_t* uint8_t*PxSEL;}之后所需操作的IO端口的结构体GPIO4、GPIO5、GPIO8,如constGPIO_TypeDefGPIO4={&P4IN,&P4OUT,&P4DIR,&P4REN,&P4SEL};constGPIO_TypeDefGPIO5={&P5IN,&P5OUT,&P5DIR,&P5REN,&P5SEL};constGPIO_TypeDefGPIO8={&P8IN,&P8OUT,&P8DIR,&P8REN,&P8SEL};程序分XT1,然后循环检查按键是否按下,如果按下,就把IO电平取反,并且延时100ms(此处用延时来确定了扫描频率。

图3.1.6程序流程图宏定义和宏定义和参typedefstruct//以指针形式定义P8口的各个寄{constvolatileuint8_t*PxIN; volatileuint8_t*PxOUT;volatileuint8_t*PxDIR;volatileuint8_t*PxREN;volatileuint8_t*}constGPIO_TypeDefGPIO4={&P4IN,&P4OUT,&P4DIR,&P4REN,&P4SEL};constGPIO_TypeDefGPIO5={&P5IN,&P5OUT,&P5DIR,&P5REN,&P5SEL};constGPIO_TypeDefGPIO8={&P8IN,&P8OUT,&P8DIR,&P8REN,&P8SEL};constGPIO_TypeDef*LED_GPIO[5]={&GPIO4,&GPIO4,&GPIO4,&GPIO5,GPIO8};constuint8_tLED_PORT[5]={BIT5,BIT6,BIT7,BIT7,BIT0};while(BAKCTL&LOCKIO)//UnlockXT1pinsforoperationBAKCTL&=~(LOCKIO);UCSCTL6&~XT1OFF;//启动while(UCSCTL7&XT1LFOFFG) UCSCTL7&=~(XT1LFOFFG);UCSCTL4=SELAXT1CLK+SELSREFOCLK+SELM//时钟设为XT1,频率较低,方便延inti;*LED_GPIO[i]->PxDIR| //设置各LED灯所在端口为P4REN| //使能按键端口上的上下拉P4OUT|= //上拉状uint8_tlast_btn=0x1F,cur_btn,temp;{cur_btn=P4IN&temp=(cur_btn^last_btn)&last_btn; last_btn=cur_btn;inti;if(temp&(1<<i))*LED_GPIO[i]->PxOUT^=LED_PORT[i]; //翻转对应的LED //延时大约}实验步按照上次实验内容将生成的相应文件烧入板子内,依次按下各个键S3、S4、S5、S6S7观察LED灯的变实验现S3、S4、S5、S6、S7按键后,LED1、LED2、LED3、LED4、LED5依次点实验思1.LCD因为具有功耗低、结构简单、性能稳定等优点,大量的在电子表、计算器、万用表等各种设备上使用。MSP430F6638上有2组的段式液晶接口,能MSP430f6638集成了LCD_B与LCD_C两个段式液晶控制器,本节实验使用的是LCD_B160LCDLCD段码寄存器LCDMEM1—LCDMEM200x910xA4,每一个地址可以存放一个八位,每一将这8位的段码直接写入预留的LCD寄存器写入端口数组即可在段式液晶屏上显示想MSP430F6638LCDMEM[x]数组,x表示要显示的位,该图3.2.1LCD_B图3.2.2LCD_BLab2-1段式液实验介LCD,显示类型与数实验目实验原(COM段式液晶模块是1/3偏压(bias)的,也就是加在液晶模块每一位上的电压分为的LCD驱动模块自动生成,其引脚COM0—COM3就是这些电压的输出引脚,直接与P10处相应的跳线拔掉,以免屏幕上出现干扰。图3.2.3段式液晶模块电路原理图4MUX模式,其段式液晶显示参数对应关系如下图所示,即4个公共端(COM0—COM3)及12个驱动端(S0—S11),为了显示出想要的数字,当分别给公共端与驱动端合适液晶信号时,就会显示对应的数码(其中X1、X2、X3是三个电池符号,4P、5P、6P是后面三位字符的三个小数点。图3.2.4段式液晶显示参数对应关系程序分编程思IOIO口的工作模式,再通过操置操作可直接读写MSP430f6638LCD驱动器相关寄存器来完成,需设置P5.3,P5.4,P5.5LCDCOM口,S0—S11LCDLCDLCD模块,配置相关的寄存器包括P5SEL、LCDBPCTL0、LCDBCTL0、LCDBMEMCTL、LCDBCTL0,开关闭看配置系统时开关闭看配置系统时结图3.2.5程序流程图关键代码分voidLCDSEG_SetDigit(intpos,intvoidLCDSEG_DisplayNumber(int32_tnum,#include<msp430f6638#include<stdinth>#include<stdioh>#include<string#include"dr_lcdsegh" #defineXT2_FREQ #defineMCLK_FREQ#defineSMCLK_FREQ //系统时钟初始{while(BAKCTL&LOCKIO) BAKCTL&=~(LOCKIO);UCSCTL6&= //启动XT1,选择时钟P7SEL|=BIT2+BIT3; UCSCTL6&=~XT2OFF; whileSFRIFG1& //等待XT1、XT2与DCO{SFRIFG1&=~OFIFG;}UCSCTL4=SELAXT1CLK+SELSXT2CLK+SELMXT2CLK; UCSCTL1=DCORSEL_5;//6000kHz~23.7MHzUCSCTL2=MCLK_FREQ/(XT2_FREQ/16); UCSCTL3=SELREFXT2CLK+FLLREFDIV16; whileSFRIFG1& //等待XT1、XT2与DCO{SFRIFG1&=~OFIFG;}UCSCTL5DIVA1DIVS1DIVM //设定几个CLKUCSCTL4SELAXT1CLKSELSXT2CLKSELM //设定几个CLK的时钟}{int32_tnum2;WDTCTLWDTPW| //停止看门 //配置系 //初始化段式 //进入程序主循环,循环显{{{}}

//延时 {}

//延时LCDSEG_SetDigit(i,- //段式液 //延时}}实验步将跳线帽接到MSP430f6638试验箱P10处引脚S9、S10、S11dr_lcdseg.c及dr_lcdseg.h实验现象(如下图3.2.6多个字符与单个字符显示实验思中CPU对系统发生的某个事件作出的反应,暂停正在运行中的程序,转去执行处理相应的CPU的效率,MSP430f6638的中断装置比较多,其主要的有IO口中断、定时器中断、串口中断、外部中断、ADC转换中断、看门狗中断、捕获比较中断等,这些装置都能中断事件。中断分为不可中断与可中断两大类,各种中断的优先级也是不同的,MSP430f6638的3.3.1中断资源表图3.3.2中断资源表低功耗即是将能量消耗尽可能的降低,TI的MSP430系列单片机最突出的特点之一就是超MSP430F66381.8V—3.6V1MHz(0.1—400uA之间),其中MSP430F6638提供功耗模式,且不同功耗模式间可以方便切换是LPM5断状态即确保GIE为置位状态。(这段话没有表述清楚,不如不要图3.3.3低功耗模式控制寄存器(SR)图3.3.4不同功耗工作模式关系图Lab3-1按键对LED灯的控制实验(中断方式实验介本次实验应用了MSP430f6638中断事件中的IO口中断,通过使用开发板上的S7按键来触发P4.0口的中断事件,在中断事件处理函数中改变LED5灯的状态。实验目了解MSP430f6638得中断系实验原本实验应用MSP430F6638IO口中断,主板S7上按键连P4.0口,当S7按码改变LED5灯的状态。按键与LED灯部分的电路原理图请看Lab1-1中实验原理章节,这程序分编程思的点亮状态。当有按键被按下既产生了中断事件,程序转向中断服务函数并改变LED5P4DIR、P4REN、P4OUT、P4IES、P4IFG、P4IE,具体功能可用拓展关键字“interrupt”来表明,具体用法参考下面的代码。程序流程3.3.5程序流程图关键代码分voidmain(void){WDTCTLWDTPW P4DIR| //P4.5输P4DIR& P4REN| P4OUT| P4IES| //中断沿设置(下降沿触发P4IFG&= P4.0标P4IE| 中While(1){}

#pragmavector=PORT4_VECTORinterruptvoidPort_4(void){P4OUT^ LED5状P4IFG& P4.0断标志}实验步实验现3.3.6中断实验现象实验思Lab3-2低功耗工作模式实验介TIMSP430是特别强调低功耗的单片机系列,具有多种低功耗模式,尤其是适用于采用电池供电的长时间场合,实验演示了MSP430f6638低功耗的编程方法,用过设置使MSP430f6638进入低功耗模式1。实验目熟悉MSP430f6638了解MSP430f6638的几种低功耗模式,掌握MSP430f6638实验原程序分编程思用库函数“bis_SR_register(LPMx_bits)”使进入相应的低功耗模式(x为模式,程序流程开开关闭看使能XI2配置未被使用的IO设 USB配置寄存禁用高低压测进入低功耗模式结图3.3.7程序流程图结关键代码分{WDTCTLWDTPW //关闭看//使能P7SEL| //端口XT2UCSCTL6&=~(XT2OFF); UCSCTL6|=XCAP_3; //循环等待XT1和DOC振荡器{UCSCTL7&=~(XT2OFFG+XT1LFOFFG+//清除XT1、XT2、DOC故障标志SFRIFG1&= //清除OSC故障标志}while //等待UCSCTL6&= //减少驱动//进一步降低低功耗而配置P1OUT=0x00;P2OUT=0x00;P3OUT=0x00;P4OUT=0x00;P5OUT=0x00;P6OUT=0x00;P8OUT=0x00;P1DIR=0xFF;P2DIR=0xFF;P3DIR=0xFF;P4DIR=0xFF;P5DIR=0xFF;P6DIR=0xFF;P8DIR=0xFF;USBKEYPID= //置KEYandPID为0x9628(允许USB配置寄存器USBPWRCTL&= //禁用VUSB、LDO和USBKEYPID= //置KEYandPID为 USB配置寄存器//禁用PMMCTL0_H=PMMPW_H; //PMMSVSMHCTL&=~(SVMHE+SVSHE); SVSMLCTL&= //禁用低压测 //进入低功耗模式 //延时一个机器}实验步实验现实验思低功耗模式LPM1的ACLK、SMCLK分别处于什么状态?MSP430F6638微控制器的ACLK、SMCLK可以通过相应的引脚P1.0、P3.4输出,利用示波器探测观察,方法是将相应的引脚的SEL功能选择寄存器位设置为1,并把DIR方向寄存器位设置为输出。请编程实现4定时MCU中重要的功能单元之一,有着多种用法,能够实现多种功能。下面主要(TIMER_A(WDT(TC_BMSP430单片机的定时器相当丰富。有定时器TA、定时器TB、实时时钟RTC、看门狗定时器WDT等。其中看门狗主要用于出现故障后自动复位系统;TA提供多路捕捉/比较模块,除了基本的定时功能,还可以用于和脉冲测量;TB与TA基本相同,而且提供计数器长度的操作;RTC主要用来计时,可以提供日历模式的输出(可从分离的寄存器中直接读到二进制或BCD编码的年月日时分秒,也可用来计数。Lab4-1TIMER_A实验介MSP430F6638Timer_A 的定时亮灭控制,并且控制蜂鸣器的频率实验目实验原TIMER_A介TA0、TA1、TA25个、3个、3个捕捉/A支持支持多重捕获/比较,输出和定时。定时器还有扩展中断功能,中断可以由定时器溢出产生或由捕获/比较寄存器产生。定时器A的特性包括:Timer_A主要有TAxCTL,TAxR,TAxCTLn,TAxCCRn,TAxIV、TAxEX0几个寄存器(其中x指定时器的实例号,对MSP430F6638可以是0~2,即TA0~TA2;n指捕捉/比较模块号。其中最主要的是TAxCTL寄存器,用于设定Timer_A的输入时钟信号源、工作模式,复位、中断使能等。定时器A大致可分计数器和若干个捕捉比较模块。计数器在工作时由选定的时钟信号驱动计数,并且在计数归零时触发对应的定时器的TAIFG;计数器配合几 TIMER_A3种定时/计数方图3.4.1增计数模式图3.4.2连续计数模式图3.4.3增减计数模式的是,操作定时器的相关寄存器前应当先停止定时器(中断使能、中断标志、TACLR例TAxR将产生不可预知的结果。一种可行的解决方案是在定时器运行时多读几次,通过表决的方式来确定正确的读数。对TAxR的写操作将会立即生效。定时器的时钟源可以是时钟源ACLK,SMCLK或者或者外部源TACLK。时钟源TAxCTLTASSELID1,2,4,88分频。中的计数都将重新从0开始。图3.4.5TIMER_A蜂鸣器介出声音。用定时器产生时序高低电平的信号送入P1.5引脚便实现了对蜂鸣器的控制。图3.4.6蜂鸣器模块电路原理图程序分编程思实验开始必须关闭看门狗定时器,然后配置好连接蜂LEDGPIO寄存器,重点设置TA0CTL寄存器,使Timer_A工作在增计数模式,并选择SMCLK为其时钟源。使能比较器中断后,设定比较值为50000,最后进入低功耗并打开总中断。程序流程图3.4.7程序流程图关键代码分void{WDTCTLWDTPW //关闭看P1DIR| //控制蜂鸣器P4DIR| //LED输//时钟为SMCLK,比较模式,开始时清零 //比较器中断TA0CCR0= //比较值50000,相当于50ms的时间间bis_SR_register(LPM0_bitsGIE);//进入低功耗并开启总中}Timer_ATimer_A{P1OUT^ //形成鸣P4OUT^ //形成闪}实验步实验现 图3.4.8实验现象实验思、2、如何通过定时器设定蜂鸣器的音调Lab4-2看门狗定时器(WDT)实验介本实验使用了MSP430F6638中的看门狗定时器运用看门狗定时中断功能实现了对实验目实验原图3.4.9WDTWDT由控制寄存器WDTCTL控制,其计数器不可由程序。控制寄存器WDTCTL为16位寄存器,其高八位用作口令,低八位用作对WDT的实际控制,下面为控制寄存器各域的说WDTPW:WDTCTLWDTCTLWDTCTL= WDTTMSEL:模式选择,‘0’,‘1’ 图3.4.10WDT程序分编程思然后通过中断的方式实现定时地对LED的亮灭进行控制。程序流程图3.4.11程序流程图关键代码分

WDT实验代void{WDTCTL= //时钟为ACLK,模式为时SFRIE1|= //开启看门P4DIR|=bis_SR_register(LPM0_bits //进入低功耗,开启总中}#pragmavector=WDT_VECTORinterruptvoidWDT_ISR(void){P4OUT^ }实验步实验现LED1秒位间隔,反复熄灭点 图3.4.12实验现象实验思Lab4-3实时时钟(RTC)实验介该实验使用了MSP430F6638的RTC_B模块和的按键、段式液晶设备。RTC_B用实验目实验原RTC实时时钟模块提供了具有日历模式、可编程闹钟和晶振频率校准功能的时钟。MSP430图3.4.13RTC_BRTC_B实时时钟模块的大多数寄存器没有初始化。在使用这个模块之前,用户必须通过进RTCCTL01HOLDRTC_BRTCBCD位来RTC_B的数RTC_B的闹钟功年份寄存器和对应的AE位,可以组合得到所需的闹钟功能。实时时钟模块提供了 RT0PSIFG、RT1PSIFG、RTCRDYIFG、RTCTEVIFG、RTCAIFG。这些中断标志共用同程序分编程思程序流程图3.4.14程序流程图关键代码分

RTC代void RTCCTL01|=RTCBCD+ //数据格BCDRTCHOUR=RTCMIN=RTCSEC=RTCCTL0|= //RTCRDY中断使}RTCRTCinterruptvoid{switch(even_in_range(RTCIV, caseRTC_NONE:break;casehourBCD=(RTCHOUR>>4)*10+(RTCHOUR&0x0f); minuteBCD=(RTCMIN>>4)*10+(RTCMIN&0x0f); secondBCD=(RTCSEC>>4)*10+(RTCSEC&0x0f); LCDSEG_DisplayNumber(show, //显示(有分钟时显示小数点

LCDSEG_DisplayNumber(show, //显示(无小数点caseRTC_RTCAIFG:break;case //分频器caseRTC_RT1PSIFG:break; //1default:break;}按键中断服按键中断服务函数(略实验步实验现 b.不计数状c.暂停状 d.清零状实验思Lab4-4频率计实验介上多个设备,其中555定时器连接成的触发器来对输入波形整形,GPIO中断用来计数,按键输入来选择需要的,TIIMER_A用来给定时,段式液晶显示当前实验目实验原触发值为VT+=2/3Vcc,反向阈值为VT-=1/3Vcc。图3.4.15555触发器电路原理计数频率比如使用 按键输本实验使用试验箱右下角5个按键,其电路图如图2所示。按键按下引脚接地,按键松图3.4.16按键模块电路原理图程序分编程思本实验的难点在于要设计多个定时时间以实现多个选择。但是其定时时间差距较8分频后,16位的计数寄存器依然是不能满足定时需求,所以要在定时中断服不同的Timer_A控制寄存器的配置要求。程序流程图3.4.17程序流程图关键代码分

voidTimerA0_init(int{swit{case //10msTA0CCR0=10450;case //100msTA0CCR0=52250;case //1sec(略case10000 /10sec(略default: //暂不支持其他初始}}定时器定时器中断interruptvoidTimerA0_ISR(void){{gTimer_count--}{ //计数器 //P1}按键中断按键中断服#pragmavector=PORT4_VECTOR //按键{{caseSW3:TimerA0_init(10); caseSW4:TimerA0_init(100); caseSW5:TimerA0_init(1000);break;case //开始TA0CTL|=MC_1; //多个按键同时}}}实验步4.2、4.3、4.4实验现选择 图3.4.18选3.4.19频率计结果显示(单位实验思5模拟电压比B本节主要是介绍MSP430F6638中模拟电压比较器B模块的使用,这是一个重要的模块,主板上的电容触摸按键(Pad1~Pad5)的功能实现就是依靠电压比较器B。比较器B模块可用于精确的斜率式数模转换,电压和外部模拟信号的。比较器B有如下特点:同相端和反相端均有输入复用器;比较器输出端具有选择的RC滤波器;比较器的输出可以作为定时器A的捕获输入;端口输入缓冲由控制;具有中断功B4个部分,既左侧的模拟输入部分、比较器B部分、低通滤波部分、基准电压部分和比较器输出部分。3.5.1电压比较器BCBCTL0CBIMENCBIPEN位分别用于使能反相端和同相端的模拟信号输入,CBIMSEL、CBIPSEL位分别用于选择反相端和同相端的输入通道。同时可以通过操作控制寄存器CBCTL3来或者使能比较器相应的输入通道的输入缓存。电复位时,此位为0;CBCTL1中的CBEX位控制输入方向。CBCTL2CBRS、CBRSEL、CBREF1、CBREF0端,CBREF1、CBREF0控制基准电压的电阻网络以对输入电压进行分压。CBCTLCBF位来控制此滤波器的功能开与关。此滤BCBCTL1的CBIESB模块具有独立的中断向量,中断被响应后硬件会自动清除中断标志CBIFG。3.5.2电压比较器BLab5-1电压比实验介该实验使用了MSP430F6638的比较器B,一路使用P6.0管脚,一路使用的实验目实验原在中断里翻转触发的边缘,翻转LED5的状态。程序分编程思本次实验只使用比较BLED电路,首先将LED5P4.5管脚设为输出模式,再初始化比B,先选CNIP的输入管脚CB0,关P6.0的输入缓冲。选CPIM的管脚为参考电压1(即1.5V),使能比较器中断,打开比较器,进入低功耗,等待中断程序流程3.5.3程序流程图关键代码分void{WDTCTLWDTPW //关闭看门P4DIR| P4.5/LED设为输CBCTL0|=CBIPEN+CBIPSEL_0; //使能正端,输入通道选择CB0CBCTL1|=CBPWRMD_1; //正常的电源供应模式CBCTL2|= //使能参考电压选CBCTL2| //参考电压选CBCTL3| //CB0输入缓CBINT&=~(CBIFG //清除CBINT| //使能比较中断,边缘选择为上升CBCTL1| //打开比较 //打开总中断,进LPM4比较器中比较器中断 interruptvoidComp_B_ISR{CBCTL1^ //翻转触发边CBINT&= //清除中断标P4OUT^ //翻转LED5状}实验步到开发板上GND端,实验现LED5指示灯每一秒闪一实验思Lab5-2触摸按实验介MSP430F6638实验箱的触摸按键模块、LED模块。利MSP430F6638中的比较器B来判断触摸按键的充放电,通过CPU时钟算出电容的振荡频率,再判断是否有按键被触摸,如果有按键触摸则相应的LED转换当前的状态。实验目实验原MSP430的比较器可以给比较结果为01时设定两个阈值,这样便可以构成一个RC振荡器(电容电压低于较低阈值时充电、高于较高阈值时放电),振荡频率与电容容值有C1C2,振荡器的输出频率会发生3.5.4触摸按键工作原理图3.5.5触摸按键模块电路原理图程序分编程思防止反复测量导致LED误操作。程序流程3.5.6程序流程图关键代码分

摸按intmain(void{int //初始化 //初始化触摸//设置各LED灯所在端口{{temp[i-1]=CapTouch_ReadChannel(i); *LED_GPIO[i-1]->PxOUT^=LED_PORT[i-//当测量值大于门限值时翻转对应的}}return} 比触摸按键测量函 uint16_tCapTouch_ReadChannel(int{ t= t=CBCTL0=CBIMEN+(i<<8); P6OUT&=~ALL_PORT;P6DIR|=ALL_PORT&~(1<<i);CBCTL3=1<<i;uint16_t{if(CBCTL1&CBOUT) P6OUT|=ALL_PORT;if(CBINT&CBIFG){CBINT&=} t>= //计算}CBCTL3=P6DIR&= }实验步实验现可以观察到触摸按键控制对应的LED实验思系统的电机模块包含直流电机与步进电机各一个,MSP430F6638GPIO口输出波形对这两个电机的转速、转向、步长等进行控制。是英文“PulseWidthModulation”的缩写,即:脉冲宽度调制(简称脉宽调制例如图1显示了三种不同的信号。下图a是一个占空比为10%的输出,即在信号周期中,10%的时间通,其余90%的时间断。图b和图c显示的分别占空比为50%和90%的输出。这三种输出编码的分别是强度为满度值的10%、50%和90%的三种不同模拟信号值。例如,假设供电电源为9V,占空比为10%,则对应的是一个幅度为0.9V的模拟信号。如果调制频率不够高则不能得到相应的模拟信号,而是断裂的最大值与图3.6.1波NN个彼此相连的脉冲所/n,但幅值不等,且脉冲顶部不是水平直线,冲宽度是按正弦规律变化的。根据冲量相等效果相同的原理,波形和正弦半波是等效的。对于正弦的负半周,也可以用同样的方法得到波形。后,波形各脉冲的宽度和间隔就可以准确计算出来。按照计算结果控制电路中各开关器件的通断,就可以得到所需要的波形。Lab6-1直流电机简单控实验介该实验应用了MSP430F6638实验箱中的直流电机。通过设置直流电机的转动方向实验目实验原直流电机介直流电机(DirectCurrentMotor)是指能将直流电能转换成机械能的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电运行时是直流电,将电能转换为机械能。直流电机的结构应由定子和转子两大部分组成。直流电机运行时不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向盖、轴承和电刷装置等图3.6.2直流电机模块电路原理图这个控制电路主要使用了TIDRV8833低电压电机驱动,该为玩具、及一个步进电机,每个H桥能输出1.5A电流。图3.6.3TIDRV8833结构TIDRV8833H辑功00ZZ01LH10HL11LL表3.6.1DRV8833H程序分编程思程序流程图3.6.4程序流程图关键代码分

流电机简单控制{{case //{P1OUT&=~BIT0;P1OUT&=~BIT6;P1OUT&=~}case //{P1OUT|=P1OUT|=P1OUT&=~}case //{P1OUT|=P1OUT&=~P1OUT|=}}}实验步将程序到开发板中。实验现实验思Lab6-2步进电机简单控实验介实验目实验原步进电机介人们早在20世纪20年代就开始使用这种电机,随着系统(例如、磁盘驱动器、玩具、雨刷、寻呼机、机械和机等)的日益流行,步进电机的使用也开始图3.6.5步进电机模块电路原理图程序分编程思程序流程图3.6.6程序流程图关键代码分

进电机voidstep(int{{case{P7OUT&=~BIT4;P1OUT&=~BIT2;P2OUT&=~BIT2;P1OUT&=~BIT4;P2OUT&=~}case{P7OUT|=P1OUT|=P2OUT&=~P1OUT&=~P2OUT&=~}case case case }}intmain(void)WDTCTL=WDTPW|WDTHOLD; P1DIR|=BIT2+BIT4;P2DIR|=BIT2+BIT3;P7DIR|=BIT4;P7OUT|=BIT4;intint //b[0]~b[3]正转,b[4]~b[7]{ //}}实验步钮将程序到开发板中。实验现实验思通用串行通 SPI模通用串行通口(USCI)模块是MSP430F6638上的重要通口,很多外设模SPI、I2CUSCI模块所具有的功能也不尽相同。其USCI_Ax模块支持的特UARTIrDALIN通信的自动波特率检测、SPI模式;USCI_Bx模块支持的特性包括I2CSPI模式。本节首先介绍SPI模式。SPI在同步模式下,USCI通过3个或者4个引脚把MSP430连接到一个外部系统中,这些引脚分别是:UCxSMIO,UCxSOMI,UCxCLKUCxSTEUCSYNC被置位且模式选择位UCMODESPIUSCI模块工作于SPI模式。MSP430SPI的特SPI模式具有78位的数据位选择;支持34SPI;支持主从模式;独立的的接收中断和发送中断;主模式下时钟频率可编程;从模式可工作与LPM4下等特性。图3.7.1SPISPI的结该时钟是由一个主机提供的。UCxSIMO是从机输入、主机输出,UCxSOMI是从机输出、主机输入;UCxCLKUSCISPI模式的时钟;UCxSTE是从模式下的发送使能端,由主机控制,用于4线模式中选择一个从机接收和发送数据。USCIUSCI可以被PUC或者UCSWRST位复位。在PUC后,UCSWRST位自动置位,保字符格SPI模式下的USCI模块支持由UC7BIT位来7~8位字符长度7位数据模式主模图3.7.2主机与外部从机结构MSP430USCI作为主机,当数据移动到数据发送缓冲区时,USCI开始UCxSIMO口进行数据发送,并且由UCMSB位的设置决定还是低位。在相反RXUCxRXBUF,而且接收中断标志位UCRXIFG被置1。发送中断标志位UCTXIFG=1意味着数据已经从发送缓冲寄存器被完整移动到发送移从模图3.7.3从机与外部主机结构UCxCLK的起始边沿之前被UCxSOMI端口上发送出去。在时钟的另一边沿,到时会出现溢出错误,同时溢出错误标志位被置1。串行时钟控UCxCLKSPI总线上的主机提供UCMST=1位时钟由UCxCLK引脚上的USCIUCSSELxUXMST=0时,USCI时钟由主机的UCxCLK引脚提供,此时不使用位时钟产生器,并且UCSSELx位并不起作用。SPI位时钟是BRCLKSPI模式中不使SPI模式时USCI-A模块下UCAxMCTLSPIUSCIUSCI-AxUSCI-Bx不共UCxTXBUFUCTXIEGIE也被置”1“,那么一个中断到来的时候就会产生一个中断请求。当一个字符被写入发送数据缓冲UCTXIFG收一个字符并把字符装载到数据接收缓冲区时接收数据的中断标志位UCRXIFG就会被置由PUC或者UCSWRST=1复位,当接收数据缓冲区时接收中断标志位也会自动复位。中断向量寄存器UCxIV可以被用来判断当前产生的是接收中断还是发送中断。Lab7-1SD卡读实验介本实验中需用到以下电路模块:USB接口模块、SDUSB与主机通信,并通过SPI控制SD卡的读写。实验目实验原SD模块连接在USCI_A1接口上。MicroSD卡是一种极细小的快闪器卡,其格式源自SanDisk创造,主要应用于移动,但因它的体积微小和容量的不断提11mmx1mm,差不多相等于手指的大小,是现时最细小的卡。它也能通过SD转接卡4G、8G、16G、32G和64G的容量。USBMSC(USBmassstoragedeviceclass)模块PCU盘的操作PC机可U盘一SD卡进行操作。这SD卡的操作是通过程序中的SD卡模块的盘级接口部分实现的。图3.7.4SD图3.7.5USB(J1)程序分编程思程序流程图3.7.6程序流程图关键代码分intmain(void{

SD卡读写SD卡读写主函 //初始化 //初始化USBSDwhile{switch{case//打开断,进入低功耗,等待USB激活唤case//USB的任务处理函数SD卡的读casecase}}return}实验步实验现实验思Lab7-2TFT屏幕显示实验介TFT即ThinFilmTransistor(薄膜场效应晶体管),其屏幕可现实出彩片,它是中高端彩屏普遍采用的屏幕,本实验通过MSP430F6638的SPI时序接口控制TFT屏幕使得TFT屏幕上显示出想要的画面来,包括显示颜色和文字等。实验目MSP430F6638SPI时序对TFT控制实验原TFT屏幕介TFT屏幕液晶显示器上每一个液晶像素点都是由集成在其后的薄膜晶体管来驱动,从而可以做到高速度高亮度高对比度显示屏幕信息,TFT能够显示出彩片是因为显示屏了为了能精确地控制每一个像素的颜色和亮度就需要在每一个像后安装一个类似百叶1841个外部引脚,可串行或并行对控制(本实验使用串行控制,其驱动uPD16170(NEC引脚分配表及其与MSP430F6638的电路接线图如下图所示。图3.7.7TFT 表3.7.1TFT屏幕管脚定 图3.7.8TFT屏幕接口电路原理程序分编程思TFT屏幕显示之前首先要配置好系统时钟,即选为系统时钟配置合适的晶振,然后初始化TFT屏幕,初始化TFT过程中包括了配置MSP430f6638SPI接口以及SPI接口对TFT屏幕进行读写操作初始化TFT屏幕。初始化MSP430f6638SPI时序能可查阅文档。配置完SPI时序后还要通过SPITFT屏幕的读写操作初始TFT屏幕后才算完成整个初始化过程;初始化完成后在通过SPI对TFT屏幕的读写使TFT屏幕上显示出和文字来。初始化和显示TFT屏幕的操作可通过调用驱动来完成,相关的驱动函数voidetft_AreaSet(uint16_tstartX,uint16_tstartY,uint16_tendX,uint16_tendY,uint16_tcolor);将特定的区域置为相应的color颜色。voidetft_DisplayString(constchar*str,uint16_tsx,uint16_tsy,uint16_tfRGB,uint16_tbRGB);在指定位置显示一个字符串,其字符颜色为fRGB,背景颜色为voidetft_DisplayImage(constuint8_t*image,uint16_tsx,uint16_tsy,uint16_twidth,R、G、B程序流程图3.7.9程序流程图关键代码分

TFT屏幕显示#include<stdinth>#include<stdioh>#include //调用TFT屏幕驱动头文 //系统时钟初始{while(BAKCTL&LOCKIO) BAKCTL&=~(LOCKIO);UCSCTL6&= //启动P7SEL|BIT2 //XT2引脚功UCSCTL6&= //启动whileSFRIFG1& //等待XT1、XT2与DCO{SFRIFG1&=~OFIFG;}UCSCTL4=SELAXT1CLK+SELSXT2CLK+SELMXT2CLK; UCSCTL1=DCORSEL_5;//6000kHz~23.7MHzUCSCTL2=20000000/(4000000/16); UCSCTL3=SELREFXT2CLK+FLLREFDIV16; whileSFRIFG1& //等待XT1、XT2与DCO{SFRIFG1&=~OFIFG;}UCSCTL5=DIVA1+DIVS1+DIVM1; UCSCTL4SELAXT1CLKSELSDCOCLKSELMDCOCLK;设定几个CLK的时钟源}intmain(void{WDTCTLWDTPW //停止看 //关闭总 //初始化系统 //初始化TFT //开总 //清屏,把屏幕填充为黑色(color为 //{ //指定区域填充 //指定区域填充 //指定区域填充 //指定区域填充 //指定区域填充 //指定区域填充 //指定区域填充 etft_DisplayString("TIMSP430F6638EVM",100,80,65535,0);etft_DisplayString("TIUNIVERSITYPROGRAM",0,150,63488,0);etft_DisplayString("-TSINGHUAUNIVERSITY",100,180,65504,0); //延时3}}实验步实验现 图3.7.9图形显 图3.7.10字符显实验思voidetft_DisplayImage(constuint8_t*image,uint16_tsx,uint16_tsy,uint16_twidth,uint16_theight)使TFT屏幕上显示出来通用串行通口I2C模这一节继续介绍通用串行通口的另一种工作模式:I2C模式,因为只有I2C总线介I2CPHILIPSSDA和一条串行时钟线SCL,用于连接微控制器及其设备。它是同步通信的一种特殊形式,具有I2C有两条总线线路,一条串行数据线SDA和一条串行时钟线SCL;每接到总8100kbit/s,400kbit/s3.4Mbit/s;支持多主控模块,但同一时刻只允I2C总线协议简SCL线为高电平,SDA线由高电平变为低电平会产生“启动”条件,所有数据传输SDA线在这期间保持高电平表示空闲状态。3.8.1I2CI2C总线数据数据传输为字节格式,即发送到SDA8位,先传SCLI2C总线上的报文。数据只在时钟的高电平周期有SCL线低电平时才能改变,因此需要一个确定的时钟进行逐位仲裁。I2C总线寻7位与它自Lab8-1数码管实验介实验目实验原MSP430f6638I2CMSP430f6638集成了I2C模块的接口,其中P8.5口作为I2CSDA数据线,P8.6口作I2CSCL时钟线,其数据传输起始位、停止位和数据位在SDASCL总线上的关系如图3.8.2,7位寻址格式如图3.8.33所示,先由主机发送起始(S)信号,再发送一个地址字节(高7位地址码,最低位RW),被控器件检测到主机发送地址与自己的地址相同发送一应答信号ACK,主机接收到ACK后开始传输数据字节,每传输完一个字节数据后都需要被I2C总线的工作原理3.8.2I2C3.8.3I2C73.8.3I2CTCA6416A介存器。通过I2C总线对进行读写,可控制器件上I/O口,即可对这些I/O口进行读写操作。TCA6416AVCCI提供电压电平转换,RESET引脚为复位引脚,INT可连接到微控制器的中断输入,的P口具有输出高电流能力可直接驱动LED灯的显示TCA64

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论