PDA

View Full Version : KEIL - lập trình cho PIC bằng Ngôn Ngữ C???


vandat07
06-06-2008, 06:13 PM
Có bác nào cho em xin tài liệu về ngôn ngữ này không?
Nếu không thì có thể cho em code (có thể CCS C) để nháy LED (bất kỳ) bằng con PIC 16F84A
Thank

love_ac
06-06-2008, 07:45 PM
@vandat07:sang đây nhé
http://www.picvietnam.com/forum//forumdisplay.php?f=12

trunghaudt2_
24-07-2008, 01:21 PM
Có bác nào cho em xin tài liệu về ngôn ngữ này không?
Nếu không thì có thể cho em code (có thể CCS C) để nháy LED (bất kỳ) bằng con PIC 16F84A
Thank
#include <16F877A.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#USE FAST_IO(E)
#USE FAST_IO(C)
#USE FAST_IO(D)
int8 mode,i;
byte temp;

#INT_EXT
EXT_ISR() {

mode++;
if (mode==9) mode = 0;
}
// End of INT

void program1();
void program2();
void program3();
void program4();
void program5();
void program6();
void program7();
void program8();

void main() {

trisd = 0x00;
trisb = 0xFF;
portd=0xff;
enable_interrupts(int_EXT);
ext_int_edge(L_TO_H);
enable_interrupts(GLOBAL);
mode = 0;
while (1) {
switch(mode) {
case 1: program1(); break;
case 2: program2(); break;
case 3: program3(); break;
case 4: program4(); break;
case 5: program5(); break;
case 6: program6(); break;
case 7: program7(); break;
case 8: program8(); break;
}
}
}

void program1() {
PortD = 0x00;
delay_ms(250);
Portd = 0xFF;
delay_ms(250);
}
void program2() {
temp = 0xFF;
for (i=0;i<=8;i++) {
portd = temp;
delay_ms(250);
temp >>= 1;
}
}
void program3() {
temp = 0xFF;
for (i=0;i<=8;i++) {
portd = temp;
delay_ms(250);
temp <<= 1;
}
}
void program4() {
portd = 0xAA;
delay_ms(500);
portd = 0x55;
delay_ms(500);
}
void program5() {
Portd = 0x7E;
delay_ms(150);
Portd = 0xBD;
delay_ms(250);
Portd = 0xDB;
delay_ms(150);
Portd = 0xE7;
delay_ms(150);
Portd = 0xDB;
delay_ms(150);
Portd = 0xBD;
delay_ms(150);
Portd = 0x7E;
delay_ms(150);
}
void program6() {
temp = 0xFF;
for (i=0;i<=8;i++) {
portd = temp;
delay_ms(250);
temp = temp >> 1;
}
}
void program7() {

Portd = 0xFE;
delay_ms(150);
Portd = 0xFD;
delay_ms(150);
Portd = 0xFB;
delay_ms(150);
Portd = 0xF7;
delay_ms(150);
Portd = 0xEF;
delay_ms(150);
PortD = 0xDF;
delay_ms(150);
Portd = 0xBF;
delay_ms(150);
Portd = 0x7F;
delay_ms(150);
}

void program8() {
Portd = 0x7F;
delay_ms(150);
Portd = 0xBF;
delay_ms(150);
PortD = 0xDF;
delay_ms(150);
Portd = 0xEF;
delay_ms(150);
Portd = 0xF7;
delay_ms(150);
Portd = 0xFB;
delay_ms(150);
Portd = 0xFD;
delay_ms(150);
Portd = 0xFE;
delay_ms(150);
}

bengan
19-09-2008, 10:57 PM
thanks các bạn

bengan
20-09-2008, 12:07 AM
ủa làm sao mình tạo đươcc mục thanks sau bài gửi của mình vậy các bạn?

tranthao111982
05-05-2010, 04:18 PM
chào các bác!
em đang tập tểnh học lập trình cho pic 16f877a. nhưng mà không biết bắt đầu từ đâu. các bác chỉ hộ em cách học pic sao cho hiêu quả với

hcmut.khoamaisi
06-05-2010, 01:11 AM
đọan code của bạn trunghaudt2 viet gi vậy.Đọc không hiểu