atclub
21-04-2007, 04:06 AM
Em mới học pic và bắt đầu với con 16f877a, có làm bài test port B với code như sau:
processor 16f877a ; khai báo vi điều khiển
include <p16f877a.inc> ; header file dính kèm
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF ; khai báo “configuration bit”
;---------------- Chuong trình chính ---------------------------
ORG 0x00
GOTO start
start
BCF STATUS,RP1
BSF STATUS,RP0 ; chọn BANK 1
CLRF TRISB ; khởii tạo PORTB - PORTB là cổng xuất dữ liệu
CLRF STATUS ; chọn BANK 0
MOVLW 0X00 ;
MOVWF PORTB ; PORTB = 0
loop
GOTO loop
END
Phần mềm dùng MPLab IDE 7.40, ấn CLTR F10 thì được file hex nhưng khi nạp vào Pic thì PortB vẫn ở mức 5v trong khi đó em làm bằng C để test port (dùng CCSC_3.249 ) thì lại được. Mạch test của em làm giống như bác ntc đã chỉ dẫn! Mong mọi người giúp đỡ.
processor 16f877a ; khai báo vi điều khiển
include <p16f877a.inc> ; header file dính kèm
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF ; khai báo “configuration bit”
;---------------- Chuong trình chính ---------------------------
ORG 0x00
GOTO start
start
BCF STATUS,RP1
BSF STATUS,RP0 ; chọn BANK 1
CLRF TRISB ; khởii tạo PORTB - PORTB là cổng xuất dữ liệu
CLRF STATUS ; chọn BANK 0
MOVLW 0X00 ;
MOVWF PORTB ; PORTB = 0
loop
GOTO loop
END
Phần mềm dùng MPLab IDE 7.40, ấn CLTR F10 thì được file hex nhưng khi nạp vào Pic thì PortB vẫn ở mức 5v trong khi đó em làm bằng C để test port (dùng CCSC_3.249 ) thì lại được. Mạch test của em làm giống như bác ntc đã chỉ dẫn! Mong mọi người giúp đỡ.