1 / 23
文档名称:

串行程序例程.doc

格式:doc   大小:49KB   页数:23页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串行程序例程.doc

上传人:wcuxirh 2021/1/11 文件大小:49 KB

下载得到文件列表

串行程序例程.doc

文档介绍

文档介绍:12864串行程序例程
此文档,是本人根据12864资料编写而成,在51单片机上面调试通过成功,,由于51的内
存有限,后续两幅图占用内存太大,所以注释。
#include<>
#define uchar unsigned char
#define uint unsigned int
sbit SID=P1^1; //RW
sbit SCLK=P1^0;//E
int i,j,k,len;
unsigned char code pic[];
unsigned char code pic1[];
unsigned char code IDAT[]={ "陕西理工电子科技"
"单片机小液晶系列"
"中文字库测试程序"
"恭喜发财工作顺利"
};
void DisPhoto(unsigned char code *adder) ;
void lcd_chine(unsigned char code *adder1);
void Draw_Point(int x,int y,int z,int type); //画点坐标点,修正位,及是否为画点,还是
消除
void Draw_Line(int x,int y,int len,int typ);
void delay_ms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++)
;
}
void write_lcd(uchar date,uint type) //type 0为命令,1为数据
{
switch(type)
{
case 0:
{
uchar i;
uchar i_data;
i_data=0xf8;
// CS=1;
SCLK=0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data<<=1;
}
i_data=date;
i_data&=0xf0;//先传送高四位,屏弊低四位
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data<<=1;
}
i_data=date;
i_data<<=4; //将低四位移向高四位并传送
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data<<=1;
}
// CS=0;
}
break;
case 1:
{uchar i;
uchar i_data;
i_data=0xfa;
// CS=1;
SCLK=0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data<<=1;
}
i_data=date;
i_data&=0xf0;//先传送高四位,屏弊低四位
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0; //给一个脉冲
SCLK=1;
i_data<<=1;
}
i_data=date;
i_data<<=4; //将低四位移向高四位并传送
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data<<=1;
}
// CS=0;
}
break;
}
}
/***********************************************************************/
/* 图形显示清屏 */
/*************************************************************************/
void clear_lcd()
{
for(k=0;k<2;k++)
{for(i=0;i<32;i++) //
{
write_lcd((0x80 + i),0); //SET 垂直地址 VERTICAL ADD 高度
if(!k)
write_lcd(0x80,0);
else