msp430工作笔记4

发布者:ikfnpo最新更新时间:2016-08-23 来源: eefocus关键字:msp430  工作笔记 手机看文章 扫描二维码
随时随地手机看文章
这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工程应用的需求。

下面我就对几个方面讲述一下我对它学习过程中的一些体会。我会尽量全面的介绍,并且会主要针对一些特殊的应用和一些我认为要特别注意的地方进行较为详细的说明。而对于那些较为固定的,常用的方面会简略一些。

其中的不管串行模式还是并行模式,对液晶的写指令,写数据,读操作等这些基本的操作都是一些比较固定的,基础的东西。我认为只要能够看懂,并且能够在不同的处理器上移植就够了,没有必要非要自己对着手册时序图写出来。因为有人已经写好了,而且工作稳定,我们只要在它的基础上学会应用就可以了。现在是知识爆炸时期,知识,信息迅速膨胀,我们要学会使用已有的成果,然后在这个基础上自己再进行开发应用的研究。我们不必一定要从底层开始把别人已经做的很成熟的东西再做一遍,这样不但效率不高,而且我们一般人的精力也不允许。

好了,不说废话了,下面就开始介绍,当然,那些基础层面的东西我也会介绍的。

下面所涉及到的程序,是针对msp430g2553的,都是我已经调通的,可以直接应用。

 

一,12864的介绍

1,液晶显示模块是128×64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312 码简体中文字库(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM(GDRAM)。可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。

2,常用的12864液晶内部都是使用ST7920控制器。

    1),ST7920提供8位元,4位元及串行三种微处理器控制方式,大陆常用的是8位元和串行控制方式。

2),ST7920可以控制显示字母,数字符号,中文字型和自定义的图画。可以用来显示图形,演示动画,绘制曲线等。

3),字符显示RAM (DDRAM)

ST7920的字符显示RAM (DDRAM)最多可以控制16字元*4行,LCD的显示范围为16字元*2行。

这里要注意,其实ST7920的DDRAM每一行可以控制16个汉字的,共有4行。但是LCD的每行只能显示8个字符,为了显示观察的方便,在lcd制作的过程中,是将DDRAM的其中两行拆分开成四行,然后在lcd上显示,也即是DDRAM只用到了一半。

lcd的显示字符的坐标地址如下表:

汉字显示坐标

Line1 80H 81H 82H 83H 84H 85H 86H 87H

Line2 90H 91H 92H 93H 94H 95H 96H 97H

Line3 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH

Line4 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH

从上表不难看出,其中第一行和第三行是DDRAM中的同一行拆分来的,同理2 行也是DDRAM中的同一行拆分而来的。

了解了这一点就不难理解下面程序中在换行显示时,要认为手动地指定下一行的地址。例如:如果第一行显示完了,下面的数据我要接着显示在第二行,这样才符合人观察的习惯,那么我就要在换第二行显示之前要手动地把显示地址切换到第二行。要不然的话,第一行显示完了,地址会自动增加,就会显示到第三行上去,这样的话我们观察起来就不自然了。程序实例会在下面涉及到的。

 

    4),中文字库ROM (CGROM)

内置的是GB2312码简体中文字库,共提供了8192个16*16点的中文字型。

5),半宽字型ROM (HCGROM)

提供126个16*8点半字宽的字母符号字型。

6),图画显示RAM (GDRAM)

提供64*256位元的GDRAM

 

其中我们常用的RAM就是上面所提到的,还有一些CGRAM ,IRAM这些我们不经常使用,就不再介绍了。

上面介绍的DDRAM控制显示汉字,字符。GDRAM控制显示图画,上电后,默认DDRAM是打开的,控制液晶显示。GDRAM默认不打开,它里面的数据是随机的,如果此时打开了GDRAM的话,lcd会同时受到DDRAM和GDRAM的控制,由于GDRAM中的数据是随机的,所以会显示乱码。所以在使用GDRAM之前要先清除里面的随机数据。

清除GDRAM的函数如下:

 

void Clear_GDRAM(void)   //清除GDRAM中的的随机数据。因为上电后GDRAM中的数据是随机的,如果不清除而直接打开GDRAM显示时,会显示乱码

                        //所以在局部使用GDRAM显示图形时,要先清除随机数据。如果是全局使用GDRAM,即整个lcd屏全部设置显示数据,则可以

                       //不必清除,因为新数据会把随机数据给覆盖掉

{

    uchar i,j,k;

 

    wr_lcd(comm,0x34);        //打开扩展指令集   操作GDRAM是扩展指令集

0x80;

for(j 0;j 32;j++)

{

wr_lcd(comm,i++);

wr_lcd(comm,0x80);

   for(k 0;k 16;k++)

   {

   wr_lcd(dat,0x00);   //写入空字符,就相当于清零

   }

}

0x80;

  for(j 0;j 32;j++)

{

  wr_lcd(comm,i++);

  wr_lcd(dat,0x88);

   for(k 0;k 16;k++)

   {

   wr_lcd(dat,0x00);

    }

}

  wr_lcd(comm,0x30);        //回到基本指令集

}

 

   3,12864有两种工作模式

   1),并行模式和串行模式。并行模式就是常用的8位数据线,4为控制线。这种方式虽然占用的IO口较多,但是向液晶收发数据较容易实现,数据传输速度较快。所以在一些连续显示多幅图画,演示动画或对显示的实时性要求较高的场合应该考虑这种方式。其中在并行模式中,在向液晶写数据或命令前,要进行液晶忙标志判断 BF,要确定液晶显示不忙了,才能进行操作。

其中并行模式的液晶的读写数据,命令函数如下:

 

void Write_Cmd(uchar cmd)

{

    uchar lcdtemp 0;

 

    LCD_RS_L;

    LCD_RW_H;

    LCD_DataIn;    //数据输入单片机

    do                       //判忙

    {

        LCD_EN_H;

        _NOP();

        lcdtemp LCD2MCU_Data;

        LCD_EN_L;

 

    }

    while(lcdtemp 0x80);  //判断忙标志   等待忙

 

    LCD_DataOut;   //数据输出到lcd

    LCD_RW_L;

    MCU2LCD_Data cmd;   //单片机向lcd输入命令

    LCD_EN_H;

    _NOP();

    LCD_EN_L;

}

 

void  Write_Data(uchar dat)

{

    uchar lcdtemp 0;

 

    LCD_RS_L;

    LCD_RW_H;

    LCD_DataIn;

    do                       //判忙

    {

        LCD_EN_H;

        _NOP();

        lcdtemp LCD2MCU_Data;

        LCD_EN_L;

    }

    while(lcdtemp 0x80);     //等待忙

 

    LCD_DataOut;

    LCD_RS_H;

    LCD_RW_L;

 

    MCU2LCD_Data dat;   //单片机向lcd中输入数据

    LCD_EN_H;

    _NOP();

    LCD_EN_L;

}

 

   2),串行模式只用到了两根线WR  EN于单片机进行通信。这种方式可以大大减少单片机IO口的开销,适用于IO口资源有限的单片机(如msp430g2553)。但是这种方式实现起来较麻烦,数据的传输效率不高。对于一般的文字,简单图形的显示还是可以的。(有可能是因为msp430g2553的处理能力较强,我现在用串行连接方式,显示下面的几幅图画,显示效果很好,看不出有什么数据传输速度慢的问题)。

由于我用的是msp430g2553,所以我一直都是使用串行的控制模式。

//下面重点讲一下串行的时序

//SCLK:串行同步时钟线,每操作一位数据都要有一个SCLK跳变沿,而且在这里是上升沿有效。也即是说,每次SCLK由低电平变为高电平的瞬间,液晶控

//制器将SID上的数据读入或输出。

//SID:串行数据,每一次操作都由三个字节数据组成,第一个字节向控制器发送命令控制字,告诉控制器接下来是什么操作,若为写指令则发送11111000

//(0xf8),若为若为写数据则发送11111010(0xfa),若为读状态则发送11111100(0xfc),若为读数据则发送11111110(0xfe)。

//第二个字节的高4位为发送指令或数据的高4位,第二个字节的低4位补0.

//第三个字节的高4位为发送指令或数据的低4位,第三个字节的低4位补0

//具体的可以观察时序进行理解

12864液晶深入学习笔记_1——基于msp430g2553

 

其中数据的传输的函数如下:

//12864串行连接写数据,写命令函数    按照手册上的时序进行编程
void wr_lcd(uchar dat_comm,uchar content)//
  //              要写的数据
  uchar a,i,j;
      delay_us(50);
  a=content;
       LCD_SCLK0; //en=0;
       LCD_SID1;  //wr=1
  for(i=0;i<5;i++) //数据时序*****************8  前5个高电平的同步码
  {
  LCD_SCLK1;
  LCD_SCLK0;
  }
  LCD_SID0;       //wr=0  写操作

  LCD_SCLK1;      //en=1  来一个时钟
  LCD_SCLK0;      //en=0
  if(dat_comm)
   LCD_SID1;  //RS=1  写数据
  else
   LCD_SID0;   //RS=0  写指令


  LCD_SCLK1; //来一个时钟
  LCD_SCLK0;

  LCD_SID0;  //控制字的最后一位为0

  LCD_SCLK1;  //来一个时钟
  LCD_SCLK0;

   for(j=0;j<2;j++)//************一共2*4次循环写写一字节数据,第一次大循环写高4位,第二次大循环写低4位
  {
    for(i=0;i<4;i++)
    {
      if(a&0x80)
           LCD_SID1;
        else
           LCD_SID0;
      a=a<<1;
      LCD_SCLK1;
      LCD_SCLK0;
    }
      LCD_SID0;
   for(i=0;i<4;i++)  //时钟下面来4个时钟脉冲
    {
       LCD_SCLK1;
       LCD_SCLK0;
    }
  }
}

 

void Draw_TX(uchar Yaddr,uchar Xaddr,const uchar dp)

{

    uchar j;

    uchar k=0;

 

   // wr_lcd(comm,0x01);  //清屏,只能清除DDRAM

    wr_lcd(comm,0x34);  //使用扩展指令集,关闭绘图显示   打开扩展指令集

    for(j=0;j<16;j++)

    {

     wr_lcd(comm,Yaddr++);       //Y地址

     wr_lcd(comm,Xaddr);    //X地址

     wr_lcd(dat,dp[k++]);     //写入数据

     wr_lcd(dat,dp[k++]);

    }

    wr_lcd(comm,0x36);  //打开绘图显示

  //  wr_lcd(comm,0x30);  //回到基本指令集模式

}

 

 

5,向液晶全屏写图像的函数如下:

 

void Draw_PM(const uchar *ptr)    //整屏显示图形

{

    uchar i,j,k;

 

    wr_lcd(comm,0x34);        //打开扩展指令集

0x80;

for(j 0;j 32;j++)

{

wr_lcd(comm,i++);

wr_lcd(comm,0x80);

   for(k 0;k 16;k++)

   {

   wr_lcd(dat,*ptr++);      //先写入32*16个数据

   }

}

0x80;

  for(j 0;j 32;j++)

{

  wr_lcd(comm,i++);

  wr_lcd(comm,0x88);

   for(k 0;k 16;k++)

   {

   wr_lcd(dat,*ptr++);      //再写入32*16个数据

    }

}

  wr_lcd(comm,0x36);        //打开绘图显示

  wr_lcd(comm,0x30);        //回到基本指令集

}

 

6,下面我就贴上一个对液晶功能测试的函数,其中用到了液晶的很多功能,可以有实现现象观察得到,注释的也较详细,代码如下:

 

#include  "msp430g2553.h"

#include  "ser_12864.h"

 

 

void main( void )

{

    uint i;

    uchar laba[]=     //16*16大小图形数据

    0x00,0x00,0x00,0xC0,0x01,0x48,0x02,0x44,0x04,0x52,0xF8,0x49,0x88,0x49,0x88,0x49,

      0x88,0x49,0x88,0x49,0xF8,0x49,0x04,0x52,0x02,0x44,0x01,0x48,0x00,0xC0,0x00,0x00};

 

    WDTCTL WDTPW WDTHOLD;    //关狗

 

    BCSCTL1 CALBC1_12MHZ;  //设定cpu时钟DCO频率为12MHz

    DCOCTL CALDCO_12MHZ;

    P2DIR |=BIT5+BIT4;      //液晶的两条线

 

    init_lcd();                 //初始化液晶

 

 

    //下面是显示液晶字符表中的字符

    wr_lcd(comm,0x80);            //写第一行的显示地址    写命令0x80

    for(i 0; 16; i++)        //每一行可以显示16个字符

     wr_lcd(dat,0x00 i);     //显示0x00~0x0f对应的字符  写数据

 

    wr_lcd(comm,0x90);            //写第二行的显示地址    因为12864的1 3行和2 4行分别由控制器ST7920的两行切割来的,为了看起来方便

    //这里要手动把地址切换到第二行。要不然的话,显示完了第一行,液晶会自动切换显示到第三行上去

    for(i 0; 16; i++)

     wr_lcd(dat,0x10 i);     //显示0x10~0x1f对应的字符

 

    wr_lcd(comm,0x88);            //写第三行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x20 i);     //显示0x20~0x2f对应的字符

 

    wr_lcd(comm,0x98);            //写第四行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x30 i);     //显示0x30~0x3f对应的字符

 

//     delay_ms(1000);   //延迟1s,观察效果

 

 

 

//调试时,可以在此处设置断点,单步执行下面的指令,观察结果

    //在显示时DDAM和GDRAM是同时显示的,也就是它们的显示结果是叠加在一起的

    

    //1.设定DDRAM地址命令

     wr_lcd(comm,0x90);            //设定DDRAM地址,因为此时DDRAM地址已经溢出

    //2.显示状态命令

     wr_lcd(comm,0x08);            //整体显示关,游标关,游标位置关

     wr_lcd(comm,0x0c);            //整体显示开,游标关,游标位置关

     wr_lcd(comm,0x0e);            //整体显示开,游标开,游标位置关

     wr_lcd(comm,0x0f);            //整体显示开,游标开,游标位置开  游标闪烁

    //3.位址归位

     wr_lcd(comm,0x02);            //位址归位,游标回到原点

 

     wr_lcd(comm,0x84);            //将DDRAM地址设为0x88,游标在此闪烁

    //4.点设定指令

    //(以下四个命令是控制写入字符以后光标及整屏显示的移动)

     wr_lcd(comm,0x07);            //光标右移整体显示左移

     wr_lcd(comm,0x20);           //写入两个空格

     wr_lcd(dat,0x20);

 

    wr_lcd(comm,0x05);            //光标左移整体显示右移

    wr_lcd(dat,0x20);           //写入两个空格

    wr_lcd(dat,0x20);

 

    wr_lcd(comm,0x06);            //光标右移整体显示不移动

    wr_lcd(dat,0x20);           //写入两个空格

    wr_lcd(dat,0x20);

 

    wr_lcd(comm,0x04);            //光标左移整体显示不移动

    wr_lcd(dat,0x20);           //写入两个空格

    wr_lcd(dat,0x20);

    //5.游标和显示移位控制

    //(以下四个命令无需写入显示数据,直接控制光标和整屏显示的移动,上面执行的命令是写入空格实现光标移动和整屏的移动)

    wr_lcd(comm,0x10);            //光标左移

    wr_lcd(comm,0x14);            //光标右移

    wr_lcd(comm,0x18);            //整体显示左移,光标跟随

    wr_lcd(comm,0x1c);            //整体显示右移,光标跟随

 

    wr_lcd(comm,0x0c);            //关闭光标

 

    //6.进入扩展功能模式命令

    wr_lcd(comm,0x34);            //打开扩展功能模式,绘图显示关闭

    //7.反白命令

    wr_lcd(comm,0x04);            //同时反白1、3行

    wr_lcd(comm,0x04);            //再次反白1、3行,相当于关闭1、3行反白

    wr_lcd(comm,0x05);            //同时反白2、4行

    wr_lcd(comm,0x05);            //再次反白2、4行,相当于关闭2、4行反白

    //8.睡眠模式命令

    wr_lcd(comm,0x08);            //进入睡眠模式  液晶的控制器ST7920关闭,降低功耗。但是背光还是亮的

    wr_lcd(comm,0x0c);            //退出睡眠模式   继续显示

    //9.待命模式命令

    wr_lcd(comm,0x01);            //进入待命模式  也是不显示内容的,液晶已经准备好接受数据或命令了

    //10.打开GDRAM显示                        //这样打开GDRAM显示,液晶的GDRAM和DDRAM会同时控制液晶的显示

    wr_lcd(comm,0x36);            //打开扩展功能模式,打开绘图显示  由于上电后GDRAM中的数据是随机的,所以如果在显示之前不清除的话,会显示乱码

    Draw_TX(0x80,0x84,laba);    //显示16*16大小图形  显示上面定义的图像,是一个小喇叭

    Clear_GDRAM();              //清除上电复位后GDRAM中的随机数值,此时GDRAM显示空字符,但是DDRAM中还是有数据,所以此时会显示DDRAM中的数据

    Draw_TX(0x80,0x84,laba);    //重新显示设置16*16大小图形

   //11.关闭GDRAM显示

    wr_lcd(comm,0x34);            //打开扩展功能模式,关闭绘图显示   显示DDRAM中的数据

    //12.设定基本指令集

    wr_lcd(comm,0x30);              //回到基本指令集

    //13.清除显示命令

    wr_lcd(comm,0x01);            //清屏  只能清除DDRAM  此时液晶就什么都不显示了

 

 

     //下面是显示液晶字符表中的字符

     wr_lcd(comm,0x80);            //写第一行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x40 i);     //显示0x40~0x4f对应的字符

 

    wr_lcd(comm,0x90);            //写第二行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x50 i);     //显示0x50~0x5f对应的字符

 

    wr_lcd(comm,0x88);            //写第三行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x60 i);     //显示0x60~0x6f对应的字符

 

    wr_lcd(comm,0x98);            //写第二行的显示地址

    for(i 0; 16; i++)

     wr_lcd(dat,0x70 i);     //显示0x70~0x7f对应的字符

 

    LPM4;

}

关键字:msp430  工作笔记 引用地址:msp430工作笔记4

上一篇:MSP430液晶LCD048
下一篇:msp430工作笔记3

推荐阅读最新更新时间:2024-03-16 15:06

MSP430教程:MSP430单片机ADC12模块
MSP430单片机的ADC12模块是一个12位精度的A/D转换模块,他具有高速度,通用性等个性。大局部都内置了ADC模块.而有些不带ADC模块的片子,也可穿越利用内置的模仿比拟器来告终AD的转换。在系列产品中,我们能够穿越以下列表来容易地认识他们的ADC功能告终。 系列型号ADC功能告终转换精度 MSP430X1XX2比拟器告终10位 MSP430F13XADC模块12位 MSP430F14XADC模块12位 MSP430F43XADC模块12位 MSP430F44XADC模块12位 MSP430X32XADC模块14位 从以下ADC12构造图中能够看出,ADC12模块中是由以下局部构成:输入的16
[单片机]
用超低功耗MSP430单片机设计数据采集系统
1 MSP430单片机简介 MSP430 是TI公司近几年推出的16位系列单片机,其最早是面向于驱动LED显示的应用设计,由于极好的应用效果和很大的市场潜力,TI很快将其发展为通用单片机。现已有X1XX、X3XX、X4XX几个系列,并且还在不断的发展。MSP430作为一种新型的单片机,采用了TI公司最新的低功耗技术,使其在众多的单片机中独树一帜。MSP430工作在1.8~3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、LPM2、LPM3、 LPM4),在电源电压为3V时,各种模式的工作电流分别为 AM:340uA、LPM1:70uA、LPM2:17uA、LPM3:2uA、LPM4:0.1uA。单片机可以方
[单片机]
用超低功耗<font color='red'>MSP430</font>单片机设计数据采集系统
解读MSP430F2274单片机设计的倒车雷达系统电路
  随着人们对汽车辅助驾驶系统智能化要求的提高和 汽车电子 系统的网络化发展,新型的倒车雷达应能够连续测距并显示障碍物距离,并具有通信功能,能够把数据发送到汽车总线上去。以往的倒车雷达设计使用的元器件较多,功能也较简单。本文介绍的基于新型高性能超低功耗单片机MSP430F2274的倒车雷达可以弥补以往产品的不足。   系统采用超声波测距原理。超声波测距仪器一般由发射器、接收器和信号处理器三部分组成。工作时,超声波发射器发出超声波脉冲,超声波接收器接收遇到障碍物反射回来的反射波,准确测量超声波从发射到遇到障碍物反射返回的时间,根据超声波的传播速度,可以计算出障碍物距离。作为一种非接触式的检测方式,超声波具有空气传播衰减小、反射能力和穿
[单片机]
解读<font color='red'>MSP430</font>F2274单片机设计的倒车雷达系统电路
MSP430 定时器输出PWM波形
硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。 定时器的PWM输出有有8种模式: 输出模式0 输出模式:输出信号OUTx由
[单片机]
<font color='red'>MSP430</font> 定时器输出PWM波形
CAN总线与MSP430红外检测系统电路
  本文介绍的是一种新的检测系统,选用红外CO传感器和MSP430单片机作为核心信号处理电路,结合数字滤波、温度补偿运算.具有检测浓度范围宽、使用寿命长等优点。   系统组成及硬件设计   该系统由红外CO气体传感器、MSP430单片机、CAN总线接口及远程监控系统组成。该系统在检测现场通过单片机处理检测的数据、控制 LCD显示、声光报警,同时还配备CAN总线控制器,可以轻松获取浓度、温度以及报警记录等相关信息,实现了智能化的工业现场、远程同时监控功能。系统的组成框图如图1所示。      CAN总线接口设计   该系统CAN接口由独立的CAN总线控制器SJA1000、CAN数据收发器TJA1050组成。SJA1000是独立
[单片机]
CAN总线与<font color='red'>MSP430</font>红外检测系统电路
MSP430F149的串口RS485接口
一、简述 RS485通信基本原理和使用方法同RS232,不同点如下。 RS232接口只能实现点对点的通信方式,但这种方式不能实现联网功能,便出现了RS485解决了这个问题。RS485采用差分信号负逻辑,+2V~+6V表示“1”,- 6V~- 2V表示“0”。双机通信时只需A-A,B-B连接。 硬件电路一般采用SN65176等RS485电平转换芯片。与MCU相连时有三个引脚:DE(RE同DE连在一起),DI(接受引脚),RO(发送引脚)。MCU发送一帧信号时,要先使能DE=1;接收信号前要先使能DE=0(即RE=0)。 二、实例 2.1 发送字符8.N.1.2400 #define DRE_out P3DIR
[单片机]
使用MSP430G2 LaunchPad开发板连接步进电机的方法
在本篇文章中,我们将介绍如何使用MSP430 LaunchPad开发板连接一个步进电机。 MSP-EXP430G2是德州仪器(TI)提供的开发工具,又名LaunchPad,用于学习和练习如何使用他们提供的微控制器。该开发板属于MSP430产品线,我们可以使用它对所有MSP430系列微控制器进行编程。如果您是MSP430的新手,请查看MSP430 LaunchPad的入门教程。 所需的材料 ● MSP430 LaunchPad开发板 ● 35BYJ46或28-BYJ48步进电机 ● ULN2003驱动芯片 ● 连接导线 ● 面包板 步进电机 步进电机是一种无刷直流电机,可将电脉冲转换为不同的机械运动。步进电机的轴以
[单片机]
使用<font color='red'>MSP430</font>G2 LaunchPad开发板连接步进电机的方法
基于MSP430F169的深海环境数据采集系统设计
海洋占地球表面的71%,是各国分别占有和世界共有的。世界海洋中有2.5亿平方千米公海和国际海底区域,其中有丰富的共有海洋资源。海洋是富饶而未充分开发的资源宝库。随着陆地战略资源的日益短缺,沿海各国不断加大向海洋索取资源的力度和强度。因此,开发一种可采集深海环境信息的设备,对深入开发海洋资源,具有极其重要的作用。已有的深海环境信息采集系统有采样精度低、功耗大等缺点,无法长期在水下工作,不适于深海勘探。本文提出的深海环境数据采集系统可用于4 000 m深海环境,不仅能对温度、压力、盐度等信息进行采集,还可以自动存储到Flash中,并上传到上位机进行显示、分析。该系统具有精度高、功耗低等优点,一次充电可工作一年左右,非常适合深海探测。
[测试测量]
基于<font color='red'>MSP430</font>F169的深海环境数据采集系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved