找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD1602顯示為什么有問題 代碼 圖片如下

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  1. #include<reg52.h>

  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;

  4. sbit RS = P3^5;
  5. sbit RW = P3^6;
  6. sbit EN = P3^4;
  7. //判斷液晶顯示是否忙
  8. void Read_Busy()
  9. {
  10.    uchar busy;
  11.    P0 = 0xff;
  12.    RS = 0;
  13.    RW = 1;
  14.    
  15.    do{
  16.       EN = 1;
  17.       busy = P0;
  18.       EN = 0;
  19.    
  20.    }while(busy & 0x80);//判斷 如果為0允許讀寫 則跳出循環(huán)
  21. }
  22. //寫入一個(gè)字節(jié)的指令
  23. void Writer_cmd(uchar cmd)
  24. {
  25.     Read_Busy();
  26.           RS = 0;
  27.         RW = 0;
  28.         P0 = cmd;
  29.         EN = 1;
  30.         EN = 0;
  31. }
  32. //寫入一個(gè)字節(jié)的數(shù)據(jù)
  33. void Writer_dat(uchar dat)
  34. {
  35.    Read_Busy();
  36.    RS = 1;
  37.    RW = 0;
  38.    P0 = dat;
  39.    EN = 1;
  40.    EN = 0;
  41. }


  42. void main()
  43. {
  44.   
  45.   
  46.   Writer_cmd(0x38);//設(shè)置16*2顯示
  47.   Writer_cmd(0x0c);//開顯示 顯示光標(biāo) 光標(biāo)閃爍
  48.   Writer_cmd(0x06);//地址指針加一 整屏顯示不移動
  49.   Writer_cmd(0x80);
  50.   Writer_cmd(0x01);        //清屏
  51.   Writer_dat(0x48);

  52.   while(1);
  53.                          
  54. }
復(fù)制代碼



程序編譯也沒錯誤

捕獲.PNG (11.26 KB, 下載次數(shù): 40)

捕獲.PNG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:377512 發(fā)表于 2018-8-2 11:20 | 只看該作者
程序的編譯一直沒問題 仿真一直顯示P
回復(fù)

使用道具 舉報(bào)

板凳
ID:382063 發(fā)表于 2018-8-2 12:07 | 只看該作者
這個(gè)和你單片機(jī)p0.0-p0.7口的電平有關(guān)吧?
回復(fù)

使用道具 舉報(bào)

地板
ID:97554 發(fā)表于 2018-8-2 12:21 | 只看該作者
你只寫了個(gè)0x48數(shù)據(jù),你還想顯示什么?
回復(fù)

使用道具 舉報(bào)

5#
ID:97554 發(fā)表于 2018-8-2 12:35 | 只看該作者
0x48應(yīng)該顯示個(gè)大寫的H就對了
回復(fù)

使用道具 舉報(bào)

6#
ID:97554 發(fā)表于 2018-8-2 12:37 | 只看該作者
0x05
是P
回復(fù)

使用道具 舉報(bào)

7#
ID:377512 發(fā)表于 2018-8-2 13:44 來自手機(jī) | 只看該作者
楊雪飛 發(fā)表于 2018-8-2 12:35
0x48應(yīng)該顯示個(gè)大寫的H就對了

顯示不了p
回復(fù)

使用道具 舉報(bào)

8#
ID:377512 發(fā)表于 2018-8-2 13:45 來自手機(jī) | 只看該作者
楊雪飛 發(fā)表于 2018-8-2 12:35
0x48應(yīng)該顯示個(gè)大寫的H就對了

不是 顯示不了H一直顯示p
回復(fù)

使用道具 舉報(bào)

9#
ID:382138 發(fā)表于 2018-8-2 14:27 | 只看該作者
上面正解,你再寫一個(gè)0X30,看下是不是顯示0
回復(fù)

使用道具 舉報(bào)

10#
ID:377512 發(fā)表于 2018-8-2 16:30 | 只看該作者

找到了問題  程序一直卡在 判忙哪里 時(shí)序出了問題  
回復(fù)

使用道具 舉報(bào)

11#
ID:233756 發(fā)表于 2018-8-2 17:05 來自手機(jī) | 只看該作者
1602手冊里初始化開頭記得是延時(shí)15ms,寫指令38h,
回復(fù)

使用道具 舉報(bào)

12#
ID:97554 發(fā)表于 2018-8-2 19:05 | 只看該作者
李博文 發(fā)表于 2018-8-2 16:30
找到了問題  程序一直卡在 判忙哪里 時(shí)序出了問題

這個(gè)小測試程序好像不檢測忙也可以,我看到好多都是沒有檢測忙的
回復(fù)

使用道具 舉報(bào)

13#
ID:233756 發(fā)表于 2018-8-2 22:18 來自手機(jī) | 只看該作者
前面幾個(gè)可以不檢測忙,但初始化要按照手冊里寫的,你現(xiàn)在是初始化里沒有寫這6行代碼
回復(fù)

使用道具 舉報(bào)

14#
ID:377512 發(fā)表于 2018-8-3 09:28 | 只看該作者
楊雪飛 發(fā)表于 2018-8-2 19:05
這個(gè)小測試程序好像不檢測忙也可以,我看到好多都是沒有檢測忙的

不檢測忙是有延時(shí)的 我沒驗(yàn)延時(shí) 就檢測忙
回復(fù)

使用道具 舉報(bào)

15#
ID:111634 發(fā)表于 2018-8-3 21:08 | 只看該作者
本帖最后由 zl2168 于 2018-8-3 21:53 編輯

實(shí)例67  LCD1602顯示屏顯示
Proteus仿真一下,確認(rèn)有效。
實(shí)例61 LCD1602顯示屏顯示.rar (49.26 KB, 下載次數(shù): 8)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1。書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。
回復(fù)

使用道具 舉報(bào)

16#
ID:150693 發(fā)表于 2018-8-5 20:37 | 只看該作者
絕對是判忙程序出了問題,換成while(busy & 0x80==1);
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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