#include #define uint unsigned int #define uchar unsigned char #define DATA P0 sbit RS=P2^2; sbit RW=P2^1; sbit EN=P2^0; sbit cs1=P2^4; sbit cs2=P2^3; /**************字库*****************/ uchar code hzk[]={/*-- 调入了一幅图像:F:\\单片机资料\\工具软件\\点阵液晶字模图片提取软件\\207.bmp --*/ /*-- 调入了一幅图像:C:\\Documents and Settings\\Administrator\\桌面\\未命名2.bmp --*/ /*-- 宽度x高度=128x64 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0, 0xF8,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFE,0xFC,0xF8,0xE0,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00, 0x00,0x00,0x03,0x1E,0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x07,0xFE,0xE0,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0x78,0xF8,0xF8,0xFC, 0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xE0,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x61,0x23, 0x3E,0x1C,0x10,0x00,0x00,0x07,0x06,0x06,0x06,0x02,0x02,0x03,0x03,0x03,0x03,0x01, 0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x03,0x03,0x03,0x02,0x06,0x06,0x0E, 0x0C,0x1C,0x18,0x18,0x30,0x60,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x01,0x03, 0x03,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F, 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F, 0x3E,0xF8,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x38,0x1C,0x0E,0x07,0x83,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x40,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x3C,0xF0,0xC0,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x70,0x30,0x38,0x38,0x18,0x1C,0x1C, 0x1C,0x0E,0x0F,0x3E,0xFE,0x86,0x06,0x07,0x07,0x03,0x02,0x70,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xFC,0x3F,0x03,0xC0,0x00,0xE0,0x78,0x8E,0xDF,0x6E,0x68,0x6C,0x6C, 0xFC,0x8C,0x84,0x4C,0x24,0x04,0x04,0x07,0x04,0x07,0x07,0x04,0x64,0xC4,0xCC,0x74, 0x34,0x34,0x34,0x34,0x7C,0xE4,0xC4,0x47,0x67,0x0C,0xFC,0xFC,0x00,0x00,0x00,0xFF, 0x00,0x00,0x00,0x00,0x80,0x7E,0x00,0x00,0x00,0x00,0x00,0x87,0xFF,0x7E,0x00,0x00, 0xAF,0xFF,0xFF,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0, 0xC0,0xE0,0x70,0x70,0x70,0x38,0x3C,0x1C,0x1C,0x0E,0x0E,0x07,0x07,0x07,0x03,0x03, 0x03,0x0C,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0x1E,0xC0,0x00,0x00,0x00,0x00,0xC0, 0x60,0x20,0x00,0x00,0x07,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00, 0x00,0x00,0x00,0x3F,0xF8,0x8E,0x78,0x8F,0xFF,0xA0,0x73,0xF0,0x00,0x00,0x00,0x00, 0x00,0x03,0x07,0x00,0x00,0x00,0x00,0x04,0xC4,0x02,0x00,0x00,0x00,0x03,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xAE,0x10,0x00,0xFF,0xFF,0x00,0x00,0xE0,0x3F, 0x00,0x80,0xE0,0x3C,0x07,0x00,0x00,0x80,0x40,0x20,0x18,0x07,0x03,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0x78,0xF8,0x38,0x1C,0x1C,0x0E,0x0E,0x07,0x07,0x03,0x03,0x01, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xA6,0x08,0x30,0x40,0x47, 0x80,0x80,0x00,0x80,0xF0,0x3F,0x03,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x03,0x0E,0x1B,0x1C,0x73,0xEC,0xF8,0xF0,0x30,0x60,0x60, 0x40,0xC0,0xC0,0x80,0x80,0x80,0x80,0x88,0x93,0x80,0x90,0x80,0x88,0x84,0x84,0x80, 0x80,0x80,0xC0,0xC0,0x40,0x40,0x60,0x20,0x30,0x30,0x3F,0xF7,0xF0,0xFE,0x5B,0x2C, 0x36,0x11,0x18,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x13,0x1F,0x18,0x31,0x26,0x38,0x23,0x2C,0x30,0x60,0xC0,0x80,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x07,0x00,0x00,0x03,0x0C,0x00,0x80, 0x40,0x30,0x0C,0xC3,0xC0,0xC0,0xC0,0xE0,0x20,0x00,0x00,0x80,0xC0,0xC0,0x60,0x30, 0x18,0x1C,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x81,0xF1,0x39,0x1D,0xE5,0x7F,0x7F,0xFF,0xBC,0x58,0x7D,0xD7, 0xFC,0x9C,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x86,0x86, 0x84,0x84,0xFC,0xB8,0xF8,0x78,0xF8,0xD8,0x78,0x38,0xFC,0x54,0xCA,0x7A,0xF9,0xF8, 0xF8,0xF8,0xFC,0xFC,0xFD,0x7D,0xFD,0xFE,0xFA,0xDF,0xFF,0xE1,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x7E,0x7F,0x01,0x40,0x4F,0x67,0x33,0x11,0x31,0x38,0x1C,0x34,0x22, 0x65,0x47,0x00,0x1F,0x7E,0x7C,0x40,0x40,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 checkstate() { uchar dat; RS=0; RW=1; do{ DATA=0x00; EN=1; _nop_(); dat=DATA; EN=0; dat=0x80&dat; }while(!(dat==0x00)); } /**************写命令************************/ sendcommand(uchar com) { checkstate(); RS=0; RW=0; DATA=com; EN=1; _nop_(); _nop_(); EN=0; } /******************设置页(X)地址**************/ void setline(uchar page) { page=0xb8|page; sendcommand(page); } /*******************设定显示开始行**************/ void setstartline(uchar startline) { startline=0xc0|startline; sendcommand(startline); } /*******************设定列(Y)地址*****************/ void setcolumn(uchar column) { column=column&0x3f; column=0x40|column; sendcommand(column); } /******************开关显示************************/ void setonoff(uchar onoff) { onoff=0x3e|onoff; //onoff=0or1; sendcommand(onoff); } /******************写显示数据*********************/ void writebyte(uchar dat) { checkstate(); RS=1; RW=0; DATA=dat; EN=1; _nop_(); _nop_(); EN=0; } /******************选择屏幕***********************/ void selectscreen(uchar screen) { switch(screen) { case 0:cs1=0;_nop_();_nop_();_nop_();cs2=0;_nop_();_nop_();_nop_();break; case 1:cs1=0;_nop_();_nop_();_nop_();cs2=1;_nop_();_nop_();_nop_();break; case 2:cs1=1;_nop_();_nop_();_nop_();cs2=0;_nop_();_nop_();_nop_();break; } } /********************清屏***********************/ void clearscreen(uchar screen) { uchar i,j; selectscreen(screen); for(i=0;i<8;i++) { setline(i); setcolumn(0); for(j=0;j<64;j++) { writebyte(0x00); } } } /**************初始化********************/ void initlcd() { checkstate(); selectscreen(0); setonoff(0); selectscreen(0); setonoff(1); selectscreen(0); clearscreen(0); setstartline(0); } void main() { uint i,j,k=0; initlcd(); clearscreen(0); while(1) { k=0; for(i=0;i<8;i++) { selectscreen(2); setline(i); setcolumn(0); for(j=0;j<64;j++) { writebyte(hzk[j+64*k]); } k++; selectscreen(1); setline(i); setcolumn(0); for(j=0;j<64;j++) { writebyte(hzk[j+64*k]); } k++; } } } 电路图如下所示: 因篇幅问题不能全部显示,请点此查看更多更全内容