欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)LCD1602不顯示數(shù)字,程序有問(wèn)題 求幫助 [打印本頁(yè)]

作者: 我再睡會(huì)就起來(lái)    時(shí)間: 2020-4-15 20:36
標(biāo)題: 單片機(jī)LCD1602不顯示數(shù)字,程序有問(wèn)題 求幫助

程序,謝謝各位大佬
  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. }   
復(fù)制代碼


作者: 黃youhui    時(shí)間: 2020-4-16 08:43
你的LCD帶字庫(kù)嗎?
作者: wulin    時(shí)間: 2020-4-16 09:37
程序沒(méi)有問(wèn)題,是樓主抄錯(cuò)了。
錯(cuò)誤:for(i=o;i<125:i++);
正確:for(i=0;i<125;i++);
作者: benclee    時(shí)間: 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后面是;,不是:
   }
}   
作者: hgw683    時(shí)間: 2020-4-16 09:55
1、首先判斷IO設(shè)置是否正確:向并口寫(xiě)入指令,將指令讀回比較是否正確(或用萬(wàn)用表測(cè)量);
作者: hgw683    時(shí)間: 2020-4-16 09:57
2、在指令發(fā)送讀回正確的前提下,若還是無(wú)顯示,適當(dāng)增加延時(shí)再試;
作者: hgw683    時(shí)間: 2020-4-16 09:59
1、首先檢測(cè)端口指令是否發(fā)送正確:發(fā)送后設(shè)置斷點(diǎn),檢驗(yàn)端口電平是否你設(shè)置的值(高低電平都要試一遍);
2、適當(dāng)增加延時(shí)驗(yàn)證
3、指令是否正確?
作者: hgw683    時(shí)間: 2020-4-16 10:06
1、端口驗(yàn)證:LCD屏的各個(gè)接口IO通過(guò)CPU設(shè)置高低電平判斷是否正確;
2、適當(dāng)增加延時(shí)時(shí)間驗(yàn)證;
3、指令是否正確;
作者: angmall    時(shí)間: 2020-4-16 10:24
void Delayms(uint a)
{
   uint i,j;
   for(j=0;j<a;j++)
   {
      for(i=o;i<125:i++);
   }
}   


給你改了,對(duì)比一下就知道哪里錯(cuò)了。


  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.   
復(fù)制代碼





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