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

標題: LCD1602無法顯示數據,但程序在另一個單片機上卻可以正常顯示,請問是怎么回事? [打印本頁]

作者: 明日香    時間: 2020-12-30 10:39
標題: LCD1602無法顯示數據,但程序在另一個單片機上卻可以正常顯示,請問是怎么回事?
本帖最后由 明日香 于 2020-12-30 10:41 編輯

我用LCD1602連接一個單片機A顯示數據,是一個最簡單的LCD程序,但LCD1602只發亮卻沒有顯示任何數據
這是這個單片機的電路圖:需要讓P37=0才能打開背光;


但相同的程序,我用另一塊單片機B卻可以正常顯示,請問這是為什么?出了什么問題呢?
這兩個開發板的區別就是開發板A需要讓P37=0打開背光,而開發板B是簡單的學習版,不需要打開背光
我感覺是這塊開發板比較特殊,是不是少寫了一些程序?求大家幫忙看看,指點下,謝謝。
這是程序:
#include <reg52.h>
#include <intrins.h>
#include <stdlib.h>
#include <stdio.h>
#define uchar unsigned char
#define uint  unsigned int

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

/*sbit E=P2^7;    //1602使能引腳
sbit RW=P2^5;    //1602讀寫引腳   
sbit RS=P2^6;*/

uchar code table[]="1234";//要顯示的數據

void lcd_delay(uint ms)
{
uint i,j;
        for(i=ms;i>0;i--)
        
         for(j=110;j>0;j--);

}

void wcmd(uchar del)//寫命令函數
{
        RS=0;//命令選擇端
        RW=0;//寫命令
        lcd_delay(1000);
        P0=del;  //把命令字寫入
        lcd_delay(100);
        E=1;//使能
        E=0;
}

void lcd1602_writedata(uchar dat)//寫數據函數
{
        RS=1;//數據選擇端
        RW=0;//寫命令
        lcd_delay(1000);
        P0=dat;  //把要顯示的數據寫入
        lcd_delay(1000);
        E=1;
        E=0;
}

void lcd1602_init()//LCD初始化
{
BL=0; //打開背光
wcmd(0x38);
lcd_delay(1000);
wcmd(0x0c);
lcd_delay(1000);
wcmd(0x06);
lcd_delay(1000);
wcmd(0x01);
}

void main()
{
uchar m=0;
lcd1602_init();
lcd_delay(100);
wcmd(0x80);
for(m=0;m<4;m++)
        {

        lcd1602_writedata(table[m]);
        }
while(1);
}



作者: 人人學會單片機    時間: 2020-12-30 11:19
這是我發的貼子 ,自己去復制代碼吧。
http://m.raoushi.com/bbs/dpj-200685-1.html

作者: 明日香    時間: 2020-12-30 13:45
人人學會單片機 發表于 2020-12-30 11:19
這是我發的貼子 ,自己去復制代碼吧。
http://m.raoushi.com/bbs/dpj-200685-1.html

老哥,帖子被刪了
作者: 累不死的狗    時間: 2020-12-30 14:52
兄弟,測試一下單片機看壞了沒有
作者: 小文文    時間: 2020-12-30 16:07
你的讀和寫的引腳是不是搞反了,調一下V0的10K電位器看看,調小一點,其實我認為哪用2K的就夠,不會因為太大可白屏看不到顯示
作者: zhangxiangliang    時間: 2020-12-30 19:32
有沒有調R1試試試,是不是對比度調得太大了,看不到顯示,還有就是再檢查一下電路有沒有接錯的地方
作者: 張天師    時間: 2020-12-30 21:10
有可能你現在的單片機工作指令頻率比原來的快,
把 lcd_delay(100);  E=1;  E=0;      改為   E=1;  cd_delay(100);  E=0;
其他地方也照這樣修改,再試試
作者: 李狗蛋16    時間: 2020-12-30 21:37
那LCD1602需要有一個可調電阻,來調節它的電阻值,來讓它數據顯示出來的

作者: PanaHao    時間: 2020-12-30 23:49
看看是不是線路還有引腳問題 我之前也是這樣 改過就沒事了
作者: TTQ001    時間: 2020-12-31 01:24
把P37設為低電平




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