![ישן](https://static.fresh.co.il/images/vBulletin/statusicon/post_old.gif)
10-07-2010, 22:16
|
![צלמית המשתמש של MatiM](image.php?u=86795&dateline=1187283886) |
|
|
חבר מתאריך: 12.04.06
הודעות: 2,021
|
|
1. רגל IN/OUT משמעו שאפשר גם לכתוב אליה, וגם לקרוא ממנה. תלוי בסוג ההוראה בתוכנה.
חיבור החומרה נעשה בצורת חיוט פשוטה [w.w] ניתן לחבר אותם כמבואות או כמוצאים, תלוי בצרכים שלך.
2. במדריך קיבלת קובץ HEX לתוכנה שעליך לצרוב לבקר (8051), עד כמה שאני יודע, זהו קובץ מקומפל שלא ניתן לפתוח (אולי יש קומפיילרים שמאפשרים זאת). משמע, אתה לא צריך לשנות את התוכנה של הבקר.
3.
חבר לדוגמא ברגלים P0.0 עד P0.3 את המספקים שלך.
חבר לדוגמא ברגלים P1.0 עד P1.3 את המנורות שלך.
התוכנית בשפת C שלך, אמורה להראות בערך כך:
קוד:
#include <stdio.h>
#include <windows.h>
#include "AtUsbHid.h"
void main(void)
{
int i;
HINSTANCE hLib = NULL; // Handle to AtUsbHid.dll
if (initializationUSB(hLib)) // Initialization all the USB communication.
printf("USB HID device is opened.\n");
else
{
printf("Error While opening device.\n");
Sleep(2000);
return;
}
char buttons; // variable to save the status of the buttons
char lamps; // variable to save the status of the lamps
while(1){
buttons = inUSB(0) & 0x0F; // get only the lower 4 bits in P0
lamps = inUSB(1); // get all the bits in P1
outUSB(1,buttons | lamps);
}
closeUSB(hLib); //Close all the USB communication.
}
השורה באדום:
יוצרים לולאה אין סופית (1 = true = תמיד מתקיים),
מכיוון שאני לא יודע מה ייעוד המעגל שלך, עשיתי שהוא יבדוק בלי סוף את מצב המתגים, וישנה אותם כל הזמן.
אפשר כמובן לשנות את המעגל כך שיעבוד רק 3 פעמים, 5 דקות או 75 ימים (לדוגמא).
השורה בכחול:
מוציאים לפורט 1 את הנתון כך ש4 הסיביות העליונות (P1.4 - P1.7) לא משתנות.
ב4 הסיביות התחתונות, הוא מקבל את הערך של המתגים.
בצורה כזאת, אם המתג נימצא ב'1', גם המנורה תדלק.
כמובן שאם מחברים הפוך, או רוצים תוצאה שונה, יש לשנות את התוכנית.
הערה:
את כל מה שבwhile אפשר להחליף בקלות לקוד הקצר יותר:
קוד:
outUSB(1,inUSB(1) | (inUSB(0) & 0x0F));
וכמובן, להתעלם לחלוטין מהרגליים האחרות ולהשתמש ב:
כך שתמיד כל מה שיש בפורט 0, זה מה שיש בפורט 1.
אבל, עם משתנים לדעתי, ברור יותר להסביר קודים.
בהצלחה.
_____________________________________
|