12864的51c程序.docx

上传人:b****7 文档编号:10140492 上传时间:2023-02-08 格式:DOCX 页数:27 大小:20.51KB
下载 相关 举报
12864的51c程序.docx_第1页
第1页 / 共27页
12864的51c程序.docx_第2页
第2页 / 共27页
12864的51c程序.docx_第3页
第3页 / 共27页
12864的51c程序.docx_第4页
第4页 / 共27页
12864的51c程序.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

12864的51c程序.docx

《12864的51c程序.docx》由会员分享,可在线阅读,更多相关《12864的51c程序.docx(27页珍藏版)》请在冰豆网上搜索。

12864的51c程序.docx

12864的51c程序

#include

#include

#defineucharunsignedchar

#definedatawr0x1200//写数据通道

#definecomwr0x1000//写控制命令通道

#definedatare0x1300//读数据通道

#definecomre0x1100//读忙通道

ucharcodedisp_data[]={"浙江大学"//第一行,第一页

"04级通信工程一班"//第三行

"宁波理工学院"//第二行

"竞赛小组"//第四行

"128X64液晶显示器"//第一行,第二页

"测试程序"//第三行

"07年07月25日"//第二行

"Tornado"};//第四行

voidset12864();

voidwrite_command(ucharcommand);

voidwrite_page(uchardata_add);

voidread_page(uchardata_add);

voiddelays(ucharcont);

voidmain()

{

while

(1)

{

set12864();//初始化12864

write_page(0);//写入一页数据

read_page(0x30);//读出一页数据到内部RAM

delays

(2);//延时2s

write_page(64);//写入下一页数据

delays

(2);//延时2s

}

}

//初始化12864子程序

voidset12864()

{

write_command(0x30);//功能设定控制字

write_command(0x0c);//显示开关控制字

write_command(0x01);//清除屏幕控制字

write_command(0x06);//进入设定点控制字

}

//写控制命令子程序

voidwrite_command(ucharcommand)

{

bitflag="1";//12864空闲标志位

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

flag="XBYTE"[comre]&0x80;

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

}

//写一页子程序

voidwrite_page(uchardata_add)

{

bitflag="1";//12864空闲标志位

ucharnum="64";//64个循环,连续写入32个汉字或是64个西文字符

write_command(0x80);

for(;num>0;num--)

{

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

flag="XBYTE"[comre]&0x80;

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

}

}

//读一页子程序

voidread_page(uchardata_add)

{

bitflag="1";//12864空闲标志位

ucharnum="64";//64个循环,连续写入32个汉字或是64个西文字符

write_command(0x80);

for(;num>0;num--)

{

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

flag="XBYTE"[comre]&0x80;

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

}

}

//延时cont秒子程序

voiddelays(ucharcount)

{

unsignedcharh,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

#defineucharunsignedchar

#defineuintunsignedint

#definedatawr0x1200//写数据通道

#definecomwr0x1000//写控制命令通道

#definedatare0x1300//读数据通道

#definecomre0x1100//读忙通道

ucharcodedisp_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,0xFF,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,0x47,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,0x3F,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

};

voidset12864();

voidsetxy(ucharx,uchary);

voidwrite_command(ucharcommand);

voidwrite_16byte(uintdata_add);

voiddelays(ucharcount);

voidmain()

{

ucharx,y,i;

while

(1)

{

y="0x80";//设置液晶上半部分坐标

x="0x80";

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="0x80";//设置液晶下半部分坐标

x="0x88";

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子程序

voidset12864()

{

write_command(0x30);//功能设定控制字

write_command(0x0c);//显示开关控制字

write_command(0x01);//清除屏幕控制字

write_command(0x06);//进入设定点控制字

}

//设置绘图坐标

voidsetxy(ucharx,uchary)

{

write_command(0x34);//写入扩充指令命令

write_command(y);//写入y轴坐标

write_command(x);//写入x轴坐标

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

}

//写控制命令子程序

voidwrite_command(ucharcommand)

{

bitflag="1";//12864空闲标志位

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

flag="XBYTE"[comre]&0x80;

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

}

voidwrite_16byte(uintdata_add)

{

bitflag="1";//12864空闲标志位

ucharnum="16";//16个循环,连续写入16个字节

for(;num>0;num--)

{

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

flag="XBYTE"[comre]&0x80;

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

}

}

//延时count秒子程序

voiddelays(ucharcount)

{

unsignedcharh,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);

}

回答者:

liming19840827-四级

2009-10-1607:

59

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitLCD_RS=P3^5;

sbitLCD_RW=P3^6;

sbitLCD_E=P3^4;

sbitLCD_PSB=P3^7;//液晶有关控制位

ucharcodedis1[]={"一片枫叶"};

/*=====================延时===========================*/

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

 

//写指令

voidwrite_com(ucharcom)

{

LCD_RS=0;

LCD_RW=0;

LCD_E=0;

P0=com;

delay(5);

LCD_E=1;

delay(5);

LCD_E=0;

}

//写数据{

voidwrite_date(uchardate)

{

LCD_RS=1;

LCD_RW=0;

LCD_E=0;

P0=date;

delay(5);

LCD_E=1;

delay(5);

LCD_E=0;

}

//初始化液晶

voidchushi()

{

P0=0x7f;

LCD_PSB=1;

write_com(0x30);

delay(5);

write_com(0x0c);

delay(5);

write_com(0x01);

delay(5);

for(num=0;num<5;num++)

{

write_date(dis1[num]);

delay(20);

}

}

 

}

/*=======================主函数=========================*/

voidmain()

{

chushi();

}

回答者:

ypfengye-一级

2009-10-1921:

15

以下是源代码

/*******************************main.h********

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1