51单片机12864液晶显示模块控制
TG12864 液晶模块控制 IC 采用 S6B0108,驱动 IC 采用 S6B0107 设计,是一款内部没有字库
的显示模块。其方框图见下图:
接线
主机模块 P0.0-P0.7 口接到显示模块的数据总线 DB0-DB7 上。
P2.0 接到 RST 端
P2.1 接到 CS2 端
P2.2 接到 CS1 端
P2.3 接到 E 端
P2.4 接到 RW 端
P2.5 接到 DI 端
main.c
#include "main.h"
#include "lcd12864.h"
/*12864如果用于比赛的话我们一般接线只接cs1,cs2,跟rs,e,这四跟控制线 数据端口就用一个8位io口*/
/*注意rw要接地*/
/*经贸旅游学校 勾云鹏 12864驱动文字程序*/
void initlcd(void); //12864显示界面函数
void main()
{
lcdinit(); //12864初始化
initlcd(); //掉用12864界面函数
while(1)
{
}
}
void initlcd(void)
{
//lcdxie(2,20,0,3);
//lcdxie(2,36,1,3);
//lcdxie(2,52,2,3);
//lcdxie(2,68,3,3);
//lcdxie(2,84,4,3);
//lcdxie(2,100,5,3);
xiezfc(2,36,0,3,5);
}
main.h
#ifndef _MAIN_H_
#define _MAIN_H_
#include <reg52.h>
#define lcddat P0 //lcd12864数据库
sbit lcdcs1 = P1^0; //右屏
sbit lcdcs2 = P1^1; //左屏
sbit lcdwr = P1^2; //lcdrs
sbit lcdwe = P1^3; //lcde
#define uchar unsigned char
#define uint unsigned int
uchar code shuzi[][16]; //数字数据库 二维数组
uchar code haizi12[][24]; //12*12文字
uchar code haizi16[][32]; //16*16文字
void delay(uint i){
while(i--);} //延时函数
uchar code shuzi[][16] =
{
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/
0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,/*"1",1*/
0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/
0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00,/*"3",3*/
0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,