当前位置:首页 > 单片机 > 单片机
[导读]今天只是想点亮一个led灯,因为没有视频,搞得很多的东西都是自己摸,下午本来讲和咨询店家,TMD说好给一点技术支持,结果一点也不给,我真想草泥马了,其实代码早就写出来了,只是哥哥不知道这款开发板还有接一下外

今天只是想点亮一个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

#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);

}



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


#include

#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;

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

//时钟默认情况//FLL时钟FLL选择XT1//辅助时钟ACLK选择XT132768Hz//主系统时钟MCLK选择DCOCLKDIV1048576Hz//子系统时钟SMCLK选择DCOCLKDIV1048576Hz#i...

关键字: msp430f5438 初始化 xt1

1.平台说明 MS430F5438//时钟默认情况//FLL时钟FLL选择XT1//辅助时钟ACLK选择XT132768Hz//主系统时钟MCLK选择DCOCLKDIV1048576Hz//子系统时钟SMCLK选择DCO...

关键字: msp430f5438 倍频 dco

1. 在IAR 的集成开发环境中.选中你的工程,右键,点options,2. 在Target 页面中,Data Model选项,4选中Medium或Large, 3. 解释: - 选中SMALL只能访问64K以内的空...

关键字: Flash msp430f5438 单片机

今天看示例程序中出现了__delay_cycles()这个函数,在查找msp430x54x.h这个头文件的时候,发现这个头文件中没有该函数的声明,原来这个函数已经在IAR这个编译器中集成,这里总结一下__delay_cy...

关键字: msp430f5438 内部延时函数

1.初始化UART0之前需要先初始化ACLK、SMCLK和MCLK。示例代码中使用XT1,ACLK为32768,SMCLK和MCLK约为8MHZ。2.UART的时钟可以参考ACLK或者SMCLK,本例参考ACLK。由于参...

关键字: aclk msp430f5438 uart

以USCI0为例,说明该两种不同方法。1.switch-case方法#pragmavector=USCI_A0_VECTOR__interruptvoidUSCI_A0_ISR(void){switch(__even_i...

关键字: msp430f5438 中断函数 编写方法

1.前言这几天实践了MSP430的ADC12功能,虽然片内AD功能比较简单但是还学出了点“门道”来,这个“门道”便是MSP430F5438A和MSP430F5438的区别。这里通过一个例子说明片内ADC的使用,首先实现U...

关键字: msp430f5438 adc12

1.熟悉MSP430的时钟系统2.操作GPIO//时钟默认情况//FLL时钟FLL选择XT1//辅助时钟ACLK选择XT132768Hz//主系统时钟MCLK选择DCOCLKDIV1048576Hz//子系统时钟SMCL...

关键字: basic io msp430f5438

0.前言对于大多数单片机来说,I2C成了一个老大难问题。从51时代开始,软件模拟I2C成了主流,甚至到ARMCortex M3大行其道的今天,软件模拟I2C依然是使用最广的方法。虽然软件模拟可以解决所有的问题,但是总感觉...

关键字: at24c02 i2c msp430f5438

//===========================================================================////北京理工大学珠海学院徐方鑫////280599580@qq...

关键字: msp430f5438 无线温度发送
关闭
关闭