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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2318|回復: 7
收起左側

LCD1602燒錄單片機程序顯示黑色方格,不顯示內容,請大佬幫忙

[復制鏈接]
ID:199475 發表于 2024-2-15 15:09 | 顯示全部樓層 |閱讀模式

stc8h8k64u     代碼是論壇上的,只顯示方格,不顯示內容,背光調節了也沒有,請大佬看看是什么原因

#include<STC8h.h>
#include <stdio.h>

#define uchar unsigned char
#define uint unsigned int
        sbit RS=P0^5;
sbit  E=P0^6;
sbit  RW=P0^7;
sbit   DB=P2;

void delay(uint del)   //延時1ms
      {
         uint i,j;
         for(i=0;i<del;i++)
            for(j=0;j<=168;j++);
      }
                       
void writecmd(uchar com)  
       {
         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
         RS=0;
         RW=0;
         P2 = com;   
         delay(2);  //延時一下會穩定很多,后面一條也是一樣的
         E=1;  
         delay(2);
         E=0;
       }
                         
                         
        void writedata(uchar dat)  
       {
         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
         RS=1;
         RW=0;
         P0 = dat;   
         delay(2);  //延時一下會穩定很多,后面一條也是一樣的
         E=1;  
         delay(2);
         E=0;
       }                 
                         
                void init(void)              
    {
       delay(15);
       writecmd(0x38);
       delay(5);
       writecmd(0x38);
       delay(5);
       writecmd(0x38);
       writecmd(0x38);
       writecmd(0x08);
       writecmd(0x01);
       writecmd(0x06);
       writecmd(0x0c);
     }         
                       
                       
                       
                       
                       
                uchar tab1[]=" www.zg4o1577.cn  ";  //要顯示什么就在這兒改       
uchar  a[]="0123456";
uchar table2[]="sun";
uchar  week[][3] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};

void main()
{
       
        uchar j;
         P_SW2 |= 0x80;  //擴展寄存器XFR訪問使能

    P0M1 = 0x00;   P0M0 = 0x00;   //設置為準雙向口
    P1M1 = 0x00;   P1M0 = 0x00;   //設置為準雙向口
    P2M1 = 0x00;   P2M0 = 0x00;   //設置為準雙向口
    P3M1 = 0x00;   P3M0 = 0x00;   //設置為準雙向口
    P4M1 = 0x00;   P4M0 = 0x00;   //設置為準雙向口
    P5M1 = 0x00;   P5M0 = 0x00;   //設置為準雙向口
    P6M1 = 0x00;   P6M0 = 0x00;   //設置為準雙向口
    P7M1 = 0x00;   P7M0 = 0x00;   //設置為準雙向口
          
       
   init();
       
       writecmd(0x80);    //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00

       for(j=0;j<16;j++)  //有16個字符,要循環16次
           {
            writedata(tab1[j]);
                 delay(2);
           }

                                         
                                         
                       
                                         
        while(1);
}


IMG_20240215_150108.jpg
回復

使用道具 舉報

ID:213173 發表于 2024-2-15 22:03 | 顯示全部樓層
你說代碼是論壇上的,難道照抄都不會?可見粗心至極! 無標題.jpg
  1. #include <STC8h.h>
  2. #include <stdio.h>

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit  RS=P2^5;
  6. sbit  E= P2^6;
  7. sbit  RW=P2^7;
  8. //sbit  DB=P2;

  9. void delay(uint del)   //延時1ms
  10. {
  11.         uint i,j;
  12.         for(i=0;i<del;i++)
  13.                 for(j=0;j<=168;j++);
  14. }
  15.                        
  16. void writecmd(uchar com)  
  17. {
  18.         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
  19.         RS=0;
  20.         RW=0;
  21.         P0 = com;   
  22.         delay(2);  //延時一下會穩定很多,后面一條也是一樣的
  23.         E=1;  
  24.         delay(2);
  25.         E=0;
  26. }


  27. void writedata(uchar dat)  
  28. {
  29.         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
  30.         RS=1;
  31.         RW=0;
  32.         P0 = dat;   
  33.         delay(2);  //延時一下會穩定很多,后面一條也是一樣的
  34.         E=1;  
  35.         delay(2);
  36.         E=0;
  37. }                 

  38. void init(void)              
  39. {
  40.         delay(15);
  41.         writecmd(0x38);
  42.         delay(5);
  43.         writecmd(0x38);
  44.         delay(5);
  45.         writecmd(0x38);
  46.         writecmd(0x38);
  47.         writecmd(0x08);
  48.         writecmd(0x01);
  49.         writecmd(0x06);
  50.         writecmd(0x0c);
  51. }         
  52. uchar tab1[]=" www.zg4o1577.cn  ";  //要顯示什么就在這兒改      
  53. uchar a[]="0123456";
  54. uchar table2[]="sun";
  55. uchar week[][3] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};

  56. void main()
  57. {      
  58.         uchar j;
  59.         P_SW2 |= 0x80;  //擴展寄存器XFR訪問使能
  60.         P0M1 = 0x00;   P0M0 = 0x00;   //設置為準雙向口
  61.         P1M1 = 0x00;   P1M0 = 0x00;   //設置為準雙向口
  62.         P2M1 = 0x00;   P2M0 = 0x00;   //設置為準雙向口
  63.         P3M1 = 0x00;   P3M0 = 0x00;   //設置為準雙向口
  64.         P4M1 = 0x00;   P4M0 = 0x00;   //設置為準雙向口
  65.         P5M1 = 0x00;   P5M0 = 0x00;   //設置為準雙向口
  66.         P6M1 = 0x00;   P6M0 = 0x00;   //設置為準雙向口
  67.         P7M1 = 0x00;   P7M0 = 0x00;   //設置為準雙向口
  68.   
  69.         init();
  70.         writecmd(0x80);    //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00
  71.         for(j=0;j<16;j++)  //有16個字符,要循環16次
  72.         {
  73.                 writedata(tab1[j]);
  74.                 delay(2);
  75.         }       
  76.         while(1);
  77. }
復制代碼




回復

使用道具 舉報

ID:161164 發表于 2024-2-15 22:47 | 顯示全部樓層
調一下V0接的電位器
回復

使用道具 舉報

ID:584814 發表于 2024-2-17 20:14 | 顯示全部樓層
對比度調整不當或接線錯(包括代碼的線序、延時等錯)
回復

使用道具 舉報

ID:517951 發表于 2024-2-19 07:41 | 顯示全部樓層
先調下第三腳V0的電壓, 量下是多少, 調小,很可能就有驚喜: 字出來了. 如果沒有驚喜, 要就要再調下初始化代碼, 數據線連接是否正確,無虛焊.
回復

使用道具 舉報

ID:47541 發表于 2024-2-19 15:41 | 顯示全部樓層
對比度調整不當
回復

使用道具 舉報

ID:199475 發表于 2024-2-21 18:54 | 顯示全部樓層
wulin 發表于 2024-2-15 22:03
你說代碼是論壇上的,難道照抄都不會?可見粗心至極!

修改了延時,可以了,謝謝

#include<STC8h.h>
#include <stdio.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
        sbit E=P2^5;                //1602使能引腳
sbit RW=P2^6;                //1602讀寫引腳        
sbit RS=P2^7;


void Delay5ms()                //@11.0592MHz
{
        uchar data i, j;

        _nop_();
        _nop_();
        i = 72;
        j = 205;
        do
        {
                while (--j);
        } while (--i);
}
void Delay2ms()                //@11.0592MHz
{
        unsigned char data i, j;

        i = 29;
        j = 183;
        do
        {
                while (--j);
        } while (--i);
}
void Delay15ms()                //@11.0592MHz
{
        unsigned char data i, j;

        _nop_();
        _nop_();
        i = 216;
        j = 109;
        do
        {
                while (--j);
        } while (--i);
}

                       
void writecmd(uchar com)  
       {
         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
         RS=0;
         RW=0;
         P0 = com;   
         Delay2ms();  //延時一下會穩定很多,后面一條也是一樣的
         E=1;  
         Delay2ms();
         E=0;
       }
                         
                         
        void writedata(uchar dat)  
       {
         E=0;       //為什么要寫這一條呢,看看時序圖就清楚了
         RS=1;
         RW=0;
         P0 = dat;   
         Delay2ms();  //延時一下會穩定很多,后面一條也是一樣的
         E=1;  
         Delay2ms();
         E=0;
       }                 
                         
                void init(void)              
    {
      Delay15ms();
       writecmd(0x38);
       Delay5ms();
       writecmd(0x38);
       Delay5ms();
       writecmd(0x38);
       writecmd(0x38);
       writecmd(0x08);
       writecmd(0x01);
       writecmd(0x06);
       writecmd(0x0c);
     }         
                       
                       
                       
                       
                       
                uchar tab1[]=" www.zg4o1577.cn  ";  //要顯示什么就在這兒改       


void main()
{
       
             uchar j;
             P_SW2 |= 0x80;  //擴展寄存器XFR訪問使能

    P0M1 = 0x00;   P0M0 = 0x00;   //設置為準雙向口
    P1M1 = 0x00;   P1M0 = 0x00;   //設置為準雙向口
    P2M1 = 0x00;   P2M0 = 0x00;   //設置為準雙向口
    P3M1 = 0x00;   P3M0 = 0x00;   //設置為準雙向口
    P4M1 = 0x00;   P4M0 = 0x00;   //設置為準雙向口
    P5M1 = 0x00;   P5M0 = 0x00;   //設置為準雙向口
    P6M1 = 0x00;   P6M0 = 0x00;   //設置為準雙向口
    P7M1 = 0x00;   P7M0 = 0x00;   //設置為準雙向口
          
       
         init();
             
       writecmd(0x80);    //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00
         
       for(j=0;j<16;j++)  //有16個字符,要循環16次
           {
            writedata(tab1[j]);
                                                 Delay5ms();
                 
           }
         
                                         
                                         
                       
                                         
        while(1);
}
回復

使用道具 舉報

ID:199475 發表于 2024-2-21 18:55 | 顯示全部樓層
修改了延時,已經可以了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产婷婷国产香蕉 | 天堂亚洲网 | 久久一二 | 伊人狠狠干 | 亚洲专区在线 | 亚洲国产精品久久久久 | 三区四区在线观看 | 亚洲中国字幕 | 亚洲福利片 | 久久综合九色综合欧美狠狠 | 国产成人精品午夜 | 91久久伊人 | 亚洲精品www | 三级av在线| 国产成人精品久久二区二区 | 国产综合精品 | 一区二区视频在线 | 免费在线a视频 | 日本大香伊一区二区三区 | 亚洲第一成年免费网站 | 亚洲精品在线视频 | 成人免费在线小视频 | www.三级| 四虎成人av| 精品国产一区二区三区免费 | 国产精品有限公司 | 亚洲成av| 99热成人在线 | 在线视频 亚洲 | 色婷婷九月| 国产999精品久久久久久绿帽 | 日韩在线不卡 | 欧美日韩在线免费 | 国产一区二区在线播放 | 日韩国产精品一区二区三区 | 九九热九九 | 久久久久无码国产精品一区 | 国产精品久久九九 | 久久最新| 岛国毛片在线观看 | 亚洲激情一区二区 |