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

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

?? key.lst

?? 凌陽61單片機實現的多功能電子琴源程序代碼
?? LST
字號:
Sunplus u'nSP Assembler - Ver. 1.14.3.1
              Listing File Has Been Relocated
                            	//======================================================
                            	//  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
                            	// 實現功能:4*4按鍵掃描程序,使用IRQ6_TMB2中斷(128Hz)
                            	// 日期:    2005/6/18
                            	//============================================================
                            	
                            	//================================================
                            	//	按鍵去抖動時間設定,單位為1/128秒
                            	//================================================
                            	.DEFINE Key_Debounce	4			//(4/128)秒=31ms
                            	//================================================
                            	//	持續按鍵時間間隔設定,單位1/128秒
                            	//================================================
                            	.DEFINE Key_TimeOut		64			//(64/128)秒=0.5s
                            	
                            	//================================================
                            	//	按鍵使用端口設定
                            	//================================================
                            	.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 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
                            	
000001A4                    	.RAM
000001A4 00 00              	.VAR KeyCode						// 存儲獲得的鍵值
000001A5 00 00              	.VAR ScanCnt						// 該變量用來表示按鍵持續時間
000001A6 00 00              	.VAR KeyUp							// 按鍵是否處于抬起狀態
                            	
000099B0                    	.CODE
                            	//======================================================
                            	// 函數名稱:	Key_Init
                            	// C調用:		void Key_Init(void)
                            	// 匯編調用:	F_Key_Init
                            	// 實現功能:   初始化按鍵掃描程序,該函數將開啟IRQ6_TMB2中斷
                            	// 入口參數:	無
                            	// 出口參數:	無
                            	// 破壞寄存器:	無
                            	//======================================================
                            	F_Key_Init:
                            	_Key_Init:
000099B0 88 D2              		push r1 to [sp]
000099B1 40 F1              		INT Off
000099B2 11 93 02 70        		r1 = [P_Key_Dir]				// 初始化IO, 低4位下拉輸入,高4位輸出高
000099B4 09 A3 F0 00        		r1 |= Key_NibbleH
000099B6 09 B3 F0 FF        		r1 &= ~Key_NibbleL
000099B8 19 D3 02 70        		[P_Key_Dir] = r1
000099BA 11 93 03 70        		r1 = [P_Key_Attrib]
000099BC 09 A3 F0 00        		r1 |= Key_NibbleH
000099BE 09 B3 F0 FF        		r1 &= ~Key_NibbleL
000099C0 19 D3 03 70        		[P_Key_Attrib] = r1
000099C2 11 93 01 70        		r1 = [P_Key_Buf]
000099C4 09 A3 F0 00        		r1 |= Key_NibbleH
000099C6 09 B3 F0 FF        		r1 &= ~Key_NibbleL
000099C8 19 D3 00 70        		[P_Key_Data] = r1
                            		
000099CA 40 92              		r1 = 0
000099CB 19 D3 A5 01        		[ScanCnt] = r1					// 初始化變量
000099CD 19 D3 A4 01        		[KeyCode] = r1
000099CF 19 D3 A6 01        		[KeyUp] = r1
000099D1 40 92              		r1 = C_TMB2_128Hz				// 開啟IRQ6_TMB2(128Hz)中斷
000099D2 19 D3 0E 70        		[P_TimeBase_Setup] = r1
000099D4 11 93 2D 70        		r1 = [P_INT_Mask]
000099D6 41 A2              		r1 |= C_IRQ6_TMB2
000099D7 19 D3 2D 70        		[P_INT_Mask] = r1
000099D9 43 F1              		INT FIQ,IRQ
000099DA 88 90              		pop r1 from [sp]
000099DB 90 9A              	retf
                            	
                            	//======================================================
                            	// 函數名稱:	Key_Scan
                            	// C調用:		void Key_Scan(void)
                            	// 匯編調用:	F_Key_Scan
                            	// 實現功能:   按鍵掃描,該函數被IRQ6_TMB2中斷服務程序調用
                            	// 入口參數:	無
                            	// 出口參數:	無
                            	// 破壞寄存器:	無
                            	//======================================================
                            	F_Key_Scan:
                            	_Key_Scan:
000099DC A0 D8              		push r1,r4 to [sp]
000099DD 12 95 00 70        		r2 = [P_Key_Data]				// 獲取IO端口狀態
000099DF 4F B4              		r2 &= Key_NibbleL
000099E0 05 4E              		jnz ?L_ScanKey_Down				// 判斷當前是否有鍵按下
                            	?L_ScanKey_Up:
000099E1 41 92              		r1 = 1							// 如果按鍵處于抬起狀態則KeyUp置1
000099E2 19 D3 A6 01        		[KeyUp] = r1
000099E4 80 FE 2B 9A        		goto ?L_ScanKey_Exit
                            	?L_ScanKey_Down:
000099E6 40 92              		r1 = 0							// KeyUp置0
000099E7 19 D3 A6 01        		[KeyUp] = r1
000099E9 14 99 01 70        		r4 = [P_Key_Buf]
                            	
000099EB 50 96              		r3 = Key_NibbleH & 0x1010
000099EC 0C B3 0F FF        		r1 = r4 & ~Key_NibbleH			// 掃描第1列(將第1列IO輸出置高,檢測輸入口狀態是否變化)
000099EE 03 A3              		r1 |= r3
000099EF 19 D3 00 70        		[P_Key_Data] = r1
000099F1 11 93 00 70        		r1 = [P_Key_Data]
000099F3 4F B2              		r1 &= Key_NibbleL
000099F4 21 4E              		jnz ?L_GetCode
                            		
000099F5 60 96              		r3 = Key_NibbleH & 0x2020		// 掃描第2列
000099F6 0C B3 0F FF        		r1 = r4 & ~Key_NibbleH
000099F8 03 A3              		r1 |= r3
000099F9 19 D3 00 70        		[P_Key_Data] = r1
000099FB 11 93 00 70        		r1 = [P_Key_Data]
000099FD 4F B2              		r1 &= Key_NibbleL
000099FE 17 4E              		jnz ?L_GetCode
                            	
000099FF 0B 97 40 00        		r3 = Key_NibbleH & 0x4040		// 掃描第3列
00009A01 0C B3 0F FF        		r1 = r4 & ~Key_NibbleH
00009A03 03 A3              		r1 |= r3
00009A04 19 D3 00 70        		[P_Key_Data] = r1
00009A06 11 93 00 70        		r1 = [P_Key_Data]
00009A08 4F B2              		r1 &= Key_NibbleL
00009A09 0C 4E              		jnz ?L_GetCode
                            	
00009A0A 0B 97 80 00        		r3 = Key_NibbleH & 0x8080		// 掃描第4列
00009A0C 0C B3 0F FF        		r1 = r4 & ~Key_NibbleH
00009A0E 03 A3              		r1 |= r3
00009A0F 19 D3 00 70        		[P_Key_Data] = r1
00009A11 11 93 00 70        		r1 = [P_Key_Data]
00009A13 4F B2              		r1 &= Key_NibbleL
00009A14 01 4E              		jnz ?L_GetCode
00009A15 75 EE              		jmp ?L_ScanKey_Up				// 如果未掃描到按鍵
                            	?L_GetCode:
00009A16 11 93 01 70        		r1 = [P_Key_Buf]				// 重新初始化IO
00009A18 09 A3 F0 00        		r1 |= Key_NibbleH
00009A1A 19 D3 00 70        		[P_Key_Data] = r1
                            		
00009A1C 03 A5              		r2 |= r3
                            	.if Key_IO_HighByte
                            		r2 = r2 lsr 4
                            		r2 = r2 lsr 4
                            	.endif
00009A1D 12 45 A4 01        		cmp r2,[KeyCode]				// 本次得到的鍵值與上次得到的鍵值比較
00009A1F 06 5E              		je	?L_ScanKey_Cont
                            	?L_ScanKey_New:						// 如果與上次鍵值不同則重置鍵值
00009A20 1A D5 A4 01        		[KeyCode] = r2
00009A22 41 92              		r1 = 1							// 重新記錄鍵持續按下的時間
00009A23 19 D3 A5 01        		[ScanCnt] = r1
00009A25 05 EE              		jmp ?L_ScanKey_Exit
                            	?L_ScanKey_Cont:					// 如果此次鍵值與上次鍵值相同
00009A26 11 93 A5 01        		r1 = [ScanCnt]					// 更新按鍵持續時間(ScanCnt加1)
00009A28 41 02              		r1 += 1
00009A29 19 D3 A5 01        		[ScanCnt] = r1
                            	?L_ScanKey_Exit:
00009A2B A0 90              		pop r1,r4 from [sp]
00009A2C 90 9A              	retf
                            	
                            	//======================================================
                            	// 函數名稱:	Key_Get
                            	// C調用:		unsigned Key_Get(void)
                            	// 匯編調用:	F_Key_Get
                            	// 實現功能:   獲取鍵值
                            	// 入口參數:	無
                            	// 出口參數:	r1 - 獲得的鍵值
                            	// 破壞寄存器:	r1
                            	//======================================================
                            	F_Key_Get:
                            	_Key_Get:
00009A2D 40 F1              		INT OFF
00009A2E 88 D4              		push r2 to [sp]
                            	
00009A2F 12 95 A5 01        		r2 = [ScanCnt]
00009A31 44 44              		cmp r2,Key_Debounce				// 如果按鍵持續時間小于Key_Debounce
00009A32 06 0E              		jb	?L_GetKey_NoKey				// 則認為當前沒有鍵按下
00009A33 0A 45 40 00        		cmp r2,Key_TimeOut				// 如果按鍵持續時間大于Key_TimeOut
00009A35 05 1E              		jnb ?L_GetKey					// 則認為發生了一次按鍵
00009A36 12 95 A6 01        		r2 = [KeyUp]					// 如果按鍵持續時間在Key_Debounce與Key_TimeOut之間
00009A38 02 4E              		jnz ?L_GetKey					// 如果按鍵處于抬起狀態則認為發生了一次按鍵
                            	?L_GetKey_NoKey:
00009A39 40 92              		r1 = 0							// 沒有按鍵則返回0
00009A3A 09 EE              		jmp ?L_GetKey_Exit
                            	?L_GetKey:
00009A3B 11 93 A4 01        		r1 = [KeyCode]					// 有按鍵則返回鍵值
00009A3D 40 94              		r2 = 0
00009A3E 1A D5 A4 01        		[KeyCode] = r2					// 重新初始化變量
00009A40 1A D5 A5 01        		[ScanCnt] = r2
00009A42 1A D5 A6 01        		[KeyUp] = r2
                            	?L_GetKey_Exit:
00009A44 43 F1              		INT FIQ,IRQ
00009A45 88 92              		pop r2 from [sp]
00009A46 90 9A              	retf
0 error(s), 0 warning(s).





































?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看免费成人| 狠狠色伊人亚洲综合成人| 99久久精品免费看国产| 亚洲色图制服诱惑| 欧美日韩国产系列| 蜜桃视频在线观看一区二区| 日韩一区二区免费在线电影| 久久综合综合久久综合| 国产日韩成人精品| 99精品黄色片免费大全| 婷婷综合另类小说色区| 精品久久人人做人人爱| 国产盗摄一区二区| 亚洲老司机在线| 欧美精品免费视频| 国产福利91精品| 一区二区三区在线高清| 日韩精品资源二区在线| 成人av网站在线观看| 一区二区国产视频| 日韩欧美国产三级| 99re这里只有精品视频首页| 日韩av成人高清| 国产精品久久毛片a| 91精品综合久久久久久| 国产成人av一区二区三区在线观看| 亚洲天堂中文字幕| 精品美女一区二区三区| 色哟哟亚洲精品| 美国毛片一区二区三区| 亚洲人成网站色在线观看| 日韩精品一区二区三区中文不卡 | 亚洲成人1区2区| 精品99999| 91影视在线播放| 麻豆免费精品视频| 亚洲视频免费观看| 精品久久五月天| 欧美在线free| 成人av午夜电影| 久久成人综合网| 五月婷婷色综合| 日韩理论片在线| 亚洲精品一区二区三区福利| 在线精品视频一区二区三四 | 99久久综合精品| 欧美aⅴ一区二区三区视频| 亚洲精选在线视频| 国产婷婷色一区二区三区四区| 欧美老年两性高潮| 91在线一区二区三区| 国产露脸91国语对白| 日韩专区在线视频| 亚洲一区二区三区视频在线| 国产精品美女久久久久aⅴ| 日韩美女一区二区三区| 欧美伦理影视网| 欧美日韩一区二区三区四区五区 | 欧美亚洲动漫制服丝袜| 成人av动漫在线| 懂色av一区二区在线播放| 激情六月婷婷综合| 精品一区二区三区在线观看国产| 亚洲福利视频一区| 亚洲国产精品尤物yw在线观看| 亚洲视频在线一区| 亚洲免费伊人电影| 亚洲人成人一区二区在线观看| 国产精品国产三级国产普通话蜜臀 | 中文字幕一区二区三区蜜月| 国产欧美一区二区精品性| 精品国产三级电影在线观看| 91精品国产色综合久久| 在线播放/欧美激情| 欧美日韩成人综合天天影院| 欧美亚洲综合一区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 99精品在线观看视频| 成人av在线一区二区| www.亚洲精品| 一本大道av一区二区在线播放 | 久久疯狂做爰流白浆xx| 九九精品视频在线看| 精品午夜一区二区三区在线观看| 蜜臀久久99精品久久久画质超高清| 日本女优在线视频一区二区| 蜜臀久久久99精品久久久久久| 捆绑变态av一区二区三区| 美女在线视频一区| 久久se精品一区二区| 国产精品资源网| 成人国产亚洲欧美成人综合网| av在线不卡免费看| 欧美影院一区二区| 91精品国产高清一区二区三区蜜臀| 日韩欧美成人午夜| 国产视频一区二区三区在线观看| 国产精品传媒入口麻豆| 亚洲精品国产精华液| 视频一区中文字幕| 国产一区二区三区精品视频| 成人激情小说网站| 欧美日韩日日骚| 26uuu精品一区二区三区四区在线| 国产午夜精品一区二区| 又紧又大又爽精品一区二区| 人人精品人人爱| 国产suv一区二区三区88区| 91麻豆精东视频| 日韩一级片在线播放| 中文字幕欧美三区| 亚洲国产一区二区三区| 国产一区二区三区免费看| 91香蕉视频污在线| 欧美电影免费观看高清完整版在 | 视频一区视频二区中文| 国产一区二区三区最好精华液 | 欧美精品三级日韩久久| 国产日本亚洲高清| 亚洲成人三级小说| 成人午夜视频在线| 91精品国产综合久久久蜜臀图片 | 亚洲一卡二卡三卡四卡无卡久久| 另类欧美日韩国产在线| 色婷婷综合久久久久中文一区二区| 日韩欧美一区二区视频| 亚洲精品高清视频在线观看| 久久机这里只有精品| 色天天综合色天天久久| 久久精品一区二区三区av| 婷婷开心激情综合| 99久久精品一区二区| 久久精品视频免费| 免费精品视频最新在线| 欧美在线短视频| 亚洲欧洲日韩综合一区二区| 国产主播一区二区三区| 欧美一级久久久| 亚洲一区二区三区四区在线免费观看 | 欧美另类z0zxhd电影| 中文字幕欧美一区| 国产伦精品一区二区三区免费 | 久草中文综合在线| 欧美日韩视频在线一区二区| 最新欧美精品一区二区三区| 国产一区二区伦理片| 日韩欧美一级精品久久| 婷婷一区二区三区| 欧美中文一区二区三区| 综合色天天鬼久久鬼色| 成人涩涩免费视频| 国产日产精品1区| 国产乱子轮精品视频| 精品国产青草久久久久福利| 美脚の诱脚舐め脚责91| 波多野结衣欧美| 亚洲国产精品麻豆| 国产精品视频免费看| 狠狠色狠狠色合久久伊人| 欧美一区二区三区电影| 日本成人在线看| 911精品产国品一二三产区| 午夜精品视频一区| 欧美喷潮久久久xxxxx| 图片区小说区区亚洲影院| 欧美人与禽zozo性伦| 夜色激情一区二区| 在线观看国产精品网站| 亚洲动漫第一页| 欧美顶级少妇做爰| 日韩精品欧美精品| 欧美大片日本大片免费观看| 美女在线一区二区| 久久蜜臀精品av| 亚洲国产成人在线| 亚洲bt欧美bt精品777| 欧美巨大另类极品videosbest| 一区二区在线观看免费视频播放| 色偷偷久久人人79超碰人人澡| 亚洲另类春色国产| 在线观看日韩毛片| 婷婷成人综合网| 91精品国产欧美日韩| 国产一区二区在线观看视频| 亚洲国产精品t66y| 不卡av在线网| 一区二区三区视频在线看| 欧美二区三区的天堂| 国产精品伊人色| 亚洲欧美成aⅴ人在线观看| 92国产精品观看| 天堂资源在线中文精品| 欧美电影免费观看高清完整版| 国产盗摄视频一区二区三区| 亚洲精品亚洲人成人网| 欧美一区二区成人| 成人免费va视频| 日韩av中文字幕一区二区三区| 亚洲精品在线免费播放| 国产成人av一区二区|