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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3413|回復: 15
打印 上一主題 下一主題
收起左側(cè)

單片機+LCD1602液晶顯示問題 中間有兩個黑點

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:97350 發(fā)表于 2021-5-28 10:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
問題描述: 1602顯示如圖,中間有兩個黑點。如何解決,我貼下1602程序部分


#define yi 0x80 //LCD第一行的初始位置,因為LCD1602字符地址首位D7恒定為1(100000000=80)
#define er 0x80+0x40 //LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)


//----------------延時函數(shù),后面經(jīng)常調(diào)用----------------------
void delay(uint xms)//延時函數(shù),有參函數(shù)
{
        uint x,y;
        for(x=xms;x>0;x--)
         for(y=110;y>0;y--);
}

//--------------------------寫指令---------------------------
void write_1602com(uchar com)//****液晶寫入指令函數(shù)****
{
        lcd1602_rs=0;//數(shù)據(jù)/指令選擇置為指令
        lcd1602_rw=0; //讀寫選擇置為寫
        P0=com;//送入數(shù)據(jù)
        delay(1);
        lcd1602_en=1;//拉高使能端,為制造有效的下降沿做準備
        delay(1);
        lcd1602_en=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}

//-------------------------寫數(shù)據(jù)-----------------------------
void write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****
{
        lcd1602_rs=1;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)
        lcd1602_rw=0; //讀寫選擇置為寫
        P0=dat;//送入數(shù)據(jù)
        delay(1);
        lcd1602_en=1; //en置高電平,為制造下降沿做準備
        delay(1);
        lcd1602_en=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令
}

//-------------------------初始化-------------------------
void lcd_init()
{
        write_1602com(0x01);//清顯示
        write_1602com(0x38);//設置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)
        write_1602com(0x0c);//開顯示不顯示光標
        write_1602com(0x06);//整屏不移動,光標自動右移
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:824490 發(fā)表于 2021-5-28 11:41 | 只看該作者
這樣的問題,在線跟蹤一下1602的輸入數(shù)據(jù),一般都能解決
回復

使用道具 舉報

板凳
ID:97350 發(fā)表于 2021-5-28 12:55 | 只看該作者
名字不是重點 發(fā)表于 2021-5-28 11:41
這樣的問題,在線跟蹤一下1602的輸入數(shù)據(jù),一般都能解決

感謝賜教,請問怎么在線跟蹤?
回復

使用道具 舉報

地板
ID:879348 發(fā)表于 2021-5-28 13:30 | 只看該作者
這很明顯是顯示數(shù)字沒有轉(zhuǎn)字符串
回復

使用道具 舉報

5#
ID:88256 發(fā)表于 2021-5-28 13:44 | 只看該作者
主函數(shù)都沒貼出來,應該是送的顯示數(shù)據(jù)錯誤了
回復

使用道具 舉報

6#
ID:824490 發(fā)表于 2021-5-28 14:07 | 只看該作者
用仿真器跑代碼
回復

使用道具 舉報

7#
ID:97350 發(fā)表于 2021-5-28 14:08 | 只看該作者
hhdsdy 發(fā)表于 2021-5-28 13:44
主函數(shù)都沒貼出來,應該是送的顯示數(shù)據(jù)錯誤了
  1. void main()
  2. {
  3.          unsigned char KEY,NUM;
  4.         unsigned char i,j;
  5.          P1=0xFF;
  6.         EA=1;
  7.         TMOD=0x01;
  8.         IT1=1;//下降沿有效
  9.         EX1=1;//外部中斷1開
  10.            
  11.         TH0=0;//T0賦初值
  12.         TL0=0;
  13.         TR0=1;//t0開始計時
  14.          TL1=0x3c;
  15.          TH1=0xb0;
  16.          ET1=1;        
  17.          TR1=0;
  18.          Delay400Ms();         //啟動等待,等LCM講入工作狀態(tài)
  19.          lcd_init();         //LCD初始化
  20.         write_1602com(yi);//日歷顯示固定符號從第一行第0個位置之后開始顯示
  21.         init_rc522();
  22.         init_eeprom();
  23.         read_eeprom();
  24.         for(i=0;i<16;i++)
  25.         {
  26.                 write_1602dat(name[i]);//向液晶屏寫日歷顯示的固定符號部分
  27.         }
  28.         write_1602com(er);//時間顯示固定符號寫入位置,從第2個位置后開始顯示
  29.         for(i=0;i<16;i++)
  30.         {
  31.                 write_1602dat(start_line[i]);//寫顯示時間固定符號,兩個冒號
  32.         }
  33.         write_1602com(er+9);        //設置光標位置
  34.         write_1602com(0x0f);        //設置光標為閃爍
  35.          Delay5Ms(); //延時片刻(可不要)

  36.          N=0;                                                                                                                //初始化數(shù)據(jù)輸入位數(shù)
  37.          while(1)
  38.          {
  39.            
  40.                 ctrl();
  41.                 if(key_disable==1)
  42.                         Alam_KeyUnable();
  43.                 else
  44.                         ALAM=1;                                                                //關(guān)報警

  45.                 KEY=keynum();
  46.                 if(KEY!=0||IrOK==1)
  47.                 {        
  48.                         if(key_disable==1)
  49.                         {
  50.                                 second=0;
  51.                         }
  52.                         else
  53.                         {
  54.                                 NUM=coding(Im[2],KEY);
  55.                                 {
  56.                                         switch(NUM)
  57.                                         {
  58.                                                 case ('A'): if(chushihua==1)
  59.                                                             {
  60.                                                              current_id++;
  61.                                                             if(current_id>5)
  62.                                                                          current_id=0;
  63.                                                                          }                                        break;
  64.                                                 case ('B'):        if(chushihua==1)
  65.                                                              write_eeprom_jj(current_id)        ;                                             break;
  66.                                                 case ('C'): if(chushihua==1)
  67.                                                              write_eeprom_j(current_id)        ;                                         break;
  68.                                                 case ('D'): chushihua=0;ResetPassword();                break;      //重新設置密碼
  69.                                                 case ('*'): chushihua=0;Cancel();                                break;      //取消當前輸入
  70.                                                 case ('#'): chushihua=0; Ensure();                                 break;           //確認鍵,
  71.                                                 default:
  72.                                                 {        
  73.                                                     chushihua=0;
  74.                                                         //DisplayListChar(0,1,Input);
  75.                                                         write_1602com(er);
  76.                                                         for(i=0;i<16;i++)
  77.                                                         {
  78.                                                                 write_1602dat(Input[i]);
  79.                                                         }
  80.                                                     operation=0;
  81.                                                         if(N<6)                                                           //當輸入的密碼少于6位時,接受輸入并保存,大于6位時則無效。
  82.                                                         {  
  83.                                                                 OneAlam();                                                                //按鍵提示音                                                
  84.                                                                 //DisplayOneChar(6+N,1,'*');
  85.                                                                  for(j=0;j<=N;j++)
  86.                                                                 {
  87.                                                                         write_1602com(er+6+j);
  88.                                                                         write_1602dat('*');
  89.                                                                 }
  90.                                                                 InputData[N]=NUM;
  91.                                                                 N++;
  92.                                                         }
  93.                                                         else                                                                                //輸入數(shù)據(jù)位數(shù)大于6后,忽略輸入
  94.                                                         {
  95.                                                                 N=6;
  96.                                                                  break;
  97.                                                         }
  98.                                                 }
  99.                                         }
  100.                                 }
  101.                         }
  102.                  }
  103.         }
  104. }
復制代碼
回復

使用道具 舉報

8#
ID:97350 發(fā)表于 2021-5-28 14:09 | 只看該作者
wufa1986 發(fā)表于 2021-5-28 13:30
這很明顯是顯示數(shù)字沒有轉(zhuǎn)字符串

我覺得應該不是,因為第一張卡可以正常讀取出來,第二張卡就顯示兩個黑屏
回復

使用道具 舉報

9#
ID:451718 發(fā)表于 2021-5-28 14:42 | 只看該作者
讀卡的后數(shù)據(jù)如何傳輸?shù)模?nbsp; 問題肯定出在傳輸上,  把讀到的數(shù)據(jù),用串口發(fā)送出來看看就知道了。
回復

使用道具 舉報

10#
ID:366877 發(fā)表于 2021-5-28 14:58 | 只看該作者
應該是顯示數(shù)據(jù)和待顯示的位置沒對上,前一屏幕信息殘留疊加的結(jié)果。
回復

使用道具 舉報

11#
ID:97350 發(fā)表于 2021-5-28 15:19 | 只看該作者
感謝各位出謀劃策,我再找找原因,有答案會和大家一起分享的。小弟在這里一并謝過
回復

使用道具 舉報

12#
ID:584814 發(fā)表于 2021-5-29 22:01 | 只看該作者
直接用常量在相對的位置顯示一個字條,如果還是這樣就是硬件壞。
不過一般都是你送的數(shù)據(jù)有問題,1602直接壞2個顯示位并且全顯的概率小。
回復

使用道具 舉報

13#
ID:517951 發(fā)表于 2021-5-31 10:58 | 只看該作者
基本不認為是1602的硬件問題,99%是軟件寫得有問題才出現(xiàn)中間部位的顯示異常.
回復

使用道具 舉報

14#
ID:97350 發(fā)表于 2021-5-31 15:47 | 只看該作者
rayin 發(fā)表于 2021-5-31 10:58
基本不認為是1602的硬件問題,99%是軟件寫得有問題才出現(xiàn)中間部位的顯示異常.

你說的對,就是軟件問題,但是我還沒調(diào)通
回復

使用道具 舉報

15#
ID:97350 發(fā)表于 2021-5-31 15:48 | 只看該作者
man1234567 發(fā)表于 2021-5-29 22:01
直接用常量在相對的位置顯示一個字條,如果還是這樣就是硬件壞。
不過一般都是你送的數(shù)據(jù)有問題,1602直接 ...

排除硬件故障了,還在軟件調(diào)試中
回復

使用道具 舉報

16#
ID:390416 發(fā)表于 2021-6-19 08:42 | 只看該作者
LCD1602顯示℃ 這種自定義符號 http://www.zg4o1577.cn/bbs/dpj-200685-1.html
LCD1602液晶最新資料 說明了具體的時間要求 http://www.zg4o1577.cn/bbs/dpj-205768-1.html
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级做性受免费大片免费 | 一级毛片网| 超碰97人人人人人蜜桃 | 成人区一区二区三区 | 在线观看中文字幕 | 凹凸日日摸日日碰夜夜 | 欧美日韩1区2区3区 欧美久久一区 | www.色.com | 久久久免费电影 | 久久久九九九九 | 日韩国产中文字幕 | 欧美日韩视频一区二区 | 青青操91 | 亚洲欧美中文日韩在线v日本 | 在线观看中文字幕一区二区 | 国产黄色大片在线免费观看 | 国产精品毛片无码 | 男女视频在线观看网站 | 亚洲三级在线观看 | 欧美久久一区二区三区 | 久久人人网 | 911精品国产 | 91精品中文字幕一区二区三区 | 在线欧美一区 | 日韩视频在线观看 | av在线免费观看网址 | 日韩欧美在线观看一区 | 日韩久久久久 | 99re6在线视频精品免费 | 精品欧美一区二区三区久久久 | 91精品国产一区二区三区蜜臀 | 超碰97免费观看 | 久色网 | 精品中文字幕一区二区 | 97超碰人人| 欧美福利视频 | 91精品国产综合久久久久久丝袜 | 国产在线不卡 | 久久久久国产一区二区三区四区 | 国产精品美女久久久久aⅴ国产馆 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 |