MSP430F5438點(diǎn)亮led
今天只是想點(diǎn)亮一個(gè)led燈,因?yàn)闆](méi)有視頻,搞得很多的東西都是自己摸,下午本來(lái)講和咨詢店家,TMD說(shuō)好給一點(diǎn)技術(shù)支持,結(jié)果一點(diǎn)也不給,我真想草泥馬了,其實(shí)代碼早就寫出來(lái)了,只是哥哥不知道這款開(kāi)發(fā)板還有接一下外部的電源,這個(gè)是我始料未及的,導(dǎo)致最后回到最初的起點(diǎn),一點(diǎn)一點(diǎn)的看電路圖,這里我把今天的程序小結(jié)一下?。。?/p>
點(diǎn)亮一個(gè)led燈
首先看電路圖:
這個(gè)電路圖是關(guān)鍵,理解,首先必須要打開(kāi)VCC,這個(gè)是我今天犯錯(cuò)的最主要的原因,因?yàn)槲议_(kāi)始以為開(kāi)發(fā)板上的電源是自動(dòng)接上的,導(dǎo)致程序調(diào)試了一上午,沒(méi)有成功
之后看VCC,也就是標(biāo)號(hào)1,搜索一下VCC的引腳
也就是要控制P5.4口輸出一個(gè)高電平
代碼:
put_P5DIR_BIT4(1);//引腳為輸出引腳
put_P5_OUT_BIT4(1);//打開(kāi)外部電源
接下來(lái)看標(biāo)號(hào)2
標(biāo)號(hào)2是一個(gè)led_PWR,注意這里是一個(gè)控制輸出一個(gè)0,就可以導(dǎo)通三極管,
在電路圖上搜索一下led_PWR,這里出現(xiàn)如圖管腳
這里顯示的是LED PWR是第P7.3管腳,即P7.3只需要輸出一個(gè)低信號(hào)就可以了
示例代碼:
put_P7DIR_BIT3(1);//引腳為輸出引腳
put_P7_OUT_BIT3(0);//導(dǎo)通三極管
之后在電路圖中搜索DIG1,由電路圖可以知道,DIG1必須是一個(gè)低電平
這里可以看到DIG1控制引腳是P9.0,所以,點(diǎn)亮一個(gè)數(shù)碼管現(xiàn)在很容易了
put_P9DIR_BIT0(1);//設(shè)置端口為輸出端口
put_P9OUT_BIT0(0);//導(dǎo)通二級(jí)管
示例代碼:
#include
#include"for_5438_wjx.c"http://頭文件
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;//關(guān)閉看門狗
put_P5DIR_BIT4(1); // 主電源 P5.4
put_P5OUT_BIT4(1); //打開(kāi)外設(shè)電源
put_P9SEL_BIT0(0);//設(shè)置P9.0為普通I/O
put_P9DIR_BIT0(1);//設(shè)置P9.0為輸出
put_P7SEL_BIT3(0);//開(kāi)發(fā)板上7.3口是lcd的電源,設(shè)置P7.3為普通I/O
put_P7DIR_BIT3(1);//設(shè)置P7.3為輸出
put_P7OUT_BIT3(0);//給lcd供電
put_P9OUT_BIT0(0);//點(diǎn)亮led數(shù)碼管
while(1);
}
總結(jié)一下最近所學(xué)的,將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;//關(guān)閉看門狗
put_P5DIR_BIT4(1); // 主電源 P5.4
put_P5OUT_BIT4(1); //打開(kāi)外設(shè)電源
put_P9SEL(0x0); //設(shè)置P9.0到P9.3為普通I/O
put_P9DIR(0x0f); //設(shè)置P9.0到P9.3為輸出
put_P1SEL(0x0); //設(shè)置P1.4到P1.7為普通I/O
put_P1DIR(0xf0); //設(shè)置P1.4到P1.7為輸出
put_P1OUT(0xf0); //關(guān)閉led顯示
put_P7SEL_BIT3(0); //開(kāi)發(fā)板上7.3口是lcd的電源,設(shè)置P7.3為普通I/O
put_P7DIR_BIT3(1); //設(shè)置P7.3為輸出
put_P7OUT_BIT3(0); //給lcd供電
F:
for(i=0;i<4;i++)
{
put_P9OUT(table1[i]); //點(diǎn)亮led數(shù)碼管
delay_ms(50);
}
put_P9OUT(0x0f);
for(j=0;j<4;j++)
{
put_P1OUT(table2[j]);
delay_ms(50);
}
put_P1OUT(0xf0);
goto F;
}