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

標題: 求助大佬!我的LCD1602顯示屏一直沒有顯示! [打印本頁]

作者: 新手小白.    時間: 2020-11-22 23:08
標題: 求助大佬!我的LCD1602顯示屏一直沒有顯示!
我也不知道是哪的問題!求各位大佬幫我找找問題!!!


這是我接電源和地的地方!


顯示屏一直就這樣!

我顯示屏上的vo沒接,do到d7依次接的P20--P27!


這是我寫的單片機代碼!
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit E=P0^5;                //1602使能引腳
sbit RW=P0^6;                //1602讀寫引腳        
sbit RS=P0^7;                //1602數據/命令選擇引腳

void delay()   //延時1ms
{
uint i,j;
   i=2;
   j=239;
   do
    {
          while(--j);
        }while(--i);
}

void writecmd(uchar cmd)  
{
E=0;      
RS=0;
RW=0;
P2=cmd;   
E=1;  
delay();
E=0;
delay();
}
void writedata(uchar dat)
{  
  E=0;     
  RS=1;
  RW=0;
  P2=dat;
  E=1;  
  delay();
  E=0;
  delay();
}
void init(void)              
{  
delay();
writecmd(0x38);
delay();
writecmd(0x38);
writecmd(0x08);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
}
void main ()
{
init();
writecmd(0x82);
writedata(0x41);
}                        



作者: 楊雪飛    時間: 2020-11-23 09:17
V0找個200歐電阻接地
作者: 楊雪飛    時間: 2020-11-23 09:18
或者按照電路原理圖給的,接一可調電阻,調節直至顯示清晰
作者: ak333    時間: 2020-11-23 10:25
我是V0和Vss之間搭一個5.1K電阻,
作者: 新手小白.    時間: 2020-11-23 17:52
楊雪飛 發表于 2020-11-23 09:18
或者按照電路原理圖給的,接一可調電阻,調節直至顯示清晰

這是5k的
C:\Users\lenovo\Desktop
這是1K的!
還是沒有顯示!!!

作者: 新手小白.    時間: 2020-11-23 17:55
楊雪飛 發表于 2020-11-23 09:18
或者按照電路原理圖給的,接一可調電阻,調節直至顯示清晰

還是沒有顯示呢!
作者: wulin    時間: 2020-11-23 21:03
本帖最后由 wulin 于 2020-11-24 05:56 編輯

硬件:P0.5~P0.7要加10K上拉電阻!
軟件:
void delay()                //1ms@12.000MHz
{
        unsigned char i, j;//數據類型不同延時相差很大!!!
        i = 2;
        j = 239;
        do
        {
                while (--j);
        } while (--i);
}

void main()
{
        init();
        writecmd(0x82);
        writedata(0x41);
        while(1);//此句不可以少!!!
}
作者: Dexter1    時間: 2020-11-23 21:28
看一下電路接對了嗎
作者: HSY666NB    時間: 2020-11-23 21:44
這是我的代碼:你更改 LCD_Data和三個LCD的腳就可以直接用了

用法是在main()里面先初始化LCD_Init();再直接調用LcdShowStr(4,0);屏幕上顯示的是LED_NUM[3]里的三個數據
附上原理圖

#define LCD_Data P0

sbit LCD_E=P2^7;
sbit LCD_RW=P2^5;
sbit LCD_RS=P2^6;

unsigned char LED_NUM[3];

void LCD_ReadStatus(void)
{

3.png (63.13 KB, 下載次數: 58)

3.png

作者: 新手小白.    時間: 2020-11-24 11:19
wulin 發表于 2020-11-23 21:03
硬件:P0.5~P0.7要加10K上拉電阻!
軟件:
void delay()                //1ms@12.000MHz

我沒有接那個10k電阻,但是其他的我改了一下,顯示出來了!感謝大佬!謝謝!
作者: 新手小白.    時間: 2020-11-24 11:20
感謝大家!謝謝各位大佬!問題解決了!
作者: hhj19990122    時間: 2020-11-24 14:34
HSY666NB 發表于 2020-11-23 21:44
這是我的代碼:你更改 LCD_Data和三個LCD的腳就可以直接用了

用法是在main()里面先初始化LCD_Init();再 ...

3腳接個2K電阻
作者: 積啦    時間: 2020-11-24 14:49
檢查v0口是否接了電阻,如果接了,看接的電阻是否合適
作者: kriswang    時間: 2021-7-6 09:45
怎么能夠顯示出來的,能不能教一下
作者: lkc8210    時間: 2021-7-6 11:02
kriswang 發表于 2021-7-6 09:45
怎么能夠顯示出來的,能不能教一下

如7樓所說的,delay里的數據類型不能改
先看樓主的代碼


  1. void delay()   //延時1ms
  2. {
  3. unit i,j;
  4.    i=2;
  5.    j=239;
  6.    do
  7.     {
  8.           while(--j);
  9.         }while(--i);
  10. }
復制代碼

看看代碼是在干什么
j = 239 -> while(--j)
先把j減一,再看看是否不等于零(不等于零為真,等于零為假)
當減了239下,while(--j)會跳出進入do...while(--i)
i會被減一再進入while(--j)
重點來了,此是j已經是0,再減就會變回65535 (uint = unsigned int 范圍是0~65535)
所以樓主的delay會輪回239 + 65536= 65775 次
如改為七樓的unsigned char(0~255)的delay則會輪回239 + 256 = 495 次
是樓主的132分之一
12T 8051在12Mhz 的運行速度大概是 2us一行
七樓的delay約等于1ms
而樓主的delay就要132ms
對于1602來說太久了


作者: 瀟瀟來了    時間: 2021-7-21 17:45
查看一下是不是接線出現了錯誤




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