ADXL345读数用12864显示
0赞
发表于 2/25/2012 9:21:46 AM
阅读(16897)
#ifndef __OCM12864 #define __OCM12864 //#include "../main.h" typedef unsigned char uchar; typedef unsigned int uint; /**** #define lcddata_out P3OUT #define lcddata_in P3IN #define LCD_DOUT_EN P3DIR=0XFF #define LCD_DIN_EN P3DIR=0x00 #define set_rs() (P2DIR|=BIT0, P2OUT|=BIT0) #define clear_rs() (P2DIR|=BIT0, P2OUT&=~BIT0) #define set_rw() (P2DIR|=BIT1, P2OUT|=BIT1) #define clear_rw() (P2DIR|=BIT1, P2OUT&=~BIT1) #define set_en() (P2DIR|=BIT2, P2OUT|=BIT2) #define clear_en() (P2DIR|=BIT2, P2OUT&=~BIT2) #define set_cs() (P2DIR|=BIT3, P2OUT|=BIT3) #define clear_cs() (P2DIR|=BIT3, P2OUT&=~BIT3) #define set_reset() (P2DIR|=BIT4, P2OUT|=BIT4) #define clear_reset() (P2DIR|=BIT4, P2OUT&=~BIT4) ****/ #define lcddata_out GP3DAT //P3 #define lcddata_in (char)(GP3DAT & 0x000000FF) #define LCD_DOUT_EN GP3DAT=(GP3DAT|0xFF000000) #define LCD_DIN_EN GP3DAT=(GP3DAT&0x00FFFFFF) #define set_rs() GP4DAT=(GP4DAT|0x01010000) //P4.0 A0 #define clear_rs() GP4DAT=(GP4DAT|0x01000000)&(~0x00010000) #define set_rw() GP4DAT=(GP4DAT|0x02020000) //P4.1 #define clear_rw() GP4DAT=(GP4DAT|0x02000000)&(~0x00020000) #define set_en() GP4DAT=(GP4DAT|0x04040000) //P4.2 #define clear_en() GP4DAT=(GP4DAT|0x04000000)&(~0x00040000) #define set_cs() GP4DAT=(GP4DAT|0x08080000) //P4.3 #define clear_cs() GP4DAT=(GP4DAT|0x08000000)&(~0x00080000) #define set_reset() GP4DAT=(GP4DAT|0x10100000) //P4.4 #define clear_reset() GP4DAT=(GP4DAT|0x10000000)&(~0x00100000) ////*****************//// ////*****函数声明****//// ////*****************//// void LCD_Delay(unsigned long v); void check_busy(void); void write_data(unsigned long dat); void write_command(unsigned long command); void reset(void); void clear_screen(uchar m); void lcd_initial(void); void set_page_address(uchar page); void set_colume_address(uchar colume); void disp_word(uchar col,uchar pag,uchar ascii); void disp_chn(uchar col,uchar pag,uchar ascii); void disp_str(uchar col,uchar page,uchar *cn); void setpoint(uchar x,uchar y); void point(uchar x,uchar y); void disp_bmp( uchar const *puts ); void shuxian(uchar n,uchar e,uchar f); void hengxian(uchar k); void delaynum(unsigned char num); #endif
//#include#include"OCM12864.h" #include "main.h" /*****将字符生产软件得到的每个汉字的32个字符依次存于tab表中*****/ /*****用PCtoLCD2002软件设置列行式和顺向输出得到对于汉字字符串*****/ const uchar tab[6*32]={ /*-- 宋体16*16; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x1F,0x11,0x11,0x11,0x11,0xFF, 0x11,0x11,0x11,0x11,0x1F,0x00,0x00,0x00, 0x00,0x00,0xF8,0x10,0x10,0x10,0x10,0xFE, 0x11,0x11,0x11,0x11,0xF9,0x01,0x0F,0x00,/*"电",0*/ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x3F, 0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00, 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFC, 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*"工",1*/ 0x00,0x20,0x20,0x20,0xFF,0x2A,0x2A,0x2A, 0x2A,0x2A,0xFF,0x20,0x20,0x20,0x00,0x00, 0x88,0x88,0x91,0xA1,0xC9,0x89,0x89,0xBF, 0x89,0x89,0xC9,0xA1,0x91,0x88,0x88,0x00,/*"基",2*/ 0x04,0x04,0x04,0xFF,0x04,0x04,0x01,0x1F, 0x01,0x02,0xFF,0x04,0x08,0x0F,0x00,0x00, 0x08,0x0C,0x08,0xF0,0x10,0x10,0x00,0xFC, 0x02,0x02,0xFA,0x42,0x22,0xC2,0x1E,0x00,/*"地",3*/ }; const uchar adj_page[]={7,6,5,4,3,2,1,0}; const uchar ASCIIchardot[16*96]= { /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*! */ 0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0x0C,0x00,0x00,0x00, /*" */ 0x00,0x08,0x30,0x60,0x08,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*# */ 0x02,0x03,0x1E,0x02,0x03,0x1E,0x02,0x00,0x20,0xFC,0x20,0x20,0xFC,0x20,0x20,0x00, /*$ */ 0x00,0x0E,0x11,0x3F,0x10,0x0C,0x00,0x00,0x00,0x18,0x04,0xFF,0x84,0x78,0x00,0x00, /*% */ 0x0F,0x10,0x0F,0x00,0x07,0x18,0x00,0x00,0x00,0x84,0x38,0xC0,0x78,0x84,0x78,0x00, /*& */ 0x00,0x0F,0x10,0x11,0x0E,0x00,0x00,0x00,0x78,0x84,0xC4,0x24,0x98,0xE4,0x84,0x08, /*' */ 0x08,0x68,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*( */ 0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00, /*) */ 0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00, /** */ 0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00, /*+ */ 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xF8,0x80,0x80,0x80,0x00, /*, */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0D,0x0E,0x00,0x00,0x00,0x00,0x00, /*- */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80, /*. */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00, /*/ */ 0x00,0x00,0x00,0x00,0x01,0x06,0x18,0x20,0x00,0x06,0x18,0x60,0x80,0x00,0x00,0x00, /*0 */ 0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00, /*1 */ 0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*2 */ 0x00,0x0E,0x10,0x10,0x10,0x11,0x0E,0x00,0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00, /*3 */ 0x00,0x0C,0x10,0x11,0x11,0x12,0x0C,0x00,0x00,0x18,0x04,0x04,0x04,0x88,0x70,0x00, /*4 */ 0x00,0x00,0x03,0x04,0x08,0x1F,0x00,0x00,0x00,0xE0,0x20,0x24,0x24,0xFC,0x24,0x00, /*5 */ 0x00,0x1F,0x10,0x11,0x11,0x10,0x10,0x00,0x00,0x98,0x84,0x04,0x04,0x88,0x70,0x00, /*6 */ 0x00,0x07,0x08,0x11,0x11,0x18,0x00,0x00,0x00,0xF0,0x88,0x04,0x04,0x88,0x70,0x00, /*7 */ 0x00,0x1C,0x10,0x10,0x13,0x1C,0x10,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00, /*8 */ 0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00, /*9 */ 0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,0x00,0x00,0x8C,0x44,0x44,0x88,0xF0,0x00, /*: */ 0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00, /*; */ 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x00, /*< */ 0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x00, /*= */ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00, /*> */ 0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x80,0x00, /*? */ 0x00,0x0E,0x12,0x10,0x10,0x10,0x0F,0x00,0x00,0x00,0x00,0x0C,0x6C,0x80,0x00,0x00, /*@ */ 0x03,0x0C,0x13,0x14,0x17,0x08,0x07,0x00,0xE0,0x18,0xE4,0x24,0xC4,0x28,0xD0,0x00, /*A */ 0x00,0x00,0x03,0x1C,0x07,0x00,0x00,0x00,0x04,0x3C,0xC4,0x40,0x40,0xE4,0x1C,0x04, /*B */ 0x10,0x1F,0x11,0x11,0x11,0x0E,0x00,0x00,0x04,0xFC,0x04,0x04,0x04,0x88,0x70,0x00, /*C */ 0x03,0x0C,0x10,0x10,0x10,0x10,0x1C,0x00,0xE0,0x18,0x04,0x04,0x04,0x08,0x10,0x00, /*D */ 0x10,0x1F,0x10,0x10,0x10,0x08,0x07,0x00,0x04,0xFC,0x04,0x04,0x04,0x08,0xF0,0x00, /*E */ 0x10,0x1F,0x11,0x11,0x17,0x10,0x08,0x00,0x04,0xFC,0x04,0x04,0xC4,0x04,0x18,0x00, /*F */ 0x10,0x1F,0x11,0x11,0x17,0x10,0x08,0x00,0x04,0xFC,0x04,0x00,0xC0,0x00,0x00,0x00, /*G */ 0x03,0x0C,0x10,0x10,0x10,0x1C,0x00,0x00,0xE0,0x18,0x04,0x04,0x44,0x78,0x40,0x00, /*H */ 0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,0x04,0xFC,0x84,0x80,0x80,0x84,0xFC,0x04, /*I */ 0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*J */ 0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x03,0x01,0x01,0x01,0xFE,0x00,0x00,0x00, /*K */ 0x10,0x1F,0x11,0x03,0x14,0x18,0x10,0x00,0x04,0xFC,0x04,0x80,0x64,0x1C,0x04,0x00, /*L */ 0x10,0x1F,0x10,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0x04,0x04,0x04,0x04,0x0C,0x00, /*M */ 0x10,0x1F,0x1F,0x00,0x1F,0x1F,0x10,0x00,0x04,0xFC,0x00,0xFC,0x00,0xFC,0x04,0x00, /*N */ 0x10,0x1F,0x0C,0x03,0x00,0x10,0x1F,0x10,0x04,0xFC,0x04,0x00,0xE0,0x18,0xFC,0x00, /*O */ 0x07,0x08,0x10,0x10,0x10,0x08,0x07,0x00,0xF0,0x08,0x04,0x04,0x04,0x08,0xF0,0x00, /*P */ 0x10,0x1F,0x10,0x10,0x10,0x10,0x0F,0x00,0x04,0xFC,0x84,0x80,0x80,0x80,0x00,0x00, /*Q */ 0x07,0x08,0x10,0x10,0x10,0x08,0x07,0x00,0xF0,0x18,0x24,0x24,0x1C,0x0A,0xF2,0x00, /*R */ 0x10,0x1F,0x11,0x11,0x11,0x11,0x0E,0x00,0x04,0xFC,0x04,0x00,0xC0,0x30,0x0C,0x04, /*S */ 0x00,0x0E,0x11,0x10,0x10,0x10,0x1C,0x00,0x00,0x1C,0x04,0x84,0x84,0x44,0x38,0x00, /*T */ 0x18,0x10,0x10,0x1F,0x10,0x10,0x18,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00, /*U */ 0x10,0x1F,0x10,0x00,0x00,0x10,0x1F,0x10,0x00,0xF8,0x04,0x04,0x04,0x04,0xF8,0x00, /*V */ 0x10,0x1E,0x11,0x00,0x00,0x13,0x1C,0x10,0x00,0x00,0xE0,0x1C,0x70,0x80,0x00,0x00, /*W */ 0x1F,0x10,0x00,0x1F,0x00,0x10,0x1F,0x00,0xC0,0x3C,0xE0,0x00,0xE0,0x3C,0xC0,0x00, /*X */ 0x10,0x18,0x16,0x01,0x01,0x16,0x18,0x10,0x04,0x0C,0x34,0xC0,0xC0,0x34,0x0C,0x04, /*Y */ 0x10,0x1C,0x13,0x00,0x13,0x1C,0x10,0x00,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,0x00, /*Z */ 0x08,0x10,0x10,0x10,0x13,0x1C,0x10,0x00,0x04,0x1C,0x64,0x84,0x04,0x04,0x18,0x00, /*[ */ 0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00, /*\ */ 0x00,0x30,0x0C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x1C,0x03,0x00, /*] */ 0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00, /*^ */ 0x00,0x00,0x20,0x40,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*_ */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, /*` */ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*a */ 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x98,0x24,0x44,0x44,0x44,0xFC,0x04, /*b */ 0x10,0x1F,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0xFC,0x88,0x04,0x04,0x88,0x70,0x00, /*c */ 0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x70,0x88,0x04,0x04,0x04,0x88,0x00, /*d */ 0x00,0x00,0x00,0x01,0x01,0x11,0x1F,0x00,0x00,0x70,0x88,0x04,0x04,0x08,0xFC,0x04, /*e */ 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0xF8,0x44,0x44,0x44,0x44,0xC8,0x00, /*f */ 0x00,0x01,0x01,0x0F,0x11,0x11,0x11,0x18,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*g */ 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0xD6,0x29,0x29,0x29,0xC9,0x06,0x00, /*h */ 0x10,0x1F,0x00,0x01,0x01,0x01,0x00,0x00,0x04,0xFC,0x84,0x00,0x00,0x04,0xFC,0x04, /*i */ 0x00,0x01,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*j */ 0x00,0x00,0x00,0x01,0x19,0x19,0x00,0x00,0x00,0x03,0x01,0x01,0x01,0xFE,0x00,0x00, /*k */ 0x10,0x1F,0x00,0x00,0x01,0x01,0x01,0x00,0x04,0xFC,0x24,0x40,0xB4,0x0C,0x04,0x00, /*l */ 0x00,0x10,0x10,0x1F,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00, /*m */ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x04,0xFC,0x04,0x00,0xFC,0x04,0x00,0xFC, /*n */ 0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,0x04,0xFC,0x84,0x00,0x00,0x04,0xFC,0x04, /*o */ 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0xF8,0x04,0x04,0x04,0x04,0xF8,0x00, /*p */ 0x01,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x01,0xFF,0x85,0x04,0x04,0x88,0x70,0x00, /*q */ 0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x70,0x88,0x04,0x04,0x05,0xFF,0x01, /*r */ 0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x04,0x04,0xFC,0x84,0x04,0x00,0x80,0x00, /*s */ 0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0xCC,0x24,0x24,0x24,0x24,0x98,0x00, /*t */ 0x00,0x01,0x01,0x07,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0xF8,0x04,0x04,0x00,0x00, /*u */ 0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0xF8,0x04,0x04,0x04,0x08,0xFC,0x04, /*v */ 0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x00,0x80,0x70,0x0C,0x10,0x60,0x80,0x00, /*w */ 0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x01,0xF0,0x0C,0x30,0xC0,0x30,0x0C,0xF0,0x00, /*x */ 0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,0x04,0x8C,0x74,0x70,0x8C,0x04,0x00, /*y */ 0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x81,0x71,0x0E,0x18,0x60,0x80,0x00, /*z */ 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x84,0x0C,0x34,0x44,0x84,0x0C,0x00, /*{ */ 0x00,0x00,0x00,0x00,0x01,0x3E,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0xFC,0x02,0x02, /*| */ 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, /*} */ 0x00,0x40,0x40,0x3E,0x01,0x00,0x00,0x00,0x00,0x02,0x02,0xFC,0x00,0x00,0x00,0x00, /*~ */ 0x00,0x60,0x80,0x80,0x40,0x40,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; ////*****************//// ////*****判忙函数****//// ////*****************//// void check_busy() { uchar read_data=0xff; clear_rs(); set_rw(); clear_cs(); LCD_DIN_EN ; do { set_en(); delaynum(1); delaynum(1); read_data=lcddata_in; clear_en(); }while(read_data&0x80); set_cs(); LCD_DOUT_EN; } ////*****************//// ////***写数据函数****//// ////*****************//// void write_data(unsigned long dat) { check_busy(); set_rs(); clear_rw(); clear_cs(); lcddata_out=(dat<<16)|0XFF000000; set_en(); delaynum(1); delaynum(1); clear_en(); set_cs(); } ////*****************//// ////****写命令函数***//// ////*****************//// void write_command(unsigned long command) { check_busy(); clear_rs(); clear_rw(); clear_cs(); lcddata_out = (command<<16)|0xff000000; set_en(); delaynum(1); delaynum(1); clear_cs(); set_cs(); } ////*****************//// ////*****复位函数****//// ////*****************//// void reset(void) { clear_reset(); LCD_Delay(200); set_reset(); } ////*****************//// ////*****清屏函数****//// ////*****************//// void clear_screen(uchar m) { uchar i,j; write_command(0x40); //设置起始行 for(i=0;i<8;i++) { write_command(i|0xb0); //设置起始页 write_command(0x10); //设置列的高八位 write_command(0x00); //设置列的低八位 for(j=0;j<128;j++) { write_data(m); //设置清屏方式 } } } ////*****************//// ////***初始化函数****//// ////*****************//// void lcd_initial() { LCD_DOUT_EN; clear_en(); clear_rw(); clear_cs(); reset(); write_command(0xe2); //复位函数 write_command(0xa2); //液晶背光电压选择 write_command(0xa0); //液晶驱动输出和内部RAM列选择 write_command(0xc0); //控制输出模式选择 write_command(0x24); //液晶背光灯电压设置为总电压的50% write_command(0x81); //液晶背光灯电压设置控制使能 write_command(0x28); //对比度控制,液晶所有控制电压全关 write_command(0x2f); //对比度控制,液晶所有控制电压全开 write_command(0xa6); //现实模式设置(正常) write_command(0xaf); //开显示 write_command(0xa5); //液晶上所有显示点开 LCD_Delay(1000); write_command(0xa4); //液晶正常显示 clear_screen(0); //以清屏 write_command(0x40); //显示起始行设置 write_command(0xb0); //设置起始页 write_command(0x10); //设定列高八位 write_command(0x00); //设定列低八位 } ////*****************//// ////**设行起始页位置**//// ////*****************//// void set_page_address(uchar page) { write_command(0xb0|page); } ////*****************//// ////**设定起始列位置**//// ////*****************//// void set_colume_address(uchar colume) { uchar temp; temp=colume>>4; write_command(temp|0x10); //先送列的高三位 temp=colume&0x0f; write_command(temp|0x00); //再送列的低四位 } ////*****************//// //在指定位置显示一个字符// ////*****************//// void disp_word(uchar col,uchar pag,uchar ascii) //列col 0~127 小行pag 0~7 字符ascii { //4行16列时(8*i,2*j,ascii); uchar i,tmp; uint x; x=(ascii-0x20)*0x10; //字符从0x20开始起,每个16位 write_command((adj_page[pag]&0x07)|0xb0); //设置页地址 tmp=col>>4; write_command(tmp|0x10); //显示列的高四位 tmp=col&0x0f; write_command(tmp); //显示列的低四位 for(i=0;i<8;i++) { write_data(ASCIIchardot[x]); //通过查找ASCIIchardot表得到相应字符串 x++; } pag++;//写下半页 write_command((adj_page[pag]&0x07)|0xb0); //设置页地址 tmp=col>>4; write_command(tmp|0x10); //显示列的高四位 tmp=col&0x0f; write_command(tmp); //显示列的低四位 for(i=0;i<8;i++) { write_data(ASCIIchardot[x]); x++; } pag--; //写完一个字符页还原 } ////*****************//// //在指定位置显示一个汉字// ////*****************//// void disp_chn(uchar col,uchar pag,uchar cn) //列col 0~127 小行pag 0~7 汉字cn tab表中的序号0~x { //4行8列时(16*i,2*j,cn); uchar i,tmp; uint x; x=cn<<5; write_command((adj_page[pag]&0x07)|0xb0); //设置页地址 tmp=col>>4; write_command(tmp|0x10); //显示列的高四位 tmp=col&0x0f; write_command(tmp); //显示列的低四位 for(i=0;i<16;i++) { write_data(tab[x]); //通过查找tab表得到相应字符串 x++; } pag++; //写下半页 write_command((adj_page[pag]&0x07)|0xb0); //设置页地址 tmp=col>>4; write_command(tmp|0x10); //显示列的高四位 tmp=col&0x0f; write_command(tmp); //显示列的低四位 for(i=0;i<16;i++) { write_data(tab[x]); x++; } pag--; //写完一个字符页还原 } ////*****************//// //在指定位置显示一个字符串// ////*****************//// void disp_str(uchar col,uchar pag,uchar *cn) { while(*cn!=0) { if(col==128) { pag+=2; col=0; } if(pag==8) { pag=0; } disp_word(col,pag,*cn++); col+=8; } } ////***************************///// ////**在指定的位置显示一个点***///// ////***************************//// void setpoint(uchar x,uchar y) //x横坐标 0-127 往右 y纵坐标 0-63 往下 { set_page_address(y/8); //y用以确定某一页,0-7页 set_colume_address(x); //x用于确定某一列,0-127列 write_data(0x01<<(y%8)); //再y确定某一页的具体点 } ////***************************///// ////**在指定行pag低端的位置显示一个点***///// ////***************************//// void point(uchar x,uchar y) { set_page_address(x); //x用以确定某一页,0-7页 set_colume_address(y); //Y用于确定某一列,0-127列 write_data(0x80); } ////***************************///// ////********显示图片***********///// ////***************************//// void disp_bmp( uchar const *puts ) { uchar i,j; write_command(0x40); for(i=8;i>0;i--) { write_command((i-1)|0xB0); write_command(0x10); write_command(0x00); for(j=0;j<128;j++) { write_data( *puts++ ); } } } ////***************************///// ////*********显示竖线*********///// ////***************************//// void shuxian(uchar n,uchar e,uchar f) //列 n 0-127 e,f行 0-7 从e行到f行画竖线 { uint i; for(i=e;i<(f+1);i++) { set_page_address(i); set_colume_address(n); write_data(0xff); } } ////***************************///// ////*********显示横线*********///// ////***************************//// void hengxian(uchar k) //行 k 0-7 底端画横线 { uint i; for(i=0;i<128;i++) { point(k,i); //write_data(0xff); } } ////*****************//// ////*****延时函数****//// ////*****************//// void LCD_Delay(unsigned long v) { while(v--); } void delaynum(unsigned char num) { while(num--) ; }
显示图像如下:

