當前位置:首頁 » 焊接工藝 » msp430f5438如何焊接

msp430f5438如何焊接

發布時間: 2021-03-01 05:19:24

❶ msp430g2553晶振怎麼焊接

一 I/O的簡介

1、各種復用和各種設置(可以作為簡單IO功能也可以作各種第二功能;可控制為輸入、輸出、接上拉電阻、接下拉電阻、接受中斷等各種情況);

2、IO口常用寄存器有:PXDIR、PXIN、PXOUT、PXREN、PXSEL、PXDS;其中,X可以是1~8,也可以是A~D,因為P1、P2可以合稱為PA。例如(PAREN=0x0480)就等價於(P2REN=0x04、P1REN=0x80)。
IO口中斷相關寄存器:PXIV、PXIFGX、PXIE、PXIES;由於IO中斷僅存在於P1口和P2口,因此X只能為1或2,而且不可以為A。

3、msp430f5529.h中定義了BIT0~BITF,方便用戶進行位操作。例如要設置P1.7和P2.2為輸入,代碼可如下:PADIR = ~(BITA + BIT7)。

二 IO口常用寄存器配置

1、PxDIR,Px口方向寄存器
0 埠配置為輸入(默認)
1 埠配置為輸入

2、PxOUT,Px口輸出寄存器(輸入、輸出兩種模式)
當IO口配置為輸出模式時:
0 輸出低電平
1 輸出高電平
當IO口配置為輸入模式並且置高/ 置低使能時:
0置低
1置高

3、PxIN,Px 口輸入寄存器
只讀

4、PxREN,Px口置高/ 置低使能寄存器
0關閉置高/ 置低
1使能置高/ 置低

5、PxSEL,Px功能選擇寄存器(IO中斷只有在普通IO下才能使用)
0普通的I/O(默認)
1有連接外圍電路的特殊用途

6、PxDS,Px 口輸出驅動能力寄存器(我都是用的默認)
0減弱輸出驅動能力(默認)
1全力輸出驅動能力

三 普通IO使用舉例

說明:本常式是流水燈加按鍵控制,每次S1按下,便在等待S2按下,否則,所有LED一直閃爍。若無按鍵按下,則八盞燈以流水燈方式顯示。

#include <msp430f5529.h>
#define uint8_t unsigned char
#define uint16_t unsigned int

//********* 控制LED的IO口宏定義 *************
#define LED_PORT_DIR P1DIR
#define LED_PORT_OUT P1OUT
#define LED23_PORT_DIR P8DIR
#define LED23_PORT_OUT P8OUT

//************ LED的IO口宏定義 *************
#define LED1 0x01
#define LED2 0x02
#define LED3 0x04
#define LED4 0x08
#define LED5 0x10
#define LED6 0x20
#define LED7 0x40
#define LED8 0x80
#define LED_ALL 0xFF

//************ 按鍵的IO口宏定義 *************
#define BUTTON_S1 (P1IN BIT7)
#define BUTTON_S2 (P2IN BIT2)

//**********************************************************
//*函數: void delay(uint16_t x_ms)
//*功能: 延時程序
//*參數: x_ms(單位:ms)
//*返回: 無
//*備註: 無
//**********************************************************
void delay(uint16_t x_ms)
{
uint16_t i=0,j=0;
for(i=x_ms;i>0;i--)
for(j=110;j>0;j--);
}

//**********************************************************
//*函數: void LED_Init()
//*功能: LED的IO口方向初始化
//*參數: 無
//*返回: 無
//*備註: 無
//**********************************************************
void LED_Init()
{
LED_PORT_OUT = ~(BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5);
LED_PORT_DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5;
LED23_PORT_OUT = ~(BIT1 + BIT2);
LED23_PORT_DIR |= BIT1 + BIT2;
}

//**********************************************************
//*函數: void Board_ledOn(uint8_t ledMask)
//*功能: 打開輸入的那盞燈
//*參數: ledMask
//*返回: 無
//*備註: 無
//**********************************************************
void Board_ledOn(uint8_t ledMask)
{
if (ledMask LED1) LED_PORT_OUT |= BIT0;
if (ledMask LED2) LED23_PORT_OUT |= BIT1;
if (ledMask LED3) LED23_PORT_OUT |= BIT2;
if (ledMask LED4) LED_PORT_OUT |= BIT1;
if (ledMask LED5) LED_PORT_OUT |= BIT2;
if (ledMask LED6) LED_PORT_OUT |= BIT3;
if (ledMask LED7) LED_PORT_OUT |= BIT4;
if (ledMask LED8) LED_PORT_OUT |= BIT5;
}

