אינציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל חיים נוספים של יציאת ה-LPT. חלק 2. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל / מחשבים כדי להקליט אותות ליציאת ה-LPT, אני ממליץ להרכיב מעגל (איור 1) המורכב משמונה מתגים ושמונה נגדים עם התנגדות של 270 אוהם - 1 קילו אוהם. עם מיקום זה של המתגים (הלחצנים) SW1-SW8, יש "1" לוגי בכל המגעים העליונים; כאשר כל אחד מהם סגור, "0" לוגי יופיע על המגע המתאים. ניתן לחבר את הפינים ישירות לאפיק D0-D7 (פינים 2-9, כתובת &H378) או ל-ERROR, SELECT, PAPER END, ACK ו-BUSY (פינים 15, 13, 12, 10 ו-11, כתובת &H379).
כדי להציג נתונים המגיעים מיציאת ה-LPT, אני ממליץ על הדיאגרמה הבאה.
נגדים R1-R8 עם ערך נומינלי של 270 - 330 אוהם, כל נוריות לד, נניח AL307B. מעגל זה אינו דורש חשמל, הכל יאיר בכל מקרה. הוצאתי לעצמי את כל האותות, הכל נראה מיד. באופן כללי, אני ממליץ בחום להוריד את תוכנית LPT 3D HARD Analyzer בכתובת valery-us4leh.narod.ru/dlpt.html. זה נכתב על ידי ולרי קובטון. בעזרת תוכנית זו... באופן כללי, אתה תראה בעצמך. בואו להרכיב מחולל פולסים מלבני באמצעות המיקרו-מעגל K561LA7. ספק כוח גנרטור +5V. העובדה היא שנוח יותר להרכיב את כל המכשירים, למשל, בסדרת 155, 555, כך שלאותות יש רמת TTL. לוגי "אפס" 0-0,8V והגיוני "אחד" 2,4-4,2V. הנוחות של סדרת 561 טמונה במגוון של ספק הכוח - הוא עובד באותה מידה מ-+3V ל-+12V. לכן, הבחירה במיקרו-מעגלים תלויה בטעם שלך; השאלה היחידה היא להשיג פולסים מלבניים עם משרעת של לא יותר מ +5V. המעגל של מחולל דופק פשוט מוצג באיור 3.
הגנרטור עצמו מורכב באמצעות אלמנטים D1.1-D1.3, ואני פשוט השתמשתי באלמנט D1.4 לקצוות "יפים" יותר של פולסי המוצא. R1, R2, C1 - אלמנטים של הגדרת תדר. עם פרמטרים אלה של האלמנטים, תדר הייצור הוא בערך 5-7 הרץ. למען הבהירות, פעולת המחולל יכולה להיות מיוצגת בצורה של הגרף הבא:
יציאת המהפך D1.4 מחוברת לפין 2 של מחבר ה-LPT (אוטובוס D0). לפני השימוש בגנרטור, יש צורך להעביר את האוטובוס D0-D7 למצב קליטת נתונים. לשם כך, אנו שולחים 37 לכתובת &H43A.
לאחר מכן, אנו מתחילים לסקור את פורט &H378.
משתנה A ייקח את הערך 254 או 255. למה?
העובדה היא שאחרי שהאוטובוסים D0-D7 עוברים למצב קליטת נתונים, הם מוגדרים לרמה אחת הלוגית (שורה צהובה). כאשר רמת היומן "0" מופיעה באפיק D0 (שורה כחולה), הסיבית הראשונה מקבלת את הערך של אפס, כלומר 0+21+22+23+24+25+26+27 = 254. כך נוכל לעקוב אחר השינוי באות באפיק D0, אבל אם נספור את מספר השינויים בשנייה אחת נקבל... זה נכון - מונה תדרים דיגיטליים. יוֹדֵעַ מספר דחפים נכנסים לשניה ניתן לומר על תדר בהרץ. אז, התוכנית היא מד תדר. הטופס צריך לכלול 3 כפתורים ותווית. כפתור 1 מפעיל את מד התדרים, כפתור 2 עוצר, כפתור 3 - יציאה, תווית - מציג את התדר. ******************************************* למי שמשתמש ב-inpout32.dll אפשרות מפורשת 'הכרזה על ספרייה לעבודה עם כתובות נמל Private Declare Function Inp Lib "inpout32.dll" כינוי "Inp32" (ByVal PortAddress כמספר שלם) כמספר שלם Private Declare Sub Out Lib "inpout32.dll" כינוי "Out32" (ByVal PortAddress כמספר שלם, ערך ByVal כמספר שלם) 'הצהרת ספרייה לספירת אלפיות השנייה פונקציה הצהרה פרטית GetTickCount Lib "kernel32" () As Long עמום FTV As Long 'ערך זמן מערכת ראשוני עמום STV As Long ערך זמן המערכת הסופי Dim FV As Integer 'FV הוא המצב ההתחלתי של היציאה Dim SV As Integer 'SV השווה מצב יציאה עמום cntr 'מונה דופק Dim J כמספר שלם 'J=1 ספירה מותרת, J=0 ספירה אסורה פקודה משנה פרטית1_לחץ() מתוך &H37A, 43 'הכניס את האוטובוסים D0-D7 למצב קריאה FTV = GetTickCount 'זכר את זמן המערכת באלפיות שניות J = 1 'ספירה - אפשר FV = Inp(&H378) 'קרא את מצב היציאה SV = FV 'SV שווה למצב יציאה cntr = 0 'מונה לאפס עשה בעוד J <> 0 מקרים STV = GetTickCount 'זכור את שעת המערכת הנוכחית אם STV > FTV + 1000 אז FrequencyShow 'אם חלפה שנייה, הצג את התוצאה FV = Inp(&H378) 'כתובת מסקרת כל הזמן &H378 אם FV <> SV אז 'אם מצב היציאה השתנה SV = FV 'SV שווה למצב יציאה cntr = cntr + 0.5 'מונה + 0.5 סוף אם אם J = 0 אז צא מעשה אם המשתמש לחץ על עצור לולאה End Sub פקודה משנה פרטית2_לחץ() 'עצור את המחזור אם המשתמש לחץ על עצור J=0 End Sub פקודה משנה פרטית3_לחץ() J = 0 'ספירה - עצור החוצה &H37A, 0 'שחזר את מצב האוטובוס D0-D7 פרק אותי 'צא מהתוכנית End Sub 'תת שגרת תצוגת תדר Public Sub FrequencyShow() Label1.Caption = Int(cntr) & "Hz" 'מציגים את התוצאה cntr = 0 'מונה לאפס השהה (0.2) 'עיכוב. דרוש למדידת תדרים נמוכים FTV = GetTickCount 'זכר את זמן המערכת באלפיות שניות End Sub ״השהיית תת שגרת. פורמט שיחה: השהה (מספר שניות) השהיית משנה ציבורית (ערך כיחיד) התחל עמום, סיום התחל = טיימר עשה בזמן טיימר < התחלה + ערך מקרים לולאה סיום=טיימר End Sub ******************************************* למי שמשתמש ב-dlportio.dll אפשרות מפורשת 'הכרזה על ספרייה לעבודה עם כתובות נמל Private Declare Function DlPortReadPortUchar Lib "dlportio.dll" (יציאת ByVal כל עוד) כמו Byte הצהרה פרטית של Sub DlPortWritePortUchar Lib "dlportio.dll" (יציאת ByVal As Long, ByVal Value As Byte) 'הצהרת ספרייה לספירת אלפיות השנייה פונקציה הצהרה פרטית GetTickCount Lib "kernel32" () As Long עמום FTV As Long 'ערך זמן מערכת ראשוני עמום STV As Long ערך זמן המערכת הסופי Dim FV As Integer 'FV הוא המצב ההתחלתי של היציאה Dim SV As Integer 'SV השווה מצב יציאה עמום cntr 'מונה דופק Dim J כמספר שלם 'J=1 ספירה מותרת, J=0 ספירה אסורה פקודה משנה פרטית1_לחץ() DlPortWritePortUchar &H37A, 43 'הכניס את האוטובוסים D0-D7 למצב קריאה FTV = GetTickCount 'זכר את זמן המערכת באלפיות שניות J = 1 'ספירה - אפשר FV = DlPortReadPortUchar (&H378) 'קרא סטטוס יציאה SV = FV 'SV שווה למצב יציאה cntr = 0 'מונה לאפס עשה בעוד J <> 0 מקרים STV = GetTickCount 'זכור את שעת המערכת הנוכחית אם STV > FTV + 1000 אז FrequencyShow 'אם חלפה שנייה, הצג את התוצאה FV = DlPortReadPortUchar (&H378) 'כתובת מסקרת כל הזמן &H378 אם FV <> SV אז 'אם מצב היציאה השתנה SV = FV 'SV שווה למצב יציאה cntr = cntr + 0.5 'מונה + 0.5 סוף אם אם J = 0 אז צא מעשה אם המשתמש לחץ על עצור לולאה End Sub פקודה משנה פרטית2_לחץ() 'עצור את המחזור אם המשתמש לחץ על עצור J=0 End Sub פקודה משנה פרטית3_לחץ() J = 0 'ספירה - עצור DlPortWritePortUchar &H37A, 0 'שחזר את המצב של האוטובוס D0-D7 פרק אותי 'צא מהתוכנית End Sub 'תת שגרת תצוגת תדר Public Sub FrequencyShow() Label6.Caption = Int(cntr) & "Hz" 'מציגים את התוצאה cntr = 0 'מונה לאפס השהה (0.2) 'עיכוב. דרוש למדידת תדרים נמוכים FTV = GetTickCount 'זכר את זמן המערכת באלפיות שניות End Sub ״השהיית תת שגרת. פורמט שיחה: השהה (מספר שניות) השהיית משנה ציבורית (ערך כיחיד) התחל עמום, סיום התחל = טיימר עשה בזמן טיימר < התחלה + ערך מקרים לולאה סיום=טיימר End Sub ******************************************* זה הכל? אתה שואל. זה הכל. זו כל התוכנית שאיכשהו עובדת. Ø כפי שאתה יכול לראות, הקוד כמעט זהה עבור ספריות שונות, ולכן בדוגמאות הבאות נשקול את הקוד רק עם הספרייה dlportio.dll אם תנתח בקפידה את הקוד של תוכנית מונה התדרים, תבחין ש-0.5 נוסף למונה, cntr = cntr + 0.5, ולא 1. העובדה היא שקוד התוכנית הזה סופר את המעבר של מצב היציאה גם מ-1 ל-0, וגם להיפך מ-0 ל-1, אז כדי לספור את התדר יש להוסיף 0.5, ואז פלט Label1.Caption = Int(cntr) & "Hz" או להוסיף 1 cntr = cntr + 1, ואז לסגת Label1.Caption = Int(cntr/2) & "Hz" זאת המתמטיקה. אגב, ניסית למקם חיישן כלשהו על הציר המסתובב של מנוע כלשהו? ככל הנראה, בעזרת תוכנית זו תקבל מד טכומטר מצוין J ובכן, בואו נמשיך הלאה. אנחנו לוקחים את אותו מחולל דופק ובמקום נגד R2 או R1 אנחנו מלחמים בטרמיסטור (מחבר המאמר הלך לחנות מכוניות וקנה חיישן טמפרטורה מ- VAZ-30 תמורת 2101 רובל). חיישן טמפרטורה זה משנה את ההתנגדות שלו בהתאם לטמפרטורה (3200 אוהם בטמפרטורה של +140C ו-143 אוהם בטמפרטורה של +1000ג.) מכיוון שאנו משנים את ההתנגדות, גם התדר של הגנרטור משתנה, מה שאומר שנקבל ממיר תדירות טמפרטורה, כלומר מד חום דיגיטלי. ברצוני להסב את תשומת לבכם לעובדה שהשינוי בהתנגדות בהתאם לטמפרטורה אינו מתרחש באופן ליניארי, כפי שניתן לראות בגרף הבא,
לכן, "להסביר" למחשב ש-100 פולסים הם 20 מעלות, ו-110 פולסים הם 21 מעלות, לא יהיה קל מאוד, אבל בכל זאת אפשרי. השאלה היחידה היא גודל הקוד והאלגוריתם. אם במקום נגד נתקין חיישן דלק ממיכל גז, נקבל מחוון מפלס נוזל. זה יותר נוח להגדיר מחוון כזה כדלקמן: 1. אנו מודדים את תדירות הדופק כאשר המיכל ריק 2. הוסף קצת נפח (תלוי באיזו הדרגה - דיוק אתה רוצה לקבל) ומדוד שוב את התדר 3. וכך הלאה עד לחלק העליון של המיכל שלך. אתה יכול לבנות מחוון מפלס נוזל באמצעות עיקרון אחר אם אתה מרכיב את המבנה באיור למטה.
אם מפלס הנוזל משתנה, אז גם המיקום של המצוף עם המגנט משתנה, ולכן מתגי הקנים המתאימים נסגרים (פתוחים). עדיף להשתמש בצינור פלסטיק דק. התרשים של מכשיר זה הוא כדלקמן:
אתה יכול לעבד מידע ממכשיר כזה באמצעות האלגוריתם הבא.
Ø חלקם עשויים להתנגד לי שאין צורך להכניס את האוטובוסים D0-D7 למצב קריאה, והכל יעבוד כך. על כך אני יכול לענות רק על הדברים הבאים: מי שרוצה, שלא יתרגם. לא אדון בנושא זה. אם היציאה &H378 אינה במצב קליטת נתונים ויש "2" לוגי על הפין המשמש (במקרה שלנו 0 - D1), אז הגנרטור לא יעבוד. זרם המוצא של אפיק D0-D7 במצב העברת נתונים גדול יותר מזרם המוצא של מעגל המיקרו CMOS (561LA7), כך שלא יהיה יצירה. כמובן, אם אתה מקצר את המגע לאדמה בפינצטה, אז שום זרם לא יספיק. אבל נראה לי שלא קשה להקליד שורת קוד נוספת ולעשות כפי שממליצים מפתחי חומרת מחשבים. הבה נבחן כעת את התהליך ההפוך, כלומר. תהליך העברת הנתונים ממחשב למכשיר שלך. ניקח את אותו מחולל פולסים כדוגמה, רק נשנה מעט את המעגל שלו.
לאחר אספקת חשמל לגנרטור, אנו מגלים לפתע שהגנרטור אינו פועל. וזה יעבוד רק כאשר הרמה הלוגית "2" מופיעה בקלט 1.1 של אלמנט D1. DlPortWritePortUchar &H378, 1 והכל התחיל לעבוד מיד. הנה גנרטור הנשלט על ידי מחשב. ובכן, הגנרטור כולו קטן, למרות שעלינו לחלוק כבוד למכשיר הזה - במעגלים אלקטרוניים רבים לוקחים את מחולל הדופק כבסיס. לא כדאי לחבר משהו רציני יותר למחשב? הנה תכנית כזו
אנו מחברים את הקלט של התקן זה לכל פלט שאנו אוהבים, למשל ל-D3, מחברים את כניסת ה-GND לחוט המשותף של המחבר, אך 12V+ יצטרך להילקח ממקור מתח נפרד. אתה יכול לקחת ממסר לרכב. באופן כללי, כל הפרמטרים של האלמנטים יכולים להיות שונים לחלוטין (לקחתי את מה שהיה בהישג יד) DlPortWritePortUchar &H378, 8 או DlPortWritePortUchar &H378, 9 או DlPortWritePortUchar &H378, 10 העיקר שיש יומן "3" באוטובוס D1. הממסר יעבוד, אבל מה שאתה מתחבר אליו תלוי בך. באופן כללי, בעת החלפת התקני מתח גבוה, יש צורך (למקרה) להגן על עצמך מפני קצר חשמלי, מהתמוטטות לדיור, באופן כללי, עשה זאת. כך שבמקרה של תאונה יציאת ה-LPT הנפלאה שלכם לא תישרף. לכן, עבור חיבורים כאלה נוח להשתמש בבידוד גלווני של היציאה והמכשיר שלך, למשל, באמצעות מצמד אופטו.
אם הכל במכשיר שלך "נשרף", אז אבוי, שום זרם לא יעבור באור, הם עוד לא הגיעו למשהו כזה. בזה מסתיים החלק השני. האם יהיה חלק שלישי - אני חושב שיהיה, אבל על זה הוא יעסוק... מחבר: אלכסיי קליושניקוב, איבנובו; פרסום: cxem.net ראה מאמרים אחרים סעיף מחשבים. תקרא ותכתוב שימושי הערות על מאמר זה. חדשות אחרונות של מדע וטכנולוגיה, אלקטרוניקה חדשה: עור מלאכותי לחיקוי מגע
15.04.2024 פסולת חתולים של Petgugu Global
15.04.2024 האטרקטיביות של גברים אכפתיים
14.04.2024
עוד חדשות מעניינות: ▪ מאיץ KFA2 GeForce GTX 960 EXOC White Edition ▪ דק יותר מטלוויזיות אייפד בפיתוח ▪ מודול זיכרון של Samsung Compute Express Link (CXL) 512 GB ▪ סמארטפון Nokia Lumia 1020 עם מצלמת 41 מגה פיקסל ▪ סוג חדש של בלון חלל למסע בחלל עדכון חדשות של מדע וטכנולוגיה, אלקטרוניקה חדשה
חומרים מעניינים של הספרייה הטכנית החופשית: ▪ נוריות של סעיף האתר. בחירת מאמרים ▪ מאמר כיבוי בגדים בוערים. בטיחות ובריאות בעבודה ▪ מאמר מדוע אלכוהול גורם לשיכרון חושים? תשובה מפורטת ▪ מאמר רופא תורן (פרמדיק) של משרת העזרה הראשונה. תיאור משרה ▪ מאמר רמזור ארבעה כיווני. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל ▪ מאמר מטען לרכב לטלפון נייד. אנציקלופדיה של רדיו אלקטרוניקה והנדסת חשמל כל השפות של דף זה בית | הספרייה | מאמרים | <font><font>מפת אתר</font></font> | ביקורות על האתר www.diagram.com.ua |