实验一GPIO口控制实验实验预习要求1、参考附1.2,学习MSP430F6638集成开发环境CCS5.4.0软件的使用。2、学习MSP430F6638单片机GPIO口编程控制方法。3、了解直流电机和按键的控制方法。一、实验目的1、了解微控制器MSP430F6638的性能。2、掌握MSP430F6638GPIO口控制编程。3、掌握对直流电机和独立按键的编程控制。二、实验器材PC机,MSP430F6638EVM,USB数据线,20-pin转接线。三、实验内容1、验证性实验:用MSP430F6638评估板上的按键控制LED的亮灭情况。按下S7,LED1—5循环往复的亮灭。按下S3,LED灯的亮灭情况换个方向。按键S3、S4、S5、S6、S7和单片机IO口连接如下图1.1所示。LED灯的连接如图1.2所示。图1.1图1.22、设计性实验:通过按键控制直流电机的转动。例如:按下S7,直流电机正转;按下S3,直流电机反转;按下S5,直流电机停止。(提示:根据表1DRV8833的控制逻辑,只需要简单的在对应引脚上输出想要的电平即可控制电机的转动和方向。)提示:PxREN寄存器为上拉/下拉电阻使能寄存器,可以将IO配置成上拉模式或下拉模式,具体请参考F6638数据手册F6638datasheet.pdf。PxDIR为方向寄存器,置1为输出。例如按键S3作为单片机IO口的输入时,需要设置P4.4口为上拉模式:P4REN|=BIT4;//使能上拉模式;头文件‘msp430f6638.h’中定义了#defineBIT4(0x0010)。四、实验原理z直流电机介绍:直流电机(DirectCurrentMotor)是指能将直流电能转换成机械能的旋转电机。它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能。直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器等组成。z直流电机控制原理:图1.3直流电机模块电路原理图控制电路使用TIDRV8833低电压电机驱动芯片,该芯片为玩具、打印机及其他机电一体化应用提供了一款双通道桥式电机驱动器解决方案。它能驱动两个直流电机或一个步进电机。nSLEEP引脚为高电平时表示使能设备,为低电平时表示进入低功耗睡眠模式。输入端控制H桥逻辑如下表所示,表中x表示A和B。对直流电机的控制编程,只需要简单地控制nSLEEP、xIN1、xIN2引脚输出相应的电平即可。表1TIDRV8833H桥逻辑表xIN1xIN2xOUT1xOUT2功能00ZZ制动01LH反转10HL正转11LL自由旋转五、实验步骤1、验证性试验(一)用CCS软件下载程序,实现用滚轮控制步进电机的旋转,按键控制方向。(1)开始-程序-TexasInstruments-CodeComposerStudio5.4.0-CodeComposerStudio5.4.0,打开CCSv5软件。图1.4(2)导入例程,Project-ImportExistingCCSEclipseProject。图1.5(3)在如下窗口中,点击“Browse…”,打开例程所在的文件目录,然后点击“Finish”。在图1.7中的左侧工程浏览窗口可以看到刚添加的工程。图1.6图1.7(4)编译工程,点击,编译完成后,出现如下窗口,右下角提示编译无误。图1.8(5)将开发板上左上角的SW1拨到中间eZ430位置;通过USB线将MSP430F6638开发板上的J6端与PC相连。(6)连接成功后可以在电脑的设备管理器中看到如图1.9所示的MSP430UART端口。图1.9(7)单击Debug按钮烧写程序,出现如下调试界面。图1.10(8)单击Resume按钮运行程序。图1.11(9)先后按下按键“S7”和“S3”,观察实验现象。注意:按下按键时,请保持一段时间,等LED开始亮灭或者改变方向时松开。(10)选择Run-Suspend(或者单击窗口中的Suspend按钮)可暂停程序运行,选择Run-Terminate(或者单击窗口中的Terminate按钮)可退出运行。单步运行可用F5或F6。2、设计性实验(1)参考附件1.3,建立一工程文件。根据直流电机控制原理,设计程序,实现按键对直流电机方向,停转的控制。(2)用20-pin排线连接主板与电机模块(注意端口对应连接,红色标记的一边对应连接到两个排阵的1脚)。图1.12(3)编译程序,对编写的程序进行调试。(4)停止程序的运行,将连接到PC机上的USB线及连接线拔掉。(5)实验完成后请整理好实验设备。实验完毕请用“Shift+Delete”键删除设计程序和所在的文件夹。六、实验报告要求1、写出设计性实验程序;2、总结实验步骤和实验结果;3、完成实验思考题。七、问题与思考可否直接使用GPIO控制直流电机,而不用DRV8833?如何调整电机转速?附1.1MSP430F6638评估板外观图1.13MSP430F6638教学开发系统主板硬件资源图图1.14电机子板外观图附1.2验证实验程序#includemsp430f6638.hintmain(void){WDTCTL=WDTPW|WDTHOLD;//Stopwatchdogtimerintflag=0;P4REN|=BIT0+BIT1+BIT2+BIT3+BIT4;//上下拉电阻使能P4OUT|=BIT0+BIT1+BIT2+BIT3+BIT4;//设置为上拉电阻P4DIR|=BIT5+BIT6+BIT7;//LED管脚设置P5DIR|=BIT7;P8DIR|=BIT0;while(1){if((P4IN&BIT0)==0){//按键S7__delay_cycles(160000);if((P4IN&BIT0)==0){flag=7;}}if((P4IN&BIT4)==0){//按键S3__delay_cycles(160000);if((P4IN&BIT4)==0){flag=3;}}if(flag==3)//从左往右{P8OUT|=BIT0;__delay_cycles(160000);P8OUT&=~BIT0;P5OUT|=BIT7;__delay_cycles(160000);P5OUT&=~BIT7;P4OUT|=BIT7;__delay_cycles(160000);P4OUT&=~BIT7;P4OUT|=BIT6;__delay_cycles(160000);P4OUT&=~BIT6;P4OUT|=BIT5;__delay_cycles(160000);P4OUT&=~BIT5;P8OUT|=BIT0;__delay_cycles(160000);}if(flag==7)//从右往左{P4OUT|=BIT5;__delay_cycles(160000);P4OUT&=~BIT5;P4OUT|=BIT6;__delay_cycles(160000);P4OUT&=~BIT6;P4OUT|=BIT7;__delay_cycles(160000);P4OUT&=~BIT7;P5OUT|=BIT7;__delay_cycles(160000);P5OUT&=~BIT7;P8OUT|=BIT0;__delay_cycles(160000);P8OUT&=~BIT0;P4OUT|=BIT5;__delay_cycles(160000);}}}附1.3CCSv5的使用参考步骤(1)在PC机最后一个盘创建一个文件夹,用英文命名(注意:实验完毕请用“Shift+Delete”删除该文件夹)。(2)双击桌面上图标(或者点击“开始-程序-TexasInstruments-CodeComposerStudiov5),打开CCS软件,软件启动后界面如图1.15:图1.15(3)点击File-New-CCSProject。图1.16(4)弹出如下对话框,键入项目名称(projectname):DCmotor,选择硬件类型(device):MSP430x6xxFamily-MSP430F6638,在下列文件类型(Projecttemplatesandexamples)中选择EmptyProject,最后点击Finish。图1.17(5)点击View-ProjectExplorer,界面如图1.18所示,图1.18(6)在main()函数中添加自己编写的代码。图1.19(7)代码编写完成后,点击或Project-BuildProject编译工程。图1.20(8)工程编译无误后,连接硬件准备下载。通过USB线将主板左侧的板载仿真器eZ-FETUSB接口(J6)与PC相连,同时将开发板上的SW1拨到eZ430端,连接主板与电机子板。(9)点击CCS上的图标,或者点击Run-Debug。图1.21(10)如果弹出如图1.22所示对话框,点击Proceed即可。如果没有出现此窗口,直接进行下一步。图1.22(11)出现如图1.23所示界面,此时程序已经下载到MSP430F6638中。点击左上方的图标即可仿真,旁边的图标则用于暂停和停止。图1.23(12)观察实验箱中的运行结果。