David Buck / Mbed 2 deprecated voltmeter

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LCD_setup.cpp Source File

LCD_setup.cpp

00001 // LCD_setup.cpp
00002 
00003 #include "header.h"
00004 /*****************************************************
00005   subroutines
00006 *****************************************************/
00007 /****initialise LCD function ****/  
00008 void LCD_init(void){  
00009     delay_l();
00010     FIO2DIR0=0xFF;  /* set port 2 byte 0 (ctrl) to output */
00011     FIO2PIN0=0x00;   //clear Port 2 byte 0 
00012                          //FIO2PIN bit0=R/W  (read/write)
00013                          //FIO2PIN bit1=RS   (register select)
00014                          //FIO2PIN bit2=E    (enable)
00015                          //all initialised low
00016                  
00017                          // set Port 0 and 1 to operate as fast registers           
00018     SCS |= 0x00000001;  //  by setting the GPIOM bit of the SCS register
00019     FIO0DIR2=0xFF;       // set port 0 byte 2 (data) to output 
00020     FIO0PIN2=0x00;       // clear Port 0 byte 2  
00021  
00022   /* RS already initialised to 'instruction' (low) */
00023     
00024     /**** Function set*/
00025   FIO0PIN2=0x38;              /* 2-line mode, 7 dot characters */                   
00026   toggle_enable();
00027  
00028   /**** Display on/off*/
00029   FIO0PIN2=0x0C;              /* display on, cursor off, blink off */                   
00030   toggle_enable();
00031         
00032   /**** Clear display */
00033   FIO0PIN2=0x01;              /* clear */
00034   toggle_enable();
00035   
00036   /**** Set entry mode */               
00037   FIO0PIN2=0x06;         /* increment cursor, shift off */
00038   toggle_enable();
00039      
00040 }
00041 
00042 
00043 /**** LCD Display 'Voltmeter' */
00044 void LCD_displayV(){
00045   FIO2CLR0=0x02;         /* set RS to 'control' */
00046   FIO0PIN2=0x01;              /* clear display*/
00047   toggle_enable();                      
00048   FIO2SET0=0x02;         /* set RS to 'data' */                 
00049   
00050     FIO0PIN2=_sp;       // process and display character              
00051   toggle_enable();
00052     FIO0PIN2=_sp;             
00053   toggle_enable();
00054     FIO0PIN2=_sp;             
00055   toggle_enable();    
00056     FIO0PIN2=_V;               
00057   toggle_enable();  
00058     FIO0PIN2=_O;               
00059   toggle_enable();
00060     FIO0PIN2=_L;               
00061   toggle_enable();
00062     FIO0PIN2=_T;               
00063   toggle_enable();
00064     FIO0PIN2=_M;               
00065   toggle_enable();
00066     FIO0PIN2=_E;               
00067   toggle_enable();  
00068     FIO0PIN2=_T;               
00069   toggle_enable();
00070     FIO0PIN2=_E;               
00071   toggle_enable();  
00072     FIO0PIN2=_R;               
00073   toggle_enable();
00074   
00075   /* start of line 2  */
00076   FIO2CLR0=0x02;         /* set RS to 'instruction' */
00077   FIO0PIN2=0xC6;               /* set address to line 2 */
00078   toggle_enable();
00079   FIO2SET0=0x02;         /* set RS to 'data' */
00080       
00081   FIO0PIN2=_0;             
00082   toggle_enable();  
00083   FIO0PIN2=0x2e;               
00084   toggle_enable();
00085   FIO0PIN2=_0;             
00086   toggle_enable();
00087   FIO0PIN2=_V;             
00088   toggle_enable();
00089 }
00090 
00091 /*** toggle_enable */
00092 void toggle_enable(void){
00093     FIO2SET0=0x04;       // Toggle enable flag on */
00094     delay_s();          
00095     FIO2CLR0=0x04;       /* Toggle enable flag off */
00096     delay_s();
00097 }
00098 
00099 /**************************************************************************
00100 * DEM16217 LCD connected to mbed as follows:
00101 **************************************************************************
00102 RW  = Read/Write     = LCD pin05 = mbed pin16  = LPC pin75 = GPIO P2.0 (Port2,byte0,bit0)
00103 RS  = RegisterSelect = LCD pin04 = mbed pin15  = LPC pin74 = GPIO P2.1 (0,1)
00104 E   = Enable         = LCD pin06 = mbed pin14  = LPC pin73 = GPIO P2.2 (0,2)
00105 DB0 = Data Bit 0     = LCD pin07 = mbed pin10  = LPC pin63 = GPIO P0.16 (Port0,byte2,bit0)
00106 DB1 = Data Bit 1     = LCD pin08 = mbed pin08  = LPC pin61 = GPIO P0.17 (2,1)
00107 DB2 = Data Bit 2     = LCD pin09 = mbed pin07  = LPC pin60 = GPIO P0.18 (2,2)
00108 DB3 = Data Bit 3     = LCD pin10 = mbed pin06  = LPC pin59 = GPIO P0.19 (2,3)
00109 DB4 = Data Bit 4     = LCD pin11 = mbed pin05  = LPC pin58 = GPIO P0.20 (2,4)   
00110 DB5 = Data Bit 5     = LCD pin12 = mbed pin04  = LPC pin57 = GPIO P0.21 (2,5) 
00111 DB6 = Data Bit 6     = LCD pin13 = mbed pin03  = LPC pin56 = GPIO P0.22 (2,6)
00112 DB7 = Data Bit 7     = LCD pin14 = mbed pin36  = LPC pin09 = GPIO P0.23 (2,7)
00113 **************************************************************************/