pengtaoABC 发表于 2015-9-25 06:36:17

MSP430F149驱动ST7529 160160液晶

MSP430F149驱动ST7529 160160液晶





/*--------------------------------------------------------------------------   
File Name:HG16016005T.C;   
Description:This Resouce Is For Dot Matrix Liquid Crystal   
            Modules Controlled By Sitronix'S ST7529   
   
LCM Interface Dimenision:   
1       2       3       4       5       6       7       8       9       10   
----------------------------------------------------------------------------   
VSS   RS      R/W   E       /CS   /RST    VDD   D0      D1      D2   
   
11      12      13      14      15      16      17      18   
----------------------------------------------------------------------------   
D3      D4      D5      D6      D7      K       NC      A   
   
Author By:Dangzhen   
Date:2009-05-07   
--------------------------------------------------------------------------*/   
#include <msp430x14x.h>

#define DataPort      P1OUT    //数据口 P1

#define led1_on()P4OUT|=BIT7   //P47 LED+ A   VDD3.3V
#define led1_off() P4OUT^=BIT7

#define lcm_on P4OUT|=BIT5   //背光控制   P45LED-K
#define lcm_off P4OUT^=BIT5

#define LCD_RS1 P4OUT|=BIT0    //RS 0:指令1:数据   P40
#define LCD_RS0 P4OUT&=~BIT0                                          
   
#define LCD_RST1 P4OUT|=BIT4   //RESET   P44
#define LCD_RST0 P4OUT&=~BIT4

#define LCD_WR1 P4OUT|=BIT1    //WR   P41
#define LCD_WR0 P4OUT&=~BIT1

#define LCD_RD1 P4OUT|=BIT2   //RDP42
#define LCD_RD0 P4OUT=~BIT2

#define LCD_CS1 P4OUT|=BIT3    //CS    P43
#define LCD_CS0 P4OUT&=~BIT3

#define      VOLCTRL   0x81    / *EC控制 2字节参数 D0~D5,D6~D8*/
#define      VOLUP       0xD6    /* EC减一 */
#define      VOLDOWN   0xD7    /* EC加一 */

#defineuchar unsigned char      
#defineuintunsigned int   
#defineTRUE   1
#defineFALSE0
   
#define DELAYMS   200      

/************************************************************
***************************函数定义*************************/
const ucharHTDISPLAY[];
void delay();
void delayms();
void delay10ms(int count);
void wr_cmd(uchar cmd);
void wr_dat(uchar dat);
void ST7529Ini(void);
void HDT_DisplayOff();
void HDT_DisplayOn();
void InitSys();
void disp_dots(uchar dat1,uchar dat2);
void disp_bmpp( const uchar *myziku);
void LcdSetAddr16_16(uchar x1, uchar y1,const uchar *ziku);
void dsiplay16_16(uchar x,uchar y);
const uchar MYNUMBER[];
void LcdSetAddr12_12(uchar x1, uchar y1,const uchar *NUMBER);
/*--------------------------------------------------------------------------------*/

const ucharHTDISPLAY[]=   
{   
0x08,0x30,0x04,0x20,0x02,0x40,0x3F,0xFC,0x29,0x14,0x25,0x24,0x25,0x44,0x3F,0xFC,
0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,/*"曾",0*/
0x10,0x00,0x11,0xFC,0x20,0x08,0x20,0x10,0x48,0x30,0xF0,0xC8,0x13,0x06,0x20,0x02,
0x41,0xFC,0xF8,0x20,0x00,0x20,0x00,0x20,0x18,0x20,0xE3,0xFE,0x00,0x00,0x00,0x00,/*"经",1*/
0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10,
0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20,/*"有",2*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",3*/
0x09,0x30,0x0D,0xA0,0x09,0x20,0x12,0x10,0x12,0x08,0x24,0x0E,0x68,0x04,0xB7,0xF8,
0x20,0x88,0x20,0x88,0x20,0x88,0x21,0x08,0x21,0x08,0x22,0x38,0x2C,0x10,0x00,0x00,/*"份",4*/
0x01,0x00,0x01,0x04,0x7F,0xFE,0x02,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,
0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0xFF,0xFE,0x04,0x40,0x18,0x30,0x60,0x0C,/*"真",5*/
0x08,0x40,0x08,0x40,0x7E,0xF8,0x08,0x48,0x1E,0x48,0x68,0xCA,0x08,0xAA,0x2B,0x06,
0x1F,0xF0,0x01,0x00,0x3F,0xF8,0x01,0x00,0x7F,0xFE,0x01,0x00,0x05,0x00,0x02,0x00,/*"挚",6*/
0x10,0x80,0x10,0x80,0x20,0x80,0x7C,0xFC,0x45,0x04,0x45,0x04,0x46,0x04,0x7C,0x84,
0x44,0x44,0x44,0x64,0x44,0x24,0x44,0x04,0x7C,0x04,0x44,0x28,0x40,0x10,0x00,0x00,/*"的",7*/
0x00,0xF8,0x3F,0x90,0x12,0x10,0x09,0x20,0x3F,0xFE,0x22,0x02,0x42,0x00,0x3F,0xFC,
0x04,0x00,0x07,0xF0,0x0C,0x20,0x0B,0x40,0x10,0xC0,0x63,0x30,0x8C,0x0E,0x30,0x04,/*"爱",8*/
0x20,0x40,0x20,0x40,0x27,0xFC,0x30,0x40,0xAB,0xF8,0xA0,0x40,0xAF,0xFE,0x20,0x00,
0x23,0xF8,0x22,0x08,0x23,0xF8,0x22,0x08,0x23,0xF8,0x22,0x08,0x22,0x28,0x22,0x10,/*"情",9*/
0x10,0x40,0x08,0x60,0x08,0x40,0xFE,0xFE,0x20,0x84,0x20,0x84,0x3D,0x44,0x26,0x48,
0x24,0x28,0x24,0x30,0x24,0x10,0x24,0x30,0x44,0x48,0x44,0x8E,0x95,0x04,0x08,0x00,/*"放",10*/
0x02,0x00,0x02,0x00,0x7F,0xFE,0x04,0x00,0x04,0x00,0x08,0x40,0x18,0x40,0x17,0xFC,
0x30,0x40,0x50,0x40,0x90,0x40,0x10,0x40,0x10,0x40,0x17,0xFE,0x10,0x00,0x00,0x00,/*"在",11*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",12*/
0x00,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x3F,0xFC,0x24,0x44,0x24,0x44,0x27,0xC4,
0x24,0x44,0x24,0x44,0x27,0xC4,0x24,0x44,0x24,0x44,0x3F,0xFC,0x20,0x04,0x00,0x00,/*"面",13*/
0x08,0x10,0x06,0x18,0x04,0x20,0xFF,0xFE,0x00,0x00,0x3E,0x08,0x22,0x48,0x3E,0x48,
0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x48,0x22,0x48,0x2A,0x08,0x24,0x28,0x00,0x10,/*"前",14*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",15*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",16*/
0x20,0x00,0x11,0xF0,0x11,0x10,0x81,0x10,0x42,0x12,0x54,0x0E,0x10,0x00,0x17,0xF8,
0x22,0x10,0x21,0x10,0xE0,0xA0,0x20,0x40,0x20,0xA0,0x21,0x18,0x26,0x0E,0x20,0x04,/*"没",17*/
0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10,
0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20,/*"有",18*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,/*"好",19*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,/*"好",20*/
0x00,0x40,0xF8,0x40,0x20,0xA0,0x21,0x10,0x22,0x28,0x24,0x46,0xF8,0x80,0x23,0x10,
0x20,0x24,0x20,0x44,0x39,0x88,0xC6,0x10,0x00,0x60,0x01,0x80,0x06,0x00,0x38,0x00,/*"珍",21*/
0x21,0x10,0x21,0x10,0x21,0x10,0x37,0xFC,0xA9,0x10,0xA1,0x10,0xAF,0xFE,0x20,0x00,
0x23,0xF8,0x22,0x08,0x22,0x08,0x23,0xF8,0x22,0x08,0x22,0x08,0x23,0xF8,0x00,0x00,/*"惜",22*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,/*"!",23*/
0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x7E,0xFE,0x42,0x22,0x42,0x22,0x42,0x22,0x42,
0x22,0x42,0x24,0x42,0x14,0x42,0x08,0x42,0x14,0x7E,0x23,0x42,0x42,0x42,0x80,0x00,/*"如",24*/
0x00,0x00,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x01,0x00,0x01,0x00,
0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x30,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"果",25*/
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x00,0x00,/*"上",26*/
0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00,
0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00,/*"天",27*/
0x20,0x40,0x30,0x40,0x24,0x4C,0x42,0x70,0xFF,0x44,0x42,0x46,0x00,0x7C,0x7E,0x00,
0x42,0x40,0x7E,0x4C,0x42,0x70,0x7E,0x40,0x42,0x44,0x42,0x46,0x4A,0x3C,0x44,0x00,/*"能",28*/
0x7F,0xFC,0x01,0x00,0x01,0x00,0x1F,0xF0,0x11,0x10,0x11,0x10,0x1F,0xF0,0x11,0x10,
0x11,0x10,0x11,0x10,0xFF,0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x50,0x10,0x20,/*"再",29*/
0x10,0x40,0x10,0x40,0x20,0xA0,0x20,0x90,0x49,0x08,0xF2,0x0E,0x15,0xF4,0x20,0x00,
0x40,0x00,0xF9,0xF8,0x01,0x08,0x01,0x08,0x19,0x08,0xE1,0x08,0x01,0xF8,0x00,0x00,/*"给",30*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",31*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",32*/
0x01,0x00,0x41,0x00,0x25,0x00,0x25,0xFE,0x2A,0x44,0x0A,0x48,0x14,0x40,0x10,0x40,
0x20,0xC0,0xE0,0xA0,0x41,0x20,0x42,0x10,0x44,0x08,0x18,0x0E,0x60,0x04,0x00,0x00,/*"次",33*/
0x10,0x00,0x10,0xF8,0x10,0x88,0xFE,0x88,0x10,0x88,0x10,0x88,0x38,0x88,0x34,0x88,
0x54,0x88,0x50,0x88,0x91,0x08,0x11,0x0A,0x12,0x0A,0x12,0x0A,0x14,0x06,0x10,0x00,/*"机",34*/
0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x18,0x6F,0xEE,0x80,0x04,
0x00,0x00,0x3F,0xF8,0x02,0x00,0x04,0x20,0x08,0x10,0x11,0xF8,0x3F,0x18,0x10,0x10,/*"会",35*/
0x10,0x80,0x10,0x80,0x20,0x80,0x7C,0xFC,0x45,0x04,0x45,0x04,0x46,0x04,0x7C,0x84,
0x44,0x44,0x44,0x64,0x44,0x24,0x44,0x04,0x7C,0x04,0x44,0x28,0x40,0x10,0x00,0x00,/*"的",36*/
0x40,0x00,0x20,0x1C,0x33,0xE0,0x20,0x20,0x00,0x20,0x07,0xFE,0xF0,0x20,0x10,0x20,
0x10,0x20,0x11,0xFC,0x11,0x04,0x11,0x04,0x15,0x04,0x19,0xFC,0x11,0x04,0x00,0x00,/*"话",37*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",38*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",39*/
0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x18,0x6F,0xEE,0x80,0x04,
0x00,0x00,0x3F,0xF8,0x02,0x00,0x04,0x20,0x08,0x10,0x11,0xF8,0x3F,0x18,0x10,0x10,/*"会",40*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,/*"大",41*/
0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x7F,0xFC,0x00,0x00,0x3F,0xF8,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x20,0x08,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x00,0x00,/*"声",42*/
0x00,0x10,0x00,0x10,0x7C,0x10,0x04,0x10,0x05,0xFE,0x44,0x10,0x24,0x10,0x19,0x10,
0x08,0x90,0x14,0xD0,0x24,0x90,0x22,0x10,0x42,0x10,0x80,0x10,0x00,0x50,0x00,0x20,/*"对",43*/
0x00,0x20,0x20,0xA0,0x20,0xA0,0x20,0xA4,0xFC,0xBE,0x27,0xE4,0x24,0xA4,0x44,0xA4,
0x44,0xA4,0x48,0xB4,0x28,0xA8,0x10,0xA0,0x28,0x82,0x46,0x82,0x84,0x7E,0x00,0x00,/*"她",44*/
0x42,0x08,0x21,0x88,0x31,0x10,0x23,0xF8,0x02,0x08,0xE2,0x08,0x22,0x08,0x23,0xF8,
0x22,0xA8,0x20,0xA0,0x20,0xA0,0x29,0x20,0x31,0x22,0x22,0x22,0x04,0x1E,0x08,0x00,/*"说",45*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,/*":",46*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",47*/
0x00,0xF8,0x3F,0x90,0x12,0x10,0x09,0x20,0x3F,0xFE,0x22,0x02,0x42,0x00,0x3F,0xFC,
0x04,0x00,0x07,0xF0,0x0C,0x20,0x0B,0x40,0x10,0xC0,0x63,0x30,0x8C,0x0E,0x30,0x04,/*"爱",48*/
0x09,0x00,0x09,0x80,0x11,0x04,0x13,0xFE,0x22,0x04,0x34,0x48,0x68,0x40,0xA2,0x50,
0x23,0x48,0x22,0x48,0x24,0x44,0x24,0x46,0x28,0x44,0x21,0x40,0x20,0x80,0x00,0x00,/*"你",49*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,/*"!",50*/
0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x7E,0xFE,0x42,0x22,0x42,0x22,0x42,0x22,0x42,
0x22,0x42,0x24,0x42,0x14,0x42,0x08,0x42,0x14,0x7E,0x23,0x42,0x42,0x42,0x80,0x00,/*"如",51*/
0x00,0x00,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x01,0x00,0x01,0x00,
0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x30,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"果",52*/
0x04,0x40,0x04,0x40,0x04,0x40,0x7C,0x7E,0x04,0x40,0x04,0x40,0x04,0x40,0x7C,0x7C,
0x04,0x40,0x04,0x40,0x04,0x40,0xFC,0x7E,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,/*"非",53*/
0x00,0x00,0xFF,0xFE,0x04,0x40,0x3F,0xF8,0x24,0x48,0x24,0x48,0x3F,0xF8,0x24,0x08,
0x04,0x00,0xFF,0xFE,0x08,0x10,0x0E,0x20,0x01,0xC0,0x06,0x30,0x18,0x0C,0x60,0x08,/*"要",54*/
0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x7C,0x09,0x44,0x09,0x44,0x09,0x44,0x09,0x44,
0x11,0x44,0x11,0x44,0x11,0x44,0x21,0x44,0x21,0x7C,0x45,0x44,0x82,0x40,0x00,0x00,/*"加",55*/
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x00,0x00,/*"上",56*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",57*/
0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,0x09,0x18,0x11,0x0E,0x61,0x04,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,/*"个",58*/
0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,0x3E,0x44,0x22,0x7C,0x3E,0x44,0x22,0x44,
0x22,0x44,0xFF,0x7C,0x00,0x44,0x24,0x84,0x22,0x84,0x43,0x14,0x81,0x08,0x00,0x00,/*"期",59*/
0x00,0x00,0xFB,0xF8,0x92,0x08,0x93,0xF8,0xA2,0x08,0xA2,0x08,0x93,0xF8,0x8A,0x80,
0x8A,0x48,0xAA,0x50,0x92,0x20,0x82,0x20,0x82,0x10,0x82,0x8E,0x83,0x04,0x82,0x00,/*"限",60*/
0x10,0x80,0x10,0x80,0x20,0x80,0x7C,0xFC,0x45,0x04,0x45,0x04,0x46,0x04,0x7C,0x84,
0x44,0x44,0x44,0x64,0x44,0x24,0x44,0x04,0x7C,0x04,0x44,0x28,0x40,0x10,0x00,0x00,/*"的",61*/
0x40,0x00,0x20,0x1C,0x33,0xE0,0x20,0x20,0x00,0x20,0x07,0xFE,0xF0,0x20,0x10,0x20,
0x10,0x20,0x11,0xFC,0x11,0x04,0x11,0x04,0x15,0x04,0x19,0xFC,0x11,0x04,0x00,0x00,/*"话",62*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",63*/
0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,
0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02,/*"我",64*/
0x08,0x20,0x06,0x40,0x01,0x80,0x0E,0x60,0x32,0x10,0xFF,0xFE,0x04,0x80,0x08,0x80,
0x1F,0xF8,0x28,0x88,0x48,0x88,0x88,0x88,0x08,0x88,0x08,0xB8,0x00,0x90,0x00,0x80,/*"希",65*/
0x10,0x00,0x08,0xFC,0xFE,0x84,0x20,0xFC,0x20,0x84,0x24,0xFC,0x28,0x84,0x31,0x1C,
0x00,0x00,0x3F,0xFC,0x01,0x00,0x1F,0xF8,0x01,0x00,0x01,0x00,0x7F,0xFE,0x00,0x00,/*"望",66*/
0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,
0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x00,/*"是",67*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",68*/
0x00,0x00,0x7F,0xFE,0x02,0x00,0x02,0x00,0x02,0x10,0x03,0xF8,0x02,0x10,0x04,0x10,
0x04,0x10,0x04,0x10,0x08,0x10,0x08,0x10,0x10,0x10,0x20,0xE0,0x40,0x40,0x00,0x00,/*"万",69*/
0x08,0x00,0x0F,0xFC,0x10,0x80,0x10,0x80,0x20,0x80,0x4F,0xF8,0x88,0x80,0x08,0x80,
0x08,0x80,0x08,0x80,0xFF,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,/*"年",70*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,/*"!",71*/

};   

const uchar MYNUMBER[]=
{

0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,/*"0",0*/
0x00,0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,/*"1",1*/
0x00,0x00,0x70,0x88,0x88,0x10,0x20,0x40,0x80,0xF8,0x00,0x00,/*"2",2*/
0x00,0x00,0x70,0x88,0x08,0x30,0x08,0x08,0x88,0x70,0x00,0x00,/*"3",3*/
0x00,0x00,0x10,0x30,0x50,0x50,0x90,0x78,0x10,0x18,0x00,0x00,/*"4",4*/
0x00,0x00,0xF8,0x80,0x80,0xF0,0x08,0x08,0x88,0x70,0x00,0x00,/*"5",5*/
0x00,0x00,0x70,0x90,0x80,0xF0,0x88,0x88,0x88,0x70,0x00,0x00,/*"6",6*/
0x00,0x00,0xF8,0x90,0x10,0x20,0x20,0x20,0x20,0x20,0x00,0x00,/*"7",7*/
0x00,0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x88,0x70,0x00,0x00,/*"8",8*/
0x00,0x00,0x70,0x88,0x88,0x88,0x78,0x08,0x48,0x70,0x00,0x00,/*"9",9*/
};

///////////////////LCD的写字测试程序///16×16//////////////////
//横向点18位,最后两位填0////液晶驱动变态///////////
void disp_bmpp( const uchar *myziku)   
{   
    uchar x,y;
    uchar uc_CharCode,uc_BitCnt;   
   
    wr_cmd(0x30);//EXT=0      
   
    wr_cmd(0x75);   //Line address set      
    wr_dat(0x00);   //Start Line      
    wr_dat(0x0F); //End Line      
   
    wr_cmd(0x15);   //Column address set      
    wr_dat(0x00);   //Start Column      
    wr_dat(0x05);   //End Column      
   
    wr_cmd(0X5C);//Write data to DDRAM      

for(x=0;x<16;x++)
{
    for(y=0;y<2;y++)
    {
            uc_CharCode = *myziku++;   
                                                                                       
          for(uc_BitCnt=0;uc_BitCnt<8;uc_BitCnt++)   
            {   
               if((uc_CharCode&0x80) == 0)   
                  wr_dat(0x00);   
                   else   
                   wr_dat(0xFF);   
               //仅仅点亮panel上面的一个点---需要一个byte      
                uc_CharCode =uc_CharCode <<1;   
               }
         
    }
    wr_dat(0x00);
    wr_dat(0x00);
}
delayms(1);
}


/*******************************************************
* 名称: LcdSetAddr
* 功能: 设置数据地址指针(坐标值)。
* 入口参数: x1            起始横坐标的值 (0-158)
*         y1      起始纵坐标的值 (0-158)
* 出口参数: 设置正确返回TRUE,参数超出范围返回FALSE
*******************************************************/
void LcdSetAddr16_16(uchar x1, uchar y1,const uchar *ziku)
{   
   uchar x,y;
   uchar uc_CharCode,uc_BitCnt;
   
   wr_cmd(0x30);    //EXT=0

   wr_cmd(0x75);                           
   wr_dat(x1);
   wr_dat(x1+15);
   
   wr_cmd(0x15);                              
   wr_dat(y1);
   wr_dat(y1+5);
   
   wr_cmd(0X5C);                         //Write data to DDRAM
   for(x=0;x<16;x++)
   {
    for(y=0;y<2;y++)
      {
          uc_CharCode =*ziku++;   
                                                                                       
          for(uc_BitCnt=0;uc_BitCnt<8;uc_BitCnt++)   
            {   
               if((uc_CharCode&0x80) == 0)   
                  wr_dat(0x00);   
                   else   
                   wr_dat(0xFF);   
               //仅仅点亮panel上面的一个点---需要一个byte      
                uc_CharCode =uc_CharCode <<1;   
               }
         
       }
    wr_dat(0x00);
    wr_dat(0x00);
   }
    // if(((x1+15)<160) && ((y1+5)<53)) return(TRUE);
   //elsereturn(FALSE);
}

