16-01-2007, 05:01 PM
|
#11
|
Đệ tử 2 túi
Tham gia ngày: Sep 2006
Bài gửi: 33
:
|
Trích:
Nguyên văn bởi nhh
Đấ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??
|
|
|