<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 水果電池驅(qū)動(dòng)LaunchPad(MSP430 G2553)+Nokia5110

          水果電池驅(qū)動(dòng)LaunchPad(MSP430 G2553)+Nokia5110

          作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏

          西紅柿1個(gè),切成4瓣,鐵釘(鍍鋅)4個(gè),銅芯導(dǎo)線5段
          導(dǎo)線起兩個(gè)作用:連線和陽(yáng)極,四瓣西紅柿要相互隔開(kāi),不能直接接觸,由于每瓣西紅柿只能提供0.8~0.9V左右的電壓,所以要串聯(lián)。由于MSP430功耗很低,只要單片機(jī)工作在低頻模式(關(guān)閉DCO),就能工作了,點(diǎn)亮Nokia5110沒(méi)有問(wèn)題,時(shí)間稍長(zhǎng)可能因?yàn)楣╇婋娏飨陆祵?dǎo)致不能正常顯示。如果采用休眠+喚醒方式,電池壽命將大大延長(zhǎng)。
          參考程序如下:
          /*
          修改者:http://jiwm.blog.13.com
          main.c
          Nokia5110 在msp430單片機(jī)上的應(yīng)用程序,利用SPI協(xié)議
          本程序在IAR上編譯,LaunchPad開(kāi)發(fā)板測(cè)試成功
          端口定義,此部分需要在nokia_5110.h加以修改
          #define LCD_5110_DIR P2DIR
          #define LCD_5110_OUTP2OUT
          #define LCD_RST 4 復(fù)位 P2.4
          #define LCD_SCE 3 片選 P2.3
          #define LCD_DC 2 數(shù)據(jù) P2.2
          #define LCD_DN 1 數(shù)據(jù) P2.1
          #define LCD_SCLK 0 時(shí)鐘 P2.0
          Built with IAR Embedded Workbench Version: 5.40
          */
          #include G2553.h>
          #include "nokia_5110.h"
          /******************************************************************************/
          void main(void)
          {

          WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
          BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO
          IFG1 &= ~OFIFG; // Clear OSCFault flag
          __bis_SR_register(SCG1 + SCG0); // Stop DCO
          BCSCTL2 |= SELM_3 ; // MCLK = LFXT1
          LCD_init(); //初始化液晶
          LCD_clear();
          while(1)
          {

          //LCD_write_english_String(x,y,*s) : 英文字符串顯示函數(shù)
          //輸入?yún)?shù):*s :英文字符串指針;
          // X、Y : 顯示字符串的位置,x 0-83 ,y 0-5
          LCD_write_english_string(0,0,"Nokia5110 LCD"); //寫(xiě)英文
          LCD_write_english_string(0,1,"Good Luck To U"); //最多14個(gè)英文字符
          //LCD_write_chinese_string(x,8y,ch_with,num.line,row): 在LCD上顯示漢字
          //
          //輸入?yún)?shù):X、Y :顯示漢字的起始X、Y坐標(biāo);
          // ch_with :漢字點(diǎn)陣的寬度
          // num :顯示漢字的個(gè)數(shù);
          // line :漢字點(diǎn)陣數(shù)組中的起始行數(shù)
          // row :漢字顯示的字間距
          LCD_write_chinese_string(16,2,12,3,0,5); //寫(xiě)漢字
          LCD_write_chinese_string(0,4,12,7,3,0); //成功源于不放棄

          }

          }
          /*
          nokia_5110.h
          修改者:http://jiwm.blog.13.com
          引腳描述
          pin description
          1 VCC(3.3V)
          2 GND
          3 CE
          4 RST
          5 DC
          6 DIN
          7 CLK
          8 Vlcd(+5V)
          */
          #ifndef __nokia_5110_h_
          #define __nokia_5110_h_
          #include "msp430G2553.h"
          #define LCD_5110_DIR P2DIR
          #define LCD_5110_OUTP2OUT
          #define LCD_RST 4
          #define LCD_SCE 3
          #define LCD_DC 2
          #define LCD_DN 1
          #define LCD_SCLK 0
          void LCD_init(void);
          void LCD_clear(void);
          void LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
          void LCD_write_chinese_string(unsigned char X, unsigned char Y,
          unsigned char ch_with,unsigned char num,
          unsigned char line,unsigned char row);
          void LCD_write_char(unsigned char c);
          void LCD_write_byte(unsigned char dat, unsigned char dc);
          void delay_1us(void);
          #endif
          //nokia_5110.c
          修改者:http://jiwm.blog.13.com
          #include "nokia_5110.h"
          #include "english_6x8_pixel.h" //寫(xiě)英文頭文件
          #include "write_chinese_string_pixel.h" //寫(xiě)中文頭文件
          /*-----------------------------------------------------------------------
          LCD_init : 5110LCD初始化
          -----------------------------------------------------------------------*/
          //void delay_1us(void) //1us延時(shí)函數(shù),i=2時(shí)約19個(gè)機(jī)器周期,對(duì)于16M時(shí)鐘來(lái)說(shuō),大于1uS,未用到
          //{
          // unsigned int i;
          // for(i=0;i<2;i++);

          //}
          // void delay_1ms(void) //1ms延時(shí)函數(shù) MSP430未用到
          // {
          // unsigned int i;
          // for (i=0;i<1140;i++);
          // }

          //void delay_nms(unsigned int n) //N ms延時(shí)函數(shù) MSP430未用到
          // {
          // unsigned int i=0;
          // for (i=0;i// delay_1ms();
          // }
          void LCD_init(void)
          {
          // 產(chǎn)生一個(gè)讓LCD復(fù)位的低電平脈沖

          LCD_5110_DIR |= (0x01 << LCD_RST) + (0x01 << LCD_SCE) + (0x01 << LCD_DC)
          + (0x01 << LCD_DN) + (0x01<< LCD_SCLK);

          LCD_5110_OUT &= ~(0x01 << LCD_RST);

          // LCD_RST = 1;
          LCD_5110_OUT |= (0x01 << LCD_RST);

          // 關(guān)閉LCD

          LCD_5110_OUT &= ~(0x01 << LCD_SCE);

          // 使能LCD
          //LCD_SCE = 1;
          LCD_5110_OUT |= (0x01 << LCD_SCE);
          LCD_write_byte(0x21, 0);// 使用擴(kuò)展命令設(shè)置LCD模式
          LCD_write_byte(0xc8, 0);// 設(shè)置偏置電壓
          LCD_write_byte(0x06, 0);// 溫度校正
          LCD_write_byte(0x13, 0);// 1:48
          LCD_write_byte(0x20, 0);// 使用基本命令
          LCD_clear(); // 清屏
          LCD_write_byte(0x0c, 0);// 設(shè)定顯示模式,正常顯示

          // 關(guān)閉LCD
          LCD_5110_OUT &= ~(0x01 << LCD_SCE);
          }
          /*-----------------------------------------------------------------------
          LCD_clear : LCD清屏函數(shù)
          -----------------------------------------------------------------------*/
          void LCD_clear(void)
          {
          unsigned int i;
          LCD_write_byte(0x0c, 0);
          LCD_write_byte(0x80, 0);
          for (i=0; i<504; i++)
          LCD_write_byte(0, 1);
          }
          /*-----------------------------------------------------------------------
          LCD_set_XY : 設(shè)置LCD坐標(biāo)函數(shù)
          輸入?yún)?shù):X :0-83
          Y :0-5
          -----------------------------------------------------------------------*/
          void LCD_set_XY(unsigned char X, unsigned char Y)
          {
          LCD_write_byte(0x40 | Y, 0);// column
          LCD_write_byte(0x80 | X, 0); // row
          }
          /*-----------------------------------------------------------------------
          LCD_write_char : 顯示英文字符
          輸入?yún)?shù):c :顯示的字符;
          -----------------------------------------------------------------------*/
          void LCD_write_char(unsigned char c)
          {
          unsigned char line;
          c -= 32;
          for (line=0; line<6; line++)
          LCD_write_byte(font6x8[c][line], 1);
          }
          /*-----------------------------------------------------------------------
          LCD_write_english_String : 英文字符串顯示函數(shù)
          輸入?yún)?shù):*s :英文字符串指針;
          X、Y : 顯示字符串的位置,x 0-83 ,y 0-5
          -----------------------------------------------------------------------*/
          void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
          {
          LCD_set_XY(X,Y);
          while (*s)
          {
          LCD_write_char(*s);
          s++;
          }
          }
          /*-----------------------------------------------------------------------
          LCD_write_chinese_string: 在LCD上顯示漢字
          輸入?yún)?shù):X、Y :顯示漢字的起始X、Y坐標(biāo);
          ch_with :漢字點(diǎn)陣的寬度
          num :顯示漢字的個(gè)數(shù);
          line :漢字點(diǎn)陣數(shù)組中的起始行數(shù)
          row :漢字顯示的字間距
          測(cè)試:
          LCD_write_chi(0,0,12,7,0,0);
          LCD_write_chi(0,2,12,7,0,0);
          LCD_write_chi(0,4,12,7,0,0);
          -----------------------------------------------------------------------*/
          void LCD_write_chinese_string(unsigned char X, unsigned char Y,
          unsigned char ch_with,unsigned char num,
          unsigned char line,unsigned char row)
          {
          unsigned char i,n;

          LCD_set_XY(X,Y); //設(shè)置初始位置

          for (i=0;i {
          for (n=0; n {
          if (n==ch_with) //寫(xiě)漢字的下半部分
          {
          if (i==0) LCD_set_XY(X,Y+1);
          else
          LCD_set_XY((X+(ch_with+row)*i),Y+1);
          }
          LCD_write_byte(write_chinese[line+i][n],1);
          }
          i++;
          LCD_set_XY((X+(ch_with+row)*i),Y);
          }
          }
          /*-----------------------------------------------------------------------
          LCD_write_byte : 使用SPI接口寫(xiě)數(shù)據(jù)到LCD
          輸入?yún)?shù):data :寫(xiě)入的數(shù)據(jù);
          command :寫(xiě)數(shù)據(jù)/命令選擇;
          -----------------------------------------------------------------------*/
          void LCD_write_byte(unsigned char dat, unsigned char command)
          {
          unsigned char i;
          LCD_5110_OUT &= ~(0x01 << LCD_SCE);// msp430

          if (command == 0) // 傳送命令
          LCD_5110_OUT &= ~(0x01 << LCD_DC);
          else // 傳送數(shù)據(jù)
          LCD_5110_OUT |= (0x01 << LCD_DC);
          for(i=0;i<8;i++)
          {
          if(dat&0x80)
          LCD_5110_OUT |= (0x01 << LCD_DN);
          else
          LCD_5110_OUT &= ~(0x01 << LCD_DN);
          //SCLK = 0;
          LCD_5110_OUT &= ~(0x01 << LCD_SCLK);
          dat = dat << 1;
          LCD_5110_OUT |= (0x01 << LCD_SCLK);
          }
          LCD_5110_OUT |= (0x01 << LCD_SCE);
          }
          /*write_chinese_string_pixel.h
          修改者:http://jiwm.blog.13.com
          要顯示的漢字字庫(kù)
          */
          char write_chinese[][24]={
          //人
          {0x00,0x00,0x00,0x80,0x60,0x1F,0x60,0x80,0x00,0x00,0x00,0x00,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x00},
          //生
          {0x20,0x10,0x8E,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x0F,0x08,0x08,0x08,0x08,0x08,0x00},
          //中
          {0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x01,0x00,0x00},
          //成
          {0x00,0xFC,0x24,0x24,0xE4,0x04,0xFF,0x04,0x85,0x66,0x04,0x00,0x08,0x07,0x00,0x02,0x0B,0x04,0x02,0x01,0x02,0x04,0x0F,0x00},
          //功
          {0x04,0x04,0xFC,0x04,0x04,0x08,0xFF,0x08,0x08,0x08,0xF8,0x00,0x02,0x02,0x01,0x09,0x05,0x03,0x00,0x00,0x08,0x08,0x07,0x00},
          //源
          {0x11,0x22,0x00,0xFF,0x01,0xF9,0xAD,0xAB,0xA9,0xF9,0x01,0x00,0x04,0x02,0x08,0x07,0x04,0x02,0x08,0x0F,0x00,0x02,0x04,0x00},
          //于
          {0x20,0x21,0x21,0x21,0x21,0xFF,0x21,0x21,0x21,0x21,0x20,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},
          //不
          {0x02,0x02,0x82,0x42,0x22,0xF2,0x0E,0x22,0x42,0x82,0x02,0x00,0x01,0x01,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0x00},
          //放
          {0x08,0xF9,0x4A,0x48,0xC8,0x20,0x10,0xEF,0x08,0xF8,0x08,0x00,0x08,0x07,0x00,0x08,0x0F,0x00,0x08,0x05,0x02,0x05,0x08,0x00},
          //棄
          {0x04,0x24,0x34,0xEC,0x25,0x26,0x24,0xE4,0x34,0x64,0x04,0x00,0x01,0x09,0x05,0x03,0x01,0x01,0x01,0x0F,0x01,0x01,0x01,0x00},
          };

          /*english_6x8_pixel.h
          修改者:http://jiwm.blog.13.com
          所有的英文字符表
          */
          const unsigned char font6x8[][6] =
          {
          { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
          { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
          { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
          { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
          { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
          { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %
          { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
          { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, //
          { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
          { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
          { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
          { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
          { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,
          { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
          { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
          { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
          { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
          { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
          { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
          { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
          { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
          { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
          { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
          { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
          { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
          { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
          { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
          { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
          { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
          { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
          { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
          { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
          { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
          { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A
          { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
          { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
          { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
          { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
          { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
          { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
          { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
          { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
          { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
          { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
          { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
          { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
          { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
          { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
          { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
          { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
          { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
          { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
          { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
          { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
          { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
          { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
          { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
          { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
          { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
          { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
          { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55
          { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
          { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
          { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
          { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, //
          { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
          { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
          { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
          { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
          { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
          { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
          { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g
          { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
          { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
          { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j
          { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
          { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
          { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
          { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
          { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
          { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p
          { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q
          { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
          { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
          { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
          { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
          { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
          { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
          { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
          { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y
          { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
          { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines
          };


          關(guān)鍵詞: 水果電池MSP430G2553Nokia511

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();