打印
[51单片机]

基于Proteus学习单片机系列(十)——LCD1602

[复制链接]
9097|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
11066|  楼主 | 2021-1-22 22:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 11066 于 2021-1-22 22:40 编辑

#技术资源# #申请原创# 回复本贴,获取更多单片机资料
游客,如果您要查看本帖隐藏内容请回复



1、电路设计



2、程序设计

uchar num[] = "0123456789";           
sbit RS = P2^2;
sbit RW = P2^1;
sbit E = P2^0;        
void delay(uint x)
{
        while(x--);        
}
/***向LCD写一个命令**/
void write_command(uchar command)
{
        RW = 0;
        RS = 0;
        P0 = command;
        E = 1;
        delay(100);//等待接收,忽略读状态操作
        E = 0;
        RW = 1;
}
/***向LCD写一个数据**/
void write_data(uchar date)
{
        RW = 0;
        RS = 1;
        P0 = date;
        E = 1;
        delay(100);//等待接收
        E = 0;
        RW = 1;
}
/**初始化**/
void FLCD1602_init(void)
{
        write_command(0x38);//两行,每行16个字符,每个字符是5*7点阵
        write_command(0x0f);//光标显示并闪烁
        //write_command(0x0c);//光标不显示
        write_command(0x06);//光标随字符右移
}  
/**清屏**/
void FLCD1602_clear()
{
        write_command(0x01);
        write_command(0x02);
}
/**向LCD写字符串**/
void display_string(uchar *p)
{
        while(*p)//字符非空
        {
                write_data(*p);//写字符
                p++;             //数据指针++
        }
}
/**向LCD写数字变量**/
void display_num(uchar x)
{
        write_data(num[x / 10]);
        write_data(num[x % 10]);
}
/**定位**/
void gotoxy(uchar y,uchar x)
{
        if(y == 1)
        write_command(0x40 + x);
        else if(y == 2)
        write_command(0x80 + 0x40 + x);
}                                





使用特权

评论回复

相关帖子

沙发
z7001| | 2021-1-23 19:01 | 只看该作者
谢谢看看先,学习下

使用特权

评论回复
板凳
njshenxian| | 2021-1-23 20:51 | 只看该作者
谢谢看看先,学习下

使用特权

评论回复
地板
lk040411| | 2021-1-24 17:40 | 只看该作者
感谢分享,学习了

使用特权

评论回复
5
dytg| | 2021-5-8 15:44 | 只看该作者
谢谢分享。

使用特权

评论回复
6
火树银花| | 2021-9-28 11:19 | 只看该作者
好好学习一下。

使用特权

评论回复
7
ywc3000| | 2021-10-1 18:28 | 只看该作者
好的,谢

使用特权

评论回复
8
太难仴| | 2021-10-5 00:50 | 只看该作者

使用特权

评论回复
9
qiangx| | 2021-10-5 13:51 | 只看该作者
谢谢分享!

使用特权

评论回复
10
qin552011373| | 2021-10-15 09:03 | 只看该作者
开发板很便宜了,可以直接买个来搞了

使用特权

评论回复
11
daze| | 2021-12-6 10:18 | 只看该作者
666666666

使用特权

评论回复
12
zhangmc419| | 2021-12-24 16:49 | 只看该作者
基于Proteus学习,看看

使用特权

评论回复
13
alexzhou88| | 2022-1-13 10:44 | 只看该作者
谢谢楼主分享

使用特权

评论回复
14
千里外的星光| | 2023-5-3 13:31 | 只看该作者
学习了

使用特权

评论回复
15
mikizhang| | 2023-5-4 11:19 | 只看该作者
本帖最后由 mikizhang 于 2023-5-4 11:48 编辑

基于可硬件USB下载和仿真的STC8H8K64U为主控芯片驱动LCD1602字符屏,分享给大家

LCD1602-STC8H8K64U-自带硬件USB直接仿真.zip (4.02 MB)

使用特权

评论回复
16
小灵通2018| | 2023-12-29 10:10 | 只看该作者

使用特权

评论回复
17
yinxiangxv| | 2024-5-9 12:12 | 只看该作者
这些命令是用于初始化HD44780兼容的LCD控制器的命令。HD44780是许多常见LCD显示器的控制器芯片,包括你提到的16x2 LCD。这些命令是在数据手册中定义的,用于配置LCD的功能和行为。

- `0x38`: 设置为8位接口,2行显示,5x7点阵字体。
- `0x0F`: 显示开,光标开,闪烁开。
- `0x06`: 光标自动右移。

这些命令的具体含义和功能可以在LCD的数据手册中找到。通常,数据手册会详细描述LCD控制器的所有命令、寄存器和工作模式。

对于HD44780兼容的LCD,常见的数据手册包括:

- 飞利浦的HD44780U数据手册([链接](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf))
- 纽约东芝的TC1602B数据手册([链接](https://www.sparkfun.com/datasheets/LCD/TC1602B.pdf))

在这些手册中,你可以找到所有这些命令的详细描述,包括它们的功能、参数和可能的其他设置选项。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

20

帖子

1

粉丝