![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| 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 |
|
|
#1 |
|
Đệ 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
thay đổi nội dung bởi: 8051topic, 22-09-2008 lúc 04:48 PM. |
|
|
|
|
|