欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: LCD1602顯示為什么有問題 代碼 圖片如下 [打印本頁]

作者: 李博文    時(shí)間: 2018-8-2 10:34
標(biāo)題: LCD1602顯示為什么有問題 代碼 圖片如下
  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);//地址指針加一 整屏顯示不移動(dòng)
  49.   Writer_cmd(0x80);
  50.   Writer_cmd(0x01);        //清屏
  51.   Writer_dat(0x48);

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



程序編譯也沒錯(cuò)誤

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

捕獲.PNG

作者: 李博文    時(shí)間: 2018-8-2 11:20
程序的編譯一直沒問題 仿真一直顯示P
作者: 飛翔的Cat    時(shí)間: 2018-8-2 12:07
這個(gè)和你單片機(jī)p0.0-p0.7口的電平有關(guān)吧?

作者: 楊雪飛    時(shí)間: 2018-8-2 12:21
你只寫了個(gè)0x48數(shù)據(jù),你還想顯示什么?
作者: 楊雪飛    時(shí)間: 2018-8-2 12:35
0x48應(yīng)該顯示個(gè)大寫的H就對(duì)了
作者: 楊雪飛    時(shí)間: 2018-8-2 12:37
0x05
是P
作者: 李博文    時(shí)間: 2018-8-2 13:44
楊雪飛 發(fā)表于 2018-8-2 12:35
0x48應(yīng)該顯示個(gè)大寫的H就對(duì)了

顯示不了p
作者: 李博文    時(shí)間: 2018-8-2 13:45
楊雪飛 發(fā)表于 2018-8-2 12:35
0x48應(yīng)該顯示個(gè)大寫的H就對(duì)了

不是 顯示不了H一直顯示p
作者: CDYSZ    時(shí)間: 2018-8-2 14:27
上面正解,你再寫一個(gè)0X30,看下是不是顯示0

作者: 李博文    時(shí)間: 2018-8-2 16:30
楊雪飛 發(fā)表于 2018-8-2 12:37
0x05
是P

找到了問題  程序一直卡在 判忙哪里 時(shí)序出了問題  
作者: omikeai    時(shí)間: 2018-8-2 17:05
1602手冊(cè)里初始化開頭記得是延時(shí)15ms,寫指令38h,
作者: 楊雪飛    時(shí)間: 2018-8-2 19:05
李博文 發(fā)表于 2018-8-2 16:30
找到了問題  程序一直卡在 判忙哪里 時(shí)序出了問題

這個(gè)小測試程序好像不檢測忙也可以,我看到好多都是沒有檢測忙的
作者: omikeai    時(shí)間: 2018-8-2 22:18
前面幾個(gè)可以不檢測忙,但初始化要按照手冊(cè)里寫的,你現(xiàn)在是初始化里沒有寫這6行代碼
作者: 李博文    時(shí)間: 2018-8-3 09:28
楊雪飛 發(fā)表于 2018-8-2 19:05
這個(gè)小測試程序好像不檢測忙也可以,我看到好多都是沒有檢測忙的

不檢測忙是有延時(shí)的 我沒驗(yàn)延時(shí) 就檢測忙
作者: zl2168    時(shí)間: 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ì)說明,程序語句條條有注解。

作者: 暗雙魂    時(shí)間: 2018-8-5 20:37
絕對(duì)是判忙程序出了問題,換成while(busy & 0x80==1);




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1