单片机连接PG160128A基本操作

PG160128A为一个有160*128点阵的lcd显示屏,它有着16个字模

相关文档在连接:

https://max.book118.com/html/2017/0702/119715409.shtm

个人硬件连接图如下

运行效果图如下

下面是代码,请结合硬件连接图来看基本操作

代码移植的时候只需更改变量 data1 wr rd cd

#include"reg52.h"
#define uchar unsigned char
sfr data1=0xA0;
//data1为P2传输数据	P2的地址为0xA0 来源于reg52.h
sbit wr=P3^6;
sbit rd=P3^7;
sbit cd=P3^5;

//写一次数据
void wrOneData(uchar data_1);
//读取状态检测
uchar lcdStatue();
//判断s0s1为高
void lcdEnable();
//发送无参命令
void postFunction0(uchar cmd);
//发送单参数命令
void postFunction1(uchar cmd, uchar data_1);
//发送双参数命令
void postFunction2(uchar cmd, uchar data_1, uchar data_2);
//判断s2s3为高
void lcdOneWrEnable();
//一次读写测试
void lcdOneWr();
void main(){
	while(1){
		postFunction2(0x42,0x00,0x00);
		postFunction2(0x43,0x14,0x00);
		postFunction0(0x44);
		postFunction0(0x96);
		lcdOneWr();
		postFunction2(0x21,0x00,0x00);
		
	}
}


uchar lcdStatue(){
	uchar flag;
	cd=1;
	rd=1;
	wr=1;
	data1=0xff;
	rd=0;
	flag=data1;
	rd=1;
	return flag;
}

void lcdEnable(){
	while(1){
	if(lcdStatue()&0x03==0x03)
		break;
	}
}

void postFunction0(uchar cmd){
	lcdEnable();
	cd=1;
	rd=1;
	data1=cmd;
	wr=0;
	wr=1;
}
void postFunction1(uchar cmd,uchar data_1){
	lcdEnable();
	cd=0;
	rd=1;
	wr=1;
	data1=data_1;
	wr=0;
	wr=1;
	lcdEnable();
	cd=1;
	rd=1;
	data1=cmd;
	wr=0;
	wr=1;
}

void postFunction2(uchar cmd,uchar data_1,uchar data_2){
	lcdEnable();
	cd=0;
	rd=1;
	wr=1;
	data1=data_1;
	wr=0;
	wr=1;
	lcdEnable();
	cd=0;
	rd=1;
	wr=1;
	data1=data_2;
	wr=0;
	wr=1;
	lcdEnable();
	cd=1;
	rd=1;
	data1=cmd;
	wr=0;
	wr=1;
}

void lcdOneWrEnable(){
	while(1){
		if(lcdStatue()&0x0c==0x0c){
		break;
		}
	}
}
void LcdOneWr(){
	int i=0;
	postFunction2(0x24,0x00,0x00);
	lcdOneWrEnable();
	postFunction0(0xb0);
	for(i=0;i<128;i++){
		lcdOneWrEnable();
		//这里向PG160128A发送数据使用的是字库的数据范围为0x02~0x0f
		wrOneData(0x02);
	}
	postFunction0(0xb2);
}

void wrOneData(uchar data_1){
	cd=0;
	wr=1;
	rd=1;
	data1=data_1;
	wr=0;
	wr=1;
}

作者:吾非善类

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值