MSP430F1612 第一个程序,点亮一个LED灯

2020-02-13来源: eefocus关键字:MSP430F1612  第一个程序  LED灯

I/O操作

MSP430有6组IO端口,其中P1和P2具有中断功能,其他端口不具备中断功能。而点亮一个LED灯只需要控制一个引脚的高低电平即可。这里不需要用到中断功能。那在这里,我们编码涉及的寄存器只有4个,分别是PxIN、PxOUT、PxDIR和PxSEL。而且MSP430F1612的IO功能并不需要配置时钟,所以整个程序只需要配置4个IO端口的寄存器和看门狗寄存器。

对4个寄存器的描述分别如下:

PxSEL寄存器中的每一个位用于选择该引脚是使用外设功能还是GPIO功能.


Bit = 0:选择IO功能;Bit = 1:选择外设功能


例如:


P4SEL |= 0x0080;    //P4.7选择外设功能,0000 00001000 0000(b) P4.0~P4.7对应1~8bit

PxIN寄存器反应了该端口选择IO功能(PxSELx = 0)时每一个位的输入状态:

Bit = 0:输入的是低电平;   Bit = 1:输入的是高电平


PxIN是只读存储器,通过读取这些寄存器可以获得对应引脚的状态。

PxOUT寄存器中的值是配置为IO功能时引脚的输出状态。


Bit = 0:输出低电平; Bit= 1:输出高电平


例如:


P4OUT |= 0x0080;    //P4.7引脚输出高电平

在使用PxIN和PxOUT时,我们要注意一下,IO口的方向配置,只有当IO配置为输入时PxIN才有效,当IO口配置为输出时PxOUT才有效。这里使用PxDIR对IO口的输入输出方向进行配置。


Bit = 0:IO口被配置成为输入; Bit = 1:IO口被配置成为输出。


例如:


P4DIR |= 0x0080;      //P4.7被配置成为输出引脚


LED引脚相关电路

当P4.7输出低电平时,LED灯亮。


程序代码


通过上面的讲解,料定大家都知道了IO口的输入输出配置是怎样的了,下面写个程序来小试牛刀:


#include

 

int main( void )

{

  //Stop watchdog timer to prevent time out reset

 WDTCTL = WDTPW + WDTHOLD;

 

 P4SEL &= ~0x0080;    //P4.7 select IO funciton

 P4DIR |= 0x0080;     //P4.7 set as output

 P4OUT &= ~0x0080;    //P4.7 output low level

 

 while(1)

  {

   

  }

}


运行结果

灯亮了

关键字:MSP430F1612  第一个程序  LED灯 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488062.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430F5529LP+CC3000学习心得(一)——与AP的连接
下一篇:IAR烧写MSP430失败的解决方法

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于MSP430F5529的智能灯设计
#include <msp430F5529.h> void IO_Init();void InitADC();unsigned int  GetAD(char channel);void light_Compare(int templight);int counter=0;                          //中断计数器参数,单位秒 /** * main.c */ int main(void){ 
发表于 2020-02-14
MSP430F5529LP+CC3000学习心得(一)——与AP的连接
设备:MSP430F5529LP+CC3000 BoosterPack EVMSDK:CC3000 SDK_V1.11 、android下smart Config APPPatch:PatchProgrammerMSP430F5529LP-7.11.7.13.19开发环境:CCS 5.4.0第一步:硬件连接。第二步:对F5529LP进行Patch programmer。导入C:tiPatchProgrammerMSP430F5529LP-7.11.7.13.19Patch Programmer SourcePatch Programmer CCS目录下的三个工程CC3000 SPi、CC3000HostDriver、Patcher
发表于 2020-02-13
MSP430F5529LP+CC3000学习心得(一)——与AP的连接
MSP-EXP430F5529LP开发板004-PWM库函数
测试了TIMER_A的PWM几种模式pwmMultipleUp2.06kHz,75%占空比#include "wdt_a.h"#include "gpio.h"#include "timer_a.h"#define TIMER_PERIOD 511#define DUTY_CYCLE1  384#define DUTY_CYCLE2  128int main( void ){  volatile unsigned int i;  WDT_A_hold(WDT_A_BASE);    //P2.0 and
发表于 2020-02-13
MSP-EXP430F5529LP开发板003-定时器库函数
430的定时器的有点类似于51单片机,利用定时器实现P1.0口LED灯1s闪烁代码如下#include "wdt_a.h"#include "gpio.h"#include "timer_a.h"#define COMPARE_VALUE 32768int main( void ){  volatile unsigned int i;  WDT_A_hold(WDT_A_BASE);    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0); 
发表于 2020-02-12
msp430f5529串口通信
调了一天,终于通了。这个板子有点坑人,看引脚功能图UART_RXTX是P3.4P3.5,结果调了半天都不通,上网查了很久才知道USB的串口是P4.4P4.5。对于我这种初学者来说,要走的路还很长呀!#include <io430.h>void delay(int ms)        //延时函数{ for(int i=0;i<ms;i++) for(int j=0;j<240;j++);}void send_buf(unsigned char *ptr)    //发送字符串{ while(*ptr != ''
发表于 2020-02-12
AVR单片机闪烁灯程序-第一个程序
自从无线通信完成后我没做什么,而是把AVR的学习列上日程,AVR的学习我是纯手工打造,所有的实验板全部自己焊接,因为用51习惯了,他是那么的方便,到AVR这却是一件很简单的事情显得如此复杂,那下载来说吧,51的ISP是通过串口直接写到FLASH,而AVR的还要设置熔丝位,如果搞不好芯片锁死就完蛋了,至少我的水平是够呛解决的。遇到的第一个问题是价格,AVR的价格比51的贵将近2-5倍,我选的是16L,因为他的FLASH足够我这种菜鸟用的,16KB,另一个是他的宽电压,以前51就没有这个优势,最重要的其实学哪种都无所谓,编程吗,其实就是一个中心思想的问题,只要你有好的算法,用什么语言描述就无关紧要了,关键AVR有个架构是不同于51
发表于 2019-11-18
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved