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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3620|回復: 6
打印 上一主題 下一主題
收起左側

求大佬幫助,LCD1602只顯示第一行的黑塊

[復制鏈接]
跳轉到指定樓層
樓主
ID:635345 發表于 2020-9-8 21:24 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
LCD1602上電后只顯示第一行的黑塊,電路也沒有問題,求幫助

IMG_20200908_212042.jpg (1000.97 KB, 下載次數: 76)

IMG_20200908_212042.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:88256 發表于 2020-9-8 22:47 | 只看該作者
一般是程序問題,對比度調了嗎?把程序發出來看看
回復

使用道具 舉報

板凳
ID:635345 發表于 2020-9-9 00:08 來自觸屏版 | 只看該作者
hhdsdy 發表于 2020-9-8 22:47
一般是程序問題,對比度調了嗎?把程序發出來看看

#include <REG52.h>#include<intrins.h>//宏定義#define LCM_Data  P0                  //將P0口定義為LCM_Data#define uchar unsigned char #define uint  unsigned int#define w 6                                //定義密碼位數//1602的控制腳sbit lcd1602_rs=P2^5;sbit lcd1602_rw=P2^6;sbit lcd1602_en=P2^7;sbit Scl=P3^4;                        //24C02串行時鐘sbit Sda=P3^5;                        //24C02串行數據sbit ALAM = P2^1;                //報警        //sbit KEY = P3^6;                //開鎖sbit led = P2^0;                //燈bit  operation=0;                //操作標志位bit  pass=0;                        //密碼正確標志bit  ReInputEn=0;                //重置輸入允許標志        bit  s3_keydown=0;                //3秒按鍵標志位bit  key_disable=0;                //鎖定鍵盤標志bit  flag_REC =0;       //串口接受標志位unsigned char buff[5]=0;unsigned char countt0,second;        //t0中斷計數器,秒計數器void Delay5Ms(void);                //聲明延時函數unsigned char code a[]={0xFE,0xFD,0xFB,0xF7};                                 //控盤掃描控制表//液晶顯示數據數組unsigned char code start_line[]        = {"password:       "};unsigned char code name[]                  = { "===Coded Lock==="};        //顯示名稱unsigned char code Correct[]         = {"     correct    "};                //輸入正確unsigned char code Error[]           = {"      error     "};          //輸入錯誤unsigned char code codepass[]        = {"      pass      "}; unsigned char code LockOpen[]        = {"      open      "};                //OPENunsigned char code SetNew[]         = {"SetNewWordEnable"};unsigned char code Input[]           = {"input:          "};                //INPUTunsigned char code ResetOK[]         = {"ResetPasswordOK "};unsigned char code initword[]        = {"Init password..."};unsigned char code Er_try[]                = {"error,try again!"};unsigned char code again[]                = {"input again     "};unsigned char InputData[16];                                                                        //輸入密碼暫存區unsigned char CurrentPassword[16]={1,3,1,4,2,0};                         //管理員密碼(只可在程序中修改)unsigned char TempPassword[16];unsigned char N=0,M=0,flag=0;                                //密碼輸入位數記數unsigned char ErrorCont;                        //錯誤次數計數unsigned char CorrectCont;                        //正確輸入計數unsigned char ReInputCont;                         //重新輸入計數unsigned char code initpassword[16]={0,0,0,0,0,0};                        //輸入管理員密碼后將密碼初始為000000unsigned char  MM[2]={0,0};//=====================5ms延時==============================void Delay5Ms(void){        unsigned int TempCyc = 5552;        while(TempCyc--);}//===================400ms延時==============================void Delay400Ms(void){ unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA--) {  TempCycB=7269;  while(TempCycB--); }}//=============================================================================================//================================24C02========================================================//=============================================================================================void mDelay(uint t) //延時{         uchar i;           while(t--)           {                   for(i=0;i<125;i++)                   {;}           }}   void Nop(void)                  //空操作{         _nop_();                  //僅作延時用一條語句大約1us         _nop_();         _nop_();         _nop_();}/*****24c02程序參照24c02時序圖*****//*起始條件*/void Start(void){         Sda=1;         Scl=1;         Nop();         Sda=0;         Nop();} /*停止條件*/void Stop(void){         Sda=0;         Scl=1;         Nop();         Sda=1;         Nop();}/*應答位*/void Ack(void){        Sda=0;        Nop();        Scl=1;        Nop();        Scl=0;}/*反向應答位*/void NoAck(void){         Sda=1;         Nop();         Scl=1;         Nop();         Scl=0;} /*發送數據子程序,Data為要求發送的數據*/void Send(uchar Data){           uchar BitCounter=8;           uchar temp;           do           {                   temp=Data;                                           //將待發送數據暫存temp                   Scl=0;                   Nop();                   if((temp&0x08)==0x08)                   //將讀到的數據&0x80                   Sda=1;                   else                    Sda=0;                   Scl=1;                   temp=Data<<1;                                   //數據左移                   Data=temp;                                           //數據左移后重新賦值Data                   BitCounter--;                                   //該變量減到0時,數據也就傳送完成了           }           while(BitCounter);                                   //判斷是否傳送完成           Scl=0;}/*讀一字節的數據,并返回該字節值*/uchar Read(void){    uchar temp=0;        uchar temp1=0;        uchar BitCounter=8;        Sda=1;        do        {                Scl=0;                Nop();                Scl=1;                Nop();                if(Sda)                                   //數據位是否為1                        temp=temp|0x11;           //為1 temp的最低位為1(|0x01,就是將最低位變為1)                else                                   //如果為0                        temp=temp&0xfe;           //temp最低位為0(&0xfe(11111110)最低位就是0)                if(BitCounter-1)           //BitCounter減1后是否為真                {                        temp1=temp<<1;           //temp左移                        temp=temp1;                }                BitCounter--;                   //BitCounter減到0時,數據就接收完了        }        while(BitCounter);                   //判斷是否接收完成        return(temp);}void WrToROM(uchar Data[],uchar Num,uchar Address){  uchar i;  uchar *PData;  PData=Data;  for(i=0;i<Num;i++)  {  Start();  Send(0xa0);  Ack();  Send(Address+i);  Ack();  Send(*(PData+i));  Ack();  Stop();  mDelay(20);  }}void RdFromROM(uchar Data[],uchar Num,uchar Address){  uchar i;  uchar *PData;  PData=Data;  for(i=0;i<Num;i++)  {  Start();  Send(0xa0);  Ack();  Send(Address+i);  Ack();  Start();  Send(0xa1);  Ack();  *(PData+i)=Read();  Scl=0;  NoAck();  Stop();  }}//==================================================================================================//=======================================LCD1602=#define yi 0x80 //LCD第一行的初始位置,因為LCD1602字符地址首位D7恒定為1(100000000=80)#define er 0x80+40 //LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)//----------------延時函數,后面經常調用----------------------void delay(uint xms)//延時函數,有參函數{        uint x,y;        for(x=xms;x>0;x--)         for(y=110;y>0;y--);}//--------------------------寫指令---------------------------void write_1602com(uchar com)//****液晶寫入指令函數****{        lcd1602_rs=1;//數據/指令選擇置為指令        lcd1602_rw=1; //讀寫選擇置為寫        P0=com;//送入數據        delay(1);        lcd1602_en=1;//拉高使能端,為制造有效的下降沿做準備        delay(1);        lcd1602_en=0;//en由高變低,產生下降沿,液晶執行命令}//-------------------------寫數據-----------------------------void write_1602dat(uchar dat)//***液晶寫入數據函數****{        lcd1602_rs=0;//數據/指令選擇置為數據        lcd1602_rw=1; //讀寫選擇置為寫        P0=dat;//送入數據        delay(1);        lcd1602_en=1; //en置高電平,為制造下降沿做準備        delay(1);        lcd1602_en=0; //en由高變低,產生下降沿,液晶執行命令}//-------------------------初始化-------------------------void lcd_init(void){        write_1602com(0x38);//設置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數據        write_1602com(0x0c);//開顯示不顯示光標        write_1602com(0x01);//清顯示        write_1602com(0x06);//整屏不移動,光標自動右移
回復

使用道具 舉報

地板
ID:213173 發表于 2020-9-9 11:09 | 只看該作者
本帖最后由 wulin 于 2020-9-9 11:14 編輯
hu1007110281 發表于 2020-9-9 00:08
#include #include//宏定義#define LCM_Data  P0                  //將P0口定義為LCM_Data#define uchar unsigned char ...

樓主洋洋灑灑碼了這么多代碼卻把最最重要的主函數mian()丟了,怎么可能正常運行???
回復

使用道具 舉報

5#
ID:472268 發表于 2020-9-9 12:16 | 只看該作者
@壇子,有現成代碼
回復

使用道具 舉報

6#
ID:695749 發表于 2020-9-9 12:21 | 只看該作者
要將問題描述簡短,便于閱讀。程序更要可閱讀,以上的程序是不好閱讀的
回復

使用道具 舉報

7#
ID:235954 發表于 2020-9-9 12:49 | 只看該作者
調節電位器,降低一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表