PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-10-2011, 09:50 PM   #31
eethn
Đệ tử 1 túi
 
eethn's Avatar
 
Tham gia ngày: Sep 2011
Bài gửi: 12
:
k ai giúp đc àh?
k biết là do ADC hay phần đưa ra hiển thị nữa
eethn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2012, 02:38 AM   #32
vipboypro891
Nhập môn đệ tử
 
vipboypro891's Avatar
 
Tham gia ngày: Feb 2012
Bài gửi: 8
:
em mới học pic em mới lập trình test led
em khai báo
MOVLW d'11111111'
MOVWF PORTB
thì chỉ có 5 led sáng là ở các chân 0 1 2 3 7
nhưng khai báo
MOVLW 0xFF
MOVWF PORTB
thì tất cả đều sáng cho em hỏi với code thứ nhất em bị sai chỗ nào mọi người giúp em với dc không ạ
vipboypro891 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2012, 11:44 AM   #33
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi vipboypro891 View Post
em mới học pic em mới lập trình test led
em khai báo
MOVLW d'11111111'
MOVWF PORTB
thì chỉ có 5 led sáng là ở các chân 0 1 2 3 7
nhưng khai báo
MOVLW 0xFF
MOVWF PORTB
thì tất cả đều sáng cho em hỏi với code thứ nhất em bị sai chỗ nào mọi người giúp em với dc không ạ
MOVLW b'11111111'//viết thế này mới đúng cú pháp
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-02-2012, 12:53 PM   #34
vipboypro891
Nhập môn đệ tử
 
vipboypro891's Avatar
 
Tham gia ngày: Feb 2012
Bài gửi: 8
:
Trích:
Nguyên văn bởi tdm View Post
MOVLW b'11111111'//viết thế này mới đúng cú pháp
hì thanks bác nhá em nhầm để em test lại xem tnao
vipboypro891 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-02-2012, 10:00 PM   #35
soledad_bkfet
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 3
:
các bác cho e hỏi.e mới bắt đàu học vi xử lý đc2 tuần mà thầy giao bt về nhà là thế này:,
Lập trình asembly cho bài toán: bật tắt đèn LED theo chu kì 1s sử dụng delay (đặt vi điều khiển ở trạng thái không làm công việc gì).Chương trình viết trên MPLAB. bác nào có đoạn code cho em xin cho nó chạy cái, chứ bẳt e viết chắc còn lâu nữa mới xong, mà sắ phải nộp bài rôi, cảm ơn các bác nhiều !!!!!!!
soledad_bkfet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-02-2012, 10:15 PM   #36
soledad_bkfet
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 3
:
Em mới học VXL đc 2 tuần mà thầy gáo yêu cầu bt về nhà như sau:
Lập trình asembly cho bài toán: bật tắt đèn LED theo chu kì 1s sử dụng delay (đặt vi điều khiển ở trạng thái không làm công việc gì). Mong các anh cho em đoạn code bài này, e phải viết trên MPLAB, sắp phải nộp rồi,mong các anh chỉ giáo cho e...thankss các anh !
soledad_bkfet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-05-2012, 12:09 AM   #37
soxxxcool
Nhập môn đệ tử
 
soxxxcool's Avatar
 
Tham gia ngày: Nov 2010
Bài gửi: 2
:
Trích:
Nguyên văn bởi nhanconan030789 View Post
em mới học pic nên còn gà mờ lắm!các anh đừng cười em!ông thầy dạy bài timer0 bảo là có thể dùng xung bên ngoài từ chân T0CKI nhưng em da thử rồi mà không biết làm cách nào để định nghĩa cái chan RA4 đó là xung vào hết!!anh chị nào làm ơn giúp em với,em acmr ơn rất nhiều!!
#include<htc.h>
void init_timer0()
{
T0CS=1;
T0SE=0;
PSA=1;
TMR0=253;
T0IF=0;
T0IE=1;
PEIE=1;
GIE=1;
}
void interrrupt_timer0()
{
if (T0IF==1)
{
T0IF=0;
TMR0=253;
RD0^=1;
}
}
void main()
{
TRISA4=1;
TRISD0=0;
init_timer0();
while(1);

}
nếu bạn viết bằng HTPIC thì bạn thiếu dòng "void interrupt" phía trên hàm "void interrrupt_timer0()". interrrupt_timer0() chỉ là hàm con của bạn thôi,bạn nên có 1 dòng "void interrupt" để MBLAB hiểu là bạn muốn thông báo là bạn muốn sử dụng ngắt timer 0. Mình nghĩ bạn nên sửa đoạn ngắt timer lai như thế này:

void interrupt
void interrrupt_timer0()
{
if (T0IF==1)
{
T0IF=0;
TMR0=253;
RD0^=1;
}
}

Chúc bạn thành công.
__________________
www.titans.com.vn
Where technology begins !
soxxxcool vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-05-2012, 11:36 PM   #38
sputnhic11
Nhập môn đệ tử
 
Tham gia ngày: May 2012
Bài gửi: 6
:
Thiết lập I/O của dspic30f4013

Em đang làm cái đồ án dùng chip dspic30f4013, bài lập trình thì ngon rùi nhưng phần khai báo vào ra để lắp nút ấn mà em chịu. Em định cho nút ấn ở port F thui vì các port khác em dùng rùi. em gửi đoạn code mong các bác chỉ giúp khai báo ở chỗ nào nhé:


/************************************************** *****************************
; timer1.c la chuong trinh viet bang C de chay tren mot dsPIC *
; Chuong trinh thuc hien viec sau: *
; Su dung Time 1 de tao xung nhip 20ms va thoi gian duty Cryle *
************************************************** ******************************
| __________
| | | |
| | | |
|____| |________________________________________|
<--1,5ms-->
<----------------------20ms------------------------->
; Tac gia : Luu Tuan Khanh *

; Don vi : Uneti *

; Ten tap tin : ltchuan.c *

; Ngay : 23/5/2011 *

; Phien ban : 0.01 *

; Nhung tap tin can thiet khac: p30F4013.gld, p30f4013.h *

; Cong cu duoc dung: MPLAB X IDE beta6.00.01 *
; C30 3.25 * *

------------------------------------------------------------------------------*/
#include <p30fxxxx.h>
#include <timer.h>
/************************************************** ****************************/
//output SERVO
#define LAT_SERVO1 _LATB0
#define LAT_SERVO2 _LATB1
#define LAT_SERVO3 _LATB2
#define LAT_SERVO4 _LATB3
#define LAT_SERVO5 _LATB4
#define LAT_SERVO6 _LATB5

#define LAT_SERVO7 _LATB6
#define LAT_SERVO8 _LATB7
#define LAT_SERVO9 _LATB8
#define LAT_SERVO10 _LATC13
#define LAT_SERVO11 _LATC14
#define LAT_SERVO12 _LATD9
#define congtac1 _TRISF0
#define congtac2 _TRISF1
#define den _LATB9

/*********************Bat dau khai bao bien*************************/
unsigned long counter_servo = 1;
unsigned int speed_servo[13];
//--------------------Ket thuc khai bao bien------------------------//
void config_servo(void);
void timer1_init(void);
int goc(float goc);

void __attribute__((interrupt, no_auto_psv)) _T1Interrupt(void){
IFS0bits.T1IF = 0; //truoc khi ra ngoai thi thi xoa bit _T1IF
T1CONbits.TON = 1;
//timer for 1us*20000=20ms
//1ms=1000 thuc te xxx min
//test 0.5ms - 2.4ms tuong ung voi 1-180do //Do thuc te
if(++counter_servo > 2010) counter_servo = 0;
if(counter_servo >= speed_servo[1] + 62) // MAX 240
LAT_SERVO1=0; // MIN 60
else
LAT_SERVO1=1; // MIN 60
if(counter_servo >= speed_servo[2] + 62) // MAX 240
LAT_SERVO2=0; // MIN 60
else
LAT_SERVO2=1;
if(counter_servo >= speed_servo[3] + 62) // MAX 240
LAT_SERVO3=0; // MIN 60
else
LAT_SERVO3=1;
if(counter_servo >= speed_servo[4] + 62) // MAX 240
LAT_SERVO4=0; // MIN 60
else
LAT_SERVO4=1;
if(counter_servo >= speed_servo[5] + 62) // MAX 240
LAT_SERVO5=0; // MIN 60
else
LAT_SERVO5=1;
if(counter_servo >= speed_servo[6] + 62) // MAX 240
LAT_SERVO6=0; // MIN 60
else
LAT_SERVO6=1;
if(counter_servo >= speed_servo[7] + 62) // MAX 240
LAT_SERVO7=0; // MIN 60
else
LAT_SERVO7=1; // MIN 60
if(counter_servo >= speed_servo[8] + 62) // MAX 240
LAT_SERVO8=0; // MIN 60
else
LAT_SERVO8=1;
if(counter_servo >= speed_servo[9] + 62) // MAX 240
LAT_SERVO9=0; // MIN 60
else
LAT_SERVO9=1;
if(counter_servo >= speed_servo[10] + 62) // MAX 240
LAT_SERVO10=0; // MIN 60
else
LAT_SERVO10=1;
if(counter_servo >= speed_servo[11] + 62) // MAX 240
LAT_SERVO11=0; // MIN 60
else
LAT_SERVO11=1;
if(counter_servo >= speed_servo[12] + 62) // MAX 240
LAT_SERVO12=0; // MIN 60
else
LAT_SERVO12=1;
}

void config_servo(void){
ADPCFG = 0xffff;
TRISB = 0x00;
TRISC = 0x00;
TRISD = 0x00;
TRISF = 0x00;

LATB = 0x00;
LATC = 0x00;
LATD = 0x00;
LATF = 0x00;

}
void timer1_init(void)
{
config_servo();
T1CON = 0; // Timer reset
T1CONbits.TSIDL = 0; //hoat dong ngay ca o che do ngu
T1CONbits.TGATE = 0; //Gated time accumulation enabled(TCS must be set to ‘0’ when TGATE = 1. Reads as ‘0’ if TCS = 1)
//T1CONbits.TSYNC = 0; //bit nay duoc bo qua khi bit TCS = 0; chi quan tam khi TCS = 1;
IFS0bits.T1IF = 0; // Reset Timer1 interrupt flag
IPC0bits.T1IP = 0b111; // Timer1 Interrupt priority level=7 // muc uu tien 7//quan trong
IEC0bits.T1IE = 1; // Enable Timer1 interrupt

T1CONbits.TCKPS = 0b00; // Bo chia tan so 1 : 1

TMR1 = 0x0000;
PR1 = 295 ; // Ngat khi dem tran 10us
//PR1 = 29491 ; // ngat khi dem tran 1ms
// T = (1/Fosc)s ma Fosc = (XTFREQ * PLL) /4
// PR1 = 29.4912 * 1 * 1 cycle (33.9084201388888888888888ns) = 1 us
T1CONbits.TCS = 0; // Timer1 Clock= Internal // Internal clock (FOSC/4)
T1CONbits.TON = 1; // Enable Timer1 and start the counter
}
int goc(float goc){
float goc1 = 0;
unsigned int goc2 = 0;
if(goc == 0) return 0;
else{
goc1 = 18 * goc;
goc1 = goc1/18;
goc2 = (int) goc1;
};
return goc2;
}
sputnhic11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-05-2012, 01:21 PM   #39
soxxxcool
Nhập môn đệ tử
 
soxxxcool's Avatar
 
Tham gia ngày: Nov 2010
Bài gửi: 2
:
Trích:
Nguyên văn bởi sputnhic11 View Post
Em đang làm cái đồ án dùng chip dspic30f4013, bài lập trình thì ngon rùi nhưng phần khai báo vào ra để lắp nút ấn mà em chịu. Em định cho nút ấn ở port F thui vì các port khác em dùng rùi. em gửi đoạn code mong các bác chỉ giúp khai báo ở chỗ nào nhé:


/************************************************** *****************************
; timer1.c la chuong trinh viet bang C de chay tren mot dsPIC *
; Chuong trinh thuc hien viec sau: *
; Su dung Time 1 de tao xung nhip 20ms va thoi gian duty Cryle *
************************************************** ******************************
| __________
| | | |
| | | |
|____| |________________________________________|
<--1,5ms-->
<----------------------20ms------------------------->
; Tac gia : Luu Tuan Khanh *

; Don vi : Uneti *

; Ten tap tin : ltchuan.c *

; Ngay : 23/5/2011 *

; Phien ban : 0.01 *

; Nhung tap tin can thiet khac: p30F4013.gld, p30f4013.h *

; Cong cu duoc dung: MPLAB X IDE beta6.00.01 *
; C30 3.25 * *

------------------------------------------------------------------------------*/
#include <p30fxxxx.h>
#include <timer.h>
/************************************************** ****************************/
//output SERVO
#define LAT_SERVO1 _LATB0
#define LAT_SERVO2 _LATB1
#define LAT_SERVO3 _LATB2
#define LAT_SERVO4 _LATB3
#define LAT_SERVO5 _LATB4
#define LAT_SERVO6 _LATB5

#define LAT_SERVO7 _LATB6
#define LAT_SERVO8 _LATB7
#define LAT_SERVO9 _LATB8
#define LAT_SERVO10 _LATC13
#define LAT_SERVO11 _LATC14
#define LAT_SERVO12 _LATD9
#define congtac1 _TRISF0
#define congtac2 _TRISF1
#define den _LATB9

/*********************Bat dau khai bao bien*************************/
unsigned long counter_servo = 1;
unsigned int speed_servo[13];
//--------------------Ket thuc khai bao bien------------------------//
void config_servo(void);
void timer1_init(void);
int goc(float goc);

void __attribute__((interrupt, no_auto_psv)) _T1Interrupt(void){
IFS0bits.T1IF = 0; //truoc khi ra ngoai thi thi xoa bit _T1IF
T1CONbits.TON = 1;
//timer for 1us*20000=20ms
//1ms=1000 thuc te xxx min
//test 0.5ms - 2.4ms tuong ung voi 1-180do //Do thuc te
if(++counter_servo > 2010) counter_servo = 0;
if(counter_servo >= speed_servo[1] + 62) // MAX 240
LAT_SERVO1=0; // MIN 60
else
LAT_SERVO1=1; // MIN 60
if(counter_servo >= speed_servo[2] + 62) // MAX 240
LAT_SERVO2=0; // MIN 60
else
LAT_SERVO2=1;
if(counter_servo >= speed_servo[3] + 62) // MAX 240
LAT_SERVO3=0; // MIN 60
else
LAT_SERVO3=1;
if(counter_servo >= speed_servo[4] + 62) // MAX 240
LAT_SERVO4=0; // MIN 60
else
LAT_SERVO4=1;
if(counter_servo >= speed_servo[5] + 62) // MAX 240
LAT_SERVO5=0; // MIN 60
else
LAT_SERVO5=1;
if(counter_servo >= speed_servo[6] + 62) // MAX 240
LAT_SERVO6=0; // MIN 60
else
LAT_SERVO6=1;
if(counter_servo >= speed_servo[7] + 62) // MAX 240
LAT_SERVO7=0; // MIN 60
else
LAT_SERVO7=1; // MIN 60
if(counter_servo >= speed_servo[8] + 62) // MAX 240
LAT_SERVO8=0; // MIN 60
else
LAT_SERVO8=1;
if(counter_servo >= speed_servo[9] + 62) // MAX 240
LAT_SERVO9=0; // MIN 60
else
LAT_SERVO9=1;
if(counter_servo >= speed_servo[10] + 62) // MAX 240
LAT_SERVO10=0; // MIN 60
else
LAT_SERVO10=1;
if(counter_servo >= speed_servo[11] + 62) // MAX 240
LAT_SERVO11=0; // MIN 60
else
LAT_SERVO11=1;
if(counter_servo >= speed_servo[12] + 62) // MAX 240
LAT_SERVO12=0; // MIN 60
else
LAT_SERVO12=1;
}

void config_servo(void){
ADPCFG = 0xffff;
TRISB = 0x00;
TRISC = 0x00;
TRISD = 0x00;
TRISF = 0x00;

LATB = 0x00;
LATC = 0x00;
LATD = 0x00;
LATF = 0x00;

}
void timer1_init(void)
{
config_servo();
T1CON = 0; // Timer reset
T1CONbits.TSIDL = 0; //hoat dong ngay ca o che do ngu
T1CONbits.TGATE = 0; //Gated time accumulation enabled(TCS must be set to ‘0’ when TGATE = 1. Reads as ‘0’ if TCS = 1)
//T1CONbits.TSYNC = 0; //bit nay duoc bo qua khi bit TCS = 0; chi quan tam khi TCS = 1;
IFS0bits.T1IF = 0; // Reset Timer1 interrupt flag
IPC0bits.T1IP = 0b111; // Timer1 Interrupt priority level=7 // muc uu tien 7//quan trong
IEC0bits.T1IE = 1; // Enable Timer1 interrupt

T1CONbits.TCKPS = 0b00; // Bo chia tan so 1 : 1

TMR1 = 0x0000;
PR1 = 295 ; // Ngat khi dem tran 10us
//PR1 = 29491 ; // ngat khi dem tran 1ms
// T = (1/Fosc)s ma Fosc = (XTFREQ * PLL) /4
// PR1 = 29.4912 * 1 * 1 cycle (33.9084201388888888888888ns) = 1 us
T1CONbits.TCS = 0; // Timer1 Clock= Internal // Internal clock (FOSC/4)
T1CONbits.TON = 1; // Enable Timer1 and start the counter
}
int goc(float goc){
float goc1 = 0;
unsigned int goc2 = 0;
if(goc == 0) return 0;
else{
goc1 = 18 * goc;
goc1 = goc1/18;
goc2 = (int) goc1;
};
return goc2;
}

Hi bạn,bạn muốn dùng port F để làm nút nhấn thì theo ý kiến của mình bạn nên set Port F là "TRISF = 0xff" và cấu hình port F là digital (nếu port này có chân nào là Analog,mình chưa đoc datasheet nên ko rõ).
Chúc bạn thành công !
__________________
www.titans.com.vn
Where technology begins !
soxxxcool vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-05-2012, 11:01 PM   #40
CATBUI7690
Nhập môn đệ tử
 
Tham gia ngày: May 2012
Bài gửi: 1
:
em nho may anh giúp dùm vì sắp nộp đồ án rồi.tình hình là em có dặt làm mach ma em khong hiểu ý nghĩa các lệnh.nhờ mấy anh giải thích dùm.vì em hoc mplab nhung code này viết c em k hiểu

#include <16F877A.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)

#define mode RA0
#define dwn RA1
#define up RA2
//khai bao bien
int16 count=0;
int8 sodem=0;
//int8 chuc,dvi;
const unsigned char dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
//chuong trinh con
#INT_TIMER1 //khai bao ngat de dinh thoi gian
VOID NGAT_TIMER1()
{
SET_TIMER1(15536);
count++;
IF(count==100) //20*50000us = 1000000us = 1s
{
sodem++;
count=0;
}
}

void hienthi()
{
int j =0;
while(j<5)
{
portb=dig[sodem/10];
portd = 0x7f;
delay_us(100);
portd = 0xff;
portb=dig[sodem%10];
portd = 0xbf;
delay_us(100);
portd = 0xff;

portc = 0xff;
j++;
}
}

//chuong trinh chinh
void main()
{
trisa = 0xff; // khai bao cac port deu la ngo ra
trisb = 0x00;
trisd = 0x00;
set_tris_c(0);
SETUP_TIMER_1(T1_INTERNAL); //cho phep cac ngat hoat dong de dem thoi gian
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
SET_TIMER1(15536); //T_dinhthoi = (65536-15536)*1us = 50000us

while(true)
{
hienthi();
if(sodem>99) sodem=0;
}
}

mấy anh giúp dùm em nhe em càm ơn.
CATBUI7690 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2012, 05:03 PM   #41
h2nd0i
Nhập môn đệ tử
 
Tham gia ngày: May 2012
Bài gửi: 3
:
sửa dùm e cái code mạch đồng hồ này với...

http://www.mediafire.com/?99w2emenq1cxb1i đây là file protues



http://www.mediafire.com/?5be6ku4btajr3wk đây la code asm


http://www.mediafire.com/?1tm1asqxl6cnxeo đây là file .hex


mọi người xem dùm e phần code với,sao em nạp trên protues mà mạch ko chạy là sao ạ?mọi người góp ý kiến dùm e nha.thanks 4rum
h2nd0i vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-07-2012, 10:55 AM   #42
kaka_87ht
Nhập môn đệ tử
 
Tham gia ngày: Feb 2012
Bài gửi: 1
:
chắc phải học hỏi từ các bạn nhiều rồi....em mới tham gia pic hii
kaka_87ht vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-07-2012, 11:26 AM   #43
nickyshadow
Đệ tử 1 túi
 
nickyshadow's Avatar
 
Tham gia ngày: Jun 2012
Bài gửi: 16
:
//Em chưa hiểu cái lỗi "A numeric expression must be appear here"
//Đoạn CT của em ngắn thế này thôi
void main()
{
set_tris_c(0x00);
set_tris_d(0x00);
output_c(0x00);
output_d(0x00);

int j;// nó báo lỗi ngay dòng này cái ỗi "A numeric..,", em đã thử với các kiểu char, int8,...
j=8;

}

//Còn đây là đoạn CT khác, mắc lỗi lặp vô hạn mà em chẳng hiểu tại sao nó vậy
//
char i;
latch=0;
for(i=7;i>=0;i--) //Lỗi lặp vô hạn ở ngay dòng này "The condition always TRUE"
{
int j;
for(j=0;j<8;j++)
{
clk=0;
da=(hang1[i]>>j)&&0x01;
clk=1;
clk=0;
da=(hang2[i]>>j)&&0x01;
}
}
latch=1;
nickyshadow vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-07-2012, 04:17 PM   #44
Duynguyen205
Đệ tử 1 túi
 
Tham gia ngày: Jul 2012
Bài gửi: 15
:
bác nào cho em hỏi voi. Em có viết 1 đoạn code của bác Linh chạy thử nhưng mà nó báo lỗi hoài.
còn đây là code chương trình

//================================================
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)

void main()
{
TRISB = 0x00;
PORTB = 0xFF;
While(1)
{
PORTB = 0;
delay_ms(250);
PORTB = 0xFF;
delay_ms(250);
}
}
khi biên dịch nó báo lỗi này mà em ko biết xử lí tn. Mong các bác giúp em. thansk cac bac nhieu.

"eross 128'' C.\program file\PICC\devices\def_f877a.h" Line 7(2,6) A #DEVICE required before this line.


line 7 : #byte INDF =0x00 ( trong file def_877a.h)

thay đổi nội dung bởi: Duynguyen205, 29-07-2012 lúc 04:41 PM.
Duynguyen205 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-07-2012, 09:02 PM   #45
buivantuyen89th
Đệ tử 3 túi
 
buivantuyen89th's Avatar
 
Tham gia ngày: Jun 2012
Bài gửi: 54
:
Trích:
Nguyên văn bởi Duynguyen205 View Post
bác nào cho em hỏi voi. Em có viết 1 đoạn code của bác Linh chạy thử nhưng mà nó báo lỗi hoài.
còn đây là code chương trình

//================================================
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)

void main()
{
TRISB = 0x00;
PORTB = 0xFF;
While(1)
{
PORTB = 0;
delay_ms(250);
PORTB = 0xFF;
delay_ms(250);
}
}
khi biên dịch nó báo lỗi này mà em ko biết xử lí tn. Mong các bác giúp em. thansk cac bac nhieu.

"eross 128'' C.\program file\PICC\devices\def_f877a.h" Line 7(2,6) A #DEVICE required before this line.


line 7 : #byte INDF =0x00 ( trong file def_877a.h)
chẳng báo lỗi ở đâu cả bạn ạ. bạn thiếu file def_877a.h thôi. bạn download file này về để trong projec của bạn ấy. không thì bạn copy vào devices trong thư mục cài ccs ấy.
goodluck
buivantuyen89th vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:29 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam