㈠ 跪求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单片机内部有没有电源
建个元件库,画个方框,根据数据手册标上引脚名字建个元件库,画个方框,根据数据手册标上引脚名字建个元件库,画个方框,根据数据手册标上引脚名字。
这个应该没有的。