CGM12864B并行驱动(51).doc_第1页
CGM12864B并行驱动(51).doc_第2页
CGM12864B并行驱动(51).doc_第3页
CGM12864B并行驱动(51).doc_第4页
CGM12864B并行驱动(51).doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一直用的都是串行的LCD,突然试了一下并行的,原来这么简单,就是占IO口太多了main.c内容:#include #include lcd12864.h#include uint8 code han=0x10,0x60,0x01,0x86,0x60,0x04,0x1C,0xE4,0x04,0x04,0x04,0xE4,0x1C,0x04,0x00,0x00,0x04,0x04,0x7E,0x01,0x40,0x20,0x20,0x10,0x0B,0x04,0x0B,0x10,0x30,0x60,0x20,0x00; /汉uint8 code zi=0x00,0x10,0x0C,0x24,0x24,0x24,0x25,0x26,0xA4,0x64,0x24,0x04,0x14,0x0C,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00;/字uint8 code xian=0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00,0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00;/显,uint8 code shi=0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00,0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00;/示/-/功能:延时/参数:t 延时参数delay(uint16 t)while(t-);/-/功能:向12864写1字节命令或数据/参数:_data 写入的数据 _cmd 取CMD 或DATAwrite(uint8 _data,uint8 _cmd)check_busy();IS_WR();if(_cmd=CMD) IS_CMD();else IS_DATA();E=1;DATA_PORT=_data;delay(10);E=0;/-/功能:读取 BUSY RST DISP_ON/OFF标志/参数:无uint8 read()uint8 temp;DI=0;RW=1; /readE=1;delay(10);temp=DATA_PORT;E=0;return temp;/-/功能:初始化 复位LCD,读RST标志/参数:无lcd_init()RST=0;delay(10); /at least 1usRST=1;E=0;DI=1;RW=1;check_rst(); /loop while status RST=0/-set_xy(uint8 x,uint8 y) /063 x&=0x3f;write(0x40+x,CMD); /set x addres/ write(0xc0,CMD); /set z addressy&=0x07;write(0xb8+y,CMD); /set y address/-/功能:显示1个汉字/参数:x y为汉字显示位置,x可取03,y可取03 *p为字模指针disp16x16(uint8 x,uint8 y,uint8 *p)uint8 i;if(x4) & (y4) set_xy(x*16,y*2); for(i=0;i16;i+) write(pi,DATA); set_xy(x*16,y*2+1); for(i=16;i32;i+) write(pi,DATA); /-/功能:清楚开显示的半屏/参数:无clear()uint8 i,j;for(i=0;i8;i+) /clear ram set_xy(0,i); for(j=0;j64;j+) write(0x00,DATA); /-main() delay(0xffff); lcd_init(); left_screen_on(); /display on left_half_screen clear(); disp16x16(0,1,han); disp16x16(1,1,zi); disp16x16(2,1,xian); disp16x16(3,1,shi); right_screen_on(); clear(); disp16x16(1,0,han); disp16x16(1,1,zi); disp16x16(1,2,xian); disp16x16(1,3,shi); while(1); LCD12864.内容:#ifndef _12864_#define _12864_#define DI P3_2 /H data, L command#define RW P3_3 /H read, L write#define E P3_4 /H active#define CS1 P3_5 /H#define CS2 P3_6 /H#define RST P3_7 /L active#define DATA_PORT P2#define WR 0#define RD 1#define IS_WR() RW=0#define IS_RD() RW=1#define CMD 0#define DATA 1#define IS_CMD() DI=0#define IS_DATA() DI=1typedef unsigned char uint8;typedef unsigned int uint16;#define check_busy() while(read()&0x80)#define check_rst() while(read()&0x10)#define left_screen_on() CS1=1;CS2=0; write(0x3f,CMD)#define right_screen_on() CS1=0;CS2=1;write(0x3f,CMD)delay(ui

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论