void LcdSetAddr12_12(uchar x1, uchar y1,const uchar *ziku)
{   
   uchar x;
   uchar uc_CharCode,uc_BitCnt;
   wr_cmd(0x30);    //EXT=0

   wr_cmd(0x75);                           
   wr_dat(x1);
   wr_dat(x1+11);
   
   wr_cmd(0x15);                              
   wr_dat(y1);
   wr_dat(y1+2);
   
   wr_cmd(0X5C);                         //Write data to DDRAM
   for(x=0;x<12;x++)
   {
   
          uc_CharCode = *ziku++;   
                                                                                       
          for(uc_BitCnt=0;uc_BitCnt<8;uc_BitCnt++)   
            {   
               if((uc_CharCode&0x80) == 0)   
                  wr_dat(0x00);   
                   else   
                   wr_dat(0xFF);   
               //仅仅点亮panel上面的一个点---需要一个byte      
                uc_CharCode =uc_CharCode <<1;   
               }
    wr_dat(0x00);
   }
    // if(((x1+15)<160) && ((y1+5)<53)) return(TRUE);
   //elsereturn(FALSE);
}

//Reset Delay         
void delay()   
{   
    uchar uc_dlay1,uc_dlay2;   
    for (uc_dlay1=0; uc_dlay1<250; uc_dlay1++);   
      for (uc_dlay2=0; uc_dlay2<20; uc_dlay2++);   
}   
   
//Delay Times(s Level)         
void delayms()   
{   
    uint ui_dlay1,ui_dlay2;   
    ui_dlay2 = DELAYMS;   
    while (ui_dlay2-- >0)   
    {   
      for (ui_dlay1=0; ui_dlay1<500; ui_dlay1++);   
      for (ui_dlay1=0; ui_dlay1<500; ui_dlay1++);   
    }   
}   

void delay10ms(int count)   //===延迟===
{
unsigned int i,j,k;
for (i=0; i<count; i++);
for(j=0; j<10; j++);
    for(k=0; k<120; k++);
}

//Write Instruction Code         
void wr_cmd(uchar cmd)   
{   
    LCD_RS0;   
   
    LCD_WR1;   
   
    LCD_RD1;   
   
    LCD_CS0;   
   
    DataPort = cmd;   
   
    LCD_WR0;   
   
    LCD_WR1;   
   
    LCD_CS1;   
}   
   
//Write Display RAM Data      
void wr_dat(uchar dat)   
{   
   
    LCD_RS1;   
   
    LCD_WR1;   
   
    LCD_RD1;   
   
    LCD_CS0;   
   
    DataPort = dat;   
   
    LCD_WR0;   
   
    LCD_WR1;   
   
    LCD_CS1;   
   
}   

void InitSys()
{
   unsigned int iq0;                   //--- 使用XT2振荡器 ---
   BCSCTL1&=~XT2OFF;                   //=== 打开XT2振荡器 ===
   do
   {
   IFG1 &= ~OFIFG;                     //=== 清除振荡器失效标志 ===
   for (iq0 = 0xFF; iq0 > 0; iq0--);   //=== 延时,等待XT2起振 ===
}
while ((IFG1 & OFIFG) != 0);         //=== 判断XT2是否起振 ===
BCSCTL2 =SELM_2+SELS;                //=== 选择MCLK、SMCLK为XT2 ===
//--- 以下填充用户代码,对各种模块、中断、外围设备等进行初始化 ---
P1SEL= 0x00;                      // 设置P1口为IO口
P1DIR= 0xFF;                      // 设置P1口为output
P4DIR= 0xFF;                      //===Set P4.0 to output direction===
      
//_EINT();                            //=== 打开全局中断控制,若不需要打开,可以屏蔽本句 ===
}

/*******************************************************************************   
*   
*   函数名称    :   ST7529Ini(void)   
*   功能描述    :   初始化控制器   
*   函数说明    :   
*   调用函数    :   无   
*   全局变量    :   无   
*   输入参数    :   无   
*   返回值   :   无   
*   设计者   :   Joshua Chiang   
*   修改者   :   --   
*   版本号   :   1.0   
*   
*******************************************************************************/         
void ST7529Ini(void)   
{   
    wr_cmd(0X30);   //EXT=0      
    wr_cmd(0X94);   //SLEEP OUT      
    wr_cmd(0XD1);   //OSC ON      
   

    wr_cmd(0x20);   //POWER CONTROL SET      
    wr_dat(0X0B);   //BOOSTER ON      
   
    wr_cmd(0x81);   //ELECTRONIC CONTROL      
    wr_dat(0X30);   //DL    30
    wr_dat(0X04);   //DH      
   
    wr_cmd(0xCA);   //DISPLAY CONTROL      
    wr_dat(0X04);   //CLD=0,NOT DIVIDE      
    wr_dat(0X27);   //1/160 DUTY 39      
    wr_dat(0X00);   //FR      
   
    wr_cmd(0xA7);   //Reverse display~A6?   
   
    wr_cmd(0xBB);   //COM SCAN DIRECTION      
    wr_dat(0X02);   //C79->C0,C80->C159      
   
    wr_cmd(0xBC);   //Data Scan Direction      
    wr_dat(0X01);   
    wr_dat(0X00);   //CLR=0      
    wr_dat(0X02);   //32 Gray-scale 3byte 3pixel mode      
   
    wr_cmd(0x75);   //Line address set      
    wr_dat(0x00);   //Start Line      
    wr_dat(0x9F);   //End Line      
   
    wr_cmd(0x15);   //Column address set      
    wr_dat(0x00);   //Start Column      
    wr_dat(0x35);   //End Column      
   
    wr_cmd(0x31);   //ext=1      
    wr_cmd(0x32);   //Analog circuit set      
    wr_dat(0X07);   //FR=12.7KHZ      
    wr_dat(0X02);   //Booster FR=6KHZ      
    wr_dat(0X03);   //1/11bias   01 调对比度
   
    wr_cmd(0x34);   //Dithering off      
    wr_cmd(0x30);   //EXT=0      
    wr_cmd(0xAF);   //DISP ON      
      }   
   
