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 19-09-2008, 06:44 PM   #1
8051topic
Đệ tử 4 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 71
:
Hiển thị số '1234' trên LED 7 đoạn - PIC6F887

Chào mọi người!
Mình viết một chương trình đơn giản hiển thị số '1234' trên 4 LED 7 đoạn (dùng 7447 để giải mã) với PIC16F887 mà nó hiển thị đúng với PORTC, D, còn PORTB thì hiển thị số '1288'.
Nhưng nếu lấy kết quả ở PORTD đem qua PORTB thì lại đúng.
Mình đã kiểm tra phần cứng rồi (mạch không hề bị chạm ở PORTB), đã thử với con PIC mới khác luôn.
Mô phỏng trên Proteus thấy tốt trên cả 3 PORT.
PORTB chạy các ứng dụng khác bình thường.
Vậy mọi người xem giúp mình xem lí do tại sao?
Thanks everybody!
Code:
;---------------------------------------------------------------------------
	List p=16f887
	#INCLUDE <P16F887.INC>
	__CONFIG	_CONFIG1, _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC &_LVP_OFF
;THACH ANH 4MHZ
;CHUONG TRINH HIEN THI SO '1234' LEN 4 LED 7SEG DUNG 7447
;OK VOI PORT C, D
;O PORT B NO HIEN THI SO 1288 --> KHONG HIEU
;TRINH DICH MPLAB 8.14
;---------------------------------------------------------------------------
COUNT1	EQU	0X20
COUNT2	EQU	0X21
COUNT3	EQU	0X22
;---------------------------------------------------------------------------
	ORG		0X0000
	GOTO	MAIN
MAIN
;KHOI TAO PORT
	BANKSEL	TRISB
	CLRF	TRISB
	CLRF	TRISC
	CLRF	TRISD
	BANKSEL	PORTB
;---------------------------------------------------------------------------
;BAT DAU CHUONG TRINH
START
	MOVLW	0xE0		;DONVI
	MOVWF	PORTB
	MOVLW	0x04
	IORWF	PORTB,F
	CALL	DELAY1

	MOVLW	0D0H		;CHUC
	MOVWF	PORTB
	MOVLW	03H
	IORWF	PORTB,F
	CALL	DELAY1

	MOVLW	0B0H		;TRAM
	MOVWF	PORTB
	MOVLW	02H
	IORWF	PORTB,F
	CALL	DELAY1

	MOVLW	070H		;NGAN
	MOVWF	PORTB
	MOVLW	01H
	IORWF	PORTB,F
	CALL	DELAY1

	GOTO	START
                    
DELAY1
	MOVLW	d'1'
	MOVWF	COUNT1
D1
	MOVLW	d'199'
	MOVWF	COUNT2
	MOVLW	d'1'
	MOVWF	COUNT3
DELAY0
	DECFSZ	COUNT2,1
	GOTO	$+2
	DECFSZ	COUNT3,1
	GOTO	DELAY0
	DECFSZ	COUNT1,1
	GOTO	D1
	RETURN

	END
Mình không biết cách pót code mong moi người thông cảm!

thay đổi nội dung bởi: 8051topic, 22-09-2008 lúc 04:48 PM.
8051topic 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


Múi giờ GMT. Hiện tại là 12:09 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