//**********************************************************
//*函數: void Board_ledOff(uint8_t ledMask)
//*功能: 關閉輸入的那盞燈
//*參數: ledMask
//*返回: 無
//*備註: 無
//**********************************************************
void Board_ledOff(uint8_t ledMask)
{
if (ledMask LED1) LED_PORT_OUT = ~BIT0;
if (ledMask LED2) LED23_PORT_OUT = ~BIT1;
if (ledMask LED3) LED23_PORT_OUT = ~BIT2;
if (ledMask LED4) LED_PORT_OUT = ~BIT1;
if (ledMask LED5) LED_PORT_OUT = ~BIT2;
if (ledMask LED6) LED_PORT_OUT = ~BIT3;
if (ledMask LED7) LED_PORT_OUT = ~BIT4;
if (ledMask LED8) LED_PORT_OUT = ~BIT5;
}

//**********************************************************
//*函數: void Board_ledToggle(uint8_t ledMask)
//*功能: 輸入的那盞燈的狀態取反
//*參數: ledMask
//*返回: 無
//*備註: 無
//**********************************************************
void Board_ledToggle(uint8_t ledMask)
{
if (ledMask LED1) LED_PORT_OUT ^= BIT0;
if (ledMask LED2) LED23_PORT_OUT ^= BIT1;
if (ledMask LED3) LED23_PORT_OUT ^= BIT2;
if (ledMask LED4) LED_PORT_OUT ^= BIT1;
if (ledMask LED5) LED_PORT_OUT ^= BIT2;
if (ledMask LED6) LED_PORT_OUT ^= BIT3;
if (ledMask LED7) LED_PORT_OUT ^= BIT4;
if (ledMask LED8) LED_PORT_OUT ^= BIT5;
}

//**********************************************************
//*函數: void main(void)
//*功能: 主函數
//*參數: 無
//*返回: 無
//*備註: 無
//**********************************************************
void main(void)
{
uint8_t LED = LED1; //定義變數LED
WDTCTL = WDTPW | WDTHOLD; //關閉看門狗
LED_Init(); //初始化LED的IO口方向
PADIR = ~(BITA + BIT7); //將按鍵的IO口方向設為輸入
PAREN |= (BITA + BIT7); //置高/ 置低使能
PAOUT |= (BITA + BIT7); //置高(類似於上拉)
while(1)
{
Board_ledOn(LED);
delay(1000); //延時1s左右
Board_ledOff(LED);
LED = LED << 1;
if(LED == 0x00) LED = LED1;
if(!BUTTON_S1)
{
delay(10); //消抖
if(!BUTTON_S1)
{
while(!BUTTON_S1);//等待S1釋放
while(BUTTON_S2) //等待S2按下
{
Board_ledToggle(LED_ALL);//所有LED狀態取反
delay(300);
}
Board_ledOff(LED_ALL);//關閉所有LED
}
}
}
}

❷ MSP430F5438的VCORE必須接電容嗎不接電容會怎麼樣

最好接個470nF的電容,畢竟TI已經這么說了。不然Vcore很容易由於MCLK變化,帶來波動。

❸ 請問一下有源晶振和MSP430F5438怎麼連接 晶振引腳是1:EOH 2:GND 3:OUTPUT 4:VCC

3號腳 接入 MSP的CLOCK IN吧

❹ MSP430F5438/A 使用定時器觸發ADC采樣,怎樣配置寄存器

#include "msp430x14x.h"

//初始化ADC12
P6SEL |= 0x01; // 使能ADC通道,默認的VREF為VCC
ADC12CTL0 = ADC12ON+SHT0_5+MSC; // 打開ADC,設置采樣時間

/*選擇內部參考電壓源*/
// ADC12CTL0|= REFON+REF2_5V;
// ADC12MCTL0|=SREF_1;

ADC12CTL1 = SHP+CONSEQ_2; // 使用采樣定時器
ADC12IE = 0x01; // 使能ADC中斷
ADC12CTL0 |= ENC; // 使能轉換
ADC12CTL0 |= ADC12SC; // 開始轉換

_EINT();
LPM0;
}

#pragma vector=ADC_VECTOR
__interrupt void conversion()
{
uint buffer[32];

static uint index=0;
buffer[index++]=ADC12MEM0;
if(index==32)
{
index=0;
}


數據buffer中的數值 就是轉換的數值

❺ 請教MSP430F5438A的晶振選擇,最好帶程序

#include <msp430x54x.h>
#include"XT2.h"
#define uint unsigned int
#define uchar unsigned char
void initsys()//XT2時鍾初始化
{
uchar k;
P5SEL |= BIT2+BIT3; // P5.2和P5.3是 XT2 腳,24MHz晶振
UCSCTL6 &= ~(XT2OFF);//開啟XT2晶振
UCSCTL3 |= SELREF_2; // FLLref = REFO
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);//清除TX1,XT2和DCO振盪標志
SFRIFG1&=~OFIFG;//清除振盪器失效標志,清除中斷標志
for(k=0xff;k>0;k--)//延時
{;}
}
while((SFRIFG1&OFIFG)!=0);//判斷XT2是否起振,等待時鍾系統正常工作
UCSCTL6 = XT2DRIVE1 + XT2DRIVE0; //驅動晶振的能力是24M到32M
UCSCTL4 |= SELS_5 + SELM_5+SELA_0; //SELA=XT1(32768Hz), SMCLK=MCLK=XT2(24MHz),CPU時鍾(MCLK)為24MHz
UCSCTL5 |= DIVS__4+DIVM__8+DIVA__1; //f(SMCLK)/4,24MHz 4分頻為6MHz==高速外圍時鍾(SMCLK)
}//初始化 //f(MCLK)/8,24MHz 8分頻為3MHz==CPU時鍾(MCLK)
//f(ACLK)/1,32768Hz 1分頻為32768Hz==低速外設(ACLK)

❻ MSP430F5438A altium designer9元件庫

第一:抄你可以到一些電子網站襲中去下MSP430F6638的資料,然後你面有詳細的參數,可以按照參數自己來畫!
http://www.alldatasheet.com/這個網站上一般常見的晶元都能找到,你的430也能找到,希望能幫助你。
第二:你可以在http://bbs.21ic.com/iclist-12-1.html 二十世紀電子工程師網站裡面的社區你面找到關於PCB的資料,一些大神會共享些他們的器件庫,注冊個賬號,就可以下載!

❼ 想自己焊接一個MSP430F149板子(只用到了蜂鳴器和LCD1602),焊接硬體電路圖是什麼樣的

相當與149單片機的最小系統加上液晶驅動晶元(因為149單片機內部沒有集成LCD驅動)回,液晶驅動晶元直接驅答動液晶,蜂鳴器可以用三極體驅動,因為單片機IO口提供的驅動電流不夠用。具體的電路圖還得取決於你用什麼樣的蜂鳴器,液晶多少個引腳,驅動晶元用什麼型號等等,如果有不明白的,可以追問!

❽ msp430f5438 C語言編程問題,求指教

<p>這一句是說在i=0時temp[0]=*addr;然後addr+1;</p>
<p>++與*優先順序如下,結合方向從右到左。望採納。</p>
<p></p>
<p> </p>

❾ MSP430F5438單片機問題,急!!!!!!!!!

既然你 學習了 51 那就來好辦了、源 像單片機可以簡單的稱之為可編程器件、 其實 這類晶元很多!各個原理也都不盡相同,但是 從應用的角度講 有一點是一樣的。那即是 都是一個電平的控制,即 控制IO在什麼時候該高 什麼時候 該低、在內部進行一些運算而已, 至於其他 中斷啊 定時器啊這些 原理都一樣、其他一些集成功能模塊 也一樣! 主要是要理解 這么一個整體思想。就好學多了、單片機總類 有很多 、你不可能每樣都會、你要學的是方法、以後 在需要用到 什麼款式的單片機時 再深入去學習 就很容易的 掌握 幾種 典型的 款式 就OK

❿ msp430f5438 P1口外部中斷問題!

T=50000/fMCLK
你採用的是連續計數模式(MC_2),所以CCR0在中斷里要遞加,採用增計數模式(MC_1)則不需要CCR0 += 50000。回
初始化時通過調整答BCSCTL1,DCOCTL調整。DCO時鍾有誤差,可以採用XT2高頻晶振。

熱點內容
線切割怎麼導圖 發布:2021-03-15 14:26:06 瀏覽:709
1台皮秒機器多少錢 發布:2021-03-15 14:25:49 瀏覽:623
焊接法蘭如何根據口徑配螺栓 發布:2021-03-15 14:24:39 瀏覽:883
印章雕刻機小型多少錢 發布:2021-03-15 14:22:33 瀏覽:395
切割機三五零木工貝片多少錢 發布:2021-03-15 14:22:30 瀏覽:432
加工盜磚片什麼櫸好 發布:2021-03-15 14:16:57 瀏覽:320
北洋機器局製造的銀元什麼樣 發布:2021-03-15 14:16:52 瀏覽:662
未來小七機器人怎麼更新 發布:2021-03-15 14:16:33 瀏覽:622
rexroth加工中心亂刀怎麼自動調整 發布:2021-03-15 14:15:05 瀏覽:450
機械鍵盤的鍵帽怎麼選 發布:2021-03-15 14:15:02 瀏覽:506