• 大小: 60KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: 矩阵键盘  1602  

资源简介

4*4矩阵键盘+1602液晶显示的proteus仿真实验

资源截图

代码片段和文件信息

#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^0; 
sbit EN=P3^1; 
uchar tab_key[50];
uchar code tab[]=“0123456789abcdef“;
uchar n=0tempkey;

/************声明区***************/
 void lcd_disp(); 
 void lcd_init(); 
 void write_com(uchar); 
 void write_data(uchar); 
 void delay(uint); 
 void key_scan(); 
 void key_manage1(); 
 void key_manage2(); 
 void key_manage3(); 
 void key_manage4(); 
 void key_manage5(); 
 void key_manage6(); 
 void key_manage7();
 void key_manage8(); 
 void key_manage9(); 
 void key_manage10();
 void key_manage11(); 
 void key_manage12(); 
 void key_manage13(); 
 void key_manage14(); 
 void key_manage15(); 
 void key_manage16();

/***********主函数***********/
 void main()
{
  lcd_init();
  write_com(1);
  while(1)
 {
   key_scan();
   lcd_disp(); 
 }
}

/**********LCD显示***********/
 void lcd_disp()
{
  uchar ai=0;
  write_com(0x80);
  for(i=0;i {
   a=tab_key[i];
   write_data(tab[a]); 
 }
}
 
/**********LCD初始**********/
void lcd_init()

 EN=0;
 write_com(0x38); 
 write_com(0x0c);
 write_com(0x06); 
 write_com(0x80); 
}

/**********写命令************/
 void write_com(uchar com)
{
 RS=0; 
 P0=com; 
 delay(3); 
 EN=1; 
 delay(5); 
 EN=0; 
}

/**********写数据************/
void write_data(uchar dat)
{
 RS=1; 
 P0=dat; 
 delay(3); 
 EN=1; 
 delay(5); 
 EN=0; 
}

/**********键扫描************/
void key_scan()
{
  P2=0xfe; 
  temp=P2;
  temp=temp&0xf0;
  if(temp!=0xf0)
 {
   delay(100);
   if(temp!=0xf0)
  {
    temp=P2;
    switch(temp)
   {
     case 0xee:
     key_manage1();
     break;
     case 0xde:
     key_manage2();
     break;
     case 0xbe:
     key_manage3();
     break;
     case 0x7e:
     key_manage4();
     break;
    }
    while(temp!=0xf0)
   {
     temp=P2;
     temp=temp&0xf0;
   }
  }
 }
  P2=0xfd; 
  temp=P2;
  temp=temp&0xf0;
  if(temp!=0xf0)
 {
   delay(100);
   if(temp!=0xf0)
  {
    temp=P2;
    switch(temp)
   {
     case 0xed:
 key_manage5();
   break;
 case 0xdd:
 key_manage6();
 break;
 case 0xbd:
 key_manage7();
 break;
 case 0x7d:
 key_manage8();
 break;
}
   while(temp!=0xf0)
  {
    temp=P2;
    temp=temp&0xf0;
  }
 }
}
  P2=0xfb; 
  temp=P2;
  temp=temp&0xf0;
  if(temp!=0xf0)
 {
   delay(100);
   if(temp!=0xf0)
  {
    temp=P2;
    switch(temp)
   {
 case 0xeb:
 key_manage9();
 break;
 case 0xdb:
 key_manage10();
 break;
 case 0xbb:
 key_manage11();
 break;
 case 0x7b:
 key_manage12();
 break;
    }
     while(temp!=0xf0)
    {
 temp=P2;
 temp=temp&0xf0;
}
   }
  }
    P2=0xf7;
    temp=P2;
    temp=temp&0xf0;
    if(temp!=0xf0)
   {
     delay(100);
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xe7:
key_manage13();
break;
case 0xd7:
key_manage14();
break;
case 0xb7:
key_manage15();
break;
case

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12850  2011-07-03 19:27  441602\Keil\441602-1

     文件       2438  2011-07-03 19:27  441602\Keil\441602-1.hex

     文件         60  2011-07-03 19:27  441602\Keil\441602-1.lnp

     文件      20890  2011-07-03 19:27  441602\Keil\441602-1.M51

     文件       1544  2011-07-03 15:15  441602\Keil\441602-1.plg

    .......     55631  2011-07-03 19:57  441602\Keil\441602-1.uvopt

     文件      13395  2011-04-15 00:41  441602\Keil\441602-1.uvproj

    .......     55629  2011-04-18 20:51  441602\Keil\441602-1_uvopt.bak

     文件          0  2011-04-14 22:59  441602\Keil\441602-1_uvproj.bak

     文件       6376  2009-05-07 14:37  441602\Keil\STARTUP.A51

     文件      14048  2011-07-03 19:27  441602\Keil\STARTUP.LST

     文件        758  2011-07-03 19:27  441602\Keil\STARTUP.OBJ

     文件       3991  2011-07-03 19:57  441602\Keil\text.c

     文件       9805  2011-07-03 19:27  441602\Keil\text.LST

     文件      15055  2011-07-03 19:27  441602\Keil\text.OBJ

     文件      88384  2011-07-03 19:57  441602\Proteus\441602-1.DSN

     文件        768  2011-07-03 19:57  441602\Proteus\441602-1.PWI

     文件      88384  2011-07-03 12:27  441602\Proteus\Last Loaded 441602-1.DBK

     目录          0  2011-07-03 19:57  441602\Keil

     目录          0  2011-07-03 19:57  441602\Proteus

     目录          0  2011-06-22 16:04  441602

----------- ---------  ---------- -----  ----

               390006                    21


评论

共有 条评论