PDA

View Full Version : Chuyển đổi code từ pic16f84 sang pic18f242


irkutsk
04-08-2007, 10:11 AM
Mình có đoạn code đã viết cho pic16f84, giờ thử chuyến sang pic18f242 nhưng mày mò mãi chẳng được. Bạn nào có thể chuyển cho mình sang đoạn code tương đương trong pic18f242 được không?
Chân thành cảm ơn trước!
main clrf PORTA
clrf PORTB
bsf STATUS, RP0 ;bank 1
movlw b'00000011' ;input
movwf PORTA ;RA0,RA1 input, còn lại output
movlw b'00000001' ;port B
movwf PORTB ;RB0 input,conlai output
movlw b'00111111'
movwf OPTION_REG
movlw b'10010000'
movwf INTCON
bcf STATUS,RP0 ;bank 0

rlf code1
movwf PORTB
end

falleaf
04-08-2007, 07:10 PM
Tập lệnh của PIC16 và 18 khác nhau, cho nên bạn chỉ cần chuyển từng lệnh tương ứng sang. Việc sử dụng tập lệnh 16 chuyển lên 18 sẽ đơn giản, và hầu như không cần phải đổi thuật toán, việc chuyển ngược lại mới là vấn đề.

Bạn thử đọc tập lệnh 18 và tìm các lệnh tương ứng và chuyển từng lệnh bằng từng lệnh của 18, như vậy là xong thôi.

Chúc vui

irkutsk
04-08-2007, 11:11 PM
Em cũng biết thế và cũng đã thử rồi nhưng khổ nổi 2 cai pic nay regist nó khác nhau. Em đã thử đổi sang thế này nhưng vẫn chưa ổn lắm! Sau khi chạy thử trong Proteus thì các cổng PORTB nó vẫn xám xịt, chẳng phải input mqaf cũng chẳng được output!. Chắc tại cái lệnh cuối
bcf STATUS,RP0 ;bank 0
em chưa tìm được lệnh tương ứng...

main clrf PORTA
clrf LATA
movlw b'00000011'
movwf TRISA
clrf PORTB
clrf LATB
movlw b'00000001'
movwf TRISB
movlw b'00111111'
movwf INTCON2
movlw b'10010000'
movwf INTCON

rlncf code1,w
movwf PORTB

end