//Write Data To DDRAM         
void disp_dots(uchar dat1,uchar dat2)   
{   
    uchar uc_RowCnt,uc_ColCnt;   
    wr_cmd(0x30);//EXT=0      
   
    wr_cmd(0x75);   //Line address set      
    wr_dat(0x00);   //Start Line      
    wr_dat(0x9F);   //End Line      
   
    wr_cmd(0x15);   //Column address set      
    wr_dat(0x00);   //Start Column      
    wr_dat(0x35);   //End Column      
   
    wr_cmd(0X5C);//Write data to DDRAM      
   
    for (uc_RowCnt=0;uc_RowCnt<80;uc_RowCnt++)   
    {   
      for (uc_ColCnt=0;uc_ColCnt<54;uc_ColCnt++)   
      {   
                wr_dat(dat1);   
                wr_dat(dat1);   
                wr_dat(dat1);   
      };   
   
      for (uc_ColCnt=0;uc_ColCnt<54;uc_ColCnt++)   
      {   
                wr_dat(dat2);   
                wr_dat(dat2);   
                wr_dat(dat2);   
      };   
    };   
   
    delayms();   
}

void dsiplay16_16(uchar x,uchar y)
{
   const uchar *z;
   z=HTDISPLAY;
   for(;x<145;x+=16)
   {
   for(;y<50;y+=6)
    {
      LcdSetAddr16_16(x,y, z);
      z+=32;
   }
   y=0;
   }
}
/*
功能:设置液晶开关
参数:无
返回:无
*/
void HDT_DisplayOn()
{
    wr_cmd(0xaf);
    //wr_cmd(0x94);
    led1_on();
    lcm_on;
}

void HDT_DisplayOff()
{
    wr_cmd(0xae);
    //wr_cmd(0x95);
    led1_off();
    lcm_off;
}
   
void main()   
{      
    WDTCTL= WDTPW + WDTHOLD;   //=== Stop watchdog timer ===
    InitSys();                   //=== 初始化 ===
    LCD_RST0;   
    delay();   
    delay();   
   
    LCD_RST1;   
    delay();   
    delay();   
   
    ST7529Ini();   
   disp_dots(0x00,0x00); //Clear Screen
    while (1)   
    {    //disp_dots(0x00,0x00); //Clear Screen
      // disp_dots(0xFF,0xFF); //All Dots Display      
   
      //disp_dots(0xFF,0x00); //Seperate Rows I      
         
       HDT_DisplayOff();
      HDT_DisplayOn();
      //disp_dots(0x00,0xFF); //Seperate Rows II      
   
       // disp_dots(0x00,0x00); //Clear Screen   
      dsiplay16_16(0,0);
         
      //LcdSetAddr12_12(0, 6,HTDISPLAY);
      
       // disp_bmpp(&HTDISPLAY);
         
       // LcdSetAddr16_16(16, 0, HTDISPLAY );
      //LcdSetAddr12_12(0, 18,MYNUMBER);
    }   
   
}

dushanwu522 发表于 2015-9-25 09:24:09

底下怎么是乱码?
页: [1]
查看完整版本: MSP430F149驱动ST7529 160160液晶