亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcd.c

?? 程序概述: 這是個(gè)具體產(chǎn)品程序
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
			memcpy(&DispBuffer[0][1], "請(qǐng)輸入卡號(hào):     ", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], &BlankLine, DISP_BUF_LENGTH);
		for (i=1; i<=KeyBuffer[0]; i++)
		{
			DispBuffer[1][DISP_BUF_LENGTH-KeyBuffer[0]+i] = KeyBuffer[i]+0x30;
		}
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_SetupAddTempCardDoor:       // 輸入該卡持卡人所在的房間號(hào)
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "輸入持卡人房號(hào):", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], "      __棟__單元", DISP_BUF_LENGTH);
		for (i=1; i<=KeyBuffer[0]; i++)
		{
			DispBuffer[1][SetupAddTempCardDoorDispOrder[i]] = KeyBuffer[i]+0x30;
		}
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_SetupAddTempCardEndTime:    // 輸入該臨時(shí)卡的使用期限
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "設(shè)定該卡使用期限", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], "20__-__-__ __:__", DISP_BUF_LENGTH);
		for (i=1; i<=KeyBuffer[0]; i++)
		{
			DispBuffer[1][SetupTimeDispOrder[i]] = KeyBuffer[i] + 0x30;
		}
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_SetupDoubleClickTime:
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "設(shè)定按鍵雙擊時(shí)間", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], "__0ms  ->  __0ms", DISP_BUF_LENGTH);
		DispBuffer[1][1] = (DoubleKeyPressTimer / 10) | 0x30;
		DispBuffer[1][2] = (DoubleKeyPressTimer % 10) | 0x30;
		if (DispBuffer[1][1] == '0')
		{
			DispBuffer[1][1] = ' ';
		}

		for (i=1; i<=KeyBuffer[0]; i++)
		{
			DispBuffer[1][12] = DispBuffer[1][13];
			DispBuffer[1][13] = KeyBuffer[i] + 0x30;
		}

		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_Alarming_F:             // 分機(jī)正在報(bào)警報(bào)警
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "緊急報(bào)警:      ", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], "來自__棟____房間", DISP_BUF_LENGTH);
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_Alarming_M:             // 門口機(jī)報(bào)警
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "門口機(jī)故障報(bào)警:", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], "  來自__棟__單元", DISP_BUF_LENGTH);
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_FindMenu:
	{
		break;
	}
	case Status_FindAlarmRecord:        // 查詢報(bào)警記錄
	{
		if (AlarmRecord.Addr[3] == 0x00)// 如果報(bào)警地址是從門口機(jī)過來的,則
		{
			memcpy(&DispBuffer[0][1], "___.  __棟__單元", DISP_BUF_LENGTH);
			DispBuffer[0][7]  = (AlarmRecord.Addr[1] >> 4) | 0x30;
			DispBuffer[0][8]  = (AlarmRecord.Addr[1]&0x0F) | 0x30;
			
			DispBuffer[0][11] = (AlarmRecord.Addr[2] / 10) | 0x30;
			DispBuffer[0][12] = (AlarmRecord.Addr[2] % 10) | 0x30;
			DispBuffer[0][0] = 0x01;
		}
		else                            // 如果報(bào)警地址是從室內(nèi)分機(jī)過來的,則
		{
			memcpy(&DispBuffer[0][1], "___.  __棟____房", DISP_BUF_LENGTH);
			DispBuffer[0][7]  = (AlarmRecord.Addr[1] >> 4) | 0x30;	// 樓棟
			DispBuffer[0][8]  = (AlarmRecord.Addr[1]&0x0F) | 0x30;

			DispBuffer[0][11] = (AlarmRecord.Addr[2] / 10) | 0x30;	// 樓層
			DispBuffer[0][12] = (AlarmRecord.Addr[2] % 10) | 0x30;
			DispBuffer[0][13] = (AlarmRecord.Addr[3] / 10) | 0x30;	// 房號(hào)
			DispBuffer[0][14] = (AlarmRecord.Addr[3] % 10) | 0x30;
			DispBuffer[0][0] = 0x01;
		}

		if (AlarmRecord.Index > 512)       // 超出范圍
		{
			DispBuffer[0][1] = 'x';
			DispBuffer[0][2] = 'x';
			DispBuffer[0][3] = 'x';
		}
		else
		{
			DispBuffer[0][1] = (AlarmRecord.Index/100) | 0x30;
			i = AlarmRecord.Index % 100;
			DispBuffer[0][2] = (i/10) | 0x30;
			DispBuffer[0][3] = (i%10) | 0x30;
		}

		DispBuffer[1][1] = 0x02+0x30;
		DispBuffer[1][2] = 0x00+0x30;
		DispBuffer[1][3] = (AlarmRecord.Time.Year >> 4) | 0x30;
		DispBuffer[1][4] = (AlarmRecord.Time.Year&0x0F) | 0x30;
		DispBuffer[1][5] = '/';
		// 月份, 2位數(shù)
		DispBuffer[1][6] = (AlarmRecord.Time.Month >> 4) | 0x30;
		DispBuffer[1][7] = (AlarmRecord.Time.Month&0x0F) | 0x30;
		DispBuffer[1][8] = '/';
		// 日期, 2位數(shù)
		DispBuffer[1][9] = (AlarmRecord.Time.Date >> 4) | 0x30;
		DispBuffer[1][10] = (AlarmRecord.Time.Date&0x0F) | 0x30;
		DispBuffer[1][11] = ' ';
		// 小時(shí), 2位數(shù)
		DispBuffer[1][12] = (AlarmRecord.Time.Hour >> 4) | 0x30;
		DispBuffer[1][13] = (AlarmRecord.Time.Hour&0x0F) | 0x30;
		DispBuffer[1][14] = ':';
		// 分鐘, 2位數(shù)
		DispBuffer[1][15] = (AlarmRecord.Time.Minute >> 4) | 0x30;
		DispBuffer[1][16] = (AlarmRecord.Time.Minute&0x0F) | 0x30;
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_DelAlarmRecordFirst:    // 詢問是否刪除當(dāng)前這項(xiàng)報(bào)警記錄
	{
		memcpy(&DispBuffer[0][1], "是否刪除這項(xiàng)記錄", DISP_BUF_LENGTH);
		memcpy(&DispBuffer[1][1], "1.刪除  0.取消  ", DISP_BUF_LENGTH);
		DispBuffer[0][0] = 0x01;
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_SetupCheckDoorIntervalTime: // 正在設(shè)置管理機(jī)輪檢門口機(jī)的時(shí)間間隔
	{
		if (bForce)
		{
			memcpy(&DispBuffer[0][1], "設(shè)定輪檢時(shí)間    ", DISP_BUF_LENGTH);
			DispBuffer[0][0] = 0x01;
		}
		memcpy(&DispBuffer[1][1], " __0秒 ->  __0秒", DISP_BUF_LENGTH);
		DispBuffer[1][2] = (CheckDoorIntervalTimer / 10) | 0x30;
		DispBuffer[1][3] = (CheckDoorIntervalTimer % 10) | 0x30;
		if (DispBuffer[1][2] == '0')
		{
			DispBuffer[1][2] = ' ';
			if (DispBuffer[1][3] == '0')
			{
				DispBuffer[1][3] = ' ';
			}
		}
		for (i=1; i<=KeyBuffer[0]; i++)
		{
			DispBuffer[1][12] = DispBuffer[1][13];
			DispBuffer[1][13] = KeyBuffer[i] + 0x30;
		}
		DispBuffer[1][0] = 0x01;
		break;
	}
	case Status_ShowingMessage:         // 顯示消息的時(shí)候不改變顯示緩沖區(qū)的內(nèi)容
	{
		break;
	}
	default:            // 
		break;
	}
//*/
}

//
// 更新顯示
void UpdateDisp(BOOL bForce)
{
	if (bForce || ((DispBuffer[0][0]&0x7F) != 0x00))
	{
		DispBuffer[0][0] &= 0x80;
		LCD_WriteString(0x80, &DispBuffer[0][1], DISP_BUF_LENGTH);
	}
	if (bForce || ((DispBuffer[1][0]&0x7F) != 0x00))
	{
		DispBuffer[1][0] &= 0x80;
		LCD_WriteString(0x90, &DispBuffer[1][1], DISP_BUF_LENGTH);
	}

	// 以下決定哪一行需要反白顯示
	if ((DispBuffer[0][0] & 0x80) == 0x00)
	{
		if (FirstLineReverseDisp == TRUE)
		{
			ReverseDisp(0x01);
			FirstLineReverseDisp = FALSE;
		}
	}
	if ((DispBuffer[1][0] & 0x80) == 0x00)
	{
		if (SecondLineReverseDisp == TRUE)
		{
			ReverseDisp(0x02);
			SecondLineReverseDisp = FALSE;
		}
	}
	if (DispBuffer[0][0] & 0x80)      // 如果要求第一行反白顯示
	{
		if (FirstLineReverseDisp == FALSE)      // 而當(dāng)前卻是正常顯示
		{
			ReverseDisp(0x01);
			FirstLineReverseDisp = TRUE;
		}
	}
	if (DispBuffer[1][0] & 0x80)    // 如果要求第二行反白顯示
	{
		if (SecondLineReverseDisp == FALSE) // 而當(dāng)前卻是正常顯示
		{
			ReverseDisp(0x02);
			SecondLineReverseDisp = TRUE;
		}
	}
}

// 寫字符串程序
// Addr:    目標(biāo)地址
// pData:   指向待寫入的數(shù)據(jù)的指針
// nLength: 待寫入的數(shù)據(jù)的長(zhǎng)度(以字節(jié)表示)
void LCD_WriteString(BYTE Addr, const BYTE *pData, BYTE nLength)
{
	LcdWriteControlData(Addr);
	do {
		LcdWriteRam(*pData++);
	} while (--nLength);
}

// 
// 反白顯示,第一行反白sel+3=0x04, 第二行反白sel+3=0x05;
// 如果本來這一行是反白顯示,再次調(diào)用這個(gè)函數(shù)則變?yōu)檎o@示
void ReverseDisp(BYTE sel)
{
	LcdWriteControlData(0x34);	//使用擴(kuò)展指令集
	LcdWriteControlData(sel+3);
	LcdWriteControlData(0x30);	//恢復(fù)到普通指令集
}

// 寫命令
void LcdWriteControlData(BYTE aData)
{
    BYTE i;
	BYTE temp;

	LcdCS = 0;                  // CS輸出低
	LcdCLK = 0;                 // CLK輸出低
	LcdCS = 1;                  // CS輸出高

	// 1111,1000b
	temp = 0xF8;
	for (i=0; i<8; i++)
	{
		LcdSDI = (temp & 0x80);
		temp <<= 1;
		LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
	}

	// 數(shù)據(jù)
	temp = (aData & 0xF0);      // 先輸出高4位外加4個(gè)0
	for (i=0; i<8; i++)
    {
		LcdSDI = (temp & 0x80);
        temp <<= 1;
        LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
    }
	temp = (aData << 4);        // 再輸出低4位外加4個(gè)0
    for (i=0; i<8; i++)
    {
		LcdSDI = temp & 0x80;
        temp <<= 1;
		LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
    }

    LcdCS = 0;                  // CS輸出低
	Delayus(75);
}

// 寫ASIC碼字符
void LcdWriteRam(BYTE aData)
{
    BYTE i;
	BYTE temp;

	LcdCS = 0;                  // CS輸出低
	LcdCLK = 0;                 // CLK輸出低
	LcdCS = 1;                  // CS輸出高

	// 1111,1010
	temp = 0xFA;
	for (i=0; i<8; i++)
	{
		LcdSDI = (temp & 0x80);
		temp <<= 1;
		LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
	}

	// 數(shù)據(jù)
	temp = (aData & 0xF0);      // 先輸出高4位外加4個(gè)0
	for (i=0; i<8; i++)
    {
		LcdSDI = (temp & 0x80);
        temp <<= 1;
        LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
    }
	temp = (aData << 4);        // 再輸出低4位外加4個(gè)0
    for (i=0; i<8; i++)
    {
		LcdSDI = temp & 0x80;
        temp <<= 1;
		LcdCLK = 1;             // CLK輸出為高
		LcdCLK = 0;             // CLK輸出低
    }

	LcdCS = 0;                  // CS輸出低
	Delayus(75);
}

/*----------------------------------------------------------------------------+
| End of source file                                                          |
+----------------------------------------------------------------------------*/
/*------------------------ Nothing Below This Line --------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线观看网站| 亚洲高清视频的网址| 国产一区视频导航| 舔着乳尖日韩一区| 亚洲成在人线免费| 亚洲高清在线精品| 日本不卡一区二区三区| 精品久久久久久久久久久院品网| 蜜臀va亚洲va欧美va天堂| 久久品道一品道久久精品| 成人免费观看男女羞羞视频| 亚洲男人电影天堂| 一区二区三区四区不卡视频| 日韩午夜小视频| 精品少妇一区二区三区免费观看| 成人h版在线观看| 成人性生交大片免费看在线播放| 亚洲激情五月婷婷| 亚洲国产综合人成综合网站| 26uuu国产日韩综合| 色诱视频网站一区| 欧美精品三级在线观看| 国产aⅴ综合色| 色中色一区二区| 日韩一区二区视频在线观看| 福利视频网站一区二区三区| 亚洲综合在线观看视频| 久久综合九色综合欧美98| 色偷偷久久一区二区三区| 久久精品国产在热久久| 亚洲专区一二三| 国产真实精品久久二三区| 亚洲成人综合网站| 国产成人综合在线播放| 日韩专区一卡二卡| 国产成人午夜高潮毛片| 麻豆精品一区二区三区| 一区二区三区四区蜜桃| 国产精品色哟哟网站| 亚洲精品在线免费观看视频| 欧美体内she精高潮| 不卡一二三区首页| 日韩一卡二卡三卡四卡| 欧美日韩中文另类| 久久久久久9999| 日韩国产高清在线| av成人免费在线| 欧美一区二区三区啪啪| 国产精品亚洲视频| 3751色影院一区二区三区| 色哟哟国产精品| 欧美韩日一区二区三区四区| 精品国产不卡一区二区三区| 欧美一级国产精品| 中文字幕在线不卡| 国产成人免费在线观看不卡| 国产馆精品极品| 欧美猛男gaygay网站| 欧美日韩中文精品| 亚洲伦在线观看| 国产成人无遮挡在线视频| 紧缚捆绑精品一区二区| 九九**精品视频免费播放| 蜜桃久久久久久久| 8x福利精品第一导航| 欧美另类高清zo欧美| 日韩欧美中文一区二区| 久久综合中文字幕| 毛片不卡一区二区| 欧美精品精品一区| 亚洲一级在线观看| 精品视频在线视频| 亚洲精品乱码久久久久久久久| 亚洲美女一区二区三区| 亚洲一区视频在线观看视频| 午夜欧美视频在线观看| 日av在线不卡| 欧美不卡在线视频| 激情综合色播五月| 国产亚洲欧洲一区高清在线观看| 日韩一区二区在线播放| 国产偷国产偷精品高清尤物| 日韩毛片视频在线看| 亚洲精品精品亚洲| 欧美日韩精品一区视频| 欧美精品免费视频| 另类欧美日韩国产在线| 国产盗摄女厕一区二区三区| 色婷婷av一区二区三区软件 | 欧美片网站yy| 天天亚洲美女在线视频| 国产一区二区在线免费观看| 99久久国产综合精品麻豆| 欧美精品一级二级三级| 国产欧美一区二区精品性色| 亚洲国产wwwccc36天堂| 国产乱人伦精品一区二区在线观看| 97国产精品videossex| 日韩精品一区二区三区四区视频| 中文字幕一区三区| 欧美综合亚洲图片综合区| 国产香蕉久久精品综合网| 亚洲一线二线三线久久久| 国产麻豆成人精品| 亚洲欧洲韩国日本视频| 紧缚捆绑精品一区二区| 欧美日韩精品二区第二页| 国产日韩精品一区二区三区在线| 五月天网站亚洲| 337p粉嫩大胆噜噜噜噜噜91av| 国产亚洲精品精华液| 婷婷久久综合九色国产成人| 91丝袜美腿高跟国产极品老师 | 国产制服丝袜一区| 亚洲手机成人高清视频| 国产精品一区二区三区网站| 欧美精品一级二级三级| 夜夜嗨av一区二区三区四季av| 国产精品一二三四| 亚洲成年人网站在线观看| 色悠久久久久综合欧美99| 国产亚洲精品bt天堂精选| 麻豆高清免费国产一区| 欧美精品aⅴ在线视频| 亚洲精品成人悠悠色影视| 成人视屏免费看| 蜜臀va亚洲va欧美va天堂| 欧美丰满一区二区免费视频| 亚洲激情综合网| 国产精品你懂的| 久久综合久久综合九色| 男男gaygay亚洲| 亚洲123区在线观看| 欧美日韩mp4| 一本久久a久久精品亚洲| 亚洲欧美另类在线| 欧美激情综合五月色丁香小说| 国产精品亚洲第一| 狠狠色伊人亚洲综合成人| 26uuu久久天堂性欧美| 国产精品资源在线| 久久se这里有精品| 免费成人你懂的| 日韩成人一级大片| 日韩在线观看一区二区| 在线观看国产日韩| 在线精品观看国产| 色呦呦一区二区三区| 亚洲成人动漫在线免费观看| 欧美一区二区三区免费| 精品亚洲国内自在自线福利| 久久精品日韩一区二区三区| 菠萝蜜视频在线观看一区| 亚洲精品视频一区二区| 欧美中文字幕久久| 欧美日韩电影在线| 在线不卡a资源高清| 韩国精品主播一区二区在线观看| 久久青草国产手机看片福利盒子| 成人综合在线网站| 99久久婷婷国产综合精品电影| 亚洲精品一二三区| 亚洲国产日韩a在线播放性色| 日韩亚洲电影在线| 久久噜噜亚洲综合| 亚洲欧洲av色图| 亚洲一区二区五区| 午夜一区二区三区视频| 国产亚洲一区字幕| 综合精品久久久| 亚洲一区二区三区在线看| 亚洲精品一区二区精华| 91福利在线播放| 欧美一区永久视频免费观看| 国产成人精品影视| 91日韩精品一区| 91麻豆精品国产91久久久久久| 国产揄拍国内精品对白| 亚洲激情一二三区| 免费在线视频一区| 成人黄色电影在线| 欧美无人高清视频在线观看| 国产一区二区在线视频| 亚洲成a人片在线不卡一二三区| 久久女同精品一区二区| 欧美精品黑人性xxxx| 色哟哟精品一区| 精品国产成人在线影院| 在线播放一区二区三区| 91麻豆蜜桃一区二区三区| 国产精品资源在线看| 蜜桃av噜噜一区二区三区小说| 一区二区成人在线| 狠狠色丁香婷婷综合| 日本美女视频一区二区| 亚洲精品国产精品乱码不99| 亚洲国产精品激情在线观看| 精品国产精品一区二区夜夜嗨| 欧美日韩国产免费一区二区| av电影天堂一区二区在线|