View Single Post
Old 17-08-2007, 09:35 AM   #11
david
Đệ tử 4 túi
 
david's Avatar
 
Tham gia ngày: Aug 2006
Bài gửi: 81
:
Em viết thế này có được không?

[IMG][/IMG]
Code:
;========================================================
				TITLE		"KEYPAD_4X4"
				PROCESSOR	P16F877A
				INCLUDE		<P16F877A.inc>
				__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF & _LVP_OFF
				
;==========================================================
;Khai bao bien		:
	
				COT			EQU			0X20
				HANG		EQU			0X21
				QUET		EQU			0X22
				DEM			EQU			0X23
				HANG1		EQU			4
				HANG2		EQU			5
				HANG3		EQU			6
				HANG4		EQU			7

;=============================================================
;Chuong trinh chinh
;=============================================================

				ORG			0X0000
				GOTO		MAIN
				ORG			0X0005
MAIN
				BANKSEL		TRISA
				CLRF		TRISB
				CLRF		TRISD
				BANKSEL		PORTA
				CLRW
				MOVWF		PORTB
				MOVWF		PORTD
				MOVWF		COT
				MOVWF		HANG
				MOVWF		DEM
				MOVLW		B'00000001'
				MOVWF		QUET
	LOOP
				MOVF		QUET,0
				MOVWF		PORTB
				BANKSEL		TRISA
				MOVLW		B'11110000'
				MOVWF		TRISB
				BANKSEL		PORTB
				BTFSC		PORTB,HANG1
				CALL		HANG1_SFR
				BTFSC		PORTB,HANG2
				CALL		HANG2_SFR
				BTFSC		PORTB,HANG3
				CALL		HANG3_SFR
				BTFSC		PORTB,HANG4
				CALL		HANG4_SFR
				INCF		DEM,1
				MOVF		DEM,0
				XORLW		D'4'
				BTFSC		STATUS,Z
				RETLW		0X00
				RLF			QUET
				BANKSEL		TRISB	
				CLRF		TRISB
				BANKSEL		PORTB
				GOTO		LOOP
	
	HANG1_SFR
				MOVF		COT,0
				CALL		TABLE
				MOVWF		PORTD
				RETURN
	HANG2_SFR	
				MOVF		COT,0
				ADDLW		D'4'
				CALL		TABLE
				MOVWF		PORTD
				RETURN
	HANG3_SFR
				MOVF		COT,0
				ADDLW		D'8'
				CALL		TABLE
				MOVWF		PORTD
				RETURN
	HANG4_SFR
				MOVF		COT,0
				ADDLW		D'12'
				CALL		TABLE
				MOVWF		PORTD
				RETURN
;-----------------------------------------------------------------
	TABLE
					ADDWF 	PCL, F 		; bat dau tai 0x80
					RETLW 	b'00111111' 		; 0
					RETLW 	b'00000110' 		; 1
					RETLW 	b'01011011' 		; 2
					RETLW 	b'01001111' 		; 3
					RETLW 	b'01100110' 		; 4
					RETLW 	b'01101101' 		; 5
					RETLW 	b'01111101' 		; 6
					RETLW 	b'00000111' 		; 7
					RETLW 	b'01111111' 		; 8
					RETLW 	b'01101111' 		; 9
					RETLW 	b'01110111' 		; A
					RETLW 	b'01111100' 		; B
					RETLW 	b'00111001' 		; C
					RETLW 	b'01011110' 		; d
					RETLW 	b'01111001' 		; E
					RETLW 	b'01110001' 		; F


	END
em debug băng MPLABSIM thì thấy đúng như ý tưởng của mình,nhưng kô mô phỏng được,các bác coi dùm nhé
Hình Kèm Theo
File Type: jpg keypad4x4.jpg (67.7 KB, 234 lần tải)
david vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn