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

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

?? key.asm

?? Input method of font
?? ASM
字號:
//======================================================
//  The information contained herein is the exclusive property of
//  Sunnnorth Technology Co. And shall not be distributed, reproduced,
//  or disclosed in whole in part without prior written permission.
//             (C) COPYRIGHT 2003  SUNNORTH TECHNOLOGY CO.
//                          ALL RIGHTS RESERVED
//  The entire notice above must be reproduced on all authorized copies.
//========================================================

//============================================================
// 文件名稱:Key.asm
// 實現(xiàn)功能:4*4按鍵掃描程序,使用IRQ6_TMB2中斷(128Hz)
// 日期:    2005/6/18
//============================================================

//================================================
//	按鍵去抖動時間設(shè)定,單位為1/128秒
//================================================
.DEFINE Key_Debounce	4			//(4/128)秒=31ms
//================================================
//	持續(xù)按鍵時間間隔設(shè)定,單位1/128秒
//================================================
.DEFINE Key_TimeOut		64			//(64/128)秒=0.5s

//================================================
//	按鍵使用端口設(shè)定
//================================================
.DEFINE Key_IO_Port			0		// 若按鍵使用IOA口則采用該行定義
//.DEFINE Key_IO_Port			1		// 若按鍵使用IOB口則采用該行定義

.DEFINE Key_IO_HighByte		0		// 若按鍵使用IO口低8位則采用該行定義
//.DEFINE Key_IO_HighByte		1		// 若按鍵使用IO口高8位則采用該行定義

/////-----       不必修改下面的定義	    -----/////
.IF Key_IO_HighByte==0
	.DEFINE Key_ALL			0x00ff		
	.DEFINE Key_NibbleL		0x000f
	.DEFINE Key_NibbleH		0x00f0
.ELSE
	.DEFINE Key_ALL			0xff00
	.DEFINE Key_NibbleL		0x0f00
	.DEFINE Key_NibbleH		0xf000
.ENDIF
/////-----       不必修改下面的定義	    -----/////
.IF Key_IO_Port==0
	.DEFINE P_Key_Data		0x7000
	.DEFINE P_Key_Buf		0x7001
	.DEFINE P_Key_Dir		0x7002
	.DEFINE P_Key_Attrib	0x7003
.ELSE
	.DEFINE P_Key_Data		0x7005
	.DEFINE P_Key_Buf		0x7006
	.DEFINE P_Key_Dir		0x7007
	.DEFINE P_Key_Attrib	0x7008
.ENDIF


.DEFINE P_INT_Mask			0x702d
.DEFINE P_TimeBase_Setup	0x700e
.DEFINE P_Watchdog_Clear	0x7012
.DEFINE C_IRQ6_TMB2			0x0001
.DEFINE C_TMB2_128Hz		0x0000

.PUBLIC F_Key_Init
.PUBLIC _Key_Init
.PUBLIC F_Key_Scan
.PUBLIC _Key_Scan
.PUBLIC F_Key_Get
.PUBLIC _Key_Get

.RAM
.VAR KeyCode						// 存儲獲得的鍵值
.VAR ScanCnt						// 該變量用來表示按鍵持續(xù)時間
.VAR KeyUp							// 按鍵是否處于抬起狀態(tài)

.CODE
//======================================================
// 函數(shù)名稱:	Key_Init
// C調(diào)用:		void Key_Init(void)
// 匯編調(diào)用:	F_Key_Init
// 實現(xiàn)功能:   初始化按鍵掃描程序,該函數(shù)將開啟IRQ6_TMB2中斷
// 入口參數(shù):	無
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
F_Key_Init:
_Key_Init:
	push r1 to [sp]
	INT Off
	r1 = [P_Key_Dir]				// 初始化IO, 低4位下拉輸入,高4位輸出高
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Dir] = r1
	r1 = [P_Key_Attrib]
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Attrib] = r1
	r1 = [P_Key_Buf]
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Buf] = r1
	
	r1 = 0
	[ScanCnt] = r1					// 初始化變量
	[KeyCode] = r1
	[KeyUp] = r1
	r1 = C_TMB2_128Hz				// 開啟IRQ6_TMB2(128Hz)中斷
	[P_TimeBase_Setup] = r1
	r1 = [P_INT_Mask]
	r1 |= C_IRQ6_TMB2
	[P_INT_Mask] = r1
	INT FIQ,IRQ
	pop r1 from [sp]
retf

//======================================================
// 函數(shù)名稱:	Key_Scan
// C調(diào)用:		void Key_Scan(void)
// 匯編調(diào)用:	F_Key_Scan
// 實現(xiàn)功能:   按鍵掃描,該函數(shù)被IRQ6_TMB2中斷服務(wù)程序調(diào)用
// 入口參數(shù):	無
// 出口參數(shù):	無
// 破壞寄存器:	無
//======================================================
F_Key_Scan:
_Key_Scan:
	push r1,r4 to [sp]

	r1 = [P_Key_Dir]				// 初始化IO, 低4位下拉輸入,高4位輸出高
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Dir] = r1
	r1 = [P_Key_Attrib]
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Attrib] = r1
	r1 = [P_Key_Buf]
	r1 |= Key_NibbleH
	r1 &= ~Key_NibbleL
	[P_Key_Buf] = r1

	r2 = [P_Key_Data]				// 獲取IO端口狀態(tài)
	r2 &= Key_NibbleL
	jnz ?L_ScanKey_Down				// 判斷當(dāng)前是否有鍵按下
?L_ScanKey_Up:
	r1 = 1							// 如果按鍵處于抬起狀態(tài)則KeyUp置1
	[KeyUp] = r1
	goto ?L_ScanKey_Exit
?L_ScanKey_Down:
	r1 = 0							// KeyUp置0
	[KeyUp] = r1
	r4 = [P_Key_Buf]

	r3 = Key_NibbleH & 0x1010
	r1 = r4 & ~Key_NibbleH			// 掃描第1列(僅第1列IO輸出置高,檢測輸入口狀態(tài)是否變化)
	r1 |= r3
	[P_Key_Buf] = r1
	r1 = [P_Key_Data]
	r1 &= Key_NibbleL
	jnz ?L_GetCode
	
	r3 = Key_NibbleH & 0x2020		// 掃描第2列
	r1 = r4 & ~Key_NibbleH
	r1 |= r3
	[P_Key_Buf] = r1
	r1 = [P_Key_Data]
	r1 &= Key_NibbleL
	jnz ?L_GetCode

	r3 = Key_NibbleH & 0x4040		// 掃描第3列
	r1 = r4 & ~Key_NibbleH
	r1 |= r3
	[P_Key_Buf] = r1
	r1 = [P_Key_Data]
	r1 &= Key_NibbleL
	jnz ?L_GetCode

	r3 = Key_NibbleH & 0x8080		// 掃描第4列
	r1 = r4 & ~Key_NibbleH
	r1 |= r3
	[P_Key_Buf] = r1
	r1 = [P_Key_Data]
	r1 &= Key_NibbleL
	jnz ?L_GetCode
	jmp ?L_ScanKey_Up				// 如果未掃描到按鍵
?L_GetCode:
	r1 = [P_Key_Buf]				// 重新初始化IO
	r1 |= Key_NibbleH
	[P_Key_Data] = r1
	
	r2 |= r3
.IF Key_IO_HighByte
	r2 = r2 lsr 4
	r2 = r2 lsr 4
.ENDIF
	cmp r2,[KeyCode]				// 本次得到的鍵值與上次得到的鍵值比較
	je	?L_ScanKey_Cont
?L_ScanKey_New:						// 如果與上次鍵值不同則重置鍵值
	[KeyCode] = r2
	r1 = 1							// 重新記錄鍵持續(xù)按下的時間
	[ScanCnt] = r1
	jmp ?L_ScanKey_Exit
?L_ScanKey_Cont:					// 如果此次鍵值與上次鍵值相同
	r1 = [ScanCnt]					// 更新按鍵持續(xù)時間(ScanCnt加1)
	r1 += 1
	[ScanCnt] = r1
?L_ScanKey_Exit:
	pop r1,r4 from [sp]
retf

//======================================================
// 函數(shù)名稱:	Key_Get
// C調(diào)用:		unsigned Key_Get(void)
// 匯編調(diào)用:	F_Key_Get
// 實現(xiàn)功能:   獲取鍵值
// 入口參數(shù):	無
// 出口參數(shù):	r1 - 獲得的鍵值
// 破壞寄存器:	r1
//======================================================
F_Key_Get:
_Key_Get:
	INT OFF
	push r2 to [sp]
	r2 = 0x01
	[P_Watchdog_Clear] = r2
	r2 = [ScanCnt]
	cmp r2,Key_Debounce				// 如果按鍵持續(xù)時間小于Key_Debounce
	jb	?L_GetKey_NoKey				// 則認(rèn)為當(dāng)前沒有鍵按下
	cmp r2,Key_TimeOut				// 如果按鍵持續(xù)時間大于Key_TimeOut
	jnb ?L_GetKey					// 則認(rèn)為發(fā)生了一次按鍵
	r2 = [KeyUp]					// 如果按鍵持續(xù)時間在Key_Debounce與Key_TimeOut之間
	jnz ?L_GetKey					// 如果按鍵處于抬起狀態(tài)則認(rèn)為發(fā)生了一次按鍵
?L_GetKey_NoKey:
	r1 = 0							// 沒有按鍵則返回0
	jmp ?L_GetKey_Exit
?L_GetKey:
	r1 = [KeyCode]					// 有按鍵則返回鍵值
	r2 = 0
	[KeyCode] = r2					// 重新初始化變量
	[ScanCnt] = r2
	[KeyUp] = r2
?L_GetKey_Exit:
	INT FIQ,IRQ
	pop r2 from [sp]
retf

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美另类在线| 国产精品视频一区二区三区不卡| 美女视频网站久久| 亚洲激情在线激情| 久久久99精品免费观看| 欧美一区二区福利在线| 一本久道久久综合中文字幕| 成人影视亚洲图片在线| 国产主播一区二区| 久久99热这里只有精品| 久久成人免费网| 在线亚洲精品福利网址导航| 色狠狠桃花综合| 欧美日韩dvd在线观看| 欧美影院一区二区三区| 欧美精品一级二级| 欧美一区二区成人| 亚洲永久免费av| 亚洲va欧美va国产va天堂影院| 亚洲一区二区三区影院| 成人aa视频在线观看| 一本久道中文字幕精品亚洲嫩| 久久这里都是精品| 国产精品嫩草99a| 国产综合久久久久久久久久久久| 欧美日韩免费高清一区色橹橹| 日韩精品中文字幕在线不卡尤物| 亚洲国产日韩a在线播放性色| 免费在线观看视频一区| 国产成人午夜高潮毛片| 色综合久久综合网| 亚洲天堂福利av| 午夜视频一区二区| 国产精品乡下勾搭老头1| 在线一区二区三区| 亚洲一区影音先锋| 欧美探花视频资源| 午夜激情久久久| 欧美高清精品3d| 日产精品久久久久久久性色| 国产成人亚洲综合色影视| 欧美精品一区二区久久婷婷| 亚洲精品乱码久久久久久久久| 91免费国产在线观看| 日韩精品一区二区三区四区视频| 日韩高清不卡一区二区| 91精品国产综合久久精品图片 | 国产精品二区一区二区aⅴ污介绍| 亚洲va国产va欧美va观看| 国产精品日日摸夜夜摸av| 成人国产精品免费| 亚洲男人天堂一区| 国产乱子伦一区二区三区国色天香| 色综合色综合色综合| 一区二区三区精密机械公司| 成人综合在线视频| 亚洲欧美在线视频观看| 国产一区二区三区蝌蚪| 国产精品乱码人人做人人爱 | 91黄视频在线| 日本中文在线一区| 国产三级精品在线| 狠狠色2019综合网| 国产精品女同一区二区三区| 在线看日韩精品电影| 日韩精品成人一区二区在线| 在线观看日韩精品| 麻豆国产精品官网| 亚洲天堂中文字幕| 日韩精品在线一区| 97精品久久久久中文字幕| 欧美国产日本视频| 国产精品亚洲一区二区三区在线 | 欧美精品18+| 成人午夜av电影| 日韩精品91亚洲二区在线观看| 国产亚洲一本大道中文在线| 一本大道久久a久久综合婷婷| 免播放器亚洲一区| 亚洲视频在线观看三级| 日韩免费看网站| 欧美亚洲自拍偷拍| 粉嫩av一区二区三区| 日本一区二区三级电影在线观看| 91黄视频在线| 成人黄色片在线观看| 免费人成在线不卡| 一区二区三区在线视频观看58| 精品成人a区在线观看| 欧美色图天堂网| 成人av电影免费在线播放| 老司机精品视频线观看86| 亚洲精品国产品国语在线app| 久久免费视频一区| 不卡视频一二三四| 久久97超碰色| 欧美激情中文字幕一区二区| 欧美伦理视频网站| 色94色欧美sute亚洲13| 国产sm精品调教视频网站| 日韩黄色片在线观看| 亚洲日穴在线视频| 亚洲国产高清在线| 久久综合久久久久88| 欧美精选午夜久久久乱码6080| 91片在线免费观看| av激情综合网| 免费不卡在线视频| 日日噜噜夜夜狠狠视频欧美人 | 丰满亚洲少妇av| 国产精品亚洲综合一区在线观看| 免费看日韩a级影片| 亚洲超丰满肉感bbw| 一区二区三区在线观看网站| 亚洲视频在线一区| 亚洲精品日日夜夜| 一区二区三区在线影院| 亚洲精品日韩一| 一区二区三区在线高清| 亚洲综合小说图片| 午夜成人在线视频| 秋霞电影一区二区| 久久精品国产精品亚洲综合| 日韩精品免费视频人成| 日本中文字幕一区| 久久成人综合网| 国产iv一区二区三区| 成人激情黄色小说| 99re这里都是精品| 欧美性受xxxx| 91精品国产aⅴ一区二区| 精品久久久久久久久久久院品网| 91蝌蚪porny九色| 日本乱人伦一区| 91精品一区二区三区在线观看| 911精品产国品一二三产区| 777色狠狠一区二区三区| 精品少妇一区二区三区日产乱码| 亚洲精品一区二区三区99| 久久精品亚洲一区二区三区浴池| 久久精品亚洲乱码伦伦中文| 中文字幕在线免费不卡| 亚洲一区在线观看视频| 精品一区二区三区的国产在线播放 | 色综合天天综合在线视频| 国产麻豆9l精品三级站| 99精品国产热久久91蜜凸| 欧亚洲嫩模精品一区三区| 日韩精品一区二区三区四区视频| 国产视频一区二区在线观看| 亚洲色图视频免费播放| 日本亚洲电影天堂| 国产成人精品aa毛片| 欧美吻胸吃奶大尺度电影| 欧美mv日韩mv| 亚洲精品精品亚洲| 激情综合网激情| 91老司机福利 在线| 精品少妇一区二区三区日产乱码| 国产精品久久影院| 美女性感视频久久| 成人免费毛片片v| 91精品国产综合久久精品app | 亚洲精品你懂的| 精品一区二区久久| 欧美视频一二三区| 国产欧美日韩激情| 日本女优在线视频一区二区| 成人高清视频在线| 日韩欧美中文字幕制服| 精品剧情在线观看| 一区二区三区不卡视频| 国产麻豆视频一区二区| 欧美日产在线观看| 亚洲欧洲韩国日本视频| 久久精品国产77777蜜臀| 在线视频欧美区| 国产精品高清亚洲| 国产最新精品免费| 欧美一区二区日韩| 亚洲已满18点击进入久久| 大陆成人av片| 欧美岛国在线观看| 亚洲成va人在线观看| 97se狠狠狠综合亚洲狠狠| 国产日韩欧美电影| 精品一区二区在线免费观看| 欧美剧情片在线观看| 亚洲精品国久久99热| 97aⅴ精品视频一二三区| 中文字幕欧美三区| 国产精品一二三| 国产亚洲综合在线| 国内精品免费**视频| 日韩精品影音先锋| 精品一区二区三区欧美| 日韩欧美一级二级三级久久久| 日韩精品电影在线| 日韩美女视频在线| 老司机精品视频一区二区三区|