找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Proteus+单片机中的lcd1062无法显示第二行

查看数: 4433 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-4-20 21:55

正文摘要:

今天使用Proteus自行绘制一个原理图,用来学习LCD602,在Proteus中是没有LCD1602的,所有使用了Lm06l来替代 1)按照我最初的想法是,在第一行显示 who am I 在第二行显示 china的 遇到的问题是,无法在第二行显示 ...

回复

ID:338671 发表于 2019-4-21 11:41
谢谢大佬的答疑,是我对于数据类型理解不到位,
ID:213173 发表于 2019-4-21 09:11
错误1.void write_data(uint date);声明写数据函数的参数数据类型错误
错误2.void write_com(uchar com) //写命令函数中lcden逻辑电平错误

错误3.void write_data(uchar date ) //写数据函数中lcden逻辑电平错误




  1. #include<reg51.h>
  2. #include<string.h>

  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. void init(void);
  6. void write_com(uchar com);  //写命令函数
  7. void write_data(uchar date); //写数据函数
  8. void delay(int z);

  9. sbit lcdrs =P2^7;  //液晶屏数据/命令选择端
  10. sbit lcdrw =P2^6;        //液晶屏读写端
  11. sbit lcden =P2^5;        //使能端

  12. void delay(int z)        //延时1ms
  13. {
  14.         int i,j;
  15.         for(i=0;i<z;i++)
  16.                 for(j=0;j<110;j++);
  17. }

  18. void write_com(uchar com) //写命令函数
  19. {
  20.         lcdrs = 0;
  21.         lcdrw = 0;
  22.         P0 = com;
  23.         delay(5);
  24.         lcden = 1;
  25.         delay(5);
  26.         lcden = 0;
  27. }

  28. void write_data(uchar date ) //写数据函数
  29. {
  30.         lcdrs = 1;
  31.         lcdrw = 0;
  32.         P0 = date;
  33.         delay(5);
  34.         lcden = 1;
  35.         delay(5);
  36.         lcden = 0;
  37. }

  38. void init(void)
  39. {
  40.         lcden = 0;//默认使能端是低电平
  41.         lcdrw = 0;
  42.         write_com(0x38);//显示模式设置
  43.         write_com(0x0f);// 开显示,显示光标,光标闪烁
  44.         write_com(0x06);//当读或者写一个字符后地址加一,且光标加一
  45. // write_com(0x07)当读或者写一个字符后地址加一,且光标加一,且写一个字符,整屏显示左移
  46.         write_com(0x80);
  47. }

  48. void main()
  49. {
  50.         int mun1,mun2,i,j;
  51.         uchar table1[20]="Who am I";
  52.         uchar table2[20]="china";
  53.        
  54.         mun1 = strlen(table1);
  55.         mun2 = strlen(table2);
  56.         init();
  57.         for(i=0;i<mun1;i++)
  58.         {
  59.                 write_data(table1[i]);
  60.                 delay(200);
  61.         }

  62.         //重新设置显示指针
  63.         write_com(0xc0);
  64.        
  65.         for(j=0;j<mun2;j++)
  66.         {
  67.                 write_data(table2[j]);
  68.                 delay(200);
  69.         }
  70.        
  71.         while(1);
  72. }

复制代码



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

Powered by 单片机教程网

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