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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

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

查看數: 3389 | 評論數: 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-9-8 21:24

正文摘要:

LCD1602上電后只顯示第一行的黑塊,電路也沒有問題,求幫助

回復

ID:235954 發表于 2020-9-9 12:49
調節電位器,降低一下
ID:695749 發表于 2020-9-9 12:21
要將問題描述簡短,便于閱讀。程序更要可閱讀,以上的程序是不好閱讀的
ID:472268 發表于 2020-9-9 12:16
@壇子,有現成代碼
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()丟了,怎么可能正常運行???
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:88256 發表于 2020-9-8 22:47
一般是程序問題,對比度調了嗎?把程序發出來看看

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人国产精品久久 | 成人午夜精品 | 亚洲精品乱码久久久久久蜜桃 | 国产999精品久久久久久 | 久久69精品久久久久久久电影好 | 欧美在线一区二区三区 | 国内精品久久久久久久 | 久久久久久久久久久久久9999 | 日韩一区二区在线视频 | 午夜影院黄 | 一区二区在线免费观看视频 | 毛片免费看 | 99热在线免费 | 中文字幕亚洲精品 | 亚洲欧美日韩精品久久亚洲区 | 国产精品99久久久久久动医院 | 欧美日韩在线视频一区 | 国产一区二区a | 亚洲精品一区中文字幕 | 中文字字幕在线中文乱码范文 | www.4567| 精品久久久久久一区二区 | 日韩不卡一区二区三区 | 91国内精精品久久久久久婷婷 | 亚洲永久字幕 | 伊人精品久久久久77777 | а√中文在线8 | 国偷自产av一区二区三区 | 天天搞夜夜操 | 亚洲一区二区免费视频 | 欧美二三区| 欧美一级一区 | 日韩av电影在线观看 | a级毛片国产 | 视频在线一区二区 | 国产日韩精品久久 | 九九亚洲精品 | 亚洲一区二区三区免费观看 | 国产精品视频yy9299一区 | 国产一区二区三区四区五区3d | 日本欧美国产在线观看 |