1602显示一行方框

IT烂笔头 2013-01-14 12:47:21
#include <reg52.h>
sbit RS = P2^5;
sbit RW = P2^6;
sbit LCDE = P2^7;
char code table[] = {"welcom to mcu"};
int i = 0;

void delay(char ms){
char x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--)
;
}

void write_ord(char ord){

RW = 0;//
RS = 0;//
P0 = ord;
delay(5);
LCDE = 1;//
delay(5);
LCDE = 0;

}

void write_date(char date){

RW = 0;
RS = 1;
P0 = date;
delay(5);
LCDE = 1;
delay(5);
LCDE = 0;
}

void init(){

LCDE = 0;
write_ord(0x38);
write_ord(0x0c);
write_ord(0x06);
write_ord(0x01);
}

void main(){

init();
write_ord(0x80);

while(table[i] != '\0'){

write_date(table[i]);
i++;
}

while(1);
}
...全文
306 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
仲宝 2013-01-22
  • 打赏
  • 举报
回复
不要用对比度的电阻
dongjiedeguang 2013-01-22
  • 打赏
  • 举报
回复
网上现成的代码太多了
shinerise 2013-01-16
  • 打赏
  • 举报
回复
整体显示方框,估计就是对比度的问题。用个可调电阻接上,调一下对比度的那个PIN电压就OK了。
shinerise 2013-01-16
  • 打赏
  • 举报
回复
引用 7 楼 liuhuanwhy 的回复:
有些奇葩的1602是图形点阵的吧
哈哈,即使是字符型1602,也是带几个字节的CGRAM的,可以自己对CGRAM提前填充好一些点阵字符,然后显示时,让他显示CGRAM中的东西。所以1602可以显示任意的点阵图形,只要你程序设计的足够好。
百无禁忌熊 2013-01-15
  • 打赏
  • 举报
回复
有些奇葩的1602是图形点阵的吧
dceacho 2013-01-15
  • 打赏
  • 举报
回复
引用 6 楼 woshi_ziyu 的回复:
大家都理解错了吧 楼主的目的是显示字符串"welcom to mcu“,却显示了一行方框吧 楼主可看看下面链接的代码 单片机时钟可调C代码, 数码管和1602显示
显示方框的是一般是对比度大了,调低点就可以了
IT烂笔头 2013-01-14
  • 打赏
  • 举报
回复
Hot51增强型单片机 STC90C516RD+,新手求教
woshi_ziyu 2013-01-14
  • 打赏
  • 举报
回复
大家都理解错了吧 楼主的目的是显示字符串"welcom to mcu“,却显示了一行方框吧 楼主可看看下面链接的代码 单片机时钟可调C代码, 数码管和1602显示
zhujinqiang 2013-01-14
  • 打赏
  • 举报
回复
1602不支持点阵显示 那个是2行的固件字符
dceacho 2013-01-14
  • 打赏
  • 举报
回复
错了,看了下1602不支持点阵显示,你要画直线只能显示"_______"下划线或者"-----"减号
dceacho 2013-01-14
  • 打赏
  • 举报
回复
增强性单片机的话很容易的 如果是192*64的 uchar lcdram[64][24];//或者uchar lcdram[8][192],根据像素是横还是竖的 显示时把数组全部写入显示 一个字节对应8个点,然后就是算法问题了,比如当数组值全部都是0x01时就是一些直线 平面几何/直角坐标系学过的话很容易处理算法的 直的,斜的,方的,圆的
lr2131 2013-01-14
  • 打赏
  • 举报
回复
都有代码和手册在手上,自己调嘛。 如果是要答案就算了,

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