pcd8544.h File Reference

PCD8544 Interface routines (used in Nokia 3310 LCD). More...

Include dependency graph for pcd8544.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define pcd8544_setup()   pcd8544_setup_io()

Functions

void pcd8544_clear ()
void pcd8544_init ()
void pcd8544_send_byte (uns8 b)
void pcd8544_send_command (uns8 command)
void pcd8544_send_data (uns8 data)
void pcd8544_set_pixel (uns8 x, uns8 y, uns8 colour)
void pcd8544_setup_io ()
void pcd8544_write (uns8 mem_addr, uns8 data)

Detailed Description

Routines to communicate with Nokia 3310 LCD display via the PCD8544 chip


Define Documentation

 
#define pcd8544_setup (  )     pcd8544_setup_io()

Function Documentation

void pcd8544_clear (  ) 
void pcd8544_init (  ) 

00055                     {
00056     
00057     /*
00058     set_pin  (pcd8544_res_port, pcd8544_res_pin);       
00059     set_pin(pcd8544_sce_port,  pcd8544_sce_pin);
00060     */
00061     
00062     // toggle reset
00063     // must be at least 100ns
00064     clear_pin(pcd8544_res_port, pcd8544_res_pin);       // pulse low for reset
00065     delay_ms(100);
00066     set_pin  (pcd8544_res_port, pcd8544_res_pin);       
00067     
00068     // Function set: PD=0 (chip active), V=1 (vertical addressing), H=1 (extended instructions)
00069     pcd8544_send_command(0b00100011);   // 0x21
00070     
00071     // Set Vop (contrast) to 72 - 7 least significant bits
00072     pcd8544_send_command(0b11001000);   // 0xc8
00073     
00074     // Set temperature coefficient to 2 - 2 least significant bits
00075     pcd8544_send_command(0b00000110);   // 0x06
00076     
00077     // Set bias mode to 3 (1:48) - 3 least significant bits
00078     pcd8544_send_command(0b00010011);   // 0x13
00079 
00080     // Function set: PD=0 (chip active), V=1 (vertical addressing), H=0 (basic instructions)
00081     pcd8544_send_command(0b00100010);   // 0x20
00082 
00083     // Display control: D=0, E=0 (Blank the screen)
00084     pcd8544_send_command(0b00001000);   // 0x08
00085     
00086     // Display control: D=1, E=0 (Normal mode)
00087     pcd8544_send_command(0b00001100);
00088 
00089 }   

Here is the call graph for this function:

Here is the caller graph for this function:

void pcd8544_send_byte ( uns8  b  ) 

00107                                {
00108 
00109 uns8 count;
00110 
00111     // msb sent first
00112     for (count = 0; count < 8; count++) {
00113         change_pin(pcd8544_sdin_port, pcd8544_sdin_pin, b.7);
00114         b = b << 1;
00115         // toggle the clock
00116         set_pin(pcd8544_sclk_port, pcd8544_sclk_pin);
00117         clear_pin(pcd8544_sclk_port, pcd8544_sclk_pin);
00118     }   
00119 }

Here is the caller graph for this function:

void pcd8544_send_command ( uns8  command  ) 

00091                                     {
00092     
00093     clear_pin(pcd8544_sce_port, pcd8544_sce_pin);
00094     clear_pin(pcd8544_dc_port, pcd8544_dc_pin);
00095     pcd8544_send_byte(cmd);
00096     set_pin(pcd8544_sce_port, pcd8544_sce_pin);
00097 }

Here is the call graph for this function:

Here is the caller graph for this function:

void pcd8544_send_data ( uns8  data  ) 

00099                                   {
00100     
00101     clear_pin(pcd8544_sce_port, pcd8544_sce_pin);
00102     set_pin(pcd8544_dc_port, pcd8544_dc_pin);
00103     pcd8544_send_byte(data);
00104     set_pin(pcd8544_sce_port, pcd8544_sce_pin);
00105 }

Here is the call graph for this function:

Here is the caller graph for this function:

void pcd8544_set_pixel ( uns8  x,
uns8  y,
uns8  colour 
)
void pcd8544_setup_io (  ) 

00040                         {
00041 
00042     // Do this in software for the moment
00043     
00044     make_output(pcd8544_res_port,  pcd8544_res_pin);
00045     make_output(pcd8544_sclk_port, pcd8544_sclk_pin);
00046     make_output(pcd8544_sdin_port, pcd8544_sdin_pin);
00047     make_output(pcd8544_dc_port,   pcd8544_dc_pin);
00048     make_output(pcd8544_sce_port,  pcd8544_sce_pin);
00049     
00050     set_pin(pcd8544_res_port, pcd8544_res_pin);     // not in reset
00051     set_pin(pcd8544_sce_port,  pcd8544_sce_pin);    // ignore clock for the moment
00052     clear_pin(pcd8544_sclk_port, pcd8544_sclk_pin); // clear clock
00053 }

Here is the caller graph for this function:

void pcd8544_write ( uns8  mem_addr,
uns8  data 
)

Generated on Fri Aug 19 09:07:50 2011 for Pic Pack Library by  doxygen 1.6.1