PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 16-01-2007, 05:01 PM   #11
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
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 24 17-03-2024 12:25 AM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
TUT về USART trong PIC16F877A mafd_47a MPASM 10 28-09-2009 09:58 PM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


Múi giờ GMT. Hiện tại là 04:07 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam