Cảm ơn hai anh, tại vị trí RA4 em cho thêm một con trở kéo lên và đèn đã sáng. Như vậy việc test out tại các cổng đã xong.
Bây giờ em test cổng A như là đầu vào với các chân được nối với trở 560R xuống GND, 4 phím bấm nối với các chân RA0-RA3 và có chân chung là 5V. Em copy đoạn chương trình bật đèn tại cổng B tương ứng phím bấm tại cổng A của anh Falleaf, chỉ bật đèn ở Port B khi có tín hiệu 5V tại port A tương ứng (thay lệnh BTFSC bằng BTFSS). Tuy nhiên các đèn lại sáng hết và không có tác động gì khi ấn phím. Còn khi thay hai lệnh BTFSS bằng BTFSC thì hai đèn tương ứng bị tắt. Dường như Port A không thay đổi giá trị khi ấn phím và luôn luôn giữ giá trị 0. Các anh có thể chỉ cho em tại sao không?
Đoạn chương trình của em:
Code:
TITLE "Mach test ban phim"
PROCESSOR P16F628A
INCLUDE <P16F628A.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC & _LVP_OFF
;================================================= ======
ORG 0x0000
GOTO MAIN
ORG 0x0005
MAIN
BANKSEL TRISB
CLRF TRISB
MOVLW 0xff ; chon cong A la dau vao
MOVWF TRISA
BANKSEL PORTB
;CLRF PORTA ; lenh nay co hay khong deu thuc hien nhu nhau
CLRF PORTB
;=============================================================================
SW0 BTFSS PORTA, 0
GOTO TURNON0
BCF PORTB, 0
SW1 BTFSC PORTA, 1
GOTO TURNON1
BCF PORTB, 1; khi thay BTFSS boi BTFSC thi den nay tat
SW2 BTFSS PORTA, 2
GOTO TURNON2
BCF PORTB, 2
SW3 BTFSC PORTA, 3
GOTO TURNON3
BCF PORTB, 3; khi thay BTFSS boi BTFSC thi den nay tat
GOTO SW0 ; quay l?i quét t? d?u
TURNON0 BSF PORTB, 0
GOTO SW1
TURNON1 BSF PORTB, 1
GOTO SW2
TURNON2 BSF PORTB, 2
GOTO SW3
TURNON3 BSF PORTB, 3
GOTO SW0
nop
;=============================================================================
END
Còn nữa, anh có giải pháp nào để em có thể so sánh giá trị tại địa chỉ d4 mà không phải là so sánh d4 với 0x01 không, chỉ em luôn nhé.
Cho em hỏi thêm ngoài lề: nếu dùng LCD với 4 đường dữ liệu thì đấu nối RB0 với D4, RB1 với D5, RB2 với D6, RB3 với D7? còn khi khởi động thì đưa giá trị 30h ra LCD để RESET LCD trước (theo cách 4 đường dữ liệu) hay khởi tạo LCD ở chế độ 4 bít trước?
Thank so much.