找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2913|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)驅(qū)動lcd1602顯示的問題 清屏語句沒有起到作用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:301728 發(fā)表于 2018-7-17 15:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這個程序是想先使“welcome”和“productor suntao”這兩個字符分別在屏幕的第一行和第二行自右側(cè)飛入,隨后顯示“use timed mold?”字樣,現(xiàn)在的現(xiàn)象是welcome和productor suntao 能夠飛入 但是會一直顯示,而“use timed mold?”字樣不會顯示出來,而且后面顯示很混亂,誰能解決這個問題?謝謝,程序如下:
//單片機(jī)主程序
  1. #include<reg51.h>
  2. #include"lcd1602.h"//調(diào)用頭文件lcd1602
  3. #define uchar unsigned char
  4. uchar welcome1[]="welcome!";
  5. uchar welcome2[]="productor suntao";
  6. uchar Question[]="USE TIMED MOLD?";//這是要顯示的三個字符串
  7. void main()
  8. {
  9.   uchar i;
  10.   E=0;
  11.   RS=1;
  12.   RW=1;
  13.   P0=0xff;//液晶的基本的初始化
  14.   init();//初始化函數(shù)
  15.   while(1)
  16.   {
  17.    for(i=16;i>=0;i--)
  18.    {
  19.     display_lcd_text(0,i,welcome1);
  20.     display_lcd_text(1,i,welcome2);//顯示前兩個字符串,飛入顯示
  21.     delay(200);

  22.    }
  23.      write(0x01,0);//清屏
  24.      delay(1);
  25.    display_lcd_text(0,1,Question);//顯示第三個字符串
  26.      delay(200);
  27.   }
  28. }
  29. 頭文件lcd1602的內(nèi)容如下:
  30. #ifndef _LCD_1602_H_
  31. #define _LCD_1602_H_
  32. #include<string.h>
  33. #define uchar unsigned char
  34. sbit RS=P2^0;
  35. sbit RW=P2^1;
  36. sbit E=P2^2;//定義幾個特殊功能位
  37. void delay(uchar r)//延時函數(shù)
  38. {
  39. uchar t;
  40. while(r--)
  41. {
  42.   for(t=0;t<120;t++);
  43. }
  44. }
  45. void write(uchar i,bit j)//寫命令寫數(shù)據(jù)函數(shù),其中i為要寫入的內(nèi)容,j為0寫命令,j為1寫數(shù)據(jù)
  46. {
  47. delay(1);
  48. E=0;
  49. P0=i;
  50. RS=j;
  51. RW=0;
  52. E=1;
  53. delay(1);
  54. E=0;
  55. delay(1);
  56. }
  57. void init()//初始化函數(shù)
  58. {
  59. write(0x38,0);
  60. delay(1);
  61. write(0x0c,0);
  62. delay(1);
  63. write(0x06,0);
  64. delay(1);
  65. write(0x01,0);
  66. delay(1);
  67. }
  68. void display_lcd_byte(uchar y,uchar x,uchar z)//顯示單個字符的函數(shù)
  69. {
  70.   if(y)
  71.   {
  72.    x+=0x40;
  73.   }
  74.   x+=0x80;
  75.   write(x,0);
  76.   write(z,1);
  77. }
  78. void display_lcd_text(uchar y,uchar x,uchar table[])//顯示字符串的函數(shù)
  79. {
  80. uchar z=0;
  81. uchar t;
  82. t=strlen(table)+x;
  83. while(x<t)
  84. {
  85.   display_lcd_byte(y,x,table[z]);
  86.   x++;
  87.   z++;
  88. }
  89. display_lcd_byte(y,x,' ');//最后加入空格
  90. }
  91. #endif
復(fù)制代碼

XI51_)8{4AEE5N%D(RO7}KW.png (79.59 KB, 下載次數(shù): 75)

飛入正常

飛入正常

U_DM1)PBNXYKQ435QXR`]U9.png (83.84 KB, 下載次數(shù): 86)

開始顯示正常

開始顯示正常

LK[~L`LR))TMQEIKCLIFNY8.png (68.87 KB, 下載次數(shù): 81)

顯示開始混亂

顯示開始混亂
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:301728 發(fā)表于 2018-7-17 15:50 | 只看該作者
清屏語句沒有起到作用
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表