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

標題: LCD1602燒錄單片機程序顯示黑色方格,不顯示內容,請大佬幫忙 [打印本頁]

作者: liujianzeng    時間: 2024-2-15 15:09
標題: LCD1602燒錄單片機程序顯示黑色方格,不顯示內容,請大佬幫忙

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.raoushi.com  ";  //要顯示什么就在這兒改       
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 (1.6 MB, 下載次數: 95)

IMG_20240215_150108.jpg

作者: wulin    時間: 2024-2-15 22:03
你說代碼是論壇上的,難道照抄都不會?可見粗心至極!
  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.raoushi.com  ";  //要顯示什么就在這兒改      
  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. }
復制代碼





作者: lkc8210    時間: 2024-2-15 22:47
調一下V0接的電位器
作者: man1234567    時間: 2024-2-17 20:14
對比度調整不當或接線錯(包括代碼的線序、延時等錯)
作者: rayin    時間: 2024-2-19 07:41
先調下第三腳V0的電壓, 量下是多少, 調小,很可能就有驚喜: 字出來了. 如果沒有驚喜, 要就要再調下初始化代碼, 數據線連接是否正確,無虛焊.
作者: aygc    時間: 2024-2-19 15:41
對比度調整不當
作者: liujianzeng    時間: 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.raoushi.com  ";  //要顯示什么就在這兒改       


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);
}

作者: liujianzeng    時間: 2024-2-21 18:55
修改了延時,已經可以了




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