Ðề tài: Giúp em với.
View Single Post
Old 28-08-2007, 10:35 AM   #1
hoang1487
Nhập môn đệ tử
 
Tham gia ngày: Aug 2007
Bài gửi: 4
:
Giúp em với.

Em dùng con PIC16F84A để thiết kế mạch. Em muốn kiểm tra xem nếu RA0, RA1 và RA2 high thì đợi 1 khoảng thờii gian sau sẽ check lại, nếu tiếp tục như vậy thì set RB0 high. Code của em như sau:

#include <P16F84A.INC>
org 00;
Initial MOVLW 00 ; use to clear port A and port B
MOVWF PORTA ; clear port A
MOVWF PORTB ; clear port B
BSF STATUS,5 ; switch to bank 1
MOVLW 07h ;
MOVWF TRISA ; set RA0,RA1,RA2 be input
BCF STATUS,5 ; switch to bank 0
MOVLW 64h ; COUNT value
MOVWF 01h ; COUNT Memory address
START CALL Check
CALL Delay
CALL Check
MOVLW 01h ; set 1 for RB0
MOVWF PORTB
Check BTFSS PORTA,0 ; check RA0
GOTO START
BTFSS PORTA,1 ; check RA1
GOTO START
BTFSS PORTA,2 ; check RA2
GOTO START
return
Delay decfsz COUNT,1 ; delay loop
goto Delay
return
End
Khi biên dịch trong MPLAB nó báo lỗi là :
ASM 8 : Register in operand not in bank 0. Ensure that bank bits are correct.
Rồi em thử mô phỏng trong Proteus, cung cấp nguồn 5V cho RA0,RA1,RA2 và nối 1 con LED vào RB0 nhưng nó không sáng. Giúp em với.
hoang1487 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn