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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3285|回復: 8
打印 上一主題 下一主題
收起左側

單片機LCD1602不顯示數字,程序有問題 求幫助

[復制鏈接]
跳轉到指定樓層
樓主

程序,謝謝各位大佬
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit RS=P2^0;
  5. sbit RW=P2^1;
  6. sbit E=P2^2;
  7. #define LCD1602_GPIO P1
  8. void LCD1602_WriteCom(uchar com);
  9. void LCD1602_WriteDat(uchar dat);
  10. void LCD1602_Init();
  11. void Delayms(uint a);
  12. uchar Disp_PromNUM[]="NUM:";
  13. uchar Disp_PromNAME[]="NAME:";
  14. uchar Disp_Num[]="1730120526";
  15. uchar Disp_Name[]="SHI LEI";
  16. void main(void)
  17. {
  18.    uchar i;
  19.    LCD1602_Init();
  20.    for(i=0;Disp_PromNUM[i]!='\0';i++)
  21.    {
  22.       LCD1602_WriteDat(Disp_PromNUM[i]);
  23.           Delayms(2);
  24.    }
  25.    LCD1602_WriteCom(0x84);
  26.    for(i=0;i<8;i++)
  27.    {
  28.       LCD1602_WriteDat(Disp_Num[i]);
  29.           Delayms(2);
  30.    }
  31.    LCD1602_WriteCom(0xc0);
  32.    for(i=0;Disp_PromNAME[i]!='\0';i++)
  33.    {
  34.       LCD1602_WriteDat(Disp_PromNAME[i]);
  35.           Delayms(2);
  36.    }
  37.    LCD1602_WriteCom(0xC5);
  38.    for(i=0;Disp_Name[i]!='\0';i++)
  39.    {
  40.       LCD1602_WriteDat(Disp_Name[i]);
  41.           Delayms(2);
  42.    }
  43.    while(1);
  44. }
  45. void LCD1602_WriteCom(uchar com)
  46. {
  47.    E=0;
  48.    RS=0;
  49.    RW=0;
  50.    LCD1602_GPIO=com;
  51.    Delayms(1);
  52.    E=1;
  53.    Delayms(5);
  54.    E=0;
  55. }
  56. void LCD1602_WriteDat(uchar dat)
  57. {
  58.    E=0;
  59.    RS=1;
  60.    RW=0;
  61.    LCD1602_GPIO=dat;
  62.    Delayms(1);
  63.    E=1;
  64.    Delayms(5);
  65.    E=0;
  66. }
  67. void LCD1602_Init()
  68. {
  69.    LCD1602_WriteCom(0x38);
  70.    LCD1602_WriteCom(0x0c);
  71.    LCD1602_WriteCom(0x06);
  72.    LCD1602_WriteCom(0x01);
  73.    LCD1602_WriteCom(0x80);
  74. }
  75. void Delayms(uint a)
  76. {
  77.    uint i,j;
  78.    for(j=0;j<a;j++)
  79.    {
  80.       for(i=o;i<125:i++);
  81.    }
  82. }   
復制代碼

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

使用道具 舉報

沙發
ID:592807 發表于 2020-4-16 08:43 | 只看該作者
你的LCD帶字庫嗎?
回復

使用道具 舉報

板凳
ID:213173 發表于 2020-4-16 09:37 | 只看該作者
程序沒有問題,是樓主抄錯了。
錯誤:for(i=o;i<125:i++);
正確:for(i=0;i<125;i++);
回復

使用道具 舉報

地板
ID:70069 發表于 2020-4-16 09:50 | 只看該作者
void Delayms(uint a)
{
   uint i,j;
   for(j=0;j<a;j++)
   {
      for(i=0;i<125;i++);//i=0不是o,125后面是;,不是:
   }
}   
回復

使用道具 舉報

5#
ID:729252 發表于 2020-4-16 09:55 | 只看該作者
1、首先判斷IO設置是否正確:向并口寫入指令,將指令讀回比較是否正確(或用萬用表測量);
回復

使用道具 舉報

6#
ID:729252 發表于 2020-4-16 09:57 | 只看該作者
2、在指令發送讀回正確的前提下,若還是無顯示,適當增加延時再試;
回復

使用道具 舉報

7#
ID:729252 發表于 2020-4-16 09:59 | 只看該作者
1、首先檢測端口指令是否發送正確:發送后設置斷點,檢驗端口電平是否你設置的值(高低電平都要試一遍);
2、適當增加延時驗證
3、指令是否正確?
回復

使用道具 舉報

8#
ID:729252 發表于 2020-4-16 10:06 | 只看該作者
1、端口驗證:LCD屏的各個接口IO通過CPU設置高低電平判斷是否正確;
2、適當增加延時時間驗證;
3、指令是否正確;
回復

使用道具 舉報

9#
ID:155507 發表于 2020-4-16 10:24 | 只看該作者
void Delayms(uint a)
{
   uint i,j;
   for(j=0;j<a;j++)
   {
      for(i=o;i<125:i++);
   }
}   


給你改了,對比一下就知道哪里錯了。


  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit RS=P2^0;
  5. sbit RW=P2^1;
  6. sbit E=P2^2;
  7. #define LCD1602_GPIO P1
  8. void LCD1602_WriteCom(uchar com);
  9. void LCD1602_WriteDat(uchar dat);
  10. void LCD1602_Init();
  11. void Delayms(uint a);
  12. uchar Disp_PromNUM[]="NUM:";
  13. uchar Disp_PromNAME[]="NAME:";
  14. uchar Disp_Num[]="1730120526";
  15. uchar Disp_Name[]="SHI LEI";
  16. void main(void)
  17. {
  18.    uchar i;
  19.    LCD1602_Init();
  20.    for(i=0;Disp_PromNUM[i]!='\0';i++)
  21.    {
  22.       LCD1602_WriteDat(Disp_PromNUM[i]);
  23.           Delayms(2);
  24.    }
  25.    LCD1602_WriteCom(0x84);
  26.    for(i=0;i<8;i++)
  27.    {
  28.       LCD1602_WriteDat(Disp_Num[i]);
  29.           Delayms(2);
  30.    }
  31.    LCD1602_WriteCom(0xc0);
  32.    for(i=0;Disp_PromNAME[i]!='\0';i++)
  33.    {
  34.       LCD1602_WriteDat(Disp_PromNAME[i]);
  35.           Delayms(2);
  36.    }
  37.    LCD1602_WriteCom(0xC5);
  38.    for(i=0;Disp_Name[i]!='\0';i++)
  39.    {
  40.       LCD1602_WriteDat(Disp_Name[i]);
  41.           Delayms(2);
  42.    }
  43.    while(1);
  44. }
  45. void LCD1602_WriteCom(uchar com)
  46. {
  47.    E=0;
  48.    RS=0;
  49.    RW=0;
  50.    LCD1602_GPIO=com;
  51.    Delayms(1);
  52.    E=1;
  53.    Delayms(5);
  54.    E=0;
  55. }
  56. void LCD1602_WriteDat(uchar dat)
  57. {
  58.    E=0;
  59.    RS=1;
  60.    RW=0;
  61.    LCD1602_GPIO=dat;
  62.    Delayms(1);
  63.    E=1;
  64.    Delayms(5);
  65.    E=0;
  66. }
  67. void LCD1602_Init()
  68. {
  69.    LCD1602_WriteCom(0x38);
  70.    LCD1602_WriteCom(0x0c);
  71.    LCD1602_WriteCom(0x06);
  72.    LCD1602_WriteCom(0x01);
  73.    LCD1602_WriteCom(0x80);
  74. }
  75. void Delayms(uint a)
  76. {
  77.    uint i,j;
  78.    for(j=0;j<a;j++)
  79.    {
  80.       for(i=0;i<125;i++);
  81.     }
  82.   }
  83.   
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线一区二区三区 | www成人免费| 久久综合久色欧美综合狠狠 | www.亚洲 | 日韩精品久久久久 | 欧美一级高清片 | 午夜影院网站 | 日韩中文在线观看 | 一区二区三区视频在线 | 91久久久久久久久久久久久 | 欧美一区二区三区小说 | 欧美精品在欧美一区二区少妇 | 国产成人免费视频网站高清观看视频 | 特级黄一级播放 | 欧美精品久久久久久久久久 | www午夜视频 | a毛片| 日韩在线电影 | av男人的天堂av | 日韩一区二区在线视频 | av日日操| 91精品久久久久久久 | 中文在线视频 | 日韩在线免费观看视频 | 在线欧美一区二区 | 天天干免费视频 | av网站在线看 | 一区二区三区视频在线免费观看 | 一级大黄色片 | 二区在线视频 | 久久一久久 | 国产精品视频二区三区 | 久久久综合久久 | 亚洲性爰 | 在线播放中文字幕 | 国产一级片一区二区 | 一区中文字幕 | 中文字幕在线观看一区二区 | 99热在这里只有精品 | 色眯眯视频在线观看 | 国产精品视频久久久久 |