מבוא לשפת C של מיקרו-בקר (PIC16F877)
יתרונות שפת C שפת C מקצרת ומפשטת את הכתיבה בצורה מאוד משמעותית וניתן להשיג את המטרות בזמן הרבה יותר קצר. ניתן לטפל בטעויות ביתר קלות. כך נוכל לבנות פרויקטים מעניינים הרבה יותר מהר.
תוכנית ראשונה include <pic.h> main() } TRISD=0xFF; //set PORTD input TRISE=0b0000000; //set PORTE output /*led depend on switch*/ TRISB=0b11111111; //input(default( TRISC=0b00000000; //output RC0=1; //initialing while(1) if(RB0==0) RC0=0; // light is on else RC0=1; // light is off { {
כך נראית התוכנית בסביבת העבודה
נעבור על כמה כללים בסיסיים של שפת C לולאת FOR for(x=0; x<4; x++) } RE1=1; for(x=0; x<7000; x++); RE1=0;
ביטוי מסוג if…..else…. לולאת WHILE RC0=0; // light is on else if(RB0==0) RC0=0; // light is on else RC0=1; // light is off לולאת WHILE while (1) { כאן כותבים את האלגוריתם עצמו. כדי שתוכנית תחזור על עצמה כל הזמן, היא צריכה להיות בלולאה אינסופית. לדוגמה סריקה של הלחצן כמו בתוכנית הפשוטה.
#include>pic.h< פונקציות #include>pic.h< void Init (void); void main () { ADCON1=0x06; TRISA=0x00; TRISD=0x00; Init(); while(1); }
ביטוי DEFINE משתנים #define set 1; #define EN_TRIG ((LCD_EN = 1),(LCD_EN = 0)); משתנים משתנה מסוג unsigned הוא עבור משתנים חיוביים והוא בגודל bit 0 : 255. משתנה מסוג signed הוא עבור משתנים שליליים והוא בגודל -128 : 127 bit
פעולות נומריות פעולה סימון דוגמה תוצאה חיבור + a+b 0x14 חיסור - a-b 0x0E כפל * a*b 0x33 חילוק / b/a 0x05 מודולוס(שארית) % b%a 0x02 and & b&a 0x01 or | b|a 0x13 xor ^ b^a 0x12 הזזה ימינה >> b>>a הזזה שמאלה << b<<a 0x88 increment ++ ++a 0x04 decrement -- --a 0x03 היפוך -a -0x03 השלמה לוגית ~ ~a 0xFC
ביטויים לוגיים פעולה סימון דוגמה תוצאה גדול מ-... < a>b FALSE קטן מ-... > a<b TRUE שווה = a=b גדול או שווה <= a>=b קטן או שווה >= a<=b לא שווה =! a!=b And לוגי && a&&b Or לוגי || a||b השלמה לוגית ! !a