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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? key.asm

?? SPLC501液晶顯示模組驅動程序
?? ASM
字號:
//========================================================================================
// Progarm: The head file for key.asm in assembly view
// Arranged by: Andy Hsu
// Modified by Arthur Shieh
// Last modified date: 
// 		2000/06/23: first version
//		2000/07/20: modified
//      2002/5/31 : Modified by Arthur Shieh to use IOA8~IOA15 for keyscan
//		2005/8/12 : Modified by xinqiang for more user & function 
// Functions:
//  F_Key_Scan_Initial;
//  F_Key_Scan_ServiceLoop;
//  F_Key_DebounceCnt_Down;
//
//	call F_SP_GetCh;		
//========================================================================================
.DEFINE	P_IOA_Data   		0x7000         // Write Data into data register and read from IOA pad
.DEFINE P_IOA_Buffer        0x7001         // Write Data into buffer register and read from buffer register
.DEFINE P_IOA_Dir           0x7002         // Direction vector for IOA
.DEFINE P_IOA_Attrib        0x7003         // Attribute vector for IOA
.DEFINE P_IOA_Latch         0x7004         // Latch PortA data for key change wake-up

.DEFINE P_IOB_Data         	0x7005         // Write Data into the data register and read from IOB pad
.DEFINE P_IOB_Buffer        0x7006         // Write Data into buffer register and read from buffer register
.DEFINE P_IOB_Dir           0x7007         // Direction vector for IOB
.DEFINE P_IOB_Attrib        0x7008         // Attribute vector for IOB
.define P_Watchdog_Clear    0x7012
//.INCLUDE hardware.inc;
.public _F_Key_Scan_Initial
.PUBLIC	F_Key_Scan_Initial;
.public _F_Key_Scan_ServiceLoop
.PUBLIC F_Key_Scan_ServiceLoop;
.PUBLIC _SP_GetCh;
.PUBLIC	F_SP_GetCh;

.PUBLIC R_KeyStrobe;

.public _F_KeyScan;

.define Port_Key	P_IOA_Data					//Key input port
.define	Port_Key_A	P_IOA_Attrib
.define	Port_Key_D	P_IOA_Dir
.define	Port_Key_B	P_IOA_Buffer

.define M_MASK		0x00ff						//the port of the key input
.define M_ScanBegin	0x0001						//the begin bit of key scan
.define M_KeyNumber 0x0008						//key numbers
//////////////////////////////////////////////////////////////////
// RAM Define Area								
//////////////////////////////////////////////////////////////////
.RAM
.VAR	R_DebounceReg;						//for keyboard scan
.DEFINE C_DebounceCnt			0x00f0;		
.VAR	R_KeyStrobe;						//for keyboard scan

.var R_KeyCounter							//key down counter
.var R_Keyflag								//save the key flag
.var R_Keyoll								//save the oll data of key

.CODE
//////////////////////////////////////////////////////////////////
// Function: Initialization for F_Key_Scan_ServiceLoop
//////////////////////////////////////////////////////////////////    
_F_Key_Scan_Initial: 
F_Key_Scan_Initial:
		r1 = [Port_Key_A]
		r1 = r1&(~M_MASK)
		[Port_Key_A] = r1
		r1 = [Port_Key_D]
		r1 = R1&(~M_MASK)
		[Port_Key_D] = r1
		r1 = [Port_Key_B]
		r1 = r1&(~M_MASK)
		[Port_Key_B] = r1
		
		r1 = 0x0000;					//
		[R_KeyCounter] = r1;			//
		[R_Keyflag] = r1; 				//
		[R_Keyoll] = r1;				//
		[R_KeyStrobe] = r1;	
	//	r1 = C_DebounceCnt;				//
	//	[R_DebounceCnt] = r1;			//reset debounce counter
		retf;
//////////////////////////////////////////////////////////////////
// Function: Get Key code from key pad(8 x 1 key pad)
// Input: Port IOA b15-b8
// Output: R_KeyStrobe b7-b0
//          | 	  |     |     | 
// +Vcc --- x --- x ... x --- x ---   
//          |     |     |     |
//          IOA.15            IOA.8
// Note: 1)link F_DebounceCntDown is necessary 
// Destory register: r1, r2                                            
////////////////////////////////////////////////////////////////// 
_F_Key_Scan_ServiceLoop:
F_Key_Scan_ServiceLoop:
		r1 = [Port_Key];			// get key data from IOA 
		r2 = M_MASK
		r1 &= R2
		jnz H_KeyHight				//非零轉
		r2 = [R_Keyoll]
		jnz L_KeyLow				//上一次的鍵值非零,則轉
		r1 = 0
		jmp L_KS_Exit2				//退出
L_KeyLow:
		r2 = [R_Keyflag]
		test r2,0x0001
		jnz L_KeyLow_1				//標志位非零則轉
		r2 = 0
		[R_KeyCounter] = r2
		[R_Keyflag] = r2
		[R_Keyoll] = r1
		r1 = 0
		jmp L_KS_Exit2				//退出
L_KeyLow_1:
		r2 = 0
		[R_KeyCounter] = r2
		[R_Keyflag] = r2
		r1 = [R_Keyoll]				//取上一次的鍵值
		r2 = 0
		[R_Keyoll] = r2
		jmp L_KeyGet				//到判斷優先級的程序
		
H_KeyHight:							//當次按鍵非零處理
		r2 = [R_KeyCounter]
		cmp r2,C_DebounceCnt 		//比較
		ja H_KeyHight_1				//大于規定數,轉
		r2+=1						//Counter++
		[R_KeyCounter] = r2
		jmp H_KeyHight_2
H_KeyHight_1:
		r2 = [R_Keyflag]			//flag 置位
		r2 |= 0x0001
		[R_Keyflag] = r2
H_KeyHight_2:
		[R_Keyoll] = r1
		r1 = 0
		jmp L_KS_Exit2				//退出    	
		
//L_KeyGet:
//		r2 = r1					//鍵盤優先級而做的 begin....
//		r3 = 0x0080				//Edit by xinqiang 2004.12.21
//L_KS_Renews2:					//xinqiang@sunnorth.com.cn
//		r3 = r3 lsl 1			//tel:010-62981668-2916
//		test r3,0x2000			//
//		jz L_KS_Renews12			//
//		r1 = 0					//
//		jmp L_KS_Exit2			//
//L_KS_Renews12:					//
//		r1 = r1&r3				//
	//	jnz L_KS_Exit2			//
L_KeyGet:
		jmp L_KS_Exit2
		r1 = r2					//
//		jmp L_KS_Renews2			//....end
L_KS_Exit2:
		[R_KeyStrobe] = r1;				//save stable key code to R_KeyStrobe
		retf;								//	


//****************************************************************
// Function: Get Keycode for I/O Port                                 
// Destory register: r1, r2                          
//****************************************************************
_SP_GetCh:					
F_SP_GetCh:
		push r2 to [SP];	  
		r1 = [R_KeyStrobe];				// Get Key code
        r2 = 0x0000;					// Clear KeyStrobe for next key	
        [R_KeyStrobe] = r2;				//
        pop	r2 from [SP];
        retf;

//=================================================================//
//name:F_KeyScan
//for user: C function unsigned int F_KeyScan(void)
//output:Key Sand data from Key1~5    Key1>>Key2>>Key3>>Key4>>Key5
//note: noll
//=================================================================//
_F_KeyScan:.proc
F_KeyScan:
	push r2,r5 to [sp]
	r1 = [Port_Key]
	r1 ^= M_MASK
	jnz F_KeyScan_Get1
	r1 = 0
	jmp F_KeyScan_Exit
F_KeyScan_Get1:
	call F_Delay				//call key Scan delay 10~18ms
	r1 = [Port_Key]
	r1 ^= M_MASK
	jnz F_KeyScan_Get2			//check the key again
	r1 = 0
	jmp F_KeyScan_Exit
F_KeyScan_Get2:
	r2 = r1
	r3 = r1
	r1 = 0
	r4 = M_ScanBegin  //0x0001
F_KeyScan_loop1:
	r1+=1
	r3 = r3&r4
	jnz F_KeyScan_Exit1
	cmp r1,M_KeyNumber  //8
	je F_KeyScan_Exit1
	r4 = r4 lsl 1
	r3 = r2
	jmp F_KeyScan_loop1
F_KeyScan_Exit1:
//	r1 = r3
F_KeyScan_Exit2:
	r3 = 0x0001
	[P_Watchdog_Clear] = r3
	r2 = [Port_Key]
	r2 ^= M_MASK
	jnz F_KeyScan_Exit2
F_KeyScan_Exit:
	pop r2,r5 from [sp]
	retf
.endp


F_Delay:
	push r3 ,r5 to [sp]
	r3=0x6e6d//0xDCDB
Dely_L:
	r4 = 0x0001
	[P_Watchdog_Clear] = r4
	r3-=1
	jnz Dely_L
	pop r3,r5 from [sp]
	retf
//========================================================================================        
// End of key.asm
//========================================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人午夜高潮毛片| 国产精品嫩草影院av蜜臀| 一区二区三区在线视频观看58| 成人aa视频在线观看| 欧美—级在线免费片| 成人av片在线观看| 亚洲欧美电影院| 欧美色图第一页| 手机精品视频在线观看| 日韩精品在线网站| 岛国av在线一区| 亚洲三级小视频| 欧美美女一区二区在线观看| 麻豆精品新av中文字幕| 久久色成人在线| 99久久综合国产精品| 亚洲一区二区精品视频| 欧美成人性福生活免费看| 国产99一区视频免费| 亚洲欧美日韩国产另类专区| 欧美日本在线看| 国产激情视频一区二区在线观看 | 波波电影院一区二区三区| 中文字幕五月欧美| 91精品国产欧美一区二区18| 国产九色sp调教91| 亚洲午夜久久久久久久久久久| 日韩欧美三级在线| 色综合天天综合网天天看片| 美女爽到高潮91| 亚洲欧洲av色图| 欧美成人精品二区三区99精品| 成人美女在线观看| 首页国产欧美日韩丝袜| 亚洲欧美自拍偷拍| 精品少妇一区二区三区在线视频| 99久久精品国产一区| 美女视频一区二区| 一区二区三区在线观看视频| 亚洲精品一区二区精华| 色菇凉天天综合网| 国产很黄免费观看久久| 午夜精品一区在线观看| 国产精品―色哟哟| 欧美videossexotv100| 日本久久电影网| 国产91精品精华液一区二区三区| 午夜不卡av免费| 1000部国产精品成人观看| 欧美成人艳星乳罩| 制服丝袜亚洲网站| 欧美最猛黑人xxxxx猛交| 不卡一区二区在线| 国产一区二区三区精品视频| 日韩精品国产精品| 丝袜亚洲另类欧美| 亚洲高清在线精品| 亚洲美女视频在线观看| 国产精品入口麻豆九色| 久久在线免费观看| 日韩精品中文字幕一区二区三区 | 免费在线一区观看| 亚洲自拍欧美精品| 亚洲免费在线看| 国产精品久久久爽爽爽麻豆色哟哟| 精品噜噜噜噜久久久久久久久试看| 欧美日韩三级一区| 欧美丝袜自拍制服另类| 97久久精品人人爽人人爽蜜臀| 国产suv一区二区三区88区| 激情成人综合网| 精久久久久久久久久久| 狠狠久久亚洲欧美| 久久精品久久99精品久久| 日本视频一区二区| 视频一区二区三区在线| 首页国产丝袜综合| 日韩av电影免费观看高清完整版在线观看| 亚洲一区影音先锋| 午夜精品影院在线观看| 日本不卡一区二区三区 | 美国欧美日韩国产在线播放| 亚洲一区二区偷拍精品| 一区二区欧美在线观看| 亚洲午夜久久久久| 奇米色一区二区| 久久91精品国产91久久小草| 激情五月激情综合网| 韩国一区二区在线观看| 粉嫩av一区二区三区在线播放| 国产成人精品亚洲日本在线桃色| 国产成人8x视频一区二区| 成人午夜视频在线观看| 91丨九色丨蝌蚪丨老版| 日本二三区不卡| 欧美丰满美乳xxx高潮www| 91精品欧美久久久久久动漫| 欧美v国产在线一区二区三区| 欧美精品一区二区三| 国产精品美女久久久久av爽李琼 | 色综合视频在线观看| 欧美自拍偷拍一区| 日韩一级片在线播放| 国产三级一区二区三区| 自拍视频在线观看一区二区| 一区二区欧美在线观看| 麻豆精品一区二区| 成人免费看片app下载| 日本道在线观看一区二区| 欧美一级片在线观看| 日本一区二区三区四区在线视频| 樱桃国产成人精品视频| 麻豆精品国产传媒mv男同| 国产成人精品免费一区二区| 色综合激情久久| 欧美大胆人体bbbb| 成人欧美一区二区三区视频网页| 亚洲va欧美va人人爽午夜| 国产精品一区二区你懂的| 欧美三级日本三级少妇99| 久久视频一区二区| 亚洲一区二区三区视频在线| 国产电影一区二区三区| 欧美系列在线观看| 国产农村妇女毛片精品久久麻豆| 伊人色综合久久天天| 国产专区欧美精品| 精品视频全国免费看| 欧美国产乱子伦| 日本欧美一区二区三区乱码| 成人小视频在线| 欧美电视剧在线看免费| 亚洲激情中文1区| 国产福利视频一区二区三区| 欧美日韩精品免费| 亚洲色欲色欲www在线观看| 另类欧美日韩国产在线| 91国偷自产一区二区三区观看| 久久影视一区二区| 亚洲一区二区三区精品在线| 成人av网站在线观看| 久久综合九色综合欧美98| 午夜久久福利影院| 在线观看亚洲一区| 亚洲色图欧美在线| 成人午夜视频在线| 久久亚洲精品国产精品紫薇| 丝袜亚洲精品中文字幕一区| 91久久精品一区二区二区| 欧美激情一区二区在线| 精品中文av资源站在线观看| 欧美精品三级日韩久久| 亚洲精品中文在线影院| 99久久精品免费| 国产精品国产自产拍在线| 福利电影一区二区| 国产亚洲精品久| 国产精品伊人色| 国产亚洲精品中文字幕| 国内精品自线一区二区三区视频| 欧美一区二区三区四区高清| 天堂在线一区二区| 制服丝袜在线91| 蜜臀va亚洲va欧美va天堂| 欧美一区二区三区视频免费 | 久久精品国产在热久久| 51精品秘密在线观看| 午夜精品一区在线观看| 欧美精品久久久久久久多人混战 | 国产剧情av麻豆香蕉精品| 精品国精品国产| 久久国产麻豆精品| 精品福利一二区| 国产激情视频一区二区在线观看 | 自拍偷在线精品自拍偷无码专区| 风流少妇一区二区| 中文字幕一区在线| 色婷婷久久久亚洲一区二区三区| 亚洲同性gay激情无套| 91国偷自产一区二区三区成为亚洲经典 | 日韩欧美精品在线视频| 精品一区二区在线视频| 久久久精品国产99久久精品芒果| 国产精品18久久久久久久久| 国产亚洲一本大道中文在线| 不卡免费追剧大全电视剧网站| 1区2区3区精品视频| 欧美综合一区二区| 美女性感视频久久| 国产喷白浆一区二区三区| www.久久久久久久久| 亚洲一区二区高清| 欧美电视剧免费全集观看| 成人午夜看片网址| 亚洲黄色在线视频| 欧美电视剧免费全集观看| 国产ts人妖一区二区| 樱花草国产18久久久久| 日韩欧美亚洲国产精品字幕久久久 | 亚洲精品自拍动漫在线|