#include "CX-F73-FW.h"
//======================= 函数定义 ==========================
//函数
//===========================================================
//======================= 全局变量 ==========================
//位
bit guc_bitrst; // 工厂复位标致
bit guc_bitKeyUP; // 按键松开标致
//变量
bank1 unsigned char guc_KeyDateTemp; // 按键缓存值
bank1 unsigned char guc_KeyDate; // 键盘得到值
bank1 unsigned char guc_PassChoose; // 密码选取择按键
unsigned char guc_Keybuffer[10]; // 键盘的缓冲区
unsigned char UartSednBuf[16] ; // 发送缓冲区
unsigned char guc_pass_buf[4]; // 密码修改缓冲区
//函数
union OUTU9 fisrout;//,secout; // 74HC595按键
//变量
const unsigned char PassOpen_TAB[4]={0x01,0x04,0x3,0x8};
//===========================================================
//===========================================================
// 语法格式:Scanreadkey(void)
// 实现功能:键盘按描
// 输入参数:无
// 返回参数:无
// 创建时间:2009-05-16 修改时间:
// 创建人员: 修改人员:
//===========================================================
void Scanreadkey(void)
{
unsigned char luc_temp ;
guc_KeyDate = 0xff;
fisrout.byte = (fisrout.byte&0xf0) + 0x0e;
KEY_RCK = 0;
LedShift(fisrout.byte);
KEY_RCK = 1;
luc_temp = (PORTB&0xf0);
switch(luc_temp)
{
case 0x70 : guc_KeyDate=0x0a; break;
case 0xb0 : guc_KeyDate=0x07; break;
case 0xd0 : guc_KeyDate=0x04; break;
case 0xe0 : guc_KeyDate=0x01; break;
default:break;
}
fisrout.byte = (fisrout.byte&0xf0) + 0x0d;
KEY_RCK = 0;
LedShift(fisrout.byte);
KEY_RCK = 1;
luc_temp = (PORTB&0xf0);
switch(luc_temp)
{
case 0x70 : guc_KeyDate=0x00; break;
case 0xb0 : guc_KeyDate=0x08; break;
case 0xd0 : guc_KeyDate=0x05; break;
case 0xe0 : guc_KeyDate=0x02; break;
default:break;
}
fisrout.byte = (fisrout.byte&0xf0) + 0x0b;
KEY_RCK = 0;
LedShift(fisrout.byte);
KEY_RCK = 1;
luc_temp = (PORTB&0xf0);
switch(luc_temp)
{
case 0x70 : guc_KeyDate=0x0b; break;
case 0xb0 : guc_KeyDate=0x09; break;
case 0xd0 : guc_KeyDate=0x06; break;
case 0xe0 : guc_KeyDate=0x03; break;
default:break;
}
}
//===========================================================
// 语法格式:SuceKeyData(void)
// 实现功能:确定按键的值,防止抖动
// 输入参数:无
// 返回参数:按键的值,如果没有按键按下,返回0xff
// 创建时间:2009-05-19 修改时间:
// 创建人员: 修改人员:
//===========================================================
unsigned char SuceKeyData(void)
{
Scanreadkey(); // 扫描是否有输入
if(guc_KeyDate!=0xff && !guc_bitKeyUP)
{
DelayMs(8);
Scanreadkey();
if(guc_KeyDate!=0xff)
{
guc_bitKeyUP = 1;
guc_KeyDateTemp = guc_KeyDate ;
AUDIO_C = 0 ; // 为低电平打开功放
KEY_RCK = 0;
LedShift(fisrout.byte);
KEY_RCK = 1;
guc_bit450Voice = 1;
DelayMs(30);
guc_bit450Voice = 0;
}
}
if(guc_KeyDate==0xff&&guc_bitKeyUP)
{
DelayMs(3);
Scanreadkey();
if(guc_KeyDate==0xff&&guc_bitKeyUP)
{
guc_bitKeyUP = 0 ;
MCPU_LED_C = 1 ; // 打开按键背光灯
guc_RBTTime=1001;
Count_10s = 0;
Count_5s = 0 ;
Count_500ms=0;
DelayMs(50); // 防止按松动,所产生的乱码
return guc_KeyDateTemp ; // 如果有按下,返回键值
}
else return 0xff;
}
else return 0xff;
}
//===========================================================
// 语法格式:DisposeFall(void)
// 实现功能:显示错误
// 输入参数:无
// 返回参数:无
// 创建时间:2009-06-01 修改时间:
// 创建人员: 修改人员:
//===========================================================
void DisposeFall(void)
{
unsigned char luc_i ;
LedShowBuf[0] = 14; LedShowBuf[1] = 14;LedShowBuf[2] = 15; // 显示"eer"
LedShowBuf[3] = 13;LedShowBuf[4] = 13;LedShowBuf[5] = 13;
for(luc_i = 0 ; luc_i < 6 ; luc_i ++)
{
guc_LedBri[luc_i] = LedShowBuf[luc_i];
}
DelayMs(600);
}
//===========================================================
// 语法格式:DispFainOld1(void)
// 实现功能:进入新密码设置
// 输入参数:进入第一次,或第二次密码
// 返回参数:无
// 创建时间:2009-05-16 修改时间:
// 创建人员: 修改人员:
//===========================================================
void DispFainOld(unsigned char auc_type)
{
if(auc_type==1) guc_MenuTemp = MInPassOld1; // 第1次新密码
else if(auc_type==2)guc_MenuTemp = MInPassOld2; // 第2次新密码
LedShowBuf[0] = 3; LedShowBuf[1] = auc_type; // 显示3x----"
LedShowBuf[2] = 12; LedShowBuf[3] = 12;
LedShowBuf[4] = 12 ;LedShowBuf[5] = 12 ;
guc_bitledbrig5 = 1;
guc_KeyLen = 0 ;
}
//===========================================================
// 语法格式:DispFallpeere(void)
// 实现功能:显示密码错误
// 输入参数:无
// 返回参数:无
// 创建时间:2009-06-02 修改时间:
// 创建人员: 修改人员:
//===========================================================
void DispFallpeer(void)
{
unsigned char luc_i ;
LedShowBuf[0] = 17; LedShowBuf[1] = 14;LedShowBuf[2] = 14; // 显示"peer"
LedShowBuf[3] = 15; LedShowBuf[4] = 13;LedShowBuf[5] = 13;
for(luc_i = 0 ; luc_i < 6 ; luc_i ++)
{
guc_LedBri[luc_i] = LedShowBuf[luc_i];
}
DelayMs(600);
}
//===========================================================
// 语法格式:showuuu(void)
// 实现功能:显示"uuu "
// 输入参数:无
// 返回参数:无
// 创建时间:2009-06-02 修改时间:
// 创建人员: 修改人员:
//===========================================================
void showuuu(void)
{
unsigned char luc_i ;
LedShowBuf[0] = 16; LedShowBuf[1] = 16; // 显示"uuu "
LedShowBuf[2] = 16; LedShowBuf[3] = 13;
LedShowBuf[4] = 13 ;LedShowBuf[5] = 13 ;
for(luc_i = 0 ; luc_i < 6 ; luc_i ++)
{
guc_LedBri[luc_i] = LedShowBuf[luc_i];
}
DelayMs(600);
}
//===========================================================
// 语法格式:showuux(void)
// 实现功能:显示"uuux "
// 输入参数:正常显示X
// 返回参数:无
// 创建时间:2009-06-26 修改时间:
// 创建人员: 修改人员:
//===========================================================
void showuux(unsigned char auc_type)
{
unsigned char luc_i ;
LedShowBuf[0] = 16; LedShowBuf[1] = 16; // 显示"uu x"
LedShowBuf[2] = 12; LedShowBuf[3] = 12;
if(auc_type < 10)
{
LedShowBuf[4] = 12; LedShowBuf[5] = auc_type;
}
else
{
LedShowBuf[4] = auc_type/10;
LedShowBuf[5] = auc_type%10;
}
for(luc_i = 0 ; luc_i < 6 ; luc_i ++)
{
guc_LedBri[luc_i] = LedShowBuf[luc_i];
}
DelayMs(600);
Tick_10s = 1; // 退出菜单
}
//===========================================================
// 语法格式:DisposFain
// 实现功能:操作错误显示
// 输入参数:恢复的显示值
// 返回参数:无
// 创建时间:2009-05-31 修改时间:
// 创建人员: 修改人员:
//===========================================================
void DisposFain(unsigned char auc_type)
{
unsigned char luc_i ;
LedShowBuf[0] = auc_type ; // 第n位显示''
for(luc_i = 1 ; luc_i < 6 ; luc_i ++)
{
LedShowBuf[luc_i] = 12 ; // 第1-6位显示'-'
}
guc_bitledbrig5 = 1;
guc_KeyLen = 0 ; // 按键长度清0
}
//===========================================================
// 语法格式:IntoClockPass
// 实现功能:进入开锁密码
// 输入参数:无
// 返回参数:无
// 创建时间:2009-08-22 修改时间:
// 创建人员: 修改人员:
//===========================================================
void IntoClockPass(void)
{
guc_MenuTemp = MInPass ;
guc_PassChoose = 1; // 进入开锁密码
}
//===========================================================
// 语法格式:IntoClockChoose(void)
// 实现功能:进入开锁选择
// 输入参数:无
// 返回参数:无
// 创建时间:2009-10-07 修改时�
- 1
- 2
前往页