12864显示程序

更新时间:2024-04-18 07:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

按昭下面的编程很方便的。。。。 硬件连接方式是:并口直接访问。 这是汉字显示程序: #include #include

#define uchar unsigned char

#define datawr 0x1200 //写数据通道

#define comwr 0x1000 //写控制命令通道 #define datare 0x1300 //读数据通道 #define comre 0x1100 //读忙通道

uchar code disp_data[]={\浙江大学 \//第一行,第一页 \级通信工程一班\//第三行 \宁波理工学院 \//第二行 \竞赛小组 \//第四行

\液晶显示器\//第一行,第二页 \测试程序 \//第三行 \年07月25日 \//第二行 \Tornado \//第四行 void set12864();

void write_command(uchar command); void write_page(uchar data_add); void read_page(uchar data_add); void delays(uchar cont);

void main() {

while(1) {

set12864(); //初始化12864 write_page(0); //写入一页数据

read_page(0x30); //读出一页数据到内部RAM delays(2); //延时2s

write_page(64); //写入下一页数据 delays(2); //延时2s } }

//初始化12864子程序 void set12864()

{

write_command(0x30); //功能设定控制字 write_command(0x0c); //显示开关控制字 write_command(0x01); //清除屏幕控制字 write_command(0x06); //进入设定点控制字 }

//写控制命令子程序

void write_command(uchar command) {

bit flag=1; //12864空闲标志位 while(flag) //检查12864是否空闲 flag=\

XBYTE[comwr]=command; //空闲传送控制字 }

//写一页子程序

void write_page(uchar data_add) {

bit flag=1; //12864空闲标志位

uchar num=64; //64个循环,连续写入32个汉字或是64个西文字符 write_command(0x80); for(;num>0;num--) {

while(flag) //检查12864是否空闲 flag=\

XBYTE[datawr]=disp_data[data_add++]; //空闲传送数据 } }

//读一页子程序

void read_page(uchar data_add) {

bit flag=1; //12864空闲标志位

uchar num=64; //64个循环,连续写入32个汉字或是64个西文字符 write_command(0x80); for(;num>0;num--) {

while(flag) //检查12864是否空闲 flag=\

DBYTE[data_add++]=XBYTE[datare]; //空闲传送数据 } }

//延时cont秒子程序 void delays(uchar count) {

unsigned char h,i,j,k; do {

for(h=5;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--); }while(--count); }

这是图象显示程序: #include #include

#define uchar unsigned char #define uint unsigned int

#define datawr 0x1200 //写数据通道

#define comwr 0x1000 //写控制命令通道 #define datare 0x1300 //读数据通道 #define comre 0x1100 //读忙通道

uchar code disp_data[] = // 数据表 {

0x00,0x01,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,

0x00,0x01,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,

0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,

0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,

0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,

0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,

0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,

0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x80,0x00,0x00,0x00,

0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF

F,0xFF,0xFF,0xFF,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0xFF,0xFF,0xFF,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFF,0xFF,

0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x0B,0xFF,

0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x1F,

0x01,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,

0x01,0xFF,0xFF,0xFF,0xF3,0x79,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,

0x03,0xFF,0xFF,0xFF,0xE6,0x62,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0x60,0x00,0x68,

0x01,0xFF,0xFF,0xFE,0x00,0x60,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0x00,0x00,0x0E,

0x01,0xFF,0xFF,0xF8,0x00,0x4B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x8E,0x08,0x79,

0x07,0xFF,0xFF,0xF0,0x00,0x41,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE6,0xC0,0x07,0x61,

0xC3,0xFF,0xFE,0xC0,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xED,0xEF,0x3F,

0x83,0xFF,0xFE,0x60,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xC0,0xFF,0xFD,0xFC,0x6C,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xF0,0x7F,0xF3,0xFF,0xFE,0x60,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xF3,0xFF,0xFF,0x50,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC9,

0xFB,0xFF,0xF1,0xF8,0x8C,0xD8,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x6F,0xD9,

0xC2,0x3F,0xF8,0x40,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF6,0xDF,0x1E,0xFF,

0xFF,0x7F,0xFC,0x38,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x64,0x2F,0x6F,0xFF,

0xFD,0x7B,0xFC,0x1F,0xE0,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0x5F,0x7C,0xEE,0xFF,

0xC7,0xFF,0xBC,0x0F,0xFF,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFE,0xEF,0xFF,

0xFF,0xE7,0xDC,0x07,0xE7,0xF8,0x12,0x7F,0xFF,0xFF,0xFF,0xFF,0x4

7,0xFF,0xFF,0xFF,

0xFF,0xE7,0x80,0x03,0xF4,0x00,0x00,0x5F,0xFF,0xFF,0xFE,0xFE,0xE3,0xFF,0xFF,0xFF,

0xFF,0xFE,0xC0,0x01,0xC0,0x00,0x00,0x1B,0xFF,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,

0x7F,0xEE,0xC0,0x00,0xC0,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFE,0x98,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,

0x20,0x0E,0x60,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,

0x05,0x80,0xE0,0x00,0x00,0x00,0x00,0x01,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0x09,0x80,0xA0,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,

0x85,0x2A,0xC0,0x00,0x00,0x00,0x00,0x01,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,

0xBF,0xF3,0xC0,0x00,0x00,0x00,0x00,0x00,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,

0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x01,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xC0,0x1F,

0xFF,0xFF,0x80,0x00,0x40,0x00,0x00,0x00,0xFF,0x80,0xFF,0xFF,0xFF,0x80,0x07,0xFF,

0xFF,0xFF,0xC0,0x00,0xC0,0x00,0x00,0x01,0xFF,0x01,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,

0xFF,0xFF,0xE0,0x63,0x80,0x00,0x00,0x01,0xFE,0x01,0xFF,0x18,0x00,0x3F,0xFF,0xFF,

0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x01,0xCC,0x01,0xFE,0x00,0x07,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x07,0xA0,0x03,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x05,0xC0,0x03,0xC8,0x00,0x7F,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x88,0x0C,0x07,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFC,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0xC0,0x7F,0xFF,0xFF,

0xFF,0xFF,0xF8,0x07,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0F,0xFF,0xFE,

0xFF,0xFF,0xD0,0x07,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x03,0xFF,0xF8,

0xFF,0xFC,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

x3F,0xFF,0xC0,

0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0xFF,0xF8,

0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x1F,0xFE,

0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x78,0x00,0x00,0x00,0x00,0x00,0x02,0xFF,

0xFE,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,

0xF0,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,

0xE0,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,

0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,

0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,

0x80,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01 };

void set12864();

void setxy(uchar x,uchar y);

void write_command(uchar command); void write_16byte(uint data_add); void delays(uchar count);

void main() {

uchar x,y,i; while(1) {

y=\//设置液晶上半部分坐标 x=\

delays(2); //延时2s

set12864(); //初始化12864 delays(2);

for(i=0;i<32;i++) //写入液晶上半图象部分 { //写入坐标 setxy(x,y);

write_16byte(i*16); //连续写入16字节数据

y++; //y轴地址加1 }

y=\//设置液晶下半部分坐标 x=\

for(i=0;i<32;i++) //写入液晶下半图象部分 {

setxy(x,y); //写入坐标

write_16byte((32+i)*16);//连续写入16字节数据 y++; //y轴地址加1 }

write_command(0x34); //写入扩充指令命令 write_command(0x36); //显示图象 } }

//初始化12864子程序 void set12864() {

write_command(0x30); //功能设定控制字 write_command(0x0c); //显示开关控制字 write_command(0x01); //清除屏幕控制字 write_command(0x06); //进入设定点控制字 }

//设置绘图坐标

void setxy(uchar x,uchar y) {

write_command(0x34); //写入扩充指令命令 write_command(y); //写入y轴坐标 write_command(x); //写入x轴坐标

write_command(0x30); //写入基本指令命令 }

//写控制命令子程序

void write_command(uchar command) {

bit flag=\//12864空闲标志位 while(flag) //检查12864是否空闲 flag=\

XBYTE[comwr]=command; //空闲传送控制字 }

void write_16byte(uint data_add) {

bit flag=\//12864空闲标志位

uchar num=\//16个循环,连续写入16个字节 for(;num>0;num--) {

while(flag) //检查12864是否空闲 flag=\

XBYTE[datawr]=disp_data[data_add++]; //空闲传送数据 } }

//延时count秒子程序 void delays(uchar count) {

unsigned char h,i,j,k; do {

for(h=5;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--); }while(--count); }

程序代码如下: #include #include\

#define uint unsigned int #define uchar unsigned char #define x1 0x80 #define x2 0x88 #define y 0x80 #define comm 0 #define dat 1 sbit cs = P0^0;

sbit std = P0^1; sbit sclk = P0^2;

//sbit rst = P0^3; //Reset Signal 低电平有效

void wr_lcd (uchar dat_comm,uchar content); void delay (uint us);

void lcd_char(uchar x0,uchar y0,uchar k,uchar *chn); void init_lcd (void);

void lcd_string(uchar x0,uchar y0,uchar k,uchar *chn); /*------------------初始化-----------------*/ void init_lcd (void) {

// rst=1;

wr_lcd (comm,0x30); /*30---基本指令动作*/ wr_lcd (comm,0x01); /*清屏,地址指针指向00H*/ delay (100);

wr_lcd (comm,0x06); /*光标的移动方向*/ wr_lcd (comm,0x0c); /*开显示,关游标*/ }

/*--------------清DDRAM------------------*/ void clrram (void) {

wr_lcd (comm,0x30); wr_lcd (comm,0x01); delay (180); }

/*---------------------------------------*/ void wr_lcd (uchar dat_comm,uchar content) {

uchar a,i,j; delay (500); a=content; cs=1; _nop_(); sclk=0; _nop_(); std=1; _nop_();

for(i=0;i<5;i++) {

sclk=1; _nop_();

_nop_(); _nop_(); sclk=0; }

std=0; _nop_(); sclk=1; _nop_(); _nop_(); _nop_(); sclk=0; _nop_();

if(dat_comm)

std=1; //data else

std=0; //command sclk=1; _nop_(); _nop_(); _nop_(); sclk=0; std=0; _nop_(); sclk=1; _nop_(); _nop_(); _nop_(); sclk=0;

for(j=0;j<2;j++) {

for(i=0;i<4;i++) {

a=a<<1; std=CY; sclk=1; _nop_(); _nop_(); _nop_(); sclk=0; }

std=0;

for(i=0;i<4;i++) {

sclk=1;

_nop_(); _nop_(); _nop_(); sclk=0; } } }

/*-----------------------------------*/ void delay (uint us) //delay time {

while(us--); }

void delay1 (uint ms) {

uint i,j;

for(i=0;i

/*-------在任意位置显示一串汉字------

X0为行,Y0为列,chn为所要显示的汉字串 ,k为汉字个数 */

void lcd_char(uchar x0,uchar y0,uchar k,uchar *chn) {

uchar adr,i;

switch(x0) {

case 0: adr = 0x80 + y0;

break; //在第1行y列显示 case 1: adr = 0x90 + y0;

break; //在第2行y列显示 case 2: adr = 0x88 + y0;

break; //在第3行y列显示 case 3: adr = 0x98 + y0;

break; //在第4行y列显示 default: ; }

wr_lcd (comm,0x30); wr_lcd (comm,adr);

for(i=0;i<2*k;i++)

wr_lcd (dat,chn[i]);

}

//在任意位置显示字符串,k为字符个数

void lcd_string(uchar x0,uchar y0,uchar k,uchar *chn) {

uchar adr,i;

switch(x0) {

case 0: adr = 0x80 + y0;

break; //在第1行y列显示 case 1: adr = 0x90 + y0;

break; //在第2行y列显示 case 2: adr = 0x88 + y0;

break; //在第3行y列显示 case 3: adr = 0x98 + y0;

break; //在第4行y列显示 default: ; }

wr_lcd (comm,0x30); wr_lcd (comm,adr); for(i=0;i

wr_lcd (dat,chn[i]); }

/*------------------主程序--------------------*/ void main ()

{ uchar chn[4]={0x31,0x32,0x35,0x36}; uchar b[]={\欢迎使用本程序\init_lcd (); while (1) {

clrram();

lcd_char(0,0,7,b);

lcd_string(1,0,4,chn); delay1 (8000); } }

/*********************************************************************/

/*文件名称:12864-01-8x8.asm SIDE: 128 X 64 DOTS */ /*模 块 名: 12864-1 模块 CONTROLLER: KS0108 */ /*创 建 人:zmlceo 日期:2008-12-01 */ /*QQ:527717539 日期:2008-12-01 */ /*功能描述: */ /*其他说明: */ /*版 本:V1.0 */

/*********************************************************************/ //显示

/*****************/ /* */ /* 12864lcd */ /* */ /* */ /*****************/

#include

#include #include #include #include #include

/* Define the register command code */ #define Disp_On 0x3f #define Disp_Off 0x3e #define Col_Add 0x40 #define Page_Add 0xb8

#define Start_Line 0xc0

#define Lcd_Bus P0 //MCU P1 LCM /*sbit Mcs=\//Master chip enable sbit Scs=\//Slave chip enable

sbit Enable=\//6800 mode Enable single sbit Di=\//Data or Instrument Select sbit RW=\//Write or Read sbit Lcd_Rst=P2^2; //Lcm reset sbit Test_Key=P2^1;*/

sbit Mcs=\//Master chip enable sbit Scs=\//Slave chip enable

sbit Enable=\//6800 mode Enable single sbit Di=\//Data or Instrument Select sbit RW=\//Write or Read sbit Lcd_Rst=P2^5; //Lcm reset sbit Test_Key=P1^0;

//;****************************************************************

/*;RS REG P2.0 DEFINE LCM DATA/INSTRUCTION PIN ;R/W REG P2.1 DEFINE LCM READ/WRITE PIN ;E REG P2.2 DEFINE LCM CHIP ENABLE PIN ;CS1 REG P2.3 DEFINE LCM CHIP 1 SELECT PIN ;CS2 REG P2.4 DEFINE LCM CHIP 2 SELECT PIN ;RSTB REG P2.5 DEFINE LCM /RESET PIN*/

char code SHU1[]={ /*-- 文字: 1 --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00 };

char code SHU2[]={ /*-- 文字: 2 --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00 };

char code SHU8[]={ /*-- 文字: 8 --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00

};

char code SHU6[]={ /*-- 文字: 6 --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00

};

char code SHU4[]={ /*-- 文字: 4 --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00 };

char code L[]={ /*-- 文字: L --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00 };

char code C[]={ /*-- 文字: C --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,

0x08,0x00 };

char code D[]={ /*-- 文字: D --*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/

0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00 };

/*****************/ /* */

/* 12864LCD */ /* */ /* */

/*****************/

/*------------------延时子程序-----------------------------*/ void delay(unsigned int t) {

unsigned int i,j; for(i=0;i

; }

/*------------------写命令到LCD------------------------------*/

void write_com(unsigned char cmdcod

e) {

Di=0; RW=0;

Lcd_Bus=cmdcode; delay(0); Enable=1; delay(0); Enable=0; }

/*-------------------写数据到LCD----------------------------*/ void write_data(unsigned char Dispdata) { Di=1;

RW=0;

Lcd_Bus=Dispdata; delay(0); Enable=1; delay(0); Enable=0;

}

/*-------------------读LCD数据----------------------------*/ unsigned char read_data() {

unsigned char tmpin; Di=1; RW=1; delay(0); Enable=1; delay(0); Enable=0; tmpin=Lcd_Bus; return tmpin; }

/*------------------清除内存---------------*/ void Clr_Scr() {

unsigned char j,k; Mcs=1;Scs=1;

write_com(Page_Add+0); write_com(Col_Add+0); for(k=0;k<8;k++){ write_com(Page_Add+k);

for(j=0;j<64;j++)write_data(0x00); } }

/*---------------------指定位置显示字符8*16-----------------------*/

void hz_disp816(unsigned char pag,unsigned char col, unsigned char code *hzk) {

unsigned char j=\for(j=0;j<2;j++){

write_com(Page_Add+pag+j); write_com(Col_Add+col);

for(i=0;i<8;i++) write_data(hzk[8*j+i]); } }

本文来源:https://www.bwwdw.com/article/nmhp.html

Top