יום שלישי, 20 בספטמבר 2011

כתיבת קוד לפרויקטים. חלק א' - קובץ הגדרות h.*

הזמנו רכיבים, סרטטנו מעגלים, מה עושים עכשיו? נתחיל לכתוב תוכנה. למערכת שאנו בונים יש אפשרות לכתוב תוכנה ללא חומרה ולעשות את זה לפי שלבים.
בשלב ראשון אני פותח פרויקט חדש בתוכנה Keil uVision 4. אנו עובדים עם חומרה, ז.א. עם כל הפורטים ורכיבים פנימיים. נוח מאוד לתת להם שמות שיהיה קל יותר לקרוא אותם, כגון:

כיצד מערכת הזאת עובדת? במקום לעבוד עם כתובות של חומרה אנו מגדירים פעם אחד שמות לוגיות לכל האוגרים, פורטים, פסיקות. שומרים אותם לקובץ בשם REG_89C51.h ובקריאה משתמשים בהם. שימו לב שבתוך קובץ H שתי שורות ראשונות צריכות להיות הגדרות הבאות:
#ifndef __REG_89C51_H__
#define __REG_89C51_H__
קובץ עצמו נראה כך: (אל תשכחו לבדוק מספרי פורטים ואוגרים -לכל סוג מעבד יש פורטים משלו.  לפורט 3 יש אפשרות לפנות גם לפי שם של פורט וגם לפי תפקידו.

/*  BYTE Register  */
sfr CKCON   = 0x8F;
sfr B       = 0xF0;
sfr SP      = 0x81;
sfr DPL     = 0x82;
sfr DPH     = 0x83;
sfr TMOD    = 0x89;
sfr TL0     = 0x8A;
sfr TL1     = 0x8B;
sfr TH0     = 0x8C;
sfr TH1     = 0x8D;
sfr IP      = 0xB8;
sfr ICON    = 0xFF;
sfr CKSEL   = 0x85;
sfr OSCCON  = 0x86;
sfr FCON    = 0xD1;
sfr EECON   = 0xD2;
sfr EETIM   = 0xD3;


/*  PORT 0  */
sfr  P0   = 0x80;           
sbit P0_7 = P0^7;
sbit P0_6 = P0^6;
sbit P0_5 = P0^5;
sbit P0_4 = P0^4;
sbit P0_3 = P0^3;
sbit P0_2 = P0^2;
sbit P0_1 = P0^1;
sbit P0_0 = P0^0;

/*  PORT 1  */
sfr  P1   = 0x90;
sbit P1_7 = P1^7;
sbit P1_6 = P1^6;
sbit P1_5 = P1^5;
sbit P1_4 = P1^4;
sbit P1_3 = P1^3;
sbit P1_2 = P1^2;
sbit P1_1 = P1^1;
sbit P1_0 = P1^0;


/*  PORT 3  */
sfr  P3   = 0xB0;
sbit P3_7 = P3^7;
sbit P3_6 = P3^6;
sbit P3_5 = P3^5;
sbit P3_4 = P3^4;
sbit P3_3 = P3^3;
sbit P3_2 = P3^2;
sbit P3_1 = P3^1;
sbit P3_0 = P3^0;

sbit RD   = P3^7;
sbit WR   = P3^6;
sbit T1   = P3^5;
sbit T0   = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD  = P3^1;
sbit RXD  = P3^0;
בהצלחה.

אין תגובות:

הוסף רשומת תגובה