㈠ 跪求msp430f5529的ds18b20的程序
可以應用於能量收集、無線感測以及自動抄表等場合,是最低工作功耗的單片機之一。MSP430F5529開發板MSP-EXP430F5529是MSP430F5529單片機的開發平台,由電源選擇開關、RF射頻介面、 microSD card插槽、MSP430F5529晶元及引出引腳、USB介面、JTAG模擬介面、齒輪電位計、電容觸摸按鍵、LED、按鈕、 EZ-FET內置模擬器、102x64點陣LCD和三坐標軸加速度計組成。該開發板將I/O引腳接出來,方便用戶進行實驗操作,既可用於科研開發,又適合實驗教學、課程設計、畢業設計等,為廣大高校師生提供了良好的實驗開發環境,同時也是廣大電子愛好者學習、開發MSP430系列單片機的良好平台。
㈡ 求一個MSP430F5529單片機能用的程序
現成的估計沒多少,SHT11就是DHT21吧,就是IO控制時序問題,耐心點吧。找個DHT21的程序,網上一大把,然後修改一下嘍。
㈢ msp430f5529與stm32哪個好
MSP430是比較經典的超低功耗單片機,年代也比較久了2000年以前的晶元了。 STM32是現在流行的也是很容易開發的單片機,帶L系列的晶元也是超低功耗的。
綜上,選擇STM32是比較合理的。
STM32F0_新建軟體工程詳細過程:
http://blog.csdn.net/ybhuangfugui/article/details/51510482
㈣ mspexp430f5529lp 是單片機嗎
MSP430 是單片機,MSPEXP430F5529LP 是簡單的 MSP430 的開發板。
http://ke..com/view/4869751.htm?fr=aladdin&fromtitle=MSP430&fromid=3897155&type=syn
㈤ 對於單片機msp430f5529,如何用移位來使四個燈依次亮一下
#include <msp430f5529.h>
unsigned int m=0,n=0;
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;
n=1;
P1DIR |=0xff;
while(1)
{
P1OUT=n;
for(m=0;m<8;m++)
{
n=n<<1;
__delay_cycles(40000);
}
}
}
㈥ MSP430F5529單片機引腳問題
引腳復用,這在單片機上很常見,對應設置寄存器就可以實現對應的功能
㈦ 怎麼把16腳的LCD12864接到單片機5529的最小系統板上,相應的引腳怎麼接,最好能給段程序
不用那麼多線,直接用串口來控制,並口方式用杜邦線很麻煩。
LCD_CS配置為輸出,3V3電平支持,我用的是Cortex-M0的核,3V3電平完全沒問題。
LCD_CLC也是輸出模式,LCD_DAT也是輸出模式,LCD_RST也是,都配置為上拉電阻模式。
12864的15腳一定要接GND,要不然沒法識別信號電平。
另外不知道你的開發板有沒有5V電源的頭,沒有都換成3.3V也可以,不過屏幕背光看起來很暗。
程序你可以參考:我這個是帶字型檔的12864
WR 代表LCD_DAT
RST 代表LCD_RST
E代表LCD_CLC
RS代表LCD_CS
#include "CPU.h"
void En_Wirte( unsigned char Row , unsigned char Array , const unsigned char *Point); //顯示固定字元
void HZ_Wirte( unsigned char Row , unsigned char Array , unsigned char *Point); //顯示變數字元
void LCD_12864_Pic( unsigned char const *a ); //顯示圖片函數 (a的長度一定要大於64*16) //顯示圖片
void LCD12864_Clear(void); //清屏
unsigned char Display_Buffer[16] ;
/*
****************************************************************************
公 司 :
部 門 : 工程技術部
姓 名 : Gordon Yang
函 數 : int main (void)
功 能 : 主函數
輸 入 :
輸 出 :
|||| 配 套 函 數 ||||
函 數 : 無 ①②③
注 釋 : Noraml_Mode 開機運行的普通模式
Designer_Mode 按上按鈕運行的功能發送模式
Programmer_Mode 按下按鈕程序員調試模式
****************************************************************************
*/
/********************************************************************
* 名稱 : delay()
* 功能 : 延時,延時時間為 100us * t。這是通過軟體延時,有一定誤差。
* 輸入 : t
* 輸出 : 無
***********************************************************************/
static void delay(unsigned int t)
{
unsigned int i,j;
for(i=0; i<t; i++)
for(j=0; j<20; j++);
}
/********************************************************************
* 名稱 : sendbyte()
* 功能 : 按照液晶的串口通信協議,發送數據
* 輸入 : zdata
* 輸出 : 無
***********************************************************************/
void sendbyte(unsigned char zdata)
{
unsigned int i;
for(i=0; i<8; i++)
{
if((zdata << i) & 0x80)
{
WR_H ;
}
else
{
WR_L ;
}
delay(2);
E_L ;
delay(2);
E_H ;
delay(2);
}
}
/********************************************************************
* 名稱 : write_com()
* 功能 : 寫串口指令
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void write_com(unsigned char cmdcode)
{
RS_H ;
sendbyte(0xf8);
sendbyte(cmdcode & 0xf0);
sendbyte((cmdcode << 4) & 0xf0);
delay(20);
}
/********************************************************************
* 名稱 : write_data()
* 功能 : 寫串口指令
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void write_data(unsigned char Dispdata)
{
RS_H ;
sendbyte(0xfa);
sendbyte(Dispdata & 0xf0);
sendbyte((Dispdata << 4) & 0xf0);
delay(20);
}
/********************************************************************
* 名稱 : lcdinit()
* 功能 : 初始化函數
* 輸入 : cmdcode
* 輸出 : 無
***********************************************************************/
void lcdinit( void )
{
RST_L ;
delay(1000);
RST_H ;
delay(2000);
write_com(0x30);
delay(50);
write_com(0x0c);
delay(50);
LCD12864_Clear();
delay(50);
}
/********************************************************************
* 名稱 : hzkdis()
* 功能 : 顯示字元串
* 輸入 : *s
* 輸出 : 無
***********************************************************************/
void hzkdis(unsigned char *s)
{
while(*s > 0)
{
write_data(*s);
s++;
delay(20);
}
}
/********************************************************************
* 名稱 : HZ_Wirte()
* 功能 : 顯示漢字的函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void HZ_Wirte( unsigned char Row , unsigned char Array , unsigned char *Point)
{
unsigned char Buffer_Array , Buffer_Row , Buffer_Counter ;
Buffer_Array = Array ;
Buffer_Row = Row ;
if( Buffer_Row >= 3 ) Buffer_Row = 3 ;
if( Buffer_Array >= 7) Buffer_Array = 7 ;
write_com(0x03);
delay(50);
switch( Buffer_Row )
{
case(0):
{
write_com( 0x80 + Buffer_Array );
}break;
case(1):
{
write_com( 0x90 + Buffer_Array );
}break;
case(2):
{
write_com( 0x88 + Buffer_Array );
}break;
case(3):
{
write_com( 0x98 + Buffer_Array );
}break;
default:
{
;
}break;
}
Buffer_Array = Buffer_Array * 2 ;
for( Buffer_Counter = 16 - Buffer_Array ; Buffer_Counter > 0 ; Buffer_Counter-- )
{
write_data( *Point );
Point++;
}
}
/********************************************************************
* 名稱 : En_Wirte()
* 功能 : 顯示英文和數字的函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void En_Wirte( unsigned char Row , unsigned char Array , const unsigned char *Point)
{
unsigned char Buffer_Array , Buffer_Row , Buffer_Counter ;
Buffer_Array = Array ;
Buffer_Row = Row ;
if( Buffer_Row >= 3 ) Buffer_Row = 3 ;
if( Buffer_Array >= 15) Buffer_Array = 15 ;
write_com(0x03);
delay(50);
switch( Buffer_Row )
{
case(0):
{
write_com( 0x80 + Buffer_Array );
}break;
case(1):
{
write_com( 0x90 + Buffer_Array );
}break;
case(2):
{
write_com( 0x88 + Buffer_Array );
}break;
case(3):
{
write_com( 0x98 + Buffer_Array );
}break;
default:
{
;
}break;
}
for( Buffer_Counter = 16 - Buffer_Array ; Buffer_Counter > 0 ; Buffer_Counter-- )
{
write_data( *Point );
Point++;
}
}
/*LCD12864 清屏*/
void LCD12864_Clear(void)
{
write_com(0x01); //清屏指令
delay(1000); //延時1.6ms
}
void LCD_12864_Pic( unsigned char const *a ) //顯示圖片函數 (a的長度一定要大於64*16)
{
unsigned char i,j,k,temp;
write_com(0x34);//擴充指令
write_com(0x36);//繪圖顯示開
delay(1); //對於1T單片機來說這條延時很關鍵 普通單片機可以不加這條
for(i=0;i<2;i++)
{
if(i==0) //畫上半屏
temp=0;
else
temp=8; //畫下半屏
for(j=0;j<32;j++)
{
write_com((0x80+j)); //設置垂直地址(以位為單位,對應的行號)
write_com((0x80+temp));//設置水平地址(以位元組單位,對應的列號)指針可自增
for(k=0;k<16;k++)
{
write_data(*a++);
}
}
}
write_com(0x30);//基本指令
}
/***********************************************************
函數名: drawPoint
函數說明:畫點
傳入參數:打點位置(x0,y0);color=1,點亮;color=0,擦除
傳出參數:無
返回值: 無
**********************************************************/
void drawPoint(unsigned char x,unsigned char y,unsigned char color)
{
unsigned char row,collum,cbite;
unsigned char tempH = 0 ,tempL = 0 ;
write_com(0x34);//擴充指令
write_com(0x36);//繪圖顯示開
collum = x>>4;
cbite = x&0x0f;
if( color > 1 ) color = 1 ;
if(y<32)
{
row = y ;
}
else
{
row = y - 32 ;
collum += 8 ;
}
write_com(0x80+row);
write_com(0x80+collum);
if (color)
{
if(cbite<8)
{
tempH|=(1<<(7-cbite));
}
else
{
tempL|=(1<<(15-cbite));
}
}
else
{
if(cbite<8)
{
tempH&=~(1<<(7-cbite));
}
else
{
tempL&=~(1<<(15-cbite));
}
}
write_data(tempH);
write_data(tempL);
write_com(0x30);
}
㈧ MSP430F5529單片機串列通訊協議
MSP430F169:60KB+256BFlash,2KBRAMMSP430F5529:128KBFlash,8+2KBRAM其他外設只有數量差別,指令集都一樣,可以通過MSP430F169學習。
㈨ 求MPU6050.h文件,網上找的全是stm32或者51相關的頭文件,我用的是5529單片機的,網上找了好多都沒有,求
MPU-60X0由以下幾個關鍵塊和功能組成:
1、帶有16位ADC和信號調理的三軸MEMS速率陀螺儀感測器
2、具有16位ADC和信號調理的三軸MEMS加速度感測器
3、數字運動處理器(DMP)引擎
4、主I2C和SPI(僅MPU-6000)串列通信介面
5、用於第三方磁力計和其他感測器的輔助I2C串列介面
6、時鍾
7、感測器數據寄存器
8、FIFO
9、中斷
10、數字輸出溫度感測器
11、陀螺儀和加速度計自檢
12、偏見和LDO
13、充電泵
㈩ 5529單片機內部有沒有電源
建個元件庫,畫個方框,根據數據手冊標上引腳名字建個元件庫,畫個方框,根據數據手冊標上引腳名字建個元件庫,畫個方框,根據數據手冊標上引腳名字。
這個應該沒有的。