您当前的位置:五五电子网电子知识单片机-工控设备51单片机1602液晶显示按键键值程序 正文
1602液晶显示按键键值程序

1602液晶显示按键键值程序

点击数:7496 次   录入时间:03-04 11:58:30   整理:http://www.55dianzi.com   51单片机
#include <reg51.h>
#include <intrins.h>
                    
#define uchar unsigned char
#define uint  unsigned int

sbit BEEP = P3^7;          //蜂鸣器驱动线
uchar  dis_buf;            //显示缓存
uchar  temp;
uchar  key;                //键顺序吗

void beep();               //蜂鸣器
void delay0(uchar x);      //x*0.14MS

sbit LCD_RS = P2^0;             
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;

uchar code  cdis1[ ] = {"   KEY NUMBER   "};
uchar code  cdis2[ ] = {"  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;  
}

/*******************************************************************/
/*                                                                 */
/*写显示数据到LCD                                                  */
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。                               */

[1] [2] [3] [4]  下一页


本文关键字:程序  51单片机单片机-工控设备 - 51单片机