51单片机 12864液晶显示并口和串口连接程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
wirtthings(2,"什么,only You!");
wirtthings(3,"我也不知道我在想");
wirtthings(4,"什么,什么该想··");
while(1)
{
writLCD(0,0x06);//4、5右到左1 I/D S 6,左到右
wirtthings(3,"没有人知道我在想");//87
以下是12864串口连接程序
/**** 12864串口*******/
//QQ:462658536
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RW=P2^1;
sbit SCK=P2^2;
uchar code lineyou[5]={0x00,0x80,0x90,0x88,0x98} ;//code
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define lcdbus P0
sbit rs=P2^0;
sbit rw=P2^1;
sbit en=P2^2;
uchar code line[5]={0x00,0x80,0x90,0x88,0x98};
void delay(uchar i)
{
uchar j;
while(i--)
for(j=0;j<125;j++);
}ห้องสมุดไป่ตู้
void writ_DATCOM(bit flagdc,uchar thing)
{
rs=flagdc;
rw=0;
delay(1);
lcdbus=thing;
en=1;//en为高数据写入,0为低停止写入
}
void main()
{
init();
writline(1,"广西职业技术学院");
writline(2,"电气自动化——技术");
writline(3,"QQ:452658536");
writline(4,"学号: 09232017");
while(1);
}
//////////////////////////////////////////////////////
sent(DATA&0XF0); //先写高位后写低位
sent((DATA&0X0F)<<4); //低位
}
void AUTO(uchar *add)
{
uchar cnt=0;
while(*(add+cnt)!='\0')
{
writLCD(1,*(add+cnt));
cnt++;
}
}
void wirtthings(uchar lines,uchar *add)//writ data to which line
void delay(uchar i)
{
uchar j;
while(i--)
for(j=0;j<125;j++);
}
void sent(uchar DATA)//byte1
{
uchar i;
for(i=0;i<8;i++)
{
SCK=0;
if(DATA&0x80)//高位先出、1000 0000
RW=1;
{
writ_DATCOM(0,line[flagline]);
AUTO_line(address);
}
void init()
{
writ_DATCOM(0,0x01);
writ_DATCOM(0,0x02);
writ_DATCOM(0,0x0c);
writ_DATCOM(0,0x30);
writ_DATCOM(0,0x80);
//writLCD(0,0x01);
wirtthings(4,"什么,only You!");
//writLCD(0,0x01);
wirtthings(1,"联系方式:");
//writLCD(0,0x01);
wirtthings(2,"QQ:452658536");
delay(100);
writLCD(0,0x01);
delay(15);//数据写入的速度
en=0;
}
void AUTO_line(uchar *data_add)
{
uchar cnt;
while(*(cnt+data_add)!='\0')
{
writ_DATCOM(1,*(cnt+data_add));
cnt++;
}
}
void writline(uchar flagline,uchar *address)
writLCD(0,0x02);
writLCD(0,0x06);
writLCD(0,0x0f);
// writLCD(0,0x30);//CGRAM o ACC自己编写的字符
writLCD(0,0x80); //DDRAMto ACC(字符显示RAM缓冲区)
}
void main()
{
init();
delay(1);
else
RW=0;
delay(10);
SCK=1;
DATA=DATA<<1;
}
}
void writLCD(bit flag,uchar DATA) //writ COM or data in address
{
if(flag)
sent(0xfa);//1写数据
else
sent(0xf8);//0写指令
{
writLCD(0,lineyou[lines]);//写入显示所在地址,writ address! display which line
AUTO(add);// writ data dispaly what(*add)
}
void init()
{
delay(10);
writLCD(0,0x01);
相关文档
最新文档