;
; file name: key_scan.txt
; dest file: key_scan.src
; version: 1.0.1.3
; update: 3-9-11 17:05
; coder: use_id
;


==================
ܸ
==================
	1.  A/D ÿ 10ms ʱõһȷֵ(key_scan) ɴӦĹܲ(key_proc).
	2. 10ms ʱж(intt0)趨
	3. ʵ̵ּܺͼ̵İסܣûʵϼ


==================
壺
==================

; =============================================================
; panel keyboard(pk) variables
gPk_Begin:				.equ		gRm_End+00h
gPk_Data:				.equ		gPk_Begin+00h	; 8bit
gPk_Scan:				.equ		gPk_Begin+00h	; 4bit, key scan value
gAd_Sw:					.equ		gPk_Begin+01h	; 4bit, a/d pin switch
gAd_Original:			.equ		gPk_Begin+02h	; 8bit, a/d conversion data
gPk_Scan_Counter:		.equ		gPk_Begin+04h	; 8bit
gPk_Buffer:				.equ		gPk_Begin+06h	; 8bit
gPk_End:				.equ		gPk_Begin+08h

; panel keyboard flag bit variables
gPk_Flag00:				.equ		gMain_Flag_03
;fPk_Switch:			.bit		gPk_Flag00.0
fPk_Scan_OK:			.bit		gPk_Flag00.1
fPk_Continue:			.bit		gPk_Flag00.2
fPk_Scanned:			.bit		gPk_Flag00.3


==================
˵
==================

gAd_Sw:			A/D ѡ񿪹أֵΪ0, 1, 2, 3ֱӦADC0, ADC1, ADC2, ADC3
gAd_Original:	A/D תֵ Ϊ 8bit ֵ ad_original proc õ
gPk_Scan:		洦 A/DתֵΪ 4bit, ֵΪ0ʱ
gPk_Data:		A/D ֵ󣬵õֵ̰4bitΪ A/Dѡ񿪹ֵ(gAd_Sw)
				4bitǼɨֵ(gPk_Scan)ǵַͬ
				
gPk_Scan_Counter:	ڰסʱĹ
					 gPk_Scan_Counter = #cKs_Counter_Proc ʱ̵Чʱ
					ӦİסʱΪcKs_Counter_Proc * 10ms
					 gPk_Scan_Counter = #cKs_Counter_Conti ʱ̰סЧʱ
					ӦİסʱΪcKs_Counter_Conti * 10ms
gPk_Buffer:		ŵһβɼֵڶԵһβɼֵĲɼֵȣʱ
				ζѰ˲ͬ״ʱζڰסĳš
				
				
==================
λ˵
==================

fPk_Scan_OK:	ɼֵΪЧʱfPk_Scan_OK = 1ɼֵЧʱfPk_Scan_OK = 0
				ֻеɼֵЧʱkey_proc ŻȥִɼİӦĹܡ
				
fPk_Continue:	ڼ̰סܡ fPk_Continue = 1ʱ̰סЧ
				ֻе fPk_Scanned = 1ʱfPk_Continue л԰סȡá
fPk_Scanned:	ÿһЧʱfPk_Scanned = 1fPk_ContinueǰǣֻеЧ
				ſаסĳ֡
				
				
==================
˵
==================

key_init		ҪA/D Ч ȶӦĳʼ
				˹̶ A/D ڽгʼ ѡĬϵĿֵΪ3(gAd_Sw=3)
				
ad_original		 gAd_Swõ A/D תֵ gAd_Original .
				
get_key_scan	 gAd_Original еֵӦĴ
				õһ8bitֵ(gPk_Data).

key_scan		װ ad_original  get_key_scanԼʵֶԼ̵ĵǰסм

key_proc		 get_key_scan õ gPk_Data ֵӦļ̹ܲ


==================
ע⣺
==================

1ȡA/Dʱ get_key_scan ʱķΧֵͬʱ
	ҪĶ޸ģ
; ============================================================
; keyboard scan const value range, you can modify under value
; when you range value diffirent
cKey_Value_00:			equ		009h
cKey_Value_01:			equ		014h
cKey_Value_02:			equ		028h
cKey_Value_03:			equ		03eh
cKey_Value_04:			equ		056h
cKey_Value_05:			equ		0b1h

2ڰʱ䴦棬ɶĶֵ޸ģ
; ============================================================
; key scan counter define, you can modify under the value 
; to modify press key delay time
cKs_Counter_Proc:		equ		07		; 70ms = 07 * 10ms
cKs_Counter_Conti:		equ		70		; 700ms = 70 * 10ms

 cKs_Counter_Proc Ϊ̵ʱʱ䣻 cKs_Counter_Conti Ϊסʱʱ䡣