找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2226|回复: 15
收起左侧

为啥ks0108(没字库)12864 仿真可以 实物只有光呢

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
ID:687830 发表于 2020-4-27 13:26 | 显示全部楼层 |阅读模式
#include<reg52.h>
sbit EN=P0^3;
sbit RS=P0^1;
sbit RW=P0^2;
sbit CS1=P0^4;
sbit CS2=P0^5;
sbit RST=P0^6;
void Delay (unsigned int z)
{
unsigned int i,j;
for(i=z;i>0;i--)
for(j=2;j>0;j--);
}
void WriteCode(unsigned char com)
{
Delay(1);
RS=0;
RW=0;
P2=com;
EN=1;
EN=0;
    Delay(1);  
}
void WriteData(unsigned char dat)
{
    Delay(1);
RS=1;
RW=0;
P2=dat;
EN=1;
EN=0;
    Delay(1);  
}
unsigned char ReadData()
{
unsigned char save;     
    Delay(1);
RS=1;
RW=1;
EN=1;
save=P2;
EN=0;
return(save);
    Delay(1);
}
void LcdInitialize()
{
Delay(1);
CS1=0; CS2=0;
WriteCode(0x3e);
WriteCode(0xb8);
WriteCode(0xc0);
WriteCode(0x40);
WriteCode(0x3f);
}
void SetXy(unsigned char x,unsigned char y)
{
WriteCode(0xb8+x);
WriteCode(0x40+y);
    Delay(1);
}
void LcdClear()
{
unsigned char i,j;
CS1=0;CS2=0;
for(i=0;i<8;i++)
{
  SetXy(i,0);
  for(j=0;j<64;j++)
  WriteData(0x00);
}                                                            
}
void DrawPoint(unsigned char x,unsigned char y,unsigned char dat)
{
unsigned char he;
SetXy(x,y);
he=ReadData();
he=ReadData();
SetXy(x,y);
WriteData(dat+he);
}
void DrawHanzi(unsigned char x,unsigned char y,unsigned char code *dat)
{
unsigned char i=0,j=0;
for(i=0;i<2;i++)
{
  SetXy(x+i,y);
  for(j=0;j<16;j++)
   WriteData(dat[16*i+j]);
}
}
unsigned char code a[2][32]=
{
{
0xFF,0xFF,0x03,0xFB,0x9B,0xAB,0xBB,0x3A,0x81,0xBB,0xBB,0xAB,0x9B,0xBB,0xBB,0xFF,
0x7F,0x9F,0xE0,0xBF,0xDF,0x67,0x79,0xBE,0xB8,0xD6,0xEE,0xD6,0xBA,0x7C,0x7F,0xFF
},
{
0xBF,0xC3,0xEF,0x00,0xEF,0xEF,0xDF,0xEF,0x70,0x87,0xF7,0x07,0xF7,0x07,0xFF,0xFF,
0xFD,0xF9,0xFD,0x00,0xFE,0xFE,0xFB,0xBD,0xDE,0xE7,0xB9,0x7E,0xBF,0xC0,0xFF,0xFF
},
};
void main()
{
unsigned char i,j;
LcdInitialize();
LcdClear();
for(i=0;i<4;i++){DrawHanzi(2*i,16*j,a[0]);DrawHanzi(2*i,16*j+16,a[1]);}
for(i=0;i<4;i++){DrawHanzi(2*i,16*j+32,a[0]);DrawHanzi(2*i,16*j+16+32,a[1]);}
while(1);
}
回复

使用道具 举报

ID:687830 发表于 2020-4-27 13:28 | 显示全部楼层
只有一个单片机最小系统(有P0的排阻)和一个Ks0108lcd12864其余没了。用的杜邦线
回复

使用道具 举报

ID:687830 发表于 2020-4-27 13:29 | 显示全部楼层
用了20根杜邦线 vo vout 用的公对母的杜邦线焊住接vcc vss-gnd vdd-5v rst-5v
回复

使用道具 举报

ID:452950 发表于 2020-4-27 15:44 | 显示全部楼层
调对比度看看
回复

使用道具 举报

ID:584814 发表于 2020-4-27 17:07 | 显示全部楼层
查接线有无问题(错、松等),调整时序。
回复

使用道具 举报

ID:687830 发表于 2020-4-27 18:10 | 显示全部楼层
man1234567 发表于 2020-4-27 17:07
查接线有无问题(错、松等),调整时序。

时序就是在E=0 E=1之间加上delay(1)吧
可能杜邦线会有点松 但是试了好多次了 什么都不显示
但是有一次有点偶然 出现了白格子(蓝屏)。。。。。。。。。。
回复

使用道具 举报

ID:687830 发表于 2020-4-27 18:11 | 显示全部楼层

我用了两根公母杜邦线连接了电位器的两端(焊住)
电位器的另一端接地 2k的电位器 调整了好像没啥用
回复

使用道具 举报

ID:592807 发表于 2020-4-27 22:13 | 显示全部楼层
你把void LcdClear()
{
unsigned char i,j;
CS1=0;CS2=0;
for(i=0;i<8;i++)
{
  SetXy(i,0);
  for(j=0;j<64;j++)
  WriteData(0x00);
}                                                            
} 里面的  WriteData(0x00);换成0xff看一下会不会黑屏,如果不黑屏就是你函数或者硬件有问题,黑屏就是你函数有问题
回复

使用道具 举报

ID:739706 发表于 2020-4-27 23:14 | 显示全部楼层
硬件连线检查下,电源地
回复

使用道具 举报

ID:739736 发表于 2020-4-28 00:23 | 显示全部楼层
查看连线是否错接,漏接现象
回复

使用道具 举报

ID:687830 发表于 2020-4-28 08:22 | 显示全部楼层
黄youhui 发表于 2020-4-27 22:13
你把void LcdClear()
{
unsigned char i,j;

嗯 今天试试 还有我那个电位器好像接错了
我是边上两个脚接了vo vout中间接地了
回复

使用道具 举报

ID:687830 发表于 2020-4-28 12:01 | 显示全部楼层
请问bla blk 那个是干什么的 背光? 是不是不接这两个就不行
回复

使用道具 举报

ID:687830 发表于 2020-4-28 12:05 | 显示全部楼层
J42jQx.jpg
有白格子了!!
回复

使用道具 举报

ID:687830 发表于 2020-4-28 12:09 | 显示全部楼层
白各自代表0xff还是0x00
回复

使用道具 举报

ID:687830 发表于 2020-4-28 14:26 | 显示全部楼层
感谢了 差不多解决了 可能是时序问题 delay没用
要用nop 程序也有点问题
回复

使用道具 举报

ID:728467 发表于 2020-5-10 20:20 来自手机 | 显示全部楼层
吾演读上琴漏 发表于 2020-4-28 14:26
感谢了 差不多解决了 可能是时序问题 delay没用
要用nop 程序也有点问题

楼主,我想问一下电位器三个角怎么接
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表