MSP430F5438点亮led

今天只是想点亮一个led灯,因为没有视频,搞得很多的东西都是自己摸,下午本来讲和咨询店家,TMD说好给一点技术支持,结果一点也不给,我真想草泥马了,其实代码早就写出来了,只是哥哥不知道这款开发板还有接一下外部的电源,这个是我始料未及的,导致最后回到最初的起点,一点一点的看电路图,这里我把今天的程序小结一下!!!

 

点亮一个led灯

首先看电路图:

这个电路图是关键,理解,首先必须要打开VCC,这个是我今天犯错的最主要的原因,因为我开始以为开发板上的电源是自动接上的,导致程序调试了一上午,没有成功

之后看VCC,也就是标号1,搜索一下VCC的引脚

 

 也就是要控制P5.4口输出一个高电平

代码:

put_P5DIR_BIT4(1);//引脚为输出引脚

put_P5_OUT_BIT4(1);//打开外部电源

接下来看标号2

标号2是一个led_PWR,注意这里是一个控制输出一个0,就可以导通三极管,

在电路图上搜索一下led_PWR,这里出现如图管脚

这里显示的是LED PWR是第P7.3管脚,即P7.3只需要输出一个低信号就可以了

示例代码:

put_P7DIR_BIT3(1);//引脚为输出引脚

put_P7_OUT_BIT3(0);//导通三极管

 

之后在电路图中搜索DIG1,由电路图可以知道,DIG1必须是一个低电平

 

这里可以看到DIG1控制引脚是P9.0,所以,点亮一个数码管现在很容易了

put_P9DIR_BIT0(1);//设置端口为输出端口

put_P9OUT_BIT0(0);//导通二级管

 

示例代码:

#include<msp430x54x.h>
#include"for_5438_wjx.c"//头文件

void  main( void )
{
  // Stop watchdog timer to prevent time out reset
  
  
  WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
   
  put_P5DIR_BIT4(1);      // 主电源 P5.4
  put_P5OUT_BIT4(1);      //打开外设电源
  
  put_P9SEL_BIT0(0);//设置P9.0为普通I/O
  put_P9DIR_BIT0(1);//设置P9.0为输出
  
  put_P7SEL_BIT3(0);//开发板上7.3口是lcd的电源,设置P7.3为普通I/O
  put_P7DIR_BIT3(1);//设置P7.3为输出
  
  put_P7OUT_BIT3(0);//给lcd供电
  put_P9OUT_BIT0(0);//点亮led数码管
      
  while(1);
  
  
  
}
View Code

 

总结一下最近所学的,将led以5毫秒的频率流水灯闪烁

#include<msp430x54x.h>
#include"for_5438_wjx.c"
#include"PIN_DEF.h"

#define CPU_F               ((double)8000000) 
#define delay_us(x)        __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 
#define delay_ms(x)        __delay_cycles((long)(CPU_F*(double)x/1000.0)) 

unsigned char  table1[]={0x0e,0x0d,0x0b,0x07};
unsigned char  table2[]={0xe0,0xd0,0xb0,0x70};

void  main( void )
{
  // Stop watchdog timer to prevent time out reset
  
  unsigned i,j;
  
  WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
   
  put_P5DIR_BIT4(1);      // 主电源 P5.4
  put_P5OUT_BIT4(1);      //打开外设电源
  
  put_P9SEL(0x0);    //设置P9.0到P9.3为普通I/O
  put_P9DIR(0x0f);    //设置P9.0到P9.3为输出
  
  put_P1SEL(0x0);    //设置P1.4到P1.7为普通I/O
  put_P1DIR(0xf0);    //设置P1.4到P1.7为输出
  put_P1OUT(0xf0);    //关闭led显示
  
  put_P7SEL_BIT3(0);   //开发板上7.3口是lcd的电源,设置P7.3为普通I/O
  put_P7DIR_BIT3(1);   //设置P7.3为输出
  
  put_P7OUT_BIT3(0);      //给lcd供电
  
F:
  for(i=0;i<4;i++)
  {
    put_P9OUT(table1[i]);     //点亮led数码管
    delay_ms(50);
  }
  put_P9OUT(0x0f);
  
  for(j=0;j<4;j++)
  {
     put_P1OUT(table2[j]);   
     delay_ms(50);
  }
  put_P1OUT(0xf0);
  goto F;
  
  
  
}

 

 


版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3391914.html

 

转载于:https://www.cnblogs.com/fengdashen/p/3391914.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于呼吸灯的C语言编程Options 1,0,0 // Target 'Target 1' Device (AT89C51) Vendor (Atmel) Cpu (IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000)) FlashUt () StupF ("LIB\STARTUP.A51" ("Standard 8051 Startup Code")) FlashDR () DevID (2976) Rgf (REGX51.H) Mem () C () A () RL () OH () DBC_IFX () DBC_CMS () DBC_AMS () DBC_LMS () UseEnv=0 EnvBin () EnvInc () EnvLib () EnvReg (Atmel\) OrgReg (Atmel\) TgStat=16 OutDir (.\) OutName (a9) GenApp=1 GenLib=0 GenHex=1 Debug=1 Browse=1 LstDir (.\) HexSel=0 MG32K=0 TGMORE=0 RunUsr 0 0 RunUsr 1 0 BrunUsr 0 0 BrunUsr 1 0 SVCSID MODEL5=0 RTOS5=0 ROMSZ5=2 DHOLD5=0 XHOLD5=0 T51FL=80 XT51FL=0 CBANKS5=0 XBANKS5=0 RCB51 { 0,0,0,0,0,0,0,1,0 } RXB51 { 0,0,0,0,0,0,0,0,0 } OCM51 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } OCR51 { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } IRO51 { 1,0,0,0,0,0,16,0,0 } IRA51 { 0,0,0,0,0,128,0,0,0 } XRA51 { 0,0,0,0,0,0,0,0,0 } XRA512 { 0,0,0,0,0,0,0,0,0 } IROM512 { 0,0,0,0,0,0,0,0,0 } C51FL=21630224 C51VA=0 C51MSC () C51DEF () C51UDF () INCC5 () AX51FL=4 AX51MSC () AX51SET () AX51RST () INCA5 () PropFld { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } IncBld=1 AlwaysBuild=0 GenAsm=0 AsmAsm=0 PublicsOnly=0 StopCode=3 CustArgs () LibMods () BankNo=65535 LX51FL=292 LX51OVL () LX51MSC () LX51DWN () LX51LFI () LX51ASN () LX51RES () LX51CCL () LX51UCL () LX51CSC () LX51UCS () LX51COB () LX51XDB () LX51PDB () LX51BIB () LX51DAB () LX51IDB () LX51PRC () LX51STK () LX51COS () LX51XDS () LX51BIS () LX51DAS () LX51IDS () OPTDL (S8051.DLL)()(DP51.DLL)(-p51)(S8051.DLL)()(TP51.DLL)(-p51) OPTDBG 48125,-1,()()()()()()()()()() ()()()() FLASH1 { 0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0 } FLASH2 () FLASH3 () FLASH4 () EndOpt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值