12864显示波形 2.docx

上传人:b****5 文档编号:5341429 上传时间:2022-12-15 格式:DOCX 页数:9 大小:15.25KB
下载 相关 举报
12864显示波形 2.docx_第1页
第1页 / 共9页
12864显示波形 2.docx_第2页
第2页 / 共9页
12864显示波形 2.docx_第3页
第3页 / 共9页
12864显示波形 2.docx_第4页
第4页 / 共9页
12864显示波形 2.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

12864显示波形 2.docx

《12864显示波形 2.docx》由会员分享,可在线阅读,更多相关《12864显示波形 2.docx(9页珍藏版)》请在冰豆网上搜索。

12864显示波形 2.docx

12864显示波形2

Lcd12864.c:

#include"lcd12864.h"

voidLCDDelay(chart)

{

chari,j;

for(i=0;i

for(j=0;j<10;j++);

}

voidCheckState()

{

chardat;

LCDRs=0;

LCDRw=1;

do

{

dat=0x00;

LCDEn=1;

LCDDelay

(2);

LCDEn=0;

dat=0x80&dat;

}while(!

(dat==0x00));

}

voidwrite_com(charcmdcode)

{

CheckState();

LCDRs=0;

LCDRw=0;

LCDData=cmdcode;

LCDDelay

(2);

LCDEn=1;

LCDDelay

(2);

LCDEn=0;

}

voidwrite_data(charLCDDispdata)

{

CheckState();

LCDRs=1;

LCDRw=0;

LCDData=LCDDispdata;

LCDDelay

(2);

LCDEn=1;

LCDDelay

(2);

LCDEn=0;

}

voidLCDInit()

{

LCDDelay(100);

LCDCs1=1;

LCDCs2=1;

LCDDelay(100);

write_com(LCDDispOff);

write_com(PageAdd+0);

write_com(StartLine+0);

write_com(LCDColAdd+0);

write_com(LCDDispOn);

}

voidLCDClear()

{

chark,j;

LCDCs1=0;

LCDCs2=0;

write_com(PageAdd+0);

write_com(LCDColAdd+0);

for(k=0;k<8;k++)

{

write_com(PageAdd+k);

for(j=0;j<64;j++)

{

write_com(LCDColAdd+j);

write_data(0x00);

}

}

}

voidLCDWriteChinese(charleftright,charpage,charcolumn,charchinese[])

{

chari=0,j=0;

if(leftright=='L')

{

LCDCs1=0;

LCDCs2=1;

}

elseif(leftright=='R')

{

LCDCs1=1;

LCDCs2=0;

}

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

{

write_com(PageAdd+page+i);

write_com(LCDColAdd+column);

for(j=0;j<16;j++)

{

write_data(chinese[16*i+j]);

}

}

}

voidLCDWriteChineseBlack(charleftright,charpage,charcolumn,charchinese[])

{

chari=0,j=0;

if(leftright=='L')

{

LCDCs1=0;LCDCs2=1;

}

elseif(leftright=='R')

{

LCDCs1=1;

LCDCs2=0;

}

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

{

write_com(PageAdd+page+i);

write_com(LCDColAdd+column);

for(j=0;j<16;j++)

{

write_data(~chinese[16*i+j]);

}

}

}

voidLCDWriteNum(charleftright,charpage,charcolumn,charnum[])

{

chari=0,j=0;

if(leftright=='L')

{

LCDCs1=0;LCDCs2=1;

}

elseif(leftright=='R')

{

LCDCs1=1;

LCDCs2=0;

}

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

{

write_com(PageAdd+page+i);

write_com(LCDColAdd+column);

for(j=0;j<8;j++)

{

write_data(num[8*i+j]);

}

}

}

voidLCDWriteNumBlack(charleftright,charpage,charcolumn,charnum[])

{

chari=0,j=0;

if(leftright=='L')

{

LCDCs1=0;

LCDCs2=1;

}

elseif(leftright=='R')

{

LCDCs1=1;

LCDCs2=0;

}

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

{

write_com(PageAdd+page+i);

write_com(LCDColAdd+column);

for(j=0;j<8;j++)

{

write_data(~num[8*i+j]);

}

}

}

Lcd12864.h

#ifndef__LCD12864_H

#define__LCD12864_H

#include

#defineLCDDispOff0x3e

#defineLCDDispOn0x3f

#definePageAdd0xb8//页地址

#defineLCDColAdd0x40//列地址

#defineStartLine0xc0//行地址

#defineLCDDataP0

sbitLCDCs1=P2^0;//片选1

sbitLCDCs2=P2^1;//片选2

sbitLCDRet=P2^2;//复位端

sbitLCDRw=P2^3;//“数据/指令”选择

sbitLCDRs=P2^4;//“读/写”选择

sbitLCDEn=P2^5;//“读/写”使能

/*函数声明,供模块内部使用*/

staticvoidLCDDelay(chart);//延时函数

staticvoidCheckState();//检测忙标志

staticvoidwrite_com(charcmdcode);//写指定

staticvoidwrite_data(charLCDDispdata);//写数据

/*函数声明,外部调用*/

voidLCDInit();//12864初始化

voidLCDClear();//12864清屏

voidLCDWriteChinese(charleftright,charpage,charcolumn,charchinese[]);//12864指定页指定列显示一个汉字

voidLCDWriteChineseBlack(charleftright,charpage,charcolumn,charchinese[]);//12864指定页指定列显示一个汉字,以黑色背景白色文本显示

voidLCDWriteNum(charleftright,charpage,charcolumn,charnum[]);//12864指定屏指定页指定列显示一个数字

voidLCDWriteNumBlack(charleftright,charpage,charcolumn,charnum[]);//12864指定屏指定页指定列显示一个数字,以黑色背景白色文本显示

#endif

Main.c

#include"lcd12864.h"

charcodesan1[]={

0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

charcodesan2[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,

0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

charcodesin1[]={

0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x01,

0x01,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,

0xE0,0x1C,0x03,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x03,0x1C,0xE0};

charcodesin2[]={

0x07,0x38,0xC0,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xC0,0x38,0x07,

0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x80,

0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00};

charcoderec[]={

0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,

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

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

0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF};

voiddelay(intt)

{

inti,j;

for(i=t;i>0;i--)

for(j=125;j>0;j--);

}

voidmain(void)

{

LCDInit();

LCDClear();

while

(1)

{

LCDWriteChinese('L',0,0,san1);

LCDWriteChinese('L',0,16,san2);

LCDWriteChinese('L',0,32,san1);

LCDWriteChinese('L',0,48,san2);

LCDWriteChinese('R',0,0,san1);

LCDWriteChinese('R',0,16,san2);

LCDWriteChinese('R',0,32,san1);

LCDWriteChinese('R',0,48,san2);

LCDWriteChinese('L',2,0,rec);

LCDWriteChinese('L',2,16,rec);

LCDWriteChinese('L',2,32,rec);

LCDWriteChinese('L',2,48,rec);

LCDWriteChinese('R',2,0,rec);

LCDWriteChinese('R',2,16,rec);

LCDWriteChinese('R',2,32,rec);

LCDWriteChinese('R',2,48,rec);

LCDWriteChinese('L',4,0,sin1);

LCDWriteChinese('L',6,16,sin2);

LCDWriteChinese('L',4,32,sin1);

LCDWriteChinese('L',6,48,sin2);

LCDWriteChinese('R',4,0,sin1);

LCDWriteChinese('R',6,16,sin2);

LCDWriteChinese('R',4,32,sin1);

LCDWriteChinese('R',6,48,sin2);

delay(1000);

LCDClear();

}

}

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

当前位置:首页 > 高等教育 > 艺术

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

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