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

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

?? key.asm

?? UARTDemo使用UART中斷方式進行通訊的范例
?? 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
//
// Functions:
//  F_Key_Scan_Initial;
//  F_Key_Scan_ServiceLoop;
//  F_Key_DebounceCnt_Down;
//
//	call F_SP_GetCh;		
//========================================================================================
.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			0x0008;		
.DEFINE C_DebounceCnt			0x0006;		
.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午夜电影| 一区二区日韩电影| 欧美国产1区2区| 国产精品美女久久久久久| www日韩大片| 国产亚洲污的网站| 国产欧美精品一区二区三区四区 | 美女性感视频久久| 亚洲国产精品嫩草影院| 亚洲成a人片在线观看中文| 日日夜夜精品视频天天综合网| 亚洲午夜在线观看视频在线| 视频一区视频二区中文| 日本不卡视频一二三区| 久久国产成人午夜av影院| 激情欧美一区二区| 国产成人精品综合在线观看 | 欧美日韩五月天| 欧美日韩精品二区第二页| 91精品国产一区二区人妖| 久久综合成人精品亚洲另类欧美| 久久久久国产成人精品亚洲午夜 | 亚洲综合男人的天堂| 亚洲成人一二三| 国产一区二区三区国产| 91在线观看高清| 91精品国产综合久久福利软件| 久久这里只有精品6| 日韩一区欧美小说| 日本91福利区| 成人激情校园春色| 7799精品视频| 国产精品国产三级国产| 亚洲aⅴ怡春院| 国产成人在线色| 欧美丰满高潮xxxx喷水动漫| 亚洲成人一区二区在线观看| 韩国三级电影一区二区| 色婷婷久久久综合中文字幕 | 国产精品一卡二卡| 色综合久久天天综合网| 精品国产成人系列| 一区二区三区日韩| 国产真实乱对白精彩久久| 91国在线观看| 亚洲国产精品t66y| 日本女优在线视频一区二区| youjizz国产精品| 日韩精品资源二区在线| 亚洲欧美视频一区| 国产经典欧美精品| 欧美一级在线免费| 亚洲国产欧美一区二区三区丁香婷| 久久激情五月激情| 欧美在线一二三| 国产免费观看久久| 精品写真视频在线观看| 精品视频一区二区不卡| 中文字幕综合网| 大桥未久av一区二区三区中文| 欧美电影免费观看高清完整版| 一卡二卡三卡日韩欧美| 成人av动漫在线| 国产女人18毛片水真多成人如厕 | 欧美精品久久99久久在免费线| 亚洲天天做日日做天天谢日日欢| 国产另类ts人妖一区二区| 欧美一级欧美一级在线播放| 性久久久久久久久| 欧美午夜不卡视频| 一区二区三区中文在线观看| 色偷偷久久一区二区三区| 国产精品婷婷午夜在线观看| 成人免费不卡视频| 国产精品久久777777| 国产91丝袜在线播放0| 久久久久九九视频| 国产成人综合亚洲91猫咪| 精品动漫一区二区三区在线观看| 蜜桃av一区二区三区| 日韩三级在线观看| 国产一区日韩二区欧美三区| 日韩欧美国产一区二区三区| 免费在线观看一区二区三区| 精品免费国产一区二区三区四区| 老司机午夜精品99久久| 精品久久久久久亚洲综合网| 国产高清在线观看免费不卡| 中文字幕在线免费不卡| 99久久精品国产麻豆演员表| 亚洲永久免费av| 91精品国产综合久久久蜜臀图片| 日韩精品一区第一页| 久久一留热品黄| 97久久超碰国产精品电影| 夜夜嗨av一区二区三区四季av| 欧美人动与zoxxxx乱| 极品美女销魂一区二区三区| 国产精品久久二区二区| 欧美日韩五月天| 国产精品中文欧美| 亚洲乱码国产乱码精品精可以看| 欧美欧美午夜aⅴ在线观看| 麻豆精品一区二区综合av| 国产农村妇女毛片精品久久麻豆 | 日韩三级视频中文字幕| 国内精品写真在线观看| 亚洲三级理论片| 欧美一区二区视频网站| 高清av一区二区| 午夜免费久久看| 中文字幕乱码日本亚洲一区二区| 欧美日韩一区二区在线观看 | 自拍av一区二区三区| 日韩一级完整毛片| www.综合网.com| 久久狠狠亚洲综合| 亚洲欧美激情插| 2017欧美狠狠色| 欧美丰满高潮xxxx喷水动漫| 99免费精品视频| 国产精品一区二区无线| 一区二区三区欧美亚洲| 久久在线观看免费| 欧美日韩国产高清一区二区三区| 国产精品99久久久久久似苏梦涵| 亚洲第一精品在线| 亚洲精品国产一区二区精华液 | 欧洲色大大久久| 风间由美一区二区三区在线观看 | 日韩免费高清av| 欧美午夜电影在线播放| 成人看片黄a免费看在线| 久久精品国产77777蜜臀| 一区二区成人在线| 国产精品传媒视频| 日本一区二区视频在线观看| 日韩精品一区二区三区swag| 欧美人妇做爰xxxⅹ性高电影| 91啪亚洲精品| www.久久精品| 丰满少妇久久久久久久| 国产一区日韩二区欧美三区| 久久精品国产一区二区| 日本女人一区二区三区| 天天射综合影视| 日韩av一区二区三区四区| 亚洲一区二区四区蜜桃| 亚洲免费观看高清完整版在线观看熊| 欧美高清一级片在线观看| 国产亚洲福利社区一区| 久久久91精品国产一区二区精品 | 中文字幕佐山爱一区二区免费| 中文字幕av在线一区二区三区| 精品国产91久久久久久久妲己| 日韩西西人体444www| 欧美国产日韩一二三区| 久久噜噜亚洲综合| 久久综合国产精品| 国产色综合久久| 国产精品久久久久桃色tv| 国产欧美一区二区精品性色 | 国产成人免费xxxxxxxx| 国内精品久久久久影院一蜜桃| 国产一区二区三区在线看麻豆| 国产精一区二区三区| 成人午夜精品在线| 91免费版在线看| 欧美日韩亚洲综合| 欧美一区二区在线免费观看| 亚洲精品一区二区三区福利| 国产视频在线观看一区二区三区| 日本一区二区免费在线观看视频 | 亚洲成av人片| 老司机精品视频导航| 国产精品99久久久久| 99精品欧美一区二区三区小说| 欧美综合在线视频| 欧美精品一区二区三区在线| 国产精品美女久久久久aⅴ国产馆| 日韩理论片网站| 日本欧美一区二区| 国产成人av电影在线观看| 色婷婷久久久久swag精品| 91精品国产一区二区人妖| 欧美高清在线精品一区| 偷拍一区二区三区四区| 国产麻豆精品在线观看| 精品福利二区三区| 亚洲欧洲国产日本综合| 日韩有码一区二区三区| av午夜精品一区二区三区| 91精品国产一区二区人妖| 国产精品视频一区二区三区不卡| 亚洲香肠在线观看| 韩国女主播成人在线观看| 在线看国产一区二区| 国产欧美日韩精品在线| 视频一区二区中文字幕|