• 大小: 1.29MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-31
  • 语言: 其他
  • 标签:

资源简介

51单片机上的矩阵键盘程序,分别由汇编和C编写。经验证,能成功运行

资源截图

代码片段和文件信息


/********************************************************************************
*  描述:                                                                       *    
*        矩阵键盘1602液晶显示键值                                              *    
*   连接方法:JP8(P1) 与JP4(矩阵键盘接口) 连接                             *    
*         矩阵键盘定义:                                                       *
*         P1.1-P1.4为列线P1.4-P1.7为行线                                      *    
*         喇叭接P1.5口  矩阵键盘P1口,                                         *    
*  注意:请将JP165短路冒断开                                                   *                            
********************************************************************************/


#include 
#include 
                
#define uchar unsigned char
#define uint  unsigned int

uchar  dis_buf;            //显示缓存
uchar  temp;
uchar  key;                //键顺序吗
void delay0(uchar x);      //x*0.14MS

sbit LCD_RW = P2^5;
sbit LCD_RS = P2^6;             
sbit LCD_EN = P2^7;

uchar cdis1[16] = {“  KEY NUMBER   “};
uchar cdis2[16] = {“  KEY-CODE:   H “};

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

/*************************************************************/
/*                                                           */
/* 延时子程序                                                */
/*                                                           */
/*************************************************************/

void  delay(uchar x)
{ uchar j;
    while((x--)!=0)
    { for(j=0;j<125;j++)
         {;}
    }
}

/*************************************************************/
/*                                                           */
/*检查LCD忙状态                                              */
/*lcd_busy为1时,忙,等待。lcd-busy为0时闲,可写指令与数据  */
/*                                                           */
/*************************************************************/ 

bit lcd_busy()
 {                          
    bit result;
    LCD_RS = 0;
    LCD_RW = 1;
    LCD_EN = 1;
    delayNOP();
    result = (bit)(P0&0x80);
    LCD_EN = 0;
    return(result); 
 }

/*******************************************************************/
/*                                                                 */
/*写指令数据到LCD                                                  */
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。                             */
/*                                                                 */
/*******************************************************************/

void lcd_wcmd(uchar cmd)

{                          
   while(lcd_busy());
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_EN = 0;
    _nop_();
    _nop_(); 
    P0 = cmd;
    delayNOP();
    LCD_EN = 1;
    delayNOP();
    LCD_EN = 0;  
}

/*******************************************************************/
/*                                                                 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-04-29 13:45  矩阵键盘\
     目录           0  2011-04-29 13:45  矩阵键盘\1602显示键值\
     目录           0  2011-04-29 13:45  矩阵键盘\1602显示键值\c语言\
     文件        8414  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key
     文件        7858  2010-04-12 21:51  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.c
     文件        1726  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.hex
     文件          72  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.lnp
     文件       12782  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.LST
     文件       12472  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.M51
     文件        9029  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.OBJ
     文件        1275  2010-04-12 22:48  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.Opt
     文件         182  2010-04-12 22:48  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.plg
     文件        2055  2009-01-11 11:42  矩阵键盘\1602显示键值\c语言\LCD1602P1Key.Uv2
     文件        1274  2009-11-15 11:48  矩阵键盘\1602显示键值\c语言\LCD1602P1Key_Opt.Bak
     文件        2055  2009-01-09 22:17  矩阵键盘\1602显示键值\c语言\LCD1602P1Key_Uv2.Bak
     文件        5115  2002-04-16 14:32  矩阵键盘\1602显示键值\c语言\STARTUP.A51
     文件       11665  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\STARTUP.LST
     文件         749  2009-11-05 10:37  矩阵键盘\1602显示键值\c语言\STARTUP.OBJ
     文件         788  2009-11-05 11:36  矩阵键盘\1602显示键值\排线连接方法.txt
     文件       92864  2010-03-15 10:51  矩阵键盘\1602显示键值\接线图.jpg
     目录           0  2011-04-29 13:45  矩阵键盘\1602显示键值\汇编\
     文件        1970  2009-11-05 11:36  矩阵键盘\1602显示键值\汇编\lcd+button
     文件        1086  2009-11-05 11:36  矩阵键盘\1602显示键值\汇编\lcd+button.hex
     文件          51  2009-11-05 11:36  矩阵键盘\1602显示键值\汇编\lcd+button.lnp
     文件        9323  2009-11-05 11:36  矩阵键盘\1602显示键值\汇编\lcd+button.M51
     文件         977  2009-11-15 17:48  矩阵键盘\1602显示键值\汇编\lcd+button.Opt
     文件         189  2009-11-15 17:48  矩阵键盘\1602显示键值\汇编\lcd+button.plg
     文件        2000  2009-03-28 21:28  矩阵键盘\1602显示键值\汇编\lcd+button.Uv2
     文件         974  2009-11-05 11:36  矩阵键盘\1602显示键值\汇编\lcd+button_Opt.Bak
     文件           0  2009-03-28 21:05  矩阵键盘\1602显示键值\汇编\lcd+button_Uv2.Bak
     文件        8070  2009-11-05 11:33  矩阵键盘\1602显示键值\汇编\lcd1602jz.asm
............此处省略22个文件信息

评论

共有 条评论

相关资源