亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: LCD1602可以在仿真顯示出來,插到我的單片機(jī)上就只亮,不顯示字符 [打印本頁]

作者: 13067071271    時(shí)間: 2018-5-20 16:31
標(biāo)題: LCD1602可以在仿真顯示出來,插到我的單片機(jī)上就只亮,不顯示字符
  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寫入數(shù)據(jù)/命令(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. /* 設(shè)置LCD1602光標(biāo)位置 */
  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. }

復(fù)制代碼

作者: 13067071271    時(shí)間: 2018-5-20 16:31
請問是哪里得問題呢
作者: 小黑不黑    時(shí)間: 2018-5-20 16:45
檢查有無虛焊,有無短路情況
作者: wulin    時(shí)間: 2018-5-20 21:03
13067071271 發(fā)表于 2018-5-20 16:31
請問是哪里得問題呢

查延時(shí)程序是否與所用單片機(jī)適配
作者: xyzmk123    時(shí)間: 2018-5-21 09:04
你的程序的有問題,你應(yīng)該根據(jù)LCD的DataSheet來寫程序,根據(jù)LCD的時(shí)序圖來對應(yīng)程序。
作者: zhdp    時(shí)間: 2018-5-21 09:16
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個(gè)函數(shù),我還以為不寫也可以,就特地去刪除這個(gè)函數(shù)試試,結(jié)果出現(xiàn)一排方塊。我是真的服,我看到?jīng)]加的不止三次了。還有你的
/* LCD1602顯示字符串 */while(*s>0)這樣寫不是死循環(huán)嗎,能顯示出嗎?DisplayString(string_1);沒加&編譯沒報(bào)錯(cuò),我沒寫立刻報(bào)錯(cuò).
        
  

作者: xyzmk123    時(shí)間: 2018-5-23 16:53
zhdp 發(fā)表于 2018-5-21 09:16
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個(gè)函數(shù),我還以為不寫也可以,就特地去刪除這個(gè)函 ...

這個(gè)回帖明顯有問題,忙信號檢測可以加但是沒有必要,只要加入一定的延遲即可不必那么麻煩的,忙檢測對于高速器件單片機(jī)來說是必要的,但是51單片機(jī)的最大頻率也就24MHz,我之前測試過,在兩個(gè)數(shù)據(jù)寫入不加延遲是可以正常顯示的,也不用忙檢測。
再解釋下忙檢測,是為了防止寫一個(gè)信號的時(shí)候,這一個(gè)信號沒有寫完就開始寫下一數(shù)據(jù),造成錯(cuò)誤才加入的忙檢測。
我之前回復(fù)過這個(gè)問題,程序有問題,根據(jù)LCD1602D 的DATASHEET文檔來編寫程序。
(我的正確答案只有20黑幣獎(jiǎng)勵(lì),回答有問題的竟然獎(jiǎng)勵(lì)50黑幣,我很不開心~)
作者: xyzmk123    時(shí)間: 2018-5-23 17:01
本來想等著樓主回復(fù),問我怎么改程序的,發(fā)現(xiàn)樓主不見了,那我把你的問題解釋一下,你的數(shù)據(jù)輸入之前應(yīng)該滿足建立時(shí)間的要求,數(shù)據(jù)先使能再寫入數(shù)據(jù)怎么能滿足建立時(shí)間的要求呢。你應(yīng)該先把數(shù)據(jù)寫入LCD延遲一段時(shí)間之后使能EN置1,再延遲一段時(shí)間后清0 EN
作者: yanwang    時(shí)間: 2018-5-23 20:46
調(diào)一下電位器試試
作者: 13067071271    時(shí)間: 2018-6-4 18:40
小黑不黑 發(fā)表于 2018-5-20 16:45
檢查有無虛焊,有無短路情況

問題已經(jīng)解決了  我發(fā)現(xiàn)我的液晶屏是4路的


作者: 13067071271    時(shí)間: 2018-6-4 18:42
謝謝打家由于我是第一次發(fā)帖沒能及時(shí)回復(fù)大家
下面是我把配置的代碼改了就沒問題了
void LcdInit()                                                  //LCD初始化子程序
{
        Write_Cmd_Dat(0,0x32);         //將8位總線轉(zhuǎn)為4位總線
        Write_Cmd_Dat(0,0x28);         //在四位線下的初始化
        Write_Cmd_Dat(0,0x0c);  //開顯示不顯示光標(biāo)
        Write_Cmd_Dat(0,0x06);  //寫一個(gè)指針加1
        Write_Cmd_Dat(0,0x01);  //清屏
        Write_Cmd_Dat(0,0x80);  //設(shè)置數(shù)據(jù)指針起點(diǎn)
}
作者: 13067071271    時(shí)間: 2018-6-4 18:44
xyzmk123 發(fā)表于 2018-5-23 17:01
本來想等著樓主回復(fù),問我怎么改程序的,發(fā)現(xiàn)樓主不見了,那我把你的問題解釋一下,你的數(shù)據(jù)輸入之前應(yīng)該滿 ...

是的 我就是沒有建立時(shí)間的要求 在adc0832這個(gè)芯片上吃了虧
這個(gè)lcd是為了做一個(gè)做單片機(jī)測電壓的
作者: 13067071271    時(shí)間: 2018-6-4 18:47
zhdp 發(fā)表于 2018-5-21 09:16
我老是看到有人寫1602的程序總是沒‘’檢查是否忙碌“”這個(gè)函數(shù),我還以為不寫也可以,就特地去刪除這個(gè)函 ...

謝謝你 我回去改了函數(shù)
作者: 我我我我我我    時(shí)間: 2018-6-4 19:07
硬件本身有問題嗎




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