




免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*/程序部分开始/*/头文件定义/*/#include / 包含头文件#include /用于指针/*/接口定义/*/#define LCM12864_DB7_DB0 P0 / 定义LCM12864的数据总线sbit LCM12864_RS = P2 3; / 定义LCM12864的RS控制线sbit LCM12864_RW = P2 4; / 定义LCM12864的RW控制线sbit LCM12864_E = P2 2; / 定义LCM12864的E控制线sbit LCM12864_CS1 = P2 7; / 定义LCM12864的CS1控制线sbit LCM12864_CS2 = P2 6; / 定义LCM12864的CS2控制线sbit LCM12864_RESET = P2 5; / 定义LCM12864的RESET控制线sbit LCM12864_LEDK = P2 0; / 定义LCM12864的LEDK(BLK)控制线/*/数据定义/定义LCM12864的命令字/*/#define LCM12864_DISP_ON 0x3f / 打开LCM12864显示#define LCM12864_DISP_OFF 0x3e / 关闭LCM12864显示#define LCM12864_START_ROW 0xc0 / 显示起始行0,可以用LCM12864_START_ROW+x设置起始行。(x64)#define LCM12864_PAGE_START_ADDR 0xb8 / 页起始地址,可以用LCM12864_PAGE_START_ADDR+x设置当前页。(x8)#define LCM12864_COL_START_ADDR 0x40 / 列起始地址,可以用LCM12864_COL_START_ADDR+x设置当前列。(x64)/定义LCM12864的状态屏蔽码/在BUSY和REST状态时,除读状态指令外,其他指令均不对LCM12864产生作用。/在对LCM12864操作之前要查询BUSY状态,以确定是否可以对LCM12864进行操作。#define LCM12864_STATUS_BUSY 0x80 / LCM12864忙状态屏蔽码#define LCM12864_STATUS_DISP_OFF 0x20 / LCM12864显示关闭状态屏蔽码#define LCM12864_STATUS_REST 0x10 / LCM12864复位状态屏蔽码/*/字符/图像定义库/*/*- 文字: 欢 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/* 纵向取模,字节倒序 */unsigned char code huan1=0x0C,0x6C,0xEC,0x8C,0xFC,0x3C,0x40,0x70,0x3F,0xCF,0xCC,0x0C,0x3C,0x3C,0x00,0x00,0x10,0x38,0x1C,0x07,0x07,0x4C,0x60,0x30,0x18,0x0F,0x07,0x0C,0x18,0x30,0x20,0x00,;/*- 文字: 迎 -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/* 纵向取模,字节倒序 */unsigned char code ying2=0x60,0x66,0xEE,0xE8,0x00,0xFE,0xFE,0x07,0x03,0xFE,0xFE,0x06,0xFE,0xFE,0x00,0x00,0x40,0x60,0x3F,0x1F,0x30,0x67,0x67,0x62,0x60,0x6F,0x6F,0x62,0x67,0x67,0x60,0x00;/ ASCII字模的数据表 / 码表从0x200x7e / 字库:Asc8X16E.dat 纵向取模下高位 /unsigned char code nAsciiDot = / ASCII0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00, / -D-0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00,0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00, / -y-0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00,0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00, / -1-0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00, / -2-0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00, / -8-0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00, / -6-0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00, / -4-0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,;/ Bitmap点阵数据表 / 图片: C:.鎈doyleee.bmp,纵向取模下高位,数据排列:从左到右从上到下 / 图片尺寸: 128 * 64 /unsigned char code doyleee = / 数据表0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x81,0xF1,0xF1,0xF1,0x71,0x31,0x31,0x71,0xF1,0xF1,0xE1,0xC1,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x81,0xF1,0xF1,0xF1,0x71,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xF0,0xFC,0xFE,0xFE,0x0F,0x03,0x03,0x07,0xFF,0xFE,0xFE,0xF8,0x00,0xE0,0xE0,0xE0,0xE0,0x00,0x03,0x3F,0xFF,0xFF,0xFC,0xC0,0xF0,0xFE,0x3F,0x0F,0x03,0x00,0xF0,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xF0,0xFC,0xFE,0xFE,0x3F,0x33,0x33,0x33,0x3F,0x3F,0x3E,0x38,0x00,0x00,0xF0,0xFC,0xFE,0xFE,0x3F,0x33,0x33,0x33,0x3F,0x3F,0x3E,0x38,0x00,0x00,0xF0,0xFC,0xFE,0xFE,0x3F,0x33,0x33,0x33,0x3F,0x3F,0x3E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x8E,0x8F,0x8F,0x8F,0x8C,0x8C,0x8C,0x8C,0x8E,0x8F,0x87,0x87,0x83,0x81,0x80,0x80,0x80,0x81,0x87,0x87,0x8F,0x8E,0x8C,0x8C,0x8F,0x87,0x87,0x83,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xF3,0x7F,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x0E,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x01,0x07,0x07,0x0F,0x0E,0x0C,0x0C,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x01,0x07,0x07,0x0F,0x0E,0x0C,0x0C,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x01,0x07,0x07,0x0F,0x0E,0x0C,0x0C,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x10,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x18,0x1C,0x84,0xC4,0x7C,0x38,0x00,0x00,0xB8,0xFC,0x64,0xC4,0xFC,0xB8,0x00,0x00,0xE0,0xF0,0x3C,0x2C,0xE4,0xC0,0x00,0x00,0x80,0xFC,0x7C,0x00,0xF0,0xF0,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFC,0x04,0x04,0x1C,0x18,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x04,0x06,0x03,0x01,0x00,0x20,0x23,0x27,0x34,0x1C,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x04,0x00,0x00,0x06,0x07,0x05,0x04,0x04,0x04,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,0x00,0x00,0x01,0x01,0x01,0x01,0x07,0x07,0x01,0x00,0x07,0x07,0x04,0x04,0x04,0x04,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x03,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x00,0xF0,0xF0,0x00,0x00,0x00,0x20,0x20,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0x10,0x10,0x90,0x50,0xF0,0xE0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x83,0x86,0x8C,0x8C,0x86,0x83,0x81,0x80,0x80,0x88,0x88,0x88,0x8F,0x8F,0x88,0x88,0x88,0x80,0x80,0x8C,0x8C,0x80,0x80,0x87,0x8F,0x8A,0x89,0x88,0x88,0x8F,0x87,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF;/*/软件延时 Delay()/*/void Delay(unsigned int count)unsigned char i;while(-count != 0)for(i = 0; i 125; i+); / ; 表示空语句,CPU空转。 / i 从0加到125,在12M晶体下CPU大概耗时1毫秒/*/LCM12864测忙函数 LCM12864_TestBusy()/*/void LCM12864_TestBusy(void)LCM12864_RW = 1;LCM12864_RS = 0;LCM12864_E = 0;LCM12864_E = 1;while(LCM12864_DB7_DB0 & LCM12864_STATUS_BUSY);/*/写指令到LCM12864 LCM12864_WriteCMD()/*/void LCM12864_WriteCMD(unsigned char LCM12864_command) /LCM12864_command 欲写入指令LCM12864_TestBusy();LCM12864_RW = 0; LCM12864_RS = 0;LCM12864_DB7_DB0 = LCM12864_command;LCM12864_E = 0;LCM12864_E = 1;LCM12864_TestBusy();/*/写数据到LCM12864 LCM12864_WriteData()/*/void LCM12864_WriteData(unsigned char LCM12864_data) /LCM12864_command 欲写入数据LCM12864_RW = 0; LCM12864_RS = 1;LCM12864_DB7_DB0 = LCM12864_data;LCM12864_E = 0;LCM12864_E = 1;LCM12864_TestBusy(); /读LCM忙/*/从LCM12864读数据 LCM12864_ReadData()/*/unsigned char LCM12864_ReadData(void)unsigned char LCM12864_data;LCM12864_E = 0;LCM12864_RW = 1; LCM12864_RS = 1;LCM12864_E = 1;LCM12864_data = LCM12864_DB7_DB0; /送入8位数据LCM12864_TestBusy(); /读LCM忙return LCM12864_data;/*/向LCM12864指定点写一字节数据 LCM12864_Write1Byte_X_Y()/*/void LCM12864_Write1Byte_X_Y( unsigned char x, /x坐标值(0-127)unsigned char y, /y坐标值(0-63)unsigned char LCM12864_data) /LCM12864_data 所要写的数据x = x&0x7f; y = y&0x3f; /参数过滤LCM12864_CS1 = 1; LCM12864_CS2 = 1; /不选中左半屏及右半屏if(x64) / 判断选择左、右半屏LCM12864_CS1 = 0; / 选中左半屏elseLCM12864_CS2 = 0; / 选中右半屏x = x-64;LCM12864_WriteCMD(LCM12864_COL_START_ADDR+x); / 设置当前列地址,即x坐标LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+y); / 设置当前页地址,即y坐标LCM12864_WriteData(LCM12864_data); / 向LCM12864写数据/*/从LCM12864指定点读取一字数据 LCM12864_Read1Byte_X_Y()/*/unsigned char LCM12864_Read1Byte_X_Y( unsigned char x, /x坐标值(0-127)unsigned char y) /y坐标值(0-63)unsigned char LCM12864_data;x = x&0x7f; y = y&0x3f; /参数过滤LCM12864_CS1 = 1; LCM12864_CS2 = 1; /不选中左半屏及右半屏if(x64) / 判断选择左、右半屏LCM12864_CS1 = 0; / 选中左半屏elseLCM12864_CS2 = 0; / 选中右半屏x = x-64;LCM12864_WriteCMD(LCM12864_COL_START_ADDR+x); / 设置当前列地址,即x坐标LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+y); / 设置当前页地址,即y坐标LCM12864_data = LCM12864_ReadData(); / 向LCM12864写数据return LCM12864_data;/*/向LCM12864填充数据 LCM12864_Fill_Screen()/*/void LCM12864_Fill_Screen( unsigned char t, /设置涮屏速度(为1不涮屏,默认为60)unsigned char LCM12864_FillData) /欲写入的数据unsigned char x,y;LCM12864_CS1 = 0;LCM12864_CS2 = 0; / 选中左半屏及右半屏LCM12864_WriteCMD(LCM12864_START_ROW+0); / 设置显示起始行为0for(x=0;x8;x+)Delay(t); / 涮屏速度延时LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+x); / 设置页地址LCM12864_WriteCMD(LCM12864_COL_START_ADDR);/ / 设置列地址for(y=0;y64;y+) LCM12864_WriteData(LCM12864_FillData);LCM12864_CS1 = 1; / 不选中右半屏LCM12864_CS2 = 1; / 不选中右半屏/*/LCM12864清屏 LCM12864_Clear_Screen()/*/void LCM12864_Clear_Screen(void)LCM12864_Fill_Screen(60,0x00); /写入0到每个显示区/*/LCM12864黑屏 LCM12864_Clear_black()/*/void LCM12864_Clear_black(void)LCM12864_Fill_Screen(0xff); /可写入其它数值以填满LCD屏/*/显示128*64图片 LCM12864_Disp_Bitmap_12864()/*/void LCM12864_Disp_Bitmap_12864( unsigned char t, /设置涮屏速度(为1不涮屏,默认为60)unsigned char code *bitmap_12864) /128*64点阵图像所在数组表unsigned char j,k;for(k=0;k8;k+) /设置8页的显示Delay(t);LCM12864_CS1 = 0;LCM12864_CS2 = 1; /半屏选中LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+k); /选中页LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0); /选中列for(j=0;j64;j+)LCM12864_WriteData(bitmap_12864k*128+j); /开始写入数据LCM12864_CS1 = 1;LCM12864_CS2 = 0;LCM12864_WriteCMD(LCM12864_PAGE_START_ADDR+k);LCM12864_WriteCMD(LCM12864_COL_START_ADDR+0);for(j=64;j128;j+)LCM12864_WriteData(bitmap_12864k*128+j);/*/在LCM12864的指定点显示16*16点阵汉字 LCM12864_Disp_Chinese_16_16()/*/void LCM12864_Disp_Char_x_16( unsigned char t, /设置书写速度(为1直接显示,默认为12)unsigned char b, /输入8:8*16字符,16:16*16字符unsigned char LCM12864_page, /LCM12864的页地址(07)unsigned char LCM12864_col, /LCM12864的列地址(0128)注意:右半屏起始是64unsigned char code *Char_x_16) /16*16点阵汉字字模(纵向取模,字节倒序)unsigned char j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外观设计合同中的隐私保护条款
- 下水道清理合同6篇
- 医疗美容行业手术安全合同书
- 高级技术人员劳动合同终止与专利权归属合同
- 互联网教育平台研发保密与资源共享合同
- 婚后子女抚养权变更及财产分割及子女权益保障协议
- 离婚协议中子女抚养权、监护权与教育费用的全文解析
- 珠宝玉石饰品保险理赔及维权服务协议
- 夫妻离婚房产分割与赡养费支付专项合同
- 离婚协议书范本:离婚财产分割与共同债务清偿
- 货架清洗施工方案(3篇)
- 口腔医疗纠纷预防与管理要点
- 中小学人教版语文《爬山虎的脚》教学课件
- 无损检测超声波检测二级试题库(UT)(含答案)
- 2025陕西省延安旅游(集团)有限公司招聘16人笔试历年参考题库附带答案详解
- 啤酒酿造0102030451课件
- 2025年新防腐工程安全员考试题库及答案
- 《铁路调度指挥系统维护(活页式)》课件 项目三 CTC系统
- 2025至2030打印耗材项目产业运行态势及投资规划深度研究报告
- 2025年俄语ТРКИ八级考试真题试卷及解析
- 队列动作教学课件
评论
0/150
提交评论