#include <REGX51.H>
#include <STRING.H>
#include <INTRINS.H>
#define TURE 1
#define FALSE 0
#define delayus() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
/***************************************
**自定义数据类型
***************************************/
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
/***************************************
**按键消息结构体
***************************************/
typedef struct
{
uint8 handle; //功能索引
uint8 assignments; //键值
uint8 time; //键按下的时间
} K_MSG;
/******************************************
** 端口定义
******************************************/
sbit LCD_E = P2^7;
sbit LCD_RW = P2^6;
sbit LCD_RS = P2^5;
sbit TLED = P2^4;
sbit Uout = P3^7;
sbit Bell = P2^0;
sfr LCD_DOUT = 0x80;
sfr key_interface = 0x90;
/******************************************
** 全局变量
******************************************/
K_MSG kmsg;
bit DisplayUpdataFlag,ClICk_Flag, BellingFlag, MeasureFlag, DelayFlag, MeaDelayExt;
uint8 T0_IRQ_Times, ShowPage, OBScure, PulseCoun, MeaDelayTime;
uint8 DisplayBuff[33];
uint8 RevTimeH;
uint16 RevTimeL;
uint32 RevTime;
uint8 code TestString[]={"www.huayimcu.com"};
/******************************************************************************/
/*******************************************************************************
** 函数名称: LcdDelay
** 功能描述: LCD控制时序用到的延时程序
**
** 输 入: times-延时量
**
** 输 出: 无
**
** 全局变量: 无
** 调用模块: 无
**
** 作 者:
** 日 期: 2007年4月19日
**-------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------
*********************************************************************************/
void LcdDelay(uint8 times)
{
while(times--);
}
/*******************************************************************************
** 函数名称: ReadLCDCR
** 功能描述: 读LCD命令寄存器
**
** 输 入: 无
**
** 输 出: (uint8) 读到的数据
**
** 全局变量: 无
** 调用模块: LcdDelay
**
** 作 者:
** 日 期: 2007年4月19日
**-------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------
*********************************************************************************/
uint8 ReadLCDCR(void)
{
uint8 byte;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 1;
LcdDelay(4);
byte = LCD_DOUT;
LCD_E = 0;
return(byte);
}
/*******************************************************************************
** 函数名称: WriteLCDCR
** 功能描述: 写LCD命令寄存器
**
** 输 入: (uint8 thdata) 将要写进寄存器的数据
**
** 输 出: 无
**
** 全局变量: 无
** 调用模块: LcdDelay
**
** 作 者:
** 日 期: 2007年4月19日
**-------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------
*********************************************************************************/
void WriteLCDCR(uint8 thEDAta)
{
LCD_DOUT = thedata;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 1;
LcdDelay(4);
LCD_E=0;
}
/*******************************************************************************
** 函数名称: WriteLCDDR
** 功能描述: 写LCD数据寄存器
**
** 输 入: (uint8 thedata) 将要写进寄存器的数据
**
** 输 出: 无
**
** 全局变量: 无
** 调用模块: LcdDelay
**
** 作 者:
** 日 期: 2007年4月19日
**-------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------
*********************************************************************************/
void WriteLCDDR(uint8 thedata)
{
LCD_DOUT = thedata;
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 1;
LcdDelay(4);
LCD_E = 0;
}
/*******************************************************************************
** 函数名称: Test_LCDBF
** 功能描述: 检测LCD忙标志
**
** 输 入: 无
**
** 输 出: 无
**
** 全局变量: 无
** 调用模块: ReadLCDCR
**
** 作 者:
** 日 期: 2007年4月19日
**-------------------------------------------------------------------------------