找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 3341|回復(fù): 1
收起左側(cè)

矩陣鍵盤(pán)1-16平方lcd1602顯示

[復(fù)制鏈接]
ID:70929 發(fā)表于 2015-7-4 21:42 | 顯示全部樓層 |閱讀模式
論壇新人,今天調(diào)試出矩陣鍵盤(pán)1-16平方,lcd1602顯示,現(xiàn)拿出,請(qǐng)大家指教。以下是程序:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar table[]="0123456789";
uchar num;

sbit lcd1602RS=P2^6;
sbit lcd1602RW=P2^5;
sbit lcd1602EN=P2^7;

void keyscan();
void delay(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}
void delay1us()
{
   uchar x,y;
   for(x=10;x>0;x--)
     for(y=110;y>0;y--);
}
void lcd1602write(uchar com)  //lcd1602
{
         lcd1602RS=0;
         lcd1602RW=0;
         lcd1602EN=0;
         P0=com;
         delay(10);
         lcd1602EN=1;
         delay(10);
         lcd1602EN=0;
}
void lcd1602read(uchar date)
{
     lcd1602RS=1;
         lcd1602RW=0;
         lcd1602EN=0;
         P0=date;
         delay(10);
         lcd1602EN=1;
         delay(10);
         lcd1602EN=0;
}
void lcd1602init()
{
   lcd1602write(0x38);
   delay(15);
   lcd1602write(0x38);
   delay(5);
   lcd1602write(0x38);
   delay(5);
   lcd1602write(0x01);
   lcd1602write(0x08);
   lcd1602write(0x06);
   lcd1602write(0x0c);
}
void main()
{
        lcd1602init();
        while(1)
        {
            keyscan();           
            lcd1602write(0x80);      
               lcd1602read(table[(num*num)/100]);

                lcd1602write(0x81);      
               lcd1602read(table[(num*num)%100/10]);

                lcd1602write(0x82);      
               lcd1602read(table[(num*num)%10]);       
        }
}
void keyscan()  //矩陣鍵盤(pán)掃描
{
         if(P1!=0x7f)
           {
                     delay1us();
                  if(P1!=0x7f)
                  {
                            P1=0x7f;
                          switch(P1)
                          {
                                   case(0x77):num=1;break;
                                 case(0x7b):num=2;break;
                                 case(0x7d):num=3;break;
                                 case(0x7e):num=4;break;
                          }
                          while(P1!=0x7f);
                  }
        }
           if(P1!=0xbf)
           {
                     delay1us();
                  if(P1!=0xbf)
                  {
                            P1=0xbf;
                          switch(P1)
                          {
                                   case(0xb7):num=5;break;
                                 case(0xbb):num=6;break;
                                 case(0xbd):num=7;break;
                                 case(0xbe):num=8;break;
                          }
                          while(P1!=0xbf);
                  }
        }
      if(P1!=0xdf)
           {
                     delay1us();
                  if(P1!=0xdf)
                  {
                            P1=0xdf;
                          switch(P1)
                          {
                                   case(0xd7):num=9;break;
                                 case(0xdb):num=10;break;
                                 case(0xdd):num=11;break;
                                 case(0xde):num=12;break;
                          }
                          while(P1!=0xdf);
                  }
        }
           if(P1!=0xef)
           {
                     delay1us();
                  if(P1!=0xef)
                  {
                            P1=0xef;
                          switch(P1)
                          {
                                   case(0xe7):num=13;break;
                                 case(0xeb):num=14;break;
                                 case(0xed):num=15;break;
                                 case(0xee):num=16;break;
                          }
                          while(P1!=0xef);
                  }
                }
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎(jiǎng)勵(lì)!有個(gè)電路圖就完美了

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:985169 發(fā)表于 2021-12-5 20:21 | 顯示全部樓層
看不懂,有大佬解釋一下嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表