找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 843|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机1602液晶屏如何改下面程序,使其滚动显示

[复制链接]
跳转到指定楼层
楼主
ID:972842 发表于 2021-10-19 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
16黑币
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned char
#define out p0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void lcd_initial(void);
void check_busy(void);
void write_command(uchar com);
void write_data(uchar dat);
void string(uchar ad ,uchar *s);
void delay(uint);
void main(void)
{
lcd _initial ();
while(1)
{
string(0x85,"welcome");
string(0xc2,"Harbin CHINA");
delay(100);
write_command(0x01);
delay(100);
}
}
void delay(uint j)
{
uchar i=250;
for(;j>0;j--)
{
while(--i);
i=249;
while(--i);
i=250;
}
}
void check_busy(void)
{
uchar dt;
do
{
dt=0xff;
E=0;
RS=0;
RW=1;
E=1;
dt=out;
}while(dt&0x80);
E=0;
}
void write_command(uchar com)
{
check_busy();
E=0;
RS=0;
RW=0;
out=com;
E=1;
_nop_();
E=0;
delay(1);
}
void write_data(uchar dat)
{
check_busy();
E=0;
RS=1;
RW=0;
out=dat;
E=1;
_nop_();
E=0;
delay(1);
}
void lcd_initial (void)
{
write_command(0x38);
write_command(0x0C);
write_command(0x05);
write_command(0x01);
delay(1);
}
void string(uchar ad,uchar *s)
{
write_command(ad);
while(*s>0)
{
write_data(*s++);
delay(100);
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:734856 发表于 2021-10-19 23:11 | 只看该作者
上下?左右?
回复

使用道具 举报

板凳
ID:972842 发表于 2021-10-20 07:19 | 只看该作者
左右滚动
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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