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

[复制链接]
 楼主| 11066 发表于 2021-1-22 22:37 | 显示全部楼层 |阅读模式
本帖最后由 11066 于 2021-1-22 22:40 编辑

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



1、电路设计



2、程序设计

  1. uchar num[] = "0123456789";           
  2. sbit RS = P2^2;
  3. sbit RW = P2^1;
  4. sbit E = P2^0;        
  5. void delay(uint x)
  6. {
  7.         while(x--);        
  8. }
  9. /***向LCD写一个命令**/
  10. void write_command(uchar command)
  11. {
  12.         RW = 0;
  13.         RS = 0;
  14.         P0 = command;
  15.         E = 1;
  16.         delay(100);//等待接收,忽略读状态操作
  17.         E = 0;
  18.         RW = 1;
  19. }
  20. /***向LCD写一个数据**/
  21. void write_data(uchar date)
  22. {
  23.         RW = 0;
  24.         RS = 1;
  25.         P0 = date;
  26.         E = 1;
  27.         delay(100);//等待接收
  28.         E = 0;
  29.         RW = 1;
  30. }
  31. /**初始化**/
  32. void FLCD1602_init(void)
  33. {
  34.         write_command(0x38);//两行,每行16个字符,每个字符是5*7点阵
  35.         write_command(0x0f);//光标显示并闪烁
  36.         //write_command(0x0c);//光标不显示
  37.         write_command(0x06);//光标随字符右移
  38. }  
  39. /**清屏**/
  40. void FLCD1602_clear()
  41. {
  42.         write_command(0x01);
  43.         write_command(0x02);
  44. }
  45. /**向LCD写字符串**/
  46. void display_string(uchar *p)
  47. {
  48.         while(*p)//字符非空
  49.         {
  50.                 write_data(*p);//写字符
  51.                 p++;             //数据指针++
  52.         }
  53. }
  54. /**向LCD写数字变量**/
  55. void display_num(uchar x)
  56. {
  57.         write_data(num[x / 10]);
  58.         write_data(num[x % 10]);
  59. }
  60. /**定位**/
  61. void gotoxy(uchar y,uchar x)
  62. {
  63.         if(y == 1)
  64.         write_command(0x40 + x);
  65.         else if(y == 2)
  66.         write_command(0x80 + 0x40 + x);
  67. }                                





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
z7001 发表于 2021-1-23 19:01 | 显示全部楼层
谢谢看看先,学习下
njshenxian 发表于 2021-1-23 20:51 | 显示全部楼层
谢谢看看先,学习下
lk040411 发表于 2021-1-24 17:40 | 显示全部楼层
感谢分享,学习了
dytg 发表于 2021-5-8 15:44 | 显示全部楼层
谢谢分享。
火树银花 发表于 2021-9-28 11:19 | 显示全部楼层
好好学习一下。
ywc3000 发表于 2021-10-1 18:28 | 显示全部楼层
好的,谢
太难仴 发表于 2021-10-5 00:50 来自手机 | 显示全部楼层
qiangx 发表于 2021-10-5 13:51 | 显示全部楼层
谢谢分享!
qin552011373 发表于 2021-10-15 09:03 | 显示全部楼层
开发板很便宜了,可以直接买个来搞了
daze 发表于 2021-12-6 10:18 | 显示全部楼层
666666666
zhangmc419 发表于 2021-12-24 16:49 | 显示全部楼层
基于Proteus学习,看看
alexzhou88 发表于 2022-1-13 10:44 | 显示全部楼层
谢谢楼主分享
千里外的星光 发表于 2023-5-3 13:31 来自手机 | 显示全部楼层
学习了
mikizhang 发表于 2023-5-4 11:19 | 显示全部楼层
本帖最后由 mikizhang 于 2023-5-4 11:48 编辑

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
小灵通2018 发表于 2023-12-29 10:10 | 显示全部楼层
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

粉丝
快速回复 在线客服 返回列表 返回顶部

14

主题

20

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部