View Single Post
Old 16-01-2007, 05:01 PM   #106
anhquangngai
Đệ tử 2 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 33
:
Trích:
Nguyên văn bởi nhh View Post
Đấy là chương trình quét 16 phím bấm hiển thị lên LED 7 đoạn các số từ 0 đến 9 và các chữ A,b,C,d,E,F.
Xem hình ở file đính kèm!
Code:
;========================================
;Auhor:		NHH
;Date:		02/03/06
;Hardware:	PIC16F877A connect PORTB by R220
;========================================
	TITLE 		"Giai ma ban phim dung interrupt RB4...RB7"
	PROCESSOR	PIC16f877A 
	INCLUDE<P16f877A.inc> 
	__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _CPD_OFF &_LVP_OFF
;========================================
	COUNT	EQU	0x20	
w_temp		EQU	0x71		; variable used for context saving 
status_temp	EQU	0x72		; variable used for context saving
pclath_temp	EQU	0x73		; variable used for context saving			

;=============================================================================
;CHUONG TRINH CHINH
;=============================================================================
	ORG 0000h
	GOTO 	MAIN
	ORG 0004h
	GOTO	INTERRUPT

;==============================INTERRUPT PROGRAM===========================		
INTERRUPT
	movwf w_temp	 ; save off current W register contents
	movf STATUS,w 	; move status register into W register
	movwf status_temp	 ; save off contents of STATUS register
	movf PCLATH,w	 ; move pclath register into w register
	movwf pclath_temp 	; save off contents of PCLATH register
;******************************************************************************
	BCF	INTCON,RBIF
	
	MOVLW	b'00000001'
	MOVWF	PORTB
	BTFSS	PORTB,4
	GOTO	DIS_1
	MOVLW	d'0'	;0
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_1
	BTFSS	PORTB,5
	GOTO	DIS_2
	MOVLW	d'1'	;1
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_2
	BTFSS	PORTB,6
	GOTO	DIS_3
	MOVLW	d'2'	;2
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_3
	BTFSS	PORTB,7
	GOTO	DIS_4
	MOVLW	d'3'	;3
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_4
	MOVLW	b'00000010'
	MOVWF	PORTB
	BTFSS	PORTB,4
	GOTO	DIS_5
	MOVLW	d'4'	;4
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_5
	BTFSS	PORTB,5
	GOTO	DIS_6
	MOVLW	d'5'	;5
	CALL	TABLE
	MOVWF	PORTC
	retfie 

DIS_6
	BTFSS	PORTB,6
	GOTO	DIS_7
	MOVLW	d'6'	;6
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_7
	BTFSS	PORTB,7
	GOTO	DIS_8
	MOVLW	d'7'	;7
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_8
	MOVLW	b'00000100'
	MOVWF	PORTB
	BTFSS	PORTB,4
	GOTO	DIS_9
	MOVLW	d'8'	;8
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_9
	BTFSS	PORTB,5
	GOTO	DIS_A
	MOVLW	d'9'	;9
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_A
	BTFSS	PORTB,6
	GOTO	DIS_b
	MOVLW	d'11'	;A
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_b
	BTFSS	PORTB,7
	GOTO	DIS_C
	MOVLW	d'12'	;b
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_C
	MOVLW	b'00001000'
	MOVWF	PORTB
	BTFSS	PORTB,4
	GOTO	DIS_d
	MOVLW	d'13'	;C
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_d
	BTFSS	PORTB,5
	GOTO	DIS_E
	MOVLW	d'14'	;d
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_E
	BTFSS	PORTB,6
	GOTO	DIS_F
	MOVLW	d'15'	;E
	CALL	TABLE
	MOVWF	PORTC
	retfie 
DIS_F
	BTFSS	PORTB,7
	GOTO	$+4
	MOVLW	d'16'	;F
	CALL	TABLE
	MOVWF	PORTC
	retfie 




;******************************************************************************
	movf pclath_temp,w 		; retrieve copy of PCLATH register
	movwf PCLATH 		; restore pre-isr PCLATH register contents
	movf status_temp,w 		; retrieve copy of STATUS register
	movwf STATUS 		; restore pre-isr STATUS register contents
	swapf w_temp,f
	swapf w_temp,w 		; restore pre-isr W register contents
	retfie 			; return from interrupt
;==============	CHUONG TRINH CHINH===============
MAIN
	BCF 	STATUS,RP1
	BSF 	STATUS,RP0 	; chon BANK 1
	MOVLW	b'11110000'	;RB0=Input
	MOVWF	TRISB
	CLRF	TRISC
	
	BCF 	STATUS,RP0 	; chon BANK 0
	BSF	INTCON,GIE
	BSF	INTCON,RBIE	;cho phep ngat RB4...RB7

	MOVLW	d'10'
	CALL	TABLE
	MOVWF	PORTC
LOOP		
	MOVLW	b'00001111'
	MOVWF	PORTB	
	GOTO	LOOP
;----------------------------------------------------------
; Bang tra ve Digital tu 0 den 9 va  A....F
; Chi so dau truy cap la 0
; Bang o PAGE 0

	ORG 0x90
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'00000000' 		; NODISPLAY
	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
Ko go dc TV thong cam!

co bac nao chay thu chuong trinh nay tren phan cung chua?
Em da chay thu tren phan cung voi Thach Anh 20MHz nhung no ko chay
anh em nao da co chuong trinh chay tot tren phan cung giai ma ban phim thi post len cho em xin dc ko?
chuong trinh bac NHH viet thi chay rat tot khi mo phong bang Proteus nhung khi chay tren phan cung thi ko dc?
Mong bac nao giup em voi??
anhquangngai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn