/****************************************************************************** 函数名称:Get_Passwd 功能描述:验证密码进入设置POS号状态 参数描述: 参数名称: 输入/输出? 类型 描述 返 回 值:ok(0)-验证成功 notok(0xFF)-验证失败 作 者 :刘及华 日 期:2005-05-20 修改历史: 日期 修改人 修改描述 ------ --------- ------------- ******************************************************************************/ INT8U Get_Passwd(void) { INT8U i; INT8U key_seq[20]; INT8S *password = (INT8S *)"22995757"; INT8U buf[20]; ToggleWD(); Lcd_Cls(); lcddisp(1, 1, "请输入密码: "); Beep(50); SleepMs(50); Beep(50); SleepMs(50); Beep(50); SleepMs(1000); for ( i=0; i<8; i++ ) //取得8个按键输入 { do //only accept 0-9, '+', '-' { key_seq[i] = get_key(); }while ( !( (key_seq[i]>='0' && key_seq[i]<='9') ) ); buf[strlen((void *)buf) - 1] = '\0'; strcat((void *)buf, (void *)"*_"); // LCD_Display_Str(2, 0, buf, NORMAL); lcddisp(2, 1, buf); // OSTimeDlyHMSM(0, 0, 0, 150); OSTimeDlyHMSM(0, 0, 0, 100); } key_seq[i] = '\0'; if ( strcmp((void *)key_seq, (void *)password) != 0 ) //密码错误 { lcddisp(2, 2, "密码错误"); OSTimeDlyHMSM(0, 0, 1, 0); return notok; } lcddisp(2, 2, "密码正确"); lcddisp(3, 0, "执行格式化操作.."); OS_ENTER_CRITICAL(); InitImportantParameter(); OS_EXIT_CRITICAL(); OSTimeDlyHMSM(0, 0, 1, 0); //为了显示能看清 resetpos(); return ok; }
/***************************************************************** 函数原型: System_Init() 功能描述:器件类初始化 参数描述: 返回值: 无 作 者: 大连现代/刘及华 日 期: 2004-09-17 修改历史: 日期 修改人 修改描述 ------ --------- ------------- *****************************************************************/ INT8U System_Check(void) { ToggleWD(); Lcd_Cls(); lcddisp(1, 1, "系统自检中..."); if ( DevStat.err_occured == TRUE ) return notok; return ok; }
/****************************************************************************** 函数名称:DisplayVersion 功能描述:开机显示版本号 参数描述: 参数名称: 输入/输出? 类型 描述 version 输入 const char* 要显示的版本号,例如输入0x00 0x01 则显示0.0.1 返 回 值:无 作 者 :刘及华 日 期:2004-09-02 修改历史: 日期 修改人 修改描述 ------ --------- ------------- ******************************************************************************/ void DisplayVersion(const char * version) { ToggleWD(); Lcd_Cls(); #ifdef DEBUG lcddisp(1, 0, "测试"); #else #endif lcddisp(1, 2, VERSION); }
BOOL Lcd_Open( VOID ) { UCHAR const lockKey = Int_Lock(); if( gLcd_Is_Open != E_LCD_IS_OPEN_FREE ) { Int_Unlock( lockKey ); return FALSE; } gLcd_Is_Open = E_LCD_IS_OPEN_USING; Int_Unlock( lockKey ); cbi( REG_PORT(D_LCD_EN_PORT_NAME), BIT_PORT(D_LCD_EN_PORT_NAME, D_LCD_EN_BIT) ); // EN=0 // out port 設定 sbi( REG_DDR(D_LCD_D7_PORT_NAME), BIT_DDR(D_LCD_D7_PORT_NAME, D_LCD_D7_BIT) ); sbi( REG_DDR(D_LCD_D6_PORT_NAME), BIT_DDR(D_LCD_D6_PORT_NAME, D_LCD_D6_BIT) ); sbi( REG_DDR(D_LCD_D5_PORT_NAME), BIT_DDR(D_LCD_D5_PORT_NAME, D_LCD_D5_BIT) ); sbi( REG_DDR(D_LCD_D4_PORT_NAME), BIT_DDR(D_LCD_D4_PORT_NAME, D_LCD_D4_BIT) ); sbi( REG_DDR(D_LCD_RS_PORT_NAME), BIT_DDR(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); sbi( REG_DDR(D_LCD_EN_PORT_NAME), BIT_DDR(D_LCD_EN_PORT_NAME, D_LCD_EN_BIT) ); _delay_ms( LCD_WAIT_FACTOR(15) ); //15ms以上wait // デフォルト設定 8bitモード cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x3 ); _Lcd_ToggleE(); _delay_ms( LCD_WAIT_FACTOR(5) ); //5ms以上wait // デフォルト設定 8bitモード cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x3 ); _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(100) ); //100us以上wait // デフォルト設定 8bitモード cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x3 ); _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(40) ); //wait 40us // デフォルト設定 8bit->4bitモード cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x2 ); _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(40) ); //wait 40us // ファンクションセット cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x2 ); // Hi _Lcd_ToggleE(); _Lcd_Write_Data( 0x8 ); // Lo _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(40) ); //wait 40us // 表示on/off初期化 cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x0 ); // Hi _Lcd_ToggleE(); _Lcd_Write_Data( 0x8 ); // Lo _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(40) ); //wait 40us // エントリーモードセット cbi( REG_PORT(D_LCD_RS_PORT_NAME), BIT_PORT(D_LCD_RS_PORT_NAME, D_LCD_RS_BIT) ); _Lcd_Write_Data( 0x0 ); // Hi _Lcd_ToggleE(); _Lcd_Write_Data( 0x6 ); // Hi _Lcd_ToggleE(); _delay_us( LCD_WAIT_FACTOR(40) ); //wait 40us Lcd_Cls(); // 表示クリア return TRUE; }