Trích:
Nguyên văn bởi luanktd
Mình muốn hỏi các bác.Mình có viết một chương trình sau với PIC8F4431 nhưng khi dịch ra chạy thì chạy không đươc
Code:
#include<18f4431.h>
#fuses NOWDT,NOLVP,PUT,XT
#byte PORTB=0xF81
#byte TRISB=0xF93
void main()
{
While(1)
{
TRISB=0x00;
PORTB=0x0F;
}
}
Các chân ở portB đều là 0V hết.Mong các bác chỉ giáo
|
Bạn chạy thử bằng mô phỏng hay mạch thật? Nếu thử bằng mạch thật thì tần số thạch anh được sử dụng là bao nhiêu?
PIC18F4431 có 7 từ cấu hình, trong đó tối thiểu các từ cấu hình 1 đến 4 cần được thiết lập giá trị ban đầu. Bạn chỉ thiết lập có vài cụm cấu hình trong số đó. Tôi đã gặp nhiều trường hợp PIC18F không chạy trong mạch thật, chỉ vì thiết lập thiếu các từ cấu hình.
Khi viết code cho PIC18, tôi luôn thiết lập đầy đủ các từ cấu hình. Ví dụ dưới đây viết cho MPLAB C18, dùng cho các PIC18 như PIC18Fx320:
Code:
//Configuration bits
#pragma config OSC = INTIO1
#pragma config FSCM = OFF
#pragma config IESO = OFF
#pragma config PWRT = OFF
#pragma config BOR = ON
#pragma config BORV = 27
#pragma config WDT = OFF
#pragma config WDTPS = 32768
#pragma config MCLRE = ON
#pragma config PBAD = DIG
#pragma config CCP2MX = C1
#pragma config STVR = ON
#pragma config LVP = OFF
#pragma config DEBUG = OFF
#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
#pragma config WRTB = OFF
#pragma config WRTC = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
Thân,