الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في ال LED

بدأه LibyanITGirl في 6 أغسطس 2010 · 13 رد · 1,699 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

قمت بتجربة هذا الكود ولم توجد به أية أخطاء

#include <stdio.h>
#include <dos.h>
#include <conio.h>

/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)

{
clrscr();
outportb(0x378,0xff);
outportb(0x37a,0xff);
getch();}

غيرته إلى

#include <stdio.h>
#include <dos.h>
#include <conio.h>

/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)

{
clrscr();
outportb(0x378,0x00);
outportb(0x37a,0x00);
getch();}

حتى أقوم بإطفاء جميع ال LED

وأيضا هذا الكود

#include"conio.h"
#include"dos.h"

#define PORT 0x378

void main()
{
    while(!kbhit())
    {
        outportb(PORT, ~inportb(PORT) );
        delay(1000);
    }
}

الذي يجعل ال LEDs تشعل وتظفئ بسرعة معينة

المشكلة أن ال LEDs دائما ON !! يعني دائما على وضع ال 1

ما الحل ؟

lilgirllaptopsoftened2c.jpg

#2

يجب تغير وضع المنفذ من ادخال إلي اخراج ...

جربي اولا في وضع 0 ، و وضع 1 ...

و توصيله الLED تختلف فمثلا إذا وضعتي صفر ممكن ان تضىء :D و ذلك علي حسب نوع توصيلها Forward biased or Reverse Biased ....

و ممكن 1 تطفئها ... او تنورها

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

بارك الله فيك أخي ، سـأجرب كا قلت ، ولكن عندي استفسار

اقتباس
يجب تغير وضع المنفذ من ادخال إلي اخراج .

كيف أفعل ذلك ؟

lilgirllaptopsoftened2c.jpg

#4

ممكن قراءة الدرس لمعرفة المزيد

http://electrosofts.com/parallel/

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#5

what's your system? win9x or Windows Nt familly?

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#6

ًاستخدم Windows XP pro

أرجو المساعدة ، أريد الوصول إلى ال ports و التحكم بها من windows XP

lilgirllaptopsoftened2c.jpg

#7

السلام عليكم .

في NT لا يمكن التحكم بالـPorts او الـDevice registers من Win32 user-mode application .

هناك مكتبات تعتمد على Kernel-mode Device Driver لأداء هذه الوظيفة ، ابحثي في جوجل عن IO Port Library او شئ من هذا القبيل .

او يمكن العمل على 16Bit Dos Application .

1

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#8

ما أود القيام به هو :

لقد قمت بتثبيت الاباتشي علي جهازي واستخدمه كويب سيرفر لصفحات البي اتش بي التي صممتها

واريد كتابة كود CGI للتحكم بال parallel port

فالفكرة هي التحكم بال parallel ports عن طريق الانترنت ، وبهذه الطريقة استطيع التحكم في أي جهاز متصل بال parallel port

استخدم Ch Standard Compiler لتطبيق ال CGI ولكن لم تنجح معي الفكرة ، لم أستطع حتى التحكم بالبورت عن طريق ال C#

علما بأنني استخدم

25 male pin to usb adapter

لأن جهازي المحمول لا يوجد به منفذ الطابعة .

lilgirllaptopsoftened2c.jpg

#9
اقتباس
لأن جهازي المحمول لا يوجد به منفذ الطابعة .

أظن لا يمكنك العمل هنا بالطريقة الاعتيادية ، اذكر اني كنت اعمل على منفذ COM PORT RS232 موصل بـUSB Adapter وكنت اخاطب الـUSB Device وليس منفذ الـCOM .

في حالتي كان هناك Filter Driver يأتي مع التوصيلة هو المسئول عن تحويل الأشارات من منفذ الـCOM الى الـUSB .

أظن ان أهل الالكترونيات سيفيدونك اكثر في القسم المخصص ، أرجوا من المشرف نقل الموضوع للقسم المناسب .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#10

هذه هي مكتبة Inpout32 التي تحدثت عنها .

وهذا مثال على استخدامها مع #C ربما تحتاجينه .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#11

قمنا باجراء اكثر من تجربة على و سائط الربط والتحويل كمثال (USB TO LPT) لم نجد ان عملية مخاطبة المنفذ (LPT) منفذ الطاببعة يلاقي اي تقبل بالنسبة لبرنامج مكتوب من قبل المستخدم او اي برنامج اختباري لمنفذ الطابعة

بينما عندما نستخدم هذه الوصلات لقيادة اي جهاز (طابعة يعمل على منفذ (LPT)) الوصلة تقوم بعملها بشكل مقبول ولكن هناك بطىء بنقل البيانات مقارنة لعمل الجهاز الموصول بمنفذ الطابعة بشكل مباشر

وصلنا لقناعة ان هذه الوصلات اعدت لتشغيل الاجهزة التي تعمل وفق تقنية (Plug-And-Play) باختصار يعني انها تعمل مع الاجهزة التي بها برنامج تشغيل يعرف عن نفسه لايجاد عملية ربط بينه وبين الحاسب وبالتالي يرد الحاسب بتطبيق الدريفر المناسب له

وقمنا بتجربة اجهزة قديمة ليست مبنية وفق تقنية (Plug-And-Play) ولكن لم نجد اي استجابة ولم تعمل هذه الاجهزة باي شكل كان

اي ان البيانات تنقل بشكل تسلسلي من منفذ (USB) ويتم تحويلها الى الشكل التفرعي وفق برنامج الربط الخاص بالطابعة الموجود كنظام تشغيل داخلي بالطابعة وما هو موجود كبرنامج قيادة لهذه الطابعة (DRIVER) ضمن نظام التشغيل بالحاسب اصلا

انا من ناحيتي قد سمعت ان هناك وصلات تحويل تعمل وكانها منفذ حقيقي ولكن لم اره في الشكل العملي وانتظرت كثرا دون جدوى

وفعلا عندما يراد لهذه الوصلات ( وصلات التحويل ) فانت بحاجة لمخاطبتها باسلوب اخر لم اصله حتى الان ولم اجد اي مصدر لاستفيد منه والسبب ان اكثر الاجهزة الحالية تعتمد منافذ (USB)

اتمننى ان اكون قد قدمت تجربتي لايصال فائدة

تم تعديل هذه المشاركة بواسطة maaas76 في 12 أغسطس 2010 في 23:43

#12
اقتباس
انا من ناحيتي قد سمعت ان هناك وصلات تحويل تعمل وكانها منفذ حقيقي ولكن لم اره في الشكل العملي وانتظرت كثرا دون جدوى

اعتقد انه نظريا لا يمكن ، لأن لكل منها Controller مختلف (USB/LPT) ، الا اذا كان هناك محاكاة عن طريق Software ، وبهذا لا تكون الوصلة نفسها تعمل كمنفذ حقيقي .

اقتباس
وفعلا عندما يراد لهذه الوصلات ( وصلات التحويل ) فانت بحاجة لمخاطبتها باسلوب اخر لم اصله حتى الان ولم اجد اي مصدر لاستفيد منه والسبب ان اكثر الاجهزة الحالية تعتمد منافذ (USB)

برمجيا يمكن تنفيذ ذلك عن طريق كتابة Driver يقوم بانشاء Virtual Device ، ثم يقوم بتحويل اي اوامر تصل لهذا الـVirtual Device الى الـDevice الحقيقي (وهو الـUSB هنا) .

هناك أمثلة موجودة مع حزمة الـWDK الخاصة ببرمجة الـWindows Drivers وأظن هناك أمثلة اخرى ليست عن الـLPT لكن تحاكي نفس الاسلوب (مثل الدرايفر الخاص بالكيبورد الـUSB) .

الأمر يحتاج الى معرفة جيدة بكلا من برمجة الـDrivers و تركيب التوصيلة نفسها ، وهذه المهمة في العادة تكون على عاتق الشركة المصنعة للتوصيلة .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#13

السلام عليكم

شكرا لكم إخوتي على اهتمامكم ورودكم

لقد قمت باستخدام PC فيه LPT Port وبما ان النسخة اكس بي فقد قمت باستخدام برنامج اسمه Userport للسماح لي بالتعامل مع البورت

والحمدلله كثيرا لقد نجحت بالتحكم ب LED

اقتباس

هذه هي مكتبة Inpout32 التي تحدثت عنها .

وهذا مثال على استخدامها مع #C ربما تحتاجينه .

بارك الله فيك أخي ، لقد استخدمت هذه المكتبة

lilgirllaptopsoftened2c.jpg

#14

نفس المشكله .. انحلت تمام

مواضيع مشابهة