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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD1602首地址數(shù)字顯示異常 附單片機代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:577162 發(fā)表于 2023-3-29 23:54 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

#1:同樣的代碼,仿真顯示正常
#2:只要首地址寫入數(shù)字,就顯示不對;比如首地址寫入1,那么硬件上顯示的為q;若首地址寫入0,那么硬件上顯示的為p;
#3:請大哥們幫忙分析一下,抱拳謝過!

  1. --發(fā)送數(shù)據(jù)
  2. void LCD_dis_char(uchar x, uchar y, uchar dat)
  3. {
  4.     uchar address;

  5.     if (y == 1)
  6.         {
  7.             address = 0x80 + x;
  8.         }
  9.     else
  10.         {
  11.             address = 0xc0 + x;
  12.         }

  13.     LCD_Write_command(address);
  14.                                 Lcd1602_Delay1ms(1);
  15.     LCD_Write_data(dat);
  16. }

  17. ------------------初始化---------------------------
  18. void LCD_Init()
  19. {     //LCD_Write_command(0x33);
  20.    
  21.    //LCD_Write_command(0x32);//復(fù)位后LCD默認(rèn)是8線的;需將最后四位改成0010;也就是說低字節(jié)只要是0010就能改為4線
  22.         
  23.     LCD_Write_command(0x02);//同上;只要最后4位是0010即可;這一行和上一行任選其一即可;
  24.         LCD_Write_command(0x28);//在四位線下的初始化
  25.     LCD_Write_command(0x0C);//開顯示,不顯示光標(biāo)
  26.     LCD_Write_command(0x06);    //寫一個指針加1
  27.     LCD_Write_command(0x01);    //清屏
  28.     Lcd1602_Delay1ms(5);
  29.     LCD_Write_command(0x80);    //設(shè)置數(shù)據(jù)指針起點
  30.    
  31.   
  32. }
  33. -----------main--------------
  34. void main()
  35. {
  36.    
  37.     uchar i = 0;
  38.     //n = n + 0x30; //轉(zhuǎn)為ASCII
  39.     Lcd1602_Delay1ms(15);
  40.     LCD_Init();
  41.     for (i = 0; i < sizeof(dis_a)-1; i++)
  42.         {
  43.             LCD_dis_char(i, 1, dis_a[i]);Lcd1602_Delay1ms(1);
  44.         }
  45.     for (i = 0; i < sizeof(dis_b)-1; i++)
  46.         {
  47.             LCD_dis_char(i, 2, dis_b[i]);Lcd1602_Delay1ms(1);
  48.         }


  49.     while (1);
  50. }

復(fù)制代碼




Snipaste_2023-03-29_23-39-52.jpg (70.22 KB, 下載次數(shù): 30)

Snipaste_2023-03-29_23-39-52.jpg

1.jpg (88.98 KB, 下載次數(shù): 27)

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

使用道具 舉報

沙發(fā)
ID:517951 發(fā)表于 2023-3-30 07:47 | 只看該作者
清屏指令0x01 之后的延時5ms加大到20ms試試.
回復(fù)

使用道具 舉報

板凳
ID:577162 發(fā)表于 2023-3-30 07:53 | 只看該作者
反復(fù)琢磨,發(fā)現(xiàn)有這么一個規(guī)律;寫入的值與實際顯示值相差40H
PS:如果寫入的第一個值的十六進制>=40H,則顯示正常;比如寫入@(40H)A(41H)
        寫入值                           實際顯示值
hex     ascii                     hex          ascii
2f         /                         6f             o
30        0                         70             p
31        1                         71             q
32        2                         72             r
回復(fù)

使用道具 舉報

地板
ID:577162 發(fā)表于 2023-3-30 07:58 | 只看該作者
如果寫入的值>=40H;顯示正常
如果寫入的值<=40H;顯示關(guān)系如下:
30H  0---------->70H    p(相差40H)
31H  1---------->71H    q
.
.
.
40H  @---------->40H   @(正常)
回復(fù)

使用道具 舉報

5#
ID:577162 發(fā)表于 2023-3-30 09:19 | 只看該作者
rayin 發(fā)表于 2023-3-30 07:47
清屏指令0x01 之后的延時5ms加大到20ms試試.

好的;晚上我試試,tks
回復(fù)

使用道具 舉報

6#
ID:161164 發(fā)表于 2023-3-30 16:43 | 只看該作者
LCD_Write_command(); 和 LCD_Write_data(); 的代碼呢?
回復(fù)

使用道具 舉報

7#
ID:69038 發(fā)表于 2023-3-30 17:16 | 只看該作者
樓主你確定:仿真是8位并口的,實物是串行SPI的。。兩個不同的東東,代碼能一樣?
PS :可能我看錯了,你這是4位并口的?
回復(fù)

使用道具 舉報

8#
ID:577162 發(fā)表于 2023-3-30 18:10 | 只看該作者
zhuls 發(fā)表于 2023-3-30 17:16
樓主你確定:仿真是8位并口的,實物是串行SPI的。。兩個不同的東東,代碼能一樣?
PS :可能我看錯了,你這 ...

我這是4口的;仿真也是用的P0口高四位
回復(fù)

使用道具 舉報

9#
ID:577162 發(fā)表于 2023-3-30 19:26 | 只看該作者
lkc8210 發(fā)表于 2023-3-30 16:43
LCD_Write_command(); 和 LCD_Write_data(); 的代碼呢?

疏忽了,這就補齊;麻煩幫我分析一下
  1. void LCD_Write_data(uchar dat)
  2. {
  3.     LCD_E = 0;
  4.     LCD_RS = 1;
  5.     LCD_RW = 0;
  6.     LCD_DATA = dat;//4線接P0口高四位
  7.     //delay_n40us(5);
  8.     Lcd1602_Delay1ms(1);
  9.     LCD_E = 1;
  10. //delay_n40us(10);
  11.     Lcd1602_Delay1ms(5);
  12.     LCD_E = 0;
  13.                 LCD_DATA=dat<<4;//寫入低四位
  14.             Lcd1602_Delay1ms(1);

  15.             LCD_E = 1;
  16. //delay_n40us(10);
  17.     Lcd1602_Delay1ms(5);
  18.     LCD_E = 0;
  19.        
  20. }
  21. void LCD_Write_command(uchar cmd)
  22. {
  23.     LCD_E = 0;
  24.     LCD_RS = 0; //0指令 1數(shù)據(jù)
  25.     LCD_RW = 0; //0寫入 1讀出
  26.     LCD_DATA = cmd;
  27.    
  28.     Lcd1602_Delay1ms(1);
  29.        
  30.     LCD_E = 1; //允許

  31.     Lcd1602_Delay1ms(5);
  32.     LCD_E = 0; //1->0寫命令
  33.         LCD_DATA=cmd<<4;
  34.         Lcd1602_Delay1ms(1);
  35.             LCD_E = 1; //允許

  36.     Lcd1602_Delay1ms(5);
  37.     LCD_E = 0; //1->0寫命令
  38.        
  39. }
復(fù)制代碼
回復(fù)

使用道具 舉報

10#
ID:384109 發(fā)表于 2023-3-30 19:54 | 只看該作者
應(yīng)該是查忙而不是延時
回復(fù)

使用道具 舉報

11#
ID:577162 發(fā)表于 2023-3-30 20:48 | 只看該作者


而且初始化,清屏之后,首地址顯示的是CGROM中0X60的值丶;
But

只要我首地址寫入的的值是大于0x40,一切正常!如圖:
其解在哪呢。。。。






回復(fù)

使用道具 舉報

12#
ID:577162 發(fā)表于 2023-3-30 21:07 | 只看該作者
感覺要被這個1602玩壞了
回復(fù)

使用道具 舉報

13#
ID:69038 發(fā)表于 2023-3-31 00:49 | 只看該作者
按你這個說法是字庫壞了,不過一般 來說,很少壞成這樣。如果只是壞了一個字符,倒可以補救:用自定義字符的方式補上就是麻煩了點
回復(fù)

使用道具 舉報

14#
ID:577162 發(fā)表于 2023-3-31 01:00 | 只看該作者
zhuls 發(fā)表于 2023-3-31 00:49
按你這個說法是字庫壞了,不過一般 來說,很少壞成這樣。如果只是壞了一個字符,倒可以補救:用自定義字符 ...

只有80H的地址壞了;其他都是好的。我從80H開始寫,就沒一點問題;不折騰了,感謝評論!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品不卡一区 | 欧美日本一区 | 久久久久久久一区二区三区 | 亚洲欧洲精品成人久久奇米网 | 免费看91 | 国产一区二区三区视频 | 日韩在线精品视频 | 欧美一区二区视频 | 久久久久国产 | 国产一区二区欧美 | 91成人免费观看 | 特黄一级 | 国产又爽又黄的视频 | 日韩福利在线观看 | 国产一区二区毛片 | 亚洲人成一区二区三区性色 | 国产清纯白嫩初高生在线播放视频 | 日韩在线免费视频 | 中文字幕视频一区二区 | 精品成人佐山爱一区二区 | 国产精品日韩高清伦字幕搜索 | 精品久久久久久亚洲精品 | 人人色视频 | 免费一级片 | 91视频网址 | 欧美视频在线免费 | 99久久婷婷 | 欧美a级网站 | 中文字幕电影在线观看 | 四虎成人免费视频 | 欧美一区二区三区久久精品 | 麻豆av免费观看 | 欧美日韩在线视频一区 | 成人在线视频免费看 | 日日操夜夜摸 | 麻豆久久久久 | 欧美另类视频在线 | 日韩精品在线观看一区二区 | 欧美成人激情 | www精品美女久久久tv | 日本精品裸体写真集在线观看 |