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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3388|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

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

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

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

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

使用道具 舉報

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

使用道具 舉報

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

#include <REG52.h>#include<intrins.h>//宏定義#define LCM_Data  P0                  //將P0口定義為LCM_Data#define uchar unsigned char #define uint  unsigned int#define w 6                                //定義密碼位數(shù)//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串行數(shù)據(jù)sbit ALAM = P2^1;                //報警        //sbit KEY = P3^6;                //開鎖sbit led = P2^0;                //燈bit  operation=0;                //操作標(biāo)志位bit  pass=0;                        //密碼正確標(biāo)志bit  ReInputEn=0;                //重置輸入允許標(biāo)志        bit  s3_keydown=0;                //3秒按鍵標(biāo)志位bit  key_disable=0;                //鎖定鍵盤標(biāo)志bit  flag_REC =0;       //串口接受標(biāo)志位unsigned char buff[5]=0;unsigned char countt0,second;        //t0中斷計數(shù)器,秒計數(shù)器void Delay5Ms(void);                //聲明延時函數(shù)unsigned char code a[]={0xFE,0xFD,0xFB,0xF7};                                 //控盤掃描控制表//液晶顯示數(shù)據(jù)數(shù)組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];                                                                        //輸入密碼暫存區(qū)unsigned char CurrentPassword[16]={1,3,1,4,2,0};                         //管理員密碼(只可在程序中修改)unsigned char TempPassword[16];unsigned char N=0,M=0,flag=0;                                //密碼輸入位數(shù)記數(shù)unsigned char ErrorCont;                        //錯誤次數(shù)計數(shù)unsigned char CorrectCont;                        //正確輸入計數(shù)unsigned char ReInputCont;                         //重新輸入計數(shù)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();}/*應(yīng)答位*/void Ack(void){        Sda=0;        Nop();        Scl=1;        Nop();        Scl=0;}/*反向應(yīng)答位*/void NoAck(void){         Sda=1;         Nop();         Scl=1;         Nop();         Scl=0;} /*發(fā)送數(shù)據(jù)子程序,Data為要求發(fā)送的數(shù)據(jù)*/void Send(uchar Data){           uchar BitCounter=8;           uchar temp;           do           {                   temp=Data;                                           //將待發(fā)送數(shù)據(jù)暫存temp                   Scl=0;                   Nop();                   if((temp&0x08)==0x08)                   //將讀到的數(shù)據(jù)&0x80                   Sda=1;                   else                    Sda=0;                   Scl=1;                   temp=Data<<1;                                   //數(shù)據(jù)左移                   Data=temp;                                           //數(shù)據(jù)左移后重新賦值Data                   BitCounter--;                                   //該變量減到0時,數(shù)據(jù)也就傳送完成了           }           while(BitCounter);                                   //判斷是否傳送完成           Scl=0;}/*讀一字節(jié)的數(shù)據(jù),并返回該字節(jié)值*/uchar Read(void){    uchar temp=0;        uchar temp1=0;        uchar BitCounter=8;        Sda=1;        do        {                Scl=0;                Nop();                Scl=1;                Nop();                if(Sda)                                   //數(shù)據(jù)位是否為1                        temp=temp|0x11;           //為1 temp的最低位為1(|0x01,就是將最低位變?yōu)?)                else                                   //如果為0                        temp=temp&0xfe;           //temp最低位為0(&0xfe(11111110)最低位就是0)                if(BitCounter-1)           //BitCounter減1后是否為真                {                        temp1=temp<<1;           //temp左移                        temp=temp1;                }                BitCounter--;                   //BitCounter減到0時,數(shù)據(jù)就接收完了        }        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)//----------------延時函數(shù),后面經(jīng)常調(diào)用----------------------void delay(uint xms)//延時函數(shù),有參函數(shù){        uint x,y;        for(x=xms;x>0;x--)         for(y=110;y>0;y--);}//--------------------------寫指令---------------------------void write_1602com(uchar com)//****液晶寫入指令函數(shù)****{        lcd1602_rs=1;//數(shù)據(jù)/指令選擇置為指令        lcd1602_rw=1; //讀寫選擇置為寫        P0=com;//送入數(shù)據(jù)        delay(1);        lcd1602_en=1;//拉高使能端,為制造有效的下降沿做準(zhǔn)備        delay(1);        lcd1602_en=0;//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//-------------------------寫數(shù)據(jù)-----------------------------void write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù)****{        lcd1602_rs=0;//數(shù)據(jù)/指令選擇置為數(shù)據(jù)        lcd1602_rw=1; //讀寫選擇置為寫        P0=dat;//送入數(shù)據(jù)        delay(1);        lcd1602_en=1; //en置高電平,為制造下降沿做準(zhǔn)備        delay(1);        lcd1602_en=0; //en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//-------------------------初始化-------------------------void lcd_init(void){        write_1602com(0x38);//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點陣,8位數(shù)據(jù)        write_1602com(0x0c);//開顯示不顯示光標(biāo)        write_1602com(0x01);//清顯示        write_1602com(0x06);//整屏不移動,光標(biāo)自動右移
回復(fù)

使用道具 舉報

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

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

使用道具 舉報

5#
ID:472268 發(fā)表于 2020-9-9 12:16 | 只看該作者
@壇子,有現(xiàn)成代碼
回復(fù)

使用道具 舉報

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

使用道具 舉報

7#
ID:235954 發(fā)表于 2020-9-9 12:49 | 只看該作者
調(diào)節(jié)電位器,降低一下
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品aaa | 国产日韩精品一区二区 | 色网在线看 | 91久久精品一区二区三区 | 国产www. | 亚洲视频精品 | 国产在线视频一区二区董小宛性色 | 新91视频网 | 亚洲精品一区二区三区蜜桃久 | 日韩精品一区二区三区中文在线 | 奇米四色影视 | 日韩在线不卡 | 黄色一级毛片免费看 | 久久精品国产一区二区电影 | av天天看 | 久久99精品久久 | 欧美一级三级 | www.欧美.com | 国产精品乱码一区二区三区 | 99精品一区二区 | 在线a视频 | 在线国产小视频 | 欧美国产精品一区二区三区 | 国产精品永久免费 | 国产日韩欧美一区二区 | 成人精品免费视频 | 精品久久网 | 精品一区二区久久久久久久网精 | 第四色影音先锋 | 一区二区三区在线播放视频 | 欧美色性 | 国产亚洲高清视频 | 午夜精品久久久久久久久久久久久 | a久久久久久 | 久草在线视频中文 | av中文字幕在线播放 | 久草网址 | 一区二区在线看 | 亚洲有码转帖 | 国产日韩欧美在线 | 日韩精品 电影一区 亚洲 |