专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
哪位高手有12864和STC89C52的连接图,以及测试程序
2019-07-16 06:03
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
11327
9
1692
哪位高手有12864和STC89C52的连接图,以及测试程序,
求一份
邮箱:
1920266977@qq.com
多谢了
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
bbaihc
2019-07-16 15:43
朋友你好下面是我自己的接法和程序希望能帮到你,另外12864的资料已发到你邮箱!!12864按口接线为:VCC接5V,GND接地,RS接P1口的3, RW接P1口的0, E(始能端)接P1口的1, PSB(串并口选择)接P1口的2, A K(背光LED)接5V和地。我选的是并口接法8位数据数接口接P0口的0-7位。以下是程序
#include<reg52.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P1^3;
sbit RW=P1^0;
sbit PSB=P1^2;
sbit EN=P1^1;
uchar code addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};
void lcd_wcmd(uchar cmd);
void lcd_wdat(uchar dat);
void delay(uchar z)//延时
{
uchar i,j;
for(i=z;i>0;i--)
for(j=220;j>0;j--);
}
void lcd_checkBusy()//检测忙标志
{
uchar busy;
do{
EN = 0;
RS = 0;
RW = 1;
delay(4);
EN = 1;
busy = P0;
delay(4);
EN = 0;
}
while(busy&0x80);
}
void hanzi_Disp(uchar x,uchar y,uchar *pt)//显汉字
{
lcd_wcmd(addr_tab[8*x+y]); //写地址
while(*pt>0)
{
lcd_wdat(*(pt++)); //写数据
// break;
}
}
void lcd_wcmd(uchar cmd) //写指令
{
RS=0;
RW=0;
EN=0;
delay(4);
P0=(cmd);
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_wdat(uchar dat)//写数据
{
RS=1;
RW=0;
EN=0;
P0=dat;
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_init()//初始化
{
PSB=1;
lcd_wcmd(0x30);
delay(4);
lcd_wcmd(0x0f);
delay(4);
lcd_wcmd(0x01);
delay(4);
}
void main()//主函数
{
void lcd_checkBusy(void);
lcd_init();
hanzi_Disp(0,0,"单片机世界");
//lcd_wcmd(0x91);
hanzi_Disp(3,0,"爱你到老");
while(1);
}
加载中...
查看其它9个回答
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include<reg52.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P1^3;
sbit RW=P1^0;
sbit PSB=P1^2;
sbit EN=P1^1;
uchar code addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};
void lcd_wcmd(uchar cmd);
void lcd_wdat(uchar dat);
void delay(uchar z)//延时
{
uchar i,j;
for(i=z;i>0;i--)
for(j=220;j>0;j--);
}
void lcd_checkBusy()//检测忙标志
{
uchar busy;
do{
EN = 0;
RS = 0;
RW = 1;
delay(4);
EN = 1;
busy = P0;
delay(4);
EN = 0;
}
while(busy&0x80);
}
void hanzi_Disp(uchar x,uchar y,uchar *pt)//显汉字
{
lcd_wcmd(addr_tab[8*x+y]); //写地址
while(*pt>0)
{
lcd_wdat(*(pt++)); //写数据
// break;
}
}
void lcd_wcmd(uchar cmd) //写指令
{
RS=0;
RW=0;
EN=0;
delay(4);
P0=(cmd);
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_wdat(uchar dat)//写数据
{
RS=1;
RW=0;
EN=0;
P0=dat;
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_init()//初始化
{
PSB=1;
lcd_wcmd(0x30);
delay(4);
lcd_wcmd(0x0f);
delay(4);
lcd_wcmd(0x01);
delay(4);
}
void main()//主函数
{
void lcd_checkBusy(void);
lcd_init();
hanzi_Disp(0,0,"单片机世界");
//lcd_wcmd(0x91);
hanzi_Disp(3,0,"爱你到老");
while(1);
}
一周热门 更多>