NUCLEO-F070R-DS1820

Dependencies:   mbed

Fork of NUCLEO-F401RE-DS1820andThermistorNTC10K by Enrico Marinoni

Files at this revision

API Documentation at this revision

Comitter:
anywill
Date:
Fri Oct 21 09:09:11 2016 +0000
Parent:
5:22fb02a92579
Commit message:
nucleo 5110;

Changed in this revision

DS1820.lib Show diff for this revision Revisions of this file
NOKIA_5110.cpp Show annotated file Show diff for this revision Revisions of this file
NOKIA_5110.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 22fb02a92579 -r 7f43285de85b DS1820.lib
--- a/DS1820.lib	Fri Oct 21 01:48:28 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/Sissors/code/DS1820/#196e9e54b033
diff -r 22fb02a92579 -r 7f43285de85b NOKIA_5110.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NOKIA_5110.cpp	Fri Oct 21 09:09:11 2016 +0000
@@ -0,0 +1,173 @@
+// Project: Nokia5110 - Controlling a NK5110 display from an NXP LPC1768
+// File: NOKIA_5110.cpp
+// Author: Chris Yan
+// Created: January, 2012
+// Revised: January, 2014
+//  Desc: Supporting code for the NokiaLcd class
+
+#include "NOKIA_5110.h"
+#include "mbed.h"
+
+NokiaLcd::NokiaLcd(LcdPins pinout)
+{
+    // SPI
+    LcdSpi = new SPI(pinout.mosi, pinout.miso, pinout.sclk);
+    LcdSpi->format(LCD_SPI_BITS, LCD_SPI_MODE);
+    LcdSpi->frequency(LCD_FREQ);
+    
+    // Control Pins
+    Pins = new DigitalOut*[3];
+    Pins[PIN_RST]   = new DigitalOut(pinout.rst);
+    Pins[PIN_SCE]   = new DigitalOut(pinout.sce);
+    Pins[PIN_DC]    = new DigitalOut(pinout.dc);
+    
+    // Initial Command Instructions, note the initial command mode
+    FunctionSet.V   = CMD_FS_HORIZONTAL_MODE;
+    FunctionSet.H   = CMD_FS_EXTENDED_MODE;
+    FunctionSet.PD  = CMD_FS_ACTIVE_MODE;
+    FunctionChar    = CreateFunctionChar();
+    
+    TempControlChar = CMD_TC_TEMP_2;
+    DispControlChar = CMD_DC_NORMAL_MODE;
+    BiasChar        = CMD_BI_MUX_48;
+    VopChar         = CMD_VOP_7V38;
+}
+
+void NokiaLcd::ShutdownLcd()
+{
+    FunctionSet.PD  = CMD_FS_POWER_DOWN_MODE;
+
+    ClearLcdMem();
+    SendFunction( CMD_DC_CLEAR_DISPLAY );
+    SendFunction( CreateFunctionChar() );
+}
+
+void NokiaLcd::ClearLcdMem()
+{
+    for(int tick = 0; tick <= 503; tick++)
+        LcdSpi->write(0x00);
+}
+
+void NokiaLcd::TestLcd(char test_pattern)
+{
+    for(int tick = 0; tick <= 503; tick++)
+        LcdSpi->write(test_pattern);         // Command gets sent
+}
+
+void NokiaLcd::InitLcd()
+{
+    ResetLcd();
+    Pins[PIN_SCE]->write(0);     // Chip Select goes low
+    
+    // Redefine the FunctionChar in case it has changed
+    FunctionSet.V   = CMD_FS_HORIZONTAL_MODE;
+    FunctionSet.H   = CMD_FS_EXTENDED_MODE;
+    FunctionSet.PD  = CMD_FS_ACTIVE_MODE;
+    SendFunction( CreateFunctionChar() );   // Extended CMD set
+    SendFunction( VopChar );                // | Vop
+    SendFunction( TempControlChar );        // | Temp
+    SendFunction( BiasChar );               // | Bias
+
+    FunctionSet.H   = CMD_FS_BASIC_MODE;
+    SendFunction( CreateFunctionChar() );   // Basic CMD set
+    SendFunction( DispControlChar );        // | Display Mode
+    
+    ClearLcdMem();
+    Pins[PIN_DC]->write(1);     // Data/CMD goes back to Data mode
+}
+
+void NokiaLcd::ResetLcd()
+{
+    Pins[PIN_RST]->write(0);    // Reset goes low
+    Pins[PIN_RST]->write(1);    // Reset goes high
+}
+
+char NokiaLcd::CreateFunctionChar()
+{
+    return ( 0x20 | FunctionSet.PD | FunctionSet.V | FunctionSet.H );
+}
+
+void NokiaLcd::SendDrawData(char data)
+{
+    LcdSpi->write(data);         // Command gets sent
+}
+
+void NokiaLcd::DrawChar(char character)
+{
+    for( int i = 0; i < 6; i++)
+        SendDrawData( FONT_6x6[ ((character - 32)*6) + i] );
+}
+
+void NokiaLcd::DrawString(char* s)
+{
+    char len = strlen(s);
+    for( int idx = 0; idx < len; idx++ )
+    {
+        for( int i = 0; i < 6; i++)
+            SendDrawData( FONT_6x6[ ((s[idx] - 32)*6) + i] );
+    }
+}
+
+void NokiaLcd::DrawFrameChar(char character)
+{
+    for( int i = 0; i < 6; i++)
+        SendDrawData((( FONT_6x6[ ((character - 32)*6) + i]  ) << 1 ) | 0x81);
+}
+
+void NokiaLcd::DrawNegFrameChar(char character)
+{
+    for( int i = 0; i < 6; i++)
+        SendDrawData(~(( FONT_6x6[ ((character - 32)*6) + i]  ) << 1 ) | 0x81);
+}
+
+char* NokiaLcd::NumToStr(int num)
+{
+    if(num <= 0)
+        return "0";
+
+    double length = 0;
+    int tlen = 0;
+    int temp = 1;
+    char c;
+    
+    // Get number of digits
+    while( temp <= num )
+    {
+        temp *= 10;
+        length++;
+    }
+    tlen = length;
+    char* numString = new char[tlen+1];
+    
+    // Convert each place in number to a stand-alone representative number
+    temp = 0;
+    for(int idx = pow(10, length); idx>1; idx = (idx/10))
+    {
+        c = (char)( ((num % idx)-(num % (idx/10)))/(idx/10) + 48);
+        numString[temp] = c;
+        temp++;
+    }
+    numString[temp] = '\0';
+    return numString;
+}
+
+void NokiaLcd::SetXY(char x, char y)
+{
+    if( (x > 83) || (y > 5) )
+        return;
+
+    SendFunction( x | 0x80 );
+    SendFunction( y | 0x40 );
+}
+
+void NokiaLcd::SendFunction(char cmd) //TODO:Detection of what H should be
+{
+    Pins[PIN_DC]->write(0);     // Data/CMD goes low
+    LcdSpi->write(cmd);         // Command gets sent
+    Pins[PIN_DC]->write(1);     // Data/CMD goes back to Data mode
+}
+
+NokiaLcd::~NokiaLcd()
+{
+    ShutdownLcd();
+}
diff -r 22fb02a92579 -r 7f43285de85b NOKIA_5110.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NOKIA_5110.h	Fri Oct 21 09:09:11 2016 +0000
@@ -0,0 +1,238 @@
+// Project: Nokia5110 - Controlling a NK5110 display from an NXP LPC1768
+// File: NOKIA_5110.h
+// Author: Chris Yan
+// Created: January, 2012
+// Revised: January, 2014
+//  Desc: Commands, fonts, and class for using a
+//      Nokia 5110 LCD via the Phillips 8554 LCD driver.
+// 
+//  Typical Usage: User must fill the LcdPins struct with the pinout used to control the LCD and
+//      instantiate the NokiaLcd class - passing the created LcdPins struct to the constructor.
+//      The class function NokiaLcd::InitLcd may then be called to reset and start the LCD driver.
+//      A simple 6x6 font (6x8 in LCD space and ~5x5 character space) is included to facilitate 
+//      the NokiaLcd::DrawChar( char character ) function, which will copy the character 8 bits 
+//      at a time for 6 clock cycles.
+//                 Commands may be sent to the LCD via the NokiaLcd::SendFunction(char cmd) 
+//      function, but be aware that certain commands require the Function Set register's H-value
+//      to be either 1 or 0, depending on the command. This class does not check to see whether
+//      the H-value is of proper status. The Function Set register /may/ be changed via the 
+//      NokiaLcd::SendFunction(char cmd), but the code uses this internally and expects that
+//      most function registers have not been changed by the user.
+//
+//      Example:
+//          #include "mbed.h"
+//          #include "NOKIA_5110.h"
+//
+//          int main() {
+//              LcdPins myLcdPins = { p11, NC, p13, p10, p8, p9 };
+//              NokiaLcd myLcd( myLcdPins );    // SPI is started here (8-bits, mode 1)
+//              myLcd.InitLcd();                // LCD is reset and DDRAM is cleared
+//              myLcd.TestLcd( 0xAA );          // Draws a vertical pattern where every other pixel is on 
+//              wait(10);                       
+//              myLcd.ShutdownLcd();            // Clears the LCD's DDRAM and powers it down via CMD_FS_POWER_DOWN_MODE, H=0
+//              while(1)
+//              {   };
+//          }
+
+// Command Instructions
+//       H = 0
+#ifndef __NOKIA_5110_H__
+#define __NOKIA_5110_H__
+
+// Command Instructions
+//       H = 0
+#define CMD_DC_CLEAR_DISPLAY   0x08
+#define CMD_DC_NORMAL_MODE     0x0C
+#define CMD_DC_FILL_DISPLAY    0x09
+#define CMD_DC_INVERT_VIDEO    0x0D
+#define CMD_FS_HORIZONTAL_MODE 0x00
+#define CMD_FS_VERTICAL_MODE   0x02
+#define CMD_FS_BASIC_MODE      0x00
+#define CMD_FS_EXTENDED_MODE   0x01
+#define CMD_FS_ACTIVE_MODE     0x00
+#define CMD_FS_POWER_DOWN_MODE 0x04
+//       H = 1
+#define CMD_TC_TEMP_0          0x04
+#define CMD_TC_TEMP_1          0x05
+#define CMD_TC_TEMP_2          0x06
+#define CMD_TC_TEMP_3          0x07
+#define CMD_BI_MUX_24          0x15
+#define CMD_BI_MUX_48          0x13
+#define CMD_BI_MUX_100         0x10
+#define CMD_VOP_6V06           0xB2
+#define CMD_VOP_7V38           0xC8
+
+// LCD Characteristics
+#define LCD_FREQ 2000000
+#define LCD_SPI_MODE 0x01
+#define LCD_SPI_BITS 0x08
+#define LCD_X_MAX 84
+#define LCD_Y_MAX 48
+
+#define PIN_RST  0x00
+#define PIN_SCE  0x01
+#define PIN_DC   0x02
+
+#include "mbed.h"
+
+struct LcdPins
+{
+    PinName mosi;
+    PinName miso;
+    PinName sclk;
+    PinName dc;
+    PinName sce;
+    PinName rst;
+};
+
+struct LcdFunctionSet
+{
+    char PD;
+    char V;
+    char H;
+};
+
+typedef char LcdFunctionChar;
+typedef char LcdTempControl;
+typedef char LcdDispControl;
+typedef char LcdBiasChar;
+typedef char LcdVopChar;
+
+class NokiaLcd
+{
+    public:
+        NokiaLcd(LcdPins lcd_pinout);
+        ~NokiaLcd();
+        
+    public:
+        void InitLcd();
+        void ClearLcdMem();
+        void ShutdownLcd();
+        void SendFunction(char cmd);
+        void TestLcd(char test_pattern);
+        void SendDrawData(char data);
+        
+    public:
+        void DrawString(char* str);
+        void DrawChar(char character);
+        void SetXY(char x, char y);
+        void DrawFrameChar(char character);
+        void DrawNegFrameChar(char character);
+        char* NumToStr(int num);
+        
+    private:
+        char CreateFunctionChar();
+        void ResetLcd();
+        
+    private:
+        LcdFunctionChar FunctionChar;
+        LcdTempControl  TempControlChar;
+        LcdDispControl  DispControlChar;
+        LcdFunctionSet  FunctionSet;
+        LcdBiasChar     BiasChar;
+        LcdVopChar      VopChar;
+        DigitalOut**    Pins;
+        SPI*            LcdSpi;
+        
+};
+
+const char FONT_6x6[570] = //should be 564 total char
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // SPACE   1   
+ 0x00, 0x06, 0x2F, 0x06, 0x00, 0x00, // !   2
+ 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, // "   3
+ 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00, // #   4
+ 0x2E, 0x2A, 0x3F, 0x2A, 0x3A, 0x00, // $   5
+ 0x26, 0x16, 0x08, 0x34, 0x32, 0x00, // %   6
+ 0x34, 0x2A, 0x3C, 0x18, 0x28, 0x00, // &   7
+ 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, // '   8
+ 0x00, 0x00, 0x1C, 0x36, 0x22, 0x00, // (   9
+ 0x22, 0x36, 0x1C, 0x00, 0x00, 0x00, // )   10
+ 0x24, 0x18, 0x0E, 0x18, 0x24, 0x00, // *   11
+ 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // +   12
+ 0x20, 0x30, 0x00, 0x00, 0x00, 0x00, // ,   13
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // -   14
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // .   15
+ 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, // /   16
+ 0x00, 0x1C, 0x22, 0x22, 0x1C, 0x00, // 0   17
+ 0x00, 0x24, 0x3E, 0x20, 0x00, 0x00, // 1   18
+ 0x3A, 0x2A, 0x2A, 0x2A, 0x2E, 0x00, // 2   19
+ 0x22, 0x2A, 0x2A, 0x2A, 0x3E, 0x00, // 3   20
+ 0x0E, 0x08, 0x08, 0x3E, 0x08, 0x00, // 4   21
+ 0x2E, 0x2A, 0x2A, 0x2A, 0x3A, 0x00, // 5   22
+ 0x3E, 0x2A, 0x2A, 0x2A, 0x3A, 0x00, // 6   23
+ 0x22, 0x12, 0x0A, 0x06, 0x02, 0x00, // 7   24
+ 0x3E, 0x2A, 0x2A, 0x2A, 0x3E, 0x00, // 8   25
+ 0x00, 0x2E, 0x2A, 0x2A, 0x3E, 0x00, // 9   26
+ 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // :   27
+ 0x00, 0x20, 0x14, 0x00, 0x00, 0x00, // ;   28
+ 0x00, 0x00, 0x08, 0x14, 0x22, 0x00, // <   29
+ 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // =   30
+ 0x22, 0x14, 0x08, 0x00, 0x00, 0x00, // >   31
+ 0x06, 0x01, 0x2D, 0x06, 0x00, 0x00, // ?   32
+ 0x1E, 0x23, 0x19, 0x35, 0x3E, 0x00, // @   33
+ 0x3C, 0x0A, 0x0A, 0x0A, 0x3C, 0x00, // A   34
+ 0x3E, 0x2A, 0x2A, 0x2A, 0x1C, 0x00, // B   35
+ 0x1C, 0x22, 0x22, 0x22, 0x22, 0x00, // C   36
+ 0x3E, 0x22, 0x22, 0x22, 0x1C, 0x00, // D   37
+ 0x3E, 0x2A, 0x2A, 0x2A, 0x22, 0x00, // E   38
+ 0x3E, 0x0A, 0x0A, 0x0A, 0x02, 0x00, // F   39
+ 0x1C, 0x22, 0x2A, 0x2A, 0x18, 0x00, // G   40
+ 0x3E, 0x08, 0x08, 0x08, 0x3E, 0x00, // H
+ 0x22, 0x22, 0x3E, 0x22, 0x22, 0x00, // I
+ 0x10, 0x22, 0x22, 0x1E, 0x02, 0x00, // J
+ 0x3E, 0x08, 0x14, 0x22, 0x00, 0x00, // K
+ 0x00, 0x3E, 0x20, 0x20, 0x20, 0x00, // L   45
+ 0x3E, 0x04, 0x08, 0x04, 0x3E, 0x00, // M
+ 0x3C, 0x02, 0x02, 0x02, 0x3C, 0x00, // N
+ 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x00, // O
+ 0x3E, 0x0A, 0x0A, 0x04, 0x00, 0x00, // P
+ 0x1C, 0x22, 0x32, 0x3C, 0x20, 0x00, // Q   50
+ 0x3E, 0x0A, 0x0A, 0x1A, 0x24, 0x00, // R
+ 0x24, 0x2A, 0x2A, 0x2A, 0x12, 0x00, // S
+ 0x02, 0x02, 0x3E, 0x02, 0x02, 0x00, // T
+ 0x1E, 0x20, 0x20, 0x20, 0x1E, 0x00, // U
+ 0x06, 0x18, 0x20, 0x18, 0x06, 0x00, // V   55
+ 0x0E, 0x30, 0x18, 0x30, 0x0E, 0x00, // W
+ 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, // X
+ 0x02, 0x04, 0x38, 0x04, 0x02, 0x00, // Y
+ 0x22, 0x32, 0x2A, 0x26, 0x22, 0x00, // Z
+ 0x00, 0x00, 0x00, 0x3E, 0x22, 0x00, // [   60
+ 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00, // backslash
+ 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, // ]
+ 0x00, 0x04, 0x02, 0x02, 0x04, 0x00, // ^
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, // _
+ 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, // `   65
+ 0x18, 0x24, 0x14, 0x38, 0x00, 0x00, // a
+ 0x1E, 0x28, 0x28, 0x10, 0x00, 0x00, // b
+ 0x18, 0x24, 0x24, 0x00, 0x00, 0x00, // c
+ 0x10, 0x28, 0x28, 0x1E, 0x00, 0x00, // d
+ 0x18, 0x2C, 0x2C, 0x08, 0x00, 0x00, // e   70
+ 0x00, 0x3C, 0x12, 0x04, 0x00, 0x00, // f
+ 0x24, 0x2A, 0x1E, 0x00, 0x00, 0x00, // g
+ 0x3E, 0x08, 0x30, 0x00, 0x00, 0x00, // h
+ 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, // i
+ 0x10, 0x20, 0x1A, 0x00, 0x00, 0x00, // j   75
+ 0x3E, 0x10, 0x2C, 0x20, 0x00, 0x00, // k
+ 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, // l
+ 0x38, 0x08, 0x18, 0x08, 0x30, 0x00, // m
+ 0x30, 0x08, 0x08, 0x30, 0x00, 0x00, // n
+ 0x10, 0x28, 0x28, 0x10, 0x00, 0x00, // o   80
+ 0x38, 0x14, 0x14, 0x08, 0x00, 0x00, // p
+ 0x08, 0x14, 0x14, 0x38, 0x00, 0x00, // q
+ 0x3C, 0x08, 0x04, 0x00, 0x00, 0x00, // r
+ 0x2C, 0x34, 0x00, 0x00, 0x00, 0x00, // s
+ 0x08, 0x3C, 0x28, 0x00, 0x00, 0x00, // t   85
+ 0x18, 0x20, 0x20, 0x18, 0x00, 0x00, // u
+ 0x08, 0x10, 0x20, 0x10, 0x08, 0x00, // v
+ 0x18, 0x20, 0x10, 0x20, 0x18, 0x00, // w
+ 0x28, 0x10, 0x28, 0x00, 0x00, 0x00, // x
+ 0x2C, 0x30, 0x1C, 0x00, 0x00, 0x00, // y   90
+ 0x24, 0x34, 0x2C, 0x24, 0x00, 0x00, // z
+ 0x00, 0x00, 0x08, 0x3E, 0x22, 0x00, // {
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, // |
+ 0x22, 0x3E, 0x08, 0x00, 0x00, 0x00, // }
+ 0x10, 0x08, 0x18, 0x10, 0x08, 0x00, // ~   95
+};
+
+#endif
diff -r 22fb02a92579 -r 7f43285de85b main.cpp
--- a/main.cpp	Fri Oct 21 01:48:28 2016 +0000
+++ b/main.cpp	Fri Oct 21 09:09:11 2016 +0000
@@ -1,112 +1,40 @@
-
-/**
-
-    NUCLEO-F070R + DS18B20 
-    
-
-By:       
-Date:     Oct.2016
-Version:  1.0
-Name:     NUCLEO-F070R-DS1820
-NOTE:     For more info see here: http://www.emcu.it/NUCLEOevaBoards/mBed/QSG-Mbed-Library.pdf
-        原程序带NTC测温,本人将已其删除
-
-UART   
-    Baud Rate:    9600 
-    Data Bit:     8
-    Parity:       NONE
-    Stop Bit:     1
-    Flow Control: NONE
-    
-
-Connect to the NUCLEO-F070R8 the DS18B20 sensor (see the schematic below).
-The temperature sampling time is 1 sec.
-
- DS18B20 front view
-    __________
-   |          |
-   |    DS    |
-   |   18B20  |   
-   |          |
-   |__________|
-     |   |   |
-     1   2   3
-    GND  DQ VCC (3V3)
-     |   |   |______________ to VCC (3.3V on the NUCLEO-F070R)  
-     |   |  _|_
-     |   |  | |
-     |   |  | | 4K7
-     |   |  | |
-     |   |  -|-
-     |   |___|______________ to A1 (on the NUCLEO-F070RE) 
-     |
-     |
-     |______________________ to GND (on the NUCLEO-F070RE)   
-
-This SW is just for only one DS18B20
-This SW is a derivative of:: https://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/
-On the: https://developer.mbed.org/users/Sissors/code/DS1820_HelloWorld/ there is a multi sensor (DS18B20) example.
-
- 
-*/
-
-#define MULTIPLE_PROBES
-#define DATA_PIN        A1
-
-#ifdef MULTIPLE_PROBES
+// Project: Nokia5110 - Controlling a NK5110 display from an NXP LPC1768
+// File: main.cpp
+// Author: Chris Yan
+// Created: January, 2012
+// Revised: 
+//  Desc: A basic LCD output test which uses the NXP LPC1768's SPI interface to 
+//      display pixels, characters, and numbers on the Nokia 5110 LCD.
+//      Created using a sparkfun breakout board with integrated Phillips 8544 driver
+//      for 48x84 LCDs.
 
 #include "mbed.h"
-#include "DS1820.h"
-
-#define MAX_PROBES      16
-
-float get_temperature(void);
-
-//AnalogIn thermistor(A5); // Thermistor
+#include "NOKIA_5110.h"
 
-float temp=0;
-float tempArr[100];
-int n=0;//n个测温设备
-Serial pc(SERIAL_TX, SERIAL_RX); // 虚拟 USART2 tx, rx
-DS1820* probe[MAX_PROBES];
- 
 int main()
- {  
-    // Initialize the probe array to DS1820 objects
-    int num_devices = 0;
-    while(DS1820::unassignedProbe(DATA_PIN)) {
-        probe[num_devices] = new DS1820(DATA_PIN);
-        num_devices++;
-        if (num_devices == MAX_PROBES)
-            break;
-    }
+{
+    // Init the data structures and NokiaLcd class
+    LcdPins myPins;
+    myPins.sce  = D8;
+    myPins.rst  = D9;
+    myPins.dc   = D10;
+    myPins.mosi = D11;
+    myPins.miso = NC;
+    myPins.sclk = D13;//
     
-    printf("Found %d device(s)\r\n\n", num_devices);//检测到n个测温设备
+    NokiaLcd myLcd( myPins );
     
-    while(1) 
-    {
-        probe[0]->convertTemperature(true, DS1820::all_devices);         //Start temperature conversion, wait until ready
-        for (int i = 0; i<num_devices; i++)
-            printf("Device %d returns %3.3f oC\r\n", i, probe[i]->temperature());
-        
-        
-        wait(1);
-    }
-    
-}
+    // Start the LCD
+    myLcd.InitLcd();
 
-#else
-#include "mbed.h"
-#include "DS1820.h"
- 
-DS1820 probe(DATA_PIN);
- 
-int main() {
-    while(1) {
-        probe.convertTemperature(true, DS1820::all_devices);         //Start temperature conversion, wait until ready
-        printf("It is %3.3f oC\r\n", probe.temperature());
-        wait(1);
+    // Draw a test pattern on the LCD and stall for 15 seconds
+    myLcd.TestLcd( 0xAA );
+    wait( 15 );
+    
+    // Turn off the LCD and enter an endless loop
+    myLcd.ShutdownLcd();
+    while( 1 )
+    {   
+        //dance
     }
-}
-
-#endif
+}
\ No newline at end of file