在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            西紅柿1個(gè),切成4瓣,鐵釘(鍍鋅)4個(gè),銅芯導(dǎo)線5段
            導(dǎo)線起兩個(gè)作用:連線和陽極,四瓣西紅柿要相互隔開,不能直接接觸,由于每瓣西紅柿只能提供0.8~0.9V左右的電壓,所以要串聯(lián)。由于MSP430功耗很低,只要單片機(jī)工作在低頻模式(關(guān)閉DCO),就能工作了,點(diǎn)亮Nokia5110沒有問題,時(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開發(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"); //寫英文
            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); //寫漢字
            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" //寫英文頭文件
            #include "write_chinese_string_pixel.h" //寫中文頭文件
            /*-----------------------------------------------------------------------
            LCD_init : 5110LCD初始化
            -----------------------------------------------------------------------*/
            //void delay_1us(void) //1us延時(shí)函數(shù),i=2時(shí)約19個(gè)機(jī)器周期,對(duì)于16M時(shí)鐘來說,大于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) //寫漢字的下半部分
            {
            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接口寫數(shù)據(jù)到LCD
            輸入?yún)?shù):data :寫入的數(shù)據(jù);
            command :寫數(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
            要顯示的漢字字庫
            */
            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ù)專區(qū)

            關(guān)閉