久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4522|回復: 13
收起左側

LCD1602可以在仿真顯示出來,插到我的單片機上就只亮,不顯示字符

[復制鏈接]
ID:316073 發表于 2018-5-20 16:31 | 顯示全部樓層 |閱讀模式
  1. #include<reg52.h>

  2. #define LCD1602_DB P0

  3. sbit LCD1602_RS = P2^6;
  4. sbit LCD1602_RW = P2^5;
  5. sbit LCD1602_E  = P2^7;

  6. typedef unsigned int uint;
  7. typedef unsigned char uchar;

  8. void Delay10us(uint i)         
  9. {
  10.         while(i--);
  11. }

  12. /* lcd1602寫入數據/命令(i=1/i=0) */
  13. void Write_Cmd_Dat(uchar i,uchar dat)   
  14. {
  15.         LCD1602_RS = i;
  16.         LCD1602_RW = 0;        
  17.         LCD1602_E  = 1;
  18.         LCD1602_DB = dat;
  19.         Delay10us(500);                 //不能少!!
  20.         LCD1602_E  = 0;
  21. }


  22. void LCD1602Init()
  23. {
  24.         Write_Cmd_Dat(0,0x38);
  25.         Write_Cmd_Dat(0,0x0c);
  26.         Write_Cmd_Dat(0,0x06);
  27.         Write_Cmd_Dat(0,0x01);
  28. }


  29. /* 設置LCD1602光標位置 */
  30. void LcdSetCursor(uchar x,uchar y)
  31. {
  32.         uchar addr;

  33.         if(y==0)
  34.                 addr = 0x00 + x;
  35.         else
  36.                 addr = 0x40 + x;

  37.         Write_Cmd_Dat(0,addr |0x80);
  38. }

  39. /* LCD1602顯示字符串 */
  40. void DisplayString(uchar *s)
  41. {
  42.         while(*s>0)
  43.         {
  44.                 Write_Cmd_Dat(1,*s);
  45.                 s++;
  46.         }
  47. }



  48. void main()
  49. {

  50.         char code string_1[] = "sadfsadf";
  51.         char code string_2[] = "   23";
  52.         LCD1602Init();
  53.         LcdSetCursor(0,0);
  54.         DisplayString(string_1);

  55.         LcdSetCursor(0,1);
  56.         DisplayString(string_2);

  57.         while(1);               
  58. }

復制代碼
回復

使用道具 舉報

ID:316073 發表于 2018-5-20 16:31 | 顯示全部樓層
請問是哪里得問題呢
回復

使用道具 舉報

ID:334285 發表于 2018-5-20 16:45 | 顯示全部樓層
檢查有無虛焊,有無短路情況

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2018-5-20 21:03 | 顯示全部樓層
13067071271 發表于 2018-5-20 16:31
請問是哪里得問題呢

查延時程序是否與所用單片機適配
回復

使用道具 舉報

ID:329561 發表于 2018-5-21 09:04 | 顯示全部樓層
你的程序的有問題,你應該根據LCD的DataSheet來寫程序,根據LCD的時序圖來對應程序。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:319019 發表于 2018-5-21 09:16 | 顯示全部樓層
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個函數,我還以為不寫也可以,就特地去刪除這個函數試試,結果出現一排方塊。我是真的服,我看到沒加的不止三次了。還有你的
/* LCD1602顯示字符串 */while(*s>0)這樣寫不是死循環嗎,能顯示出嗎?DisplayString(string_1);沒加&編譯沒報錯,我沒寫立刻報錯.
        
  

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:329561 發表于 2018-5-23 16:53 | 顯示全部樓層
zhdp 發表于 2018-5-21 09:16
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個函數,我還以為不寫也可以,就特地去刪除這個函 ...

這個回帖明顯有問題,忙信號檢測可以加但是沒有必要,只要加入一定的延遲即可不必那么麻煩的,忙檢測對于高速器件單片機來說是必要的,但是51單片機的最大頻率也就24MHz,我之前測試過,在兩個數據寫入不加延遲是可以正常顯示的,也不用忙檢測。
再解釋下忙檢測,是為了防止寫一個信號的時候,這一個信號沒有寫完就開始寫下一數據,造成錯誤才加入的忙檢測。
我之前回復過這個問題,程序有問題,根據LCD1602D 的DATASHEET文檔來編寫程序。
(我的正確答案只有20黑幣獎勵,回答有問題的竟然獎勵50黑幣,我很不開心~)

評分

參與人數 1黑幣 +90 收起 理由
admin + 90 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:329561 發表于 2018-5-23 17:01 | 顯示全部樓層
本來想等著樓主回復,問我怎么改程序的,發現樓主不見了,那我把你的問題解釋一下,你的數據輸入之前應該滿足建立時間的要求,數據先使能再寫入數據怎么能滿足建立時間的要求呢。你應該先把數據寫入LCD延遲一段時間之后使能EN置1,再延遲一段時間后清0 EN

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:296970 發表于 2018-5-23 20:46 | 顯示全部樓層
調一下電位器試試
回復

使用道具 舉報

ID:316073 發表于 2018-6-4 18:40 | 顯示全部樓層
小黑不黑 發表于 2018-5-20 16:45
檢查有無虛焊,有無短路情況

問題已經解決了  我發現我的液晶屏是4路的

回復

使用道具 舉報

ID:316073 發表于 2018-6-4 18:42 | 顯示全部樓層
謝謝打家由于我是第一次發帖沒能及時回復大家
下面是我把配置的代碼改了就沒問題了
void LcdInit()                                                  //LCD初始化子程序
{
        Write_Cmd_Dat(0,0x32);         //將8位總線轉為4位總線
        Write_Cmd_Dat(0,0x28);         //在四位線下的初始化
        Write_Cmd_Dat(0,0x0c);  //開顯示不顯示光標
        Write_Cmd_Dat(0,0x06);  //寫一個指針加1
        Write_Cmd_Dat(0,0x01);  //清屏
        Write_Cmd_Dat(0,0x80);  //設置數據指針起點
}
回復

使用道具 舉報

ID:316073 發表于 2018-6-4 18:44 | 顯示全部樓層
xyzmk123 發表于 2018-5-23 17:01
本來想等著樓主回復,問我怎么改程序的,發現樓主不見了,那我把你的問題解釋一下,你的數據輸入之前應該滿 ...

是的 我就是沒有建立時間的要求 在adc0832這個芯片上吃了虧
這個lcd是為了做一個做單片機測電壓的
回復

使用道具 舉報

ID:316073 發表于 2018-6-4 18:47 | 顯示全部樓層
zhdp 發表于 2018-5-21 09:16
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個函數,我還以為不寫也可以,就特地去刪除這個函 ...

謝謝你 我回去改了函數
回復

使用道具 舉報

ID:344884 發表于 2018-6-4 19:07 | 顯示全部樓層
硬件本身有問題嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 日日夜夜天天 | 日韩国产中文字幕 | 欧美h视频| 盗摄精品av一区二区三区 | 手机av在线 | 午夜精品久久久久久久星辰影院 | 国产福利小视频 | 久久久久久久久淑女av国产精品 | 日韩精品无码一区二区三区 | 亚洲免费影院 | 91精品久久久久久久久中文字幕 | 999国产精品视频免费 | 一区二区精品视频 | 成人在线视频观看 | 久久亚洲天堂 | 中文字幕一区二区三区不卡在线 | 欧洲色综合 | 国产午夜精品一区二区三区嫩草 | 黄色大片免费网站 | 亚洲经典一区 | 亚洲免费在线播放 | 天天拍天天操 | 国产资源在线观看 | 国产精品久久久久久婷婷天堂 | 欧美在线色视频 | 国产精品久久久久久久7电影 | 国产精品美女久久久 | 欧美日韩在线观看视频网站 | 久久久国产一区 | 欧美a级成人淫片免费看 | 久久精品亚洲精品国产欧美 | 国产精品毛片av一区 | 欧美久久久久久久 | 亚洲激情网站 | 欧美日韩在线精品 | 国产精品日本一区二区不卡视频 | 天天爽夜夜操 | 国产精品无码专区在线观看 | 日韩精品在线看 | 久草视频在线播放 |