مسح جدول رموز مفاتيح لوحة المفاتيح. حول مسألة تقييم إشارات بيمين الرقمية. لوحات المفاتيح. كيفية مسح رموز QR على أندرويد

غالبية لوحات المفاتيح الحديثةمجهزة بمفاتيح الوسائط المتعددة، وتحتوي الفئران بالفعل على ثلاثة إلى سبعة أزرار. السائقين وجميع أنواع برامج مفيدةويندوز فقط. يعلم الجميع أن Linux مشهور بقدرته على تخصيص النظام لنفسك، إذا كنت، بالطبع، تعرف أين وماذا يجب تكوينه. مهمتنا هي تعليم البطريق العمل بأرغفة إضافية.

تحديد رمز المسح الرئيسي

بغض النظر عما تضغطه على لوحة المفاتيح، فإن خادم X والنواة بشكل عام لا يهتمان بما هو مكتوب أو مرسوم عليها. إنهم مهتمون فقط برمز المسح الضوئي للزر، أولاً يقرأ Xs جدول رموز مفتاح kernel، ثم يتم ربط رمز المفتاح بجدول التعليمات البرمجية الخاص به. إذا كان في مشاكل ويندوزلا يوجد إعداد لمفاتيح الوسائط المتعددة في وحدة التحكم على هذا النحو، لذلك في نظام التشغيل Linux يتعين عليك تكوين رد الفعل بشكل منفصل على الضغط على الأزرار في وحدة التحكم وفي X-Window.

لمعرفة رمز المفتاح، يجب عليك استخدام الأداة المساعدة xev المضمنة مع خادم X. بعد تشغيله تظهر نافذة اختبار الحدث، الآن قم بالضغط على المفاتيح بشكل تسلسلي، مع تذكر الكود الصادر:

$xev
...
حدث KeyRelease، المسلسل 31، NO الاصطناعي، النافذة 0x3e00001،
الجذر 0x67، subw 0x0، الوقت 279734676، (311,611)، الجذر:(1104,687)،
الحالة 0x2000، رمز المفتاح 236 (keysym 0x1008ff19، XF86Mail)، نفس الشاشة نعم،

إرجاع XFilterEvent: خطأ
حدث KeyRelease، المسلسل 31، NO الاصطناعي، النافذة 0x2600001،
الجذر 0x67، subw 0x0، الوقت 265877259، (883334)، الجذر:(886358)،
الحالة 0x0، رمز المفتاح 161 (keysym 0x0، NoSymbol)، نفس الشاشة نعم،
يعطي XLookupString 0 بايت:
إرجاع XFilterEvent: خطأ

يمكن أن يكون الإخراج ضخمًا حيث يتم تعقب كل حركة للماوس أثناء مرورها عبر نافذة اختبار الحدث. يتم وصف المفتاح بواسطة كتلة KeyRelease، على وجه الخصوص، قيمة رمز المفتاح هي بالضبط رمز المسح الذي نريد معرفته. في المثال الموضح، يتم الضغط على مفتاحين. يتوافق رمز المفتاح 236 مع رمز المفتاح لخادم X المحدد في keysym، بالإضافة إلى إجراء XF86Mail، الذي يقوم في KDE بتشغيل عميل البريد الافتراضي. بالنسبة للمفتاح رقم 161، لم يتم تعريف الرمز والإجراء.

من الممكن أن يتم الضغط على أحد المفاتيح، ولكن لا يتم إصدار رمز المسح الخاص به. هذا يعني أن النواة لا يمكنها العثور على قيمة مطابقة. يجب أن يحتوي إخراج dmesg على السطر التالي:

استخدم "setkeycodes 0xec "لجعله معروفا.

أي أنه يُعرض عليك تعيين رمز مسح المفتاح بنفسك باستخدام رموز المفاتيح المحددة، كما أن اختيار قيمة رمز المفتاح أمر بسيط للغاية. قم بتحويل الرقم الناتج إلى رقم عشري (معظم الآلات الحاسبة يمكنها القيام بذلك) وأضف 128. في هذا المثال، 0xec = 236، أي أننا نحصل على رمز المسح 364. إذا كان هناك شك، فيمكن إعادة قائمة رموز المسح المستخدمة وغير المستخدمة يتم عرضها عن طريق تشغيل الأداة المساعدة getkeycodes في وحدة التحكم أو مفاتيح التفريغ. على سبيل المثال، إذا كان الإخراج هو "getkeycodes | grep<код клавиши>"لم يقدم أي شيء، لذلك يمكن استخدام هذا الرمز بأمان.

يمكن للأداة المساعدة XKeycaps (www.jwz.org/xkeycaps)، وهي واجهة أمامية رسومية لـ Xmodmap، أن تساعد أيضًا في تحديد رمز المسح الضوئي.

برنامج xev بالطبع لا يعمل في وحدة التحكم. لمعرفة رمز المسح الصادر عن النواة، عليك استخدام الأداة المساعدة showkey أو getkeycodes:

$showkey
كانت لوحة المفاتيح في وضع UNICODE
اضغط على أي مفتاح (سينتهي البرنامج بعد 10 ثواني من آخر ضغطة)...
0xe0 0x6c 0xe0 0xec

أول رقمين يتوافقان مع المفتاح الذي تم الضغط عليه، والثاني - لغياب الضغط.

إعداد ربط رمز المسح الضوئي في X-Window

إذن، لدينا الآن رموز المسح الضوئي، ونحتاج إلى الإشارة إلى خادم X بما يجب عليه فعله فعليًا عند الضغط على هذا المفتاح، أي تعيين اسم رمزي له. يتم تقديم قائمة بأسماء الرموز في ملف الرأس XF86keysym.h. بشكل افتراضي، لا يتم تثبيت ملفات رأس خادم X على التوزيعات الحديثة. لرؤيته في Ubuntu، تحتاج إلى تثبيت الحزمة x11proto-core-dev، وبعد ذلك سيتم وضع هذا الملف في الدليل /usr/include/X11. وبدلاً من ذلك، يمكنك الاتصال بخادم X.Org CVS. دعونا ننظر:

$ cat /usr/include/X11/XF86keysym.h
/*
* المفاتيح الموجودة على بعض لوحات المفاتيح "الإنترنت".
*/
#define XF86XK_Standby 0x1008FF10
#تعريف XF86XK_AudioLowerVolume 0x1008FF11
#define XF86XK_AudioRaiseVolume 0x1008FF13
#define XF86XK_AudioPlay 0x1008FF14
#define XF86XK_AudioStop 0x1008FF15
#تعريف XF86XK_Mail 0x1008FF19

إذا قارنا السطر الأخير بمخرجات xev، فسنرى أن القيم تطابق المفتاح مع رمز المفتاح 236 - keysym 0x1008ff19، XF86Mail (بدون لاحقة XK_). يمكنك العثور على قائمة بجميع القيم المتاحة كما ينبغي استخدامها في /usr/share/X11/XKeysymDB.

هناك طريقتان لإنشاء التخطيط الخاص بك: إنشاء وصف للوحة المفاتيح أو استخدام Xmodmap. الطريقة الأخيرة هي الأبسط، لذلك سنتحدث عنها أكثر. في الدليل الرئيسي للمستخدم، قم بإنشاء ملف Xmodmap، حيث نقوم بإدخال القيم المطلوبة:

$ مسيديت ~/. Xmodmap

رمز المفتاح 161 XF86 الحاسبة
رمز المفتاح 174 XF86AudioLowerVolume
رمز المفتاح 176 XF86AudioRaiseVolume
رمز المفتاح 162 XF86AudioPause

وهكذا، أعتقد أن المبدأ واضح. علاوة على ذلك، يمكن إدخال رمز المفتاح في كل من الشكلين العشري والست عشري. وفقا لملاحظاتي، فإن رموز معظم المفاتيح موحدة. لذلك، إذا قمت بإعداد الاستجابة للضغط على المفتاح مرة واحدة ونقل الملف إلى كمبيوتر آخر، فهناك احتمال أن يكون رد الفعل للضغط على المفتاح الموقع أيضًا مشابهًا على لوحة مفاتيح أخرى. يمكن لمستخدمي سطح مكتب Gnome المزود بـ GDM كتابة كل هذه السطور في الملف /etc/X11/Xmodmap على مستوى النظام.

وفي حالات أخرى، مازلنا بحاجة إلى إخبار خادم X باستخدام الملف الذي تم إنشاؤه. يتم تنفيذ ذلك بشكل مختلف في التوزيعات المختلفة، والفكرة الرئيسية هي تشغيل الأمر /usr/bin/xmodmap $HOME/.Xmodmap عندما يقوم المستخدم بتسجيل الدخول أو عندما يبدأ X. هنا يرقص الجميع كما يريدون. يقترحون في المنتديات استخدام ملف $HOME/.xsession (في بعض التوزيعات قد يطلق عليه اسم .Xsession)، أو .xprofile أو النظام /etc/X11/Xsession. وأخشى أن هذا ليس كل شيء الخيارات الممكنة. دعونا نرى كيف يتم ذلك في كوبونتو:

$ sudo grep -iR xmodmap /etc

ونتيجة لذلك، نجد ملفًا مثيرًا للاهتمام للغاية /etc/X11/Xsession.d/80ubuntu-xmodmap يحتوي على المحتوى التالي:

$ cat /etc/X11/Xsession.d/80ubuntu-xmodmap

/usr/bin/xmodmap /usr/share/apps/kxkb/ubuntu.xmodmap || حقيقي

USRMODMAP = "$HOME/.Xmodmap"

إذا [-x /usr/bin/xmodmap]; ثم
إذا [ -f "$USRMODMAP" ]؛ ثم
/usr/bin/xmodmap "$USRMODMAP" || حقيقي
فاي
فاي

أي أنه يتم تحميل محتويات ملف ubuntu.xmodmap وuser.Xmodmap إذا كان موجودًا. عندما تفتح ubuntu.xmodmap في المحرر، ستجد قائمة برموز المفاتيح والأسماء الرمزية المرتبطة بها. من هذا يمكننا أن نستنتج: إذا أبلغ المطور أن توزيعه يدعم لوحات مفاتيح الوسائط المتعددة، فمن الممكن العثور على ملف مماثل بدرجة عالية من الاحتمال. التوزيعات الأخرى لديها نظام مماثل لتشغيل ملفات xmodmap المخصصة.

الآن بعد أن تم تعيين الأسماء الرمزية للمفاتيح، يمكنك تعيين الإجراءات المطلوبة لها. يمكن لبعض بيئات النوافذ مثل KDE التعامل مع الإجراءات بناءً على الأسماء الرمزية. لذلك، عندما تضغط على الزر باستخدام XF86AudioPlay (سؤال)، يبدأ المشغل الافتراضي في التشغيل. لتعيين المجموعة المطلوبة، ما عليك سوى الانتقال إلى "مركز التحكم KDE -> الخيارات الإقليمية وخيارات الوصول -> مجموعات لوحة المفاتيح" (في KUbuntu، ابحث في "إعدادات النظام -> لوحة المفاتيح والماوس"). يوجد عنصر قائمة مماثل في كل من Gnome (يمكنك ببساطة الاتصال بـ gnome-keyboard-bindings) وXFce. بالإضافة إلى ذلك، يمكن لبعض البرامج مثل Amarok وKonqueror وMPD أيضًا معالجة ضغطات المفاتيح. في بيئات أخرى دون
من المرجح أن تتطلب أدوات التكوين الرسومية تدخلاً يدويًا في ملفات التكوين. على سبيل المثال، في IceWM، يؤدي الضغط على مفتاح يحمل الاسم الرمزي XF86AudioPlay إلى تشغيل مشغل XMMS، وعند الضغط عليه مرة أخرى يتوقف مؤقتًا، يجب عليك إضافة السطر إلى ملف ~/.icewm الذي يظهر بعد التشغيل الأول:

$ mcedit ~/.icewm

مفتاح XF86AudioPlay xmms - تشغيل مؤقت

في Fluxbox، سيبدو خط تشغيل المشغل كما يلي:

$ mcedit ~/.fluxbox/keys

لا شيء XF86AudioPlay:ExecCommand xmms --play-pause

عادة ما تكون هناك أمثلة في التكوينات، لذلك أعتقد أنه يمكنك بسهولة معرفة بقية مديري النوافذ بنفسك.

إعداد رد الفعل في وحدة التحكم

في وحدة التحكم، يختلف الإجراء قليلاً. كما تتذكر، أوصى إخراج dmesg بتعيين رموز المفاتيح باستخدام الأمر setkeycodes. ولكن هناك اختلافات هنا - لا يمكن أن يكون هناك أكثر من 128 أمرًا رئيسيًا في وحدة التحكم، يجب عليك تحديد القيم من 0 إلى 127:

$setkeycodes 0xec 118

يمكنك عرض القيم المجانية في ملف تخطيط لوحة المفاتيح الحالي. في Ubuntu وجميع التوزيعات المبنية على Debian، يكون هذا عادةً /etc/console-setup/boottime.kmap.gz. إذا لم تكن هناك مشاكل في المفاتيح بعد بدء التشغيل، فأضف هذا السطر إلى أحد البرامج النصية لبدء التشغيل، على سبيل المثال في /etc/init.d/rc.local.

الآن كل ما تبقى هو ضبط المراسلات بين المفتاح والإجراء الذي يتم تنفيذه. هناك مساحة أكبر للإبداع هنا مما كانت عليه في X. في خرائط المفاتيح (5)، يكون الإجراء الخاص بمطابقة رمز المفتاح كما يلي:

(عادي | ) رقم مفتاح رمز المفتاح = keysym

# قم بتبديل وحدة التحكم مرة أخرى عند الضغط على المفتاح بالرمز 105
رمز المفتاح 105 = Decr_Console
# يقوم بتبديل وحدة التحكم إلى الأمام عند النقر فوقها ومفتاح بالرمز 106
رمز المفتاح البديل 106 = Incr_Console

ولكن يمكنك إنشاء خياراتك الخاصة عن طريق تحديد الأمر في المتغيرات:

رمز المفتاح 120 = F100
السلسلة F100 = "/sbin/shutdown -h now\n"

بمعنى آخر، سيؤدي الضغط على المفتاح الذي يحمل الرمز 120 إلى تنفيذ الإجراء المحدد في المتغير F100؛ في حالتنا، تم ضبط الكمبيوتر على إيقاف التشغيل. بدلا من F100، بالطبع، يمكنك استخدام أي اسم آخر.

الآن جزء لا يقل أهمية هو مكان كتابة كل هذا. تقترح الوثائق والنصائح العديدة استخدام ملف تخطيط وحدة التحكم الحالي (في حالتي، boottime.kmap.gz). بالمناسبة، هذا هو الملف الوحيد الذي يصف التخطيطات المتاحة بعد تثبيت KUbuntu؛ لرؤية الخيارات الأخرى، يجب عليك تثبيت حزمة بيانات وحدة التحكم. بعد ذلك، في /usr/share/keymaps/i386/ يمكنك العثور على عدة أدلة فرعية تحتوي على ملفات بداخلها. ولكن إذا كنت بحاجة إلى التبديل إلى تخطيط آخر (في Ubuntu وبعض التوزيعات الأخرى، يتم استخدام ملف /etc/default/console-setup أو ~/.console-setup لهذا الغرض)، فسوف تحتاج إلى نقل جميع الإعدادات إلى تخطيط آخر. الملف، وهو إلى حد ما
غير مريح. إذا قررت القيام بهذه الخطوة، فاستخدم الإدخالات الموجودة كقالب، دون كتابة أي شيء في الموضع الأول، ولا تنس ترك سطر فارغ في النهاية.

قليلا عن الكمبيوتر المحمول

لم أصادف حتى الآن جهاز كمبيوتر محمولًا لا يمكن تحديد رموز المسح الرئيسية الخاصة به. ولذلك، فإن الإعدادات هنا لا تختلف عن تلك المذكورة أعلاه. على الرغم من أن هناك تقنية واحدة أود التحدث عنها. أجد أن وضع السبات مناسب جدًا للاستخدام، عندما تجد كل شيء في مكانه عند تشغيل الكمبيوتر. كقاعدة عامة، تدعمها التوزيعات الحديثة، على الرغم من أن الإعداد بسيط بشكل عام - ما عليك سوى تثبيت حزمة السبات وتجاوز المعلمات الضرورية في ملف التكوين. الشيء الوحيد هو أنه في كل مرة للتبديل إلى هذا الوضع، تحتاج إلى تشغيل البرنامج النصي /usr/sbin/hibernate، وهو ليس مناسبًا دائمًا. أريد فقط إغلاق غطاء الكمبيوتر المحمول وتشغيله مرة أخرى
الغذاء، واكتشاف كل شيء في مكانه.

من السهل جدًا القيام بذلك باستخدام البرنامج الخفي acpid، وهو نوع من واجهة المستخدم التي تسمح لك بإدارة أي أحداث ACPI متاحة من خلال /proc/acpi/event. في هذه الحالة، يقرأ acpid مجموعة من ملفات التكوين من الدليل /etc/acpi/events/. إذا لم يتم تضمين الحزمة مع البرنامج الخفي في التوزيع، فقم بتثبيتها من المستودع؛ يمكن الحصول على أحدث نسخة من الموقع الإلكتروني phobos.fs.tum.de/acpi. بعد التثبيت، تحتاج إلى إنشاء ملفين في الدليل /etc/acpi/events: الغطاء والطاقة. يصف الأول رد الفعل عند إغلاق الغطاء، والثاني عند الضغط على زر الطاقة.

$ sudo mcedit /etc/acpi/events/lid

الحدث=زر/غطاء.*
action=/usr/sbin/hibernate

$ sudo mcedit /etc/acpi/events/power

الحدث=زر/الطاقة.*
الإجراء=/sbin/shutdown -h الآن

هذه خيارات مبسطة إلى حد ما، ولكن في KUbuntu ستجد نصوصًا أكثر تعقيدًا. بعد ذلك، تحتاج إلى إعادة تشغيل البرنامج الخفي acpid:

$ Sudo /etc/init.d/acpid إعادة التشغيل

الآن، عندما تغلق غطاء الكمبيوتر المحمول، سوف يدخل النظام في وضع السبات مع إيقاف تشغيل الطاقة، وعندما تضغط على زر الطاقة، سيتم إيقاف تشغيله. بسيطة ومريحة.

برامج الإعداد

إذا كنت لا تحب العبث بملفات التكوين، أقترح عليك العديد من البرامج التي ستساعدك على تكوين تشغيل مفاتيح الوسائط المتعددة. على سبيل المثال، الغرض الأولي لبرنامج Sven (sven.linux.kiev.ua) هو تكوين مفاتيح إضافية على لوحة مفاتيح الوسائط المتعددة، ولكن بدءًا من الإصدار 0.4، يمكنه تصحيح أخطاء الكتابة وتغيير تخطيط لوحة المفاتيح. علاوة على ذلك، حتى لو كان لديك لوحة مفاتيح عادية، فبمساعدتها يمكنك محاكاة مفاتيح الوسائط المتعددة باستخدام اختصارات لوحة المفاتيح بدلاً من ذلك. يمكنك أيضًا تعيين إجراءات لأزرار ماوس معينة. إنها تفهم ما يقرب من 10000 كلمة روسية و9500 كلمة إنجليزية. إذا لم يتحول البرنامج
نفسه، فيمكن تغيير التخطيط يدويًا باستخدام مفتاح مخصص خصيصًا (فاصل افتراضيًا). يمكن لمفتاح منفصل (Scroll Lock) تغيير حالة الكلمات (العلوي، السفلي، الحرف الأول علوي، والباقي أقل). يتذكر مؤشر تبديل تخطيط لوحة المفاتيح حالته لكل نافذة، لذلك إذا كنت تقوم بالتبديل بين التطبيقات بشكل متكرر، فلن تحتاج بعد الآن إلى تغيير التخطيط بشكل إضافي. البرنامج يتمتع بقدرات كبيرة وأنصحك بإلقاء نظرة عليه. يتم إجراء كافة الإعدادات باستخدام برنامج الرسومات، مبني على مكتبات GTK+. تم اختبار Sven على Linux، ولكن من حيث المبدأ يجب أن يعمل على أنظمة *BSD. يستخدم مدير النوافذ
لا يهم.

تعد إمكانيات KeyTouch (keytouch.sf.net) أكثر تواضعًا إلى حد ما، ويتم استخدام هذه الأداة المساعدة حصريًا لإعداد مفاتيح الوسائط المتعددة. على الرغم من أنه يمكنك من خلال مساعدته تعيين إجراء مختلف لأي مفتاح يختلف عن الإعدادات الافتراضية. على موقع البرنامج، بالإضافة إلى النصوص والحزم المصدرية لبعض التوزيعات، يمكنك العثور على إعدادات جاهزة للوحات مفاتيح الوسائط المتعددة من معظم الشركات المصنعة المعروفة.

آخر حل مثير للاهتمام- xbindkeys (hocwp.free.fr/xbindkeys/xbindkeys.html) - يسمح لك بتعيين أي أوامر، بما في ذلك أوامر shell، لأي زر لوحة مفاتيح أو ماوس. يتم إجراء جميع الإعدادات في ملف التكوين، والذي يحتوي على تنسيق بسيط ومفهوم.

على الأرجح على هاتفك بالفعل مثبتة بشكل افتراضيالماسح الضوئي لرمز الاستجابة السريعة، يمكنك استخدامه بسهولة لمسح رمز الاستجابة السريعة الأول الخاص بك. هذا من السهل جدا القيام به. فقط اتبع تعليماتنا.

1. افتح قارئ رمز الاستجابة السريعة على هاتفك.

2. ضع جهازك فوق رمز الاستجابة السريعة بحيث يكون مرئيًا بوضوح على شاشة هاتفك الذكي.

إذا كنت تحمل هاتفك الذكي بشكل صحيح فوق رمز الاستجابة السريعة، فسيحدث ما يلي:

  • يقوم الهاتف تلقائيًا بمسح الرمز.
  • في بعض التطبيقات، يتعين عليك النقر على الصورة لمسح الرمز ضوئيًا، بدلاً من النقر على زر كما تفعل لالتقاط صورة على هاتفك الذكي.

3. اضغط على الزر المشار إليه، إذا لزم الأمر.

ممتاز! يقرأ هاتفك الذكي الرمز ويتبع الرابط المحدد، وهو ما لا يحدث دائمًا على الفور. في معظم الأجهزة، قد يستغرق هذا بضع ثوانٍ.

ستبدأ في رؤية رموز QR في كل مكان. يتم استخدامها للتدريس والإعلام والشرح وأشياء أخرى كثيرة. العثور عليها ومسحها ضوئيًا! رموز QR ستوفر عليك الكثير من الوقت والجهد.

كيفية مسح رموز QR على أندرويد

سنخبرك الآن بكيفية استخدام تطبيق مسح رمز QR على نظام Android.

باختصار:
1. افتح متجر اللعب .
2. البحث قارئ رمز الاستجابة السريعة .
3. اختر قارئ رمز الاستجابة السريعة(عبر المسح).
4. انقر فوق " ثَبَّتَ".
5. افتح البرنامج قراءة رمز الاستجابة السريعة.
7. قم بتوجيه الكاميرا نحو رمز الاستجابة السريعة.
8. انقر فوق " نعم".

الخطوة 1. افتح متجر بلاي على نظام أندرويد.هذا رمز في أحد التطبيقات أو على الشاشة الرئيسية.

الخطوة 2. أدخل قارئ رمز الاستجابة السريعة في محرك البحث.ستظهر قائمة بالتطبيقات لقراءة رمز الاستجابة السريعة.

  • تشرح هذه المقالة كيفية استخدام QR Code Reader، ولكن يمكنك اختيار التطبيق الذي تفضله. فقط تأكد من قراءة التطبيق قبل التنزيل.
  • يجب أن تكون الخطوات هي نفسها بالنسبة لجميع تطبيقات قراءة رمز الاستجابة السريعة.

الخطوه 3.انقر فوق QR Code Reader الذي تم تطويره بواسطة Scan.اسم المطور مدرج أسفل كل تطبيق. قد يتعين عليك التمرير لأسفل للعثور على التطبيق الذي تم إنشاؤه بواسطة Scan.

الخطوة 4.انقر فوق تثبيت.ستظهر نافذة منبثقة تطلب منك منح الإذن للوصول إلى المعلومات الموجودة على جهاز Android الخاص بك.

الخطوة 5.انقر فوق قبول.سيتم الآن تثبيت QR Code Reader على جهاز Android الخاص بك.

    • عند تنزيل التطبيق، سيتغير زر "تثبيت" إلى "فتح" وسيكون لديك رمز جديد في التطبيق.

الخطوة 6.افتح قارئ رمز الاستجابة السريعة.هذا الرمز يشبه رمز الاستجابة السريعة في التطبيق. سيؤدي هذا إلى فتح تطبيق يشبه شاشة الكاميرا القياسية.

الخطوة 7قم بمحاذاة رمز الاستجابة السريعة في إطار الكاميرا.يشبه إلى حد ما طريقة التقاط الصور، باستثناء أنك لا تحتاج إلى الضغط على أي أزرار. عندما يقرأ ماسح الباركود الرمز، ستظهر نافذة منبثقة مع عنوان URL الموجود في الرمز.


الخطوة 8انقر على "موافق" لفتح الموقع.يؤدي هذا إلى تشغيل متصفح الويب الافتراضي الخاص بك والانتقال إلى عنوان URL في رمز الاستجابة السريعة.

جهاز الكمبيوتر النموذجي التالي، والذي يبدو بسيطًا، ولكنه يسبب أحيانًا مشكلة للباحث، هو لوحة المفاتيح.

بشكل عام الجهاز بسيط . لا سيما الطرازات القديمة المتصلة بمنفذ PS/2. كما تظهر العديد من البيانات التجريبية، تقوم شريحة التحكم بلوحة المفاتيح بمسح ضغطات المفاتيح وتنقلها في رمز تسلسلي إلى المنفذ. تردد الساعة لهذا الإرسال هو مضاعف (في الغالبية العظمى من الحالات) يبلغ 6.3 أو 10 كيلو هرتز. على الرغم من أن المؤلف صادف نسختين في السنوات الأخيرة، كان تردد الساعة حوالي 20 كيلو هرتز.

جميع لوحات المفاتيح، عند الضغط مع الاستمرار على أي مفتاح، تبدأ (بعد توقف مؤقت) في تكرار إرسال رمز المفتاح "إلى ما لا نهاية". في الوضع العادي، يؤدي هذا عادةً إلى تجاوز سعة المخزن المؤقت لوحدة التحكم وتعطله في غضون ثوانٍ قليلة. يبدو إشارة صوتيةنظام "ديناميكيات" - "صرير". جوهر وضع الاختبار (الأكثر قبولًا عمومًا) هو حظر أمر تجاوز سعة المخزن المؤقت، والذي يسمح، عند الضغط على المفتاح، بضمان النقل اللانهائي للحرف المحدد عبر كابل "لوحة المفاتيح".

كما هو الحال دائمًا، من أجل الحساب اللاحق الصحيح للنتيجة، من الضروري إنشاء تناوب مستمر للنبضات في حزمة التعليمات البرمجية. بالنسبة لرموز لوحة المفاتيح، يمكن أن يكون هناك مجموعتان من هذه المجموعات:

10101010 (55) مفتاح "+؛ = "

01010101 (AA) في الجداول القياسية - لا ينطبق

ويرد الجدول العام لرموز المسح في الجدول 14.1

الجدول 14.1- رموز مسح لوحة المفاتيح

مفتاح

رمز المسح

مفتاح

رمز المسح

مفتاح

رمز المسح

مفتاح

رمز المسح

وبالتالي، عند تنفيذ وضع الاختبار، وعلى سبيل المثال، وضع وزن على المفتاح "+"، سيكون هناك تسلسل لا نهائي من حزم النبض في كابل لوحة المفاتيح. في هذه الحالة، ستكون فترة تكرار النبضة في الحزمة (أي تردد الساعة) 6.10 أو 20 كيلو هرتز، وسيكون تردد تكرار الحزمة أقل بكثير. يظهر تنسيق البيانات في الشكل 14.1

لتبادل البيانات في كابل لوحة المفاتيح، هناك سطرين - KBData وKBSync. عند إرسال رموز المسح، تقوم لوحة المفاتيح بتعيين البت التالي من البيانات على خط KBData وتؤكد الإرسال عن طريق نقل الإشارة من "1" إلى "0" على خط KBSync.

يمكن لوحدة التحكم الإشارة إلى عدم استعدادها لإرسال/استقبال البيانات بمستوى منخفض على خط KBSync. وفي بقية الأوقات، عندما لا تكون هناك بيانات للإرسال، يكون لدى كلا الخطين مستوى إشارة مرتفع.



على النحو التالي مما سبق، في طيف PEMIN لكابل لوحة المفاتيح، ينبغي للمرء أن يتوقع مكونات تردد بتردد ساعة يبلغ 1/76.04·10 -6 = 13.15 كيلو هرتز. علاوة على ذلك، ونظرًا لوجود إشارتين منزاحتين في الطور بفترات مختلفة (لكن متعددة!)، فإن مكونات التردد الزوجية والفردية ستختلف في السعة.

كما هو متوقع، فإن PEMIN لخط البيانات المتزامن غير مفيد من حيث المبدأ. لكن التمييز بين PEMIN وآخر ليس بالأمر السهل على الإطلاق. هناك كابل واحد فقط، الإشارات متزامنة...

عمليا الطريقة الوحيدة- حدد رمز المسح الضوئي مع الحد الأدنى لعدد "1s" المنطقية في الحزمة. هذه هي المفاتيح "F3" وF9 (03 و01 بالرمز السداسي). لم يتم استخدام الرمز "00".

يظهر أدناه مخطط ذبذبات رمز المسح الضوئي "F3".


بدقة "من حيث الطاقة"، إذا قمت بقياس جميع مكونات تردد PEMIN بالرمز "=" وعلى سبيل المثال، الرمز "F9"، فإن الفرق في قراءات جهاز الاستقبال لكل مكون من مكونات التردد هو المعلومات الحقيقية جزء من طاقة PEMIN. علاوة على ذلك، هذا هو الحد الأقصى. يكون العمل معقدًا ومملًا للغاية إذا لم يكن من الممكن تكليفه بـ "آلة أوتوماتيكية". مكونات PEMIN ذاتها لمثل هذا ترددات منخفضةلا يتم التعرف عليها بسهولة. وكذلك "لرصد" الاختلافات...



في ممارسة SI، في الغالبية العظمى من الحالات، يقومون ببساطة بقياس مستويات PEMIN (دون طرح أي شيء) وحساب معلمة الأمان. هذا ممكن "مع تحفظ"، لكن الأخصائي ملزم بمعرفة الوضع الحقيقي.

في نهاية المراجعة - "pinout" لموصلات لوحة المفاتيح AT و PS/2.


تبدو "الصور" الموجودة على جهاز الاستقبال بعيدة كل البعد عن كونها "كلاسيكية"، إلا أنها يمكن التعرف عليها تمامًا. هنا أمثلة



يُظهر الطيف بوضوح زيادة في سعة المكونات مع انخفاض التردد.

هناك أيضًا ميزات قياسات "العصا" في منطقة التردد هذه (من عشرات الكيلو هرتز وما بعدها). والحقيقة هي أن لوحة المفاتيح، في وضعها المعتاد، ليست بعيدة عن وحدة النظام. وفي الجزء العلوي من SB هو كتلة النبضيعد مصدر الطاقة أقوى مصدر لـ PEMIN لكل من المكونات "E" و"H". في "ضوء" مثل هذه الأضواء المسرحية، فإن رؤية "الضوء" الخافت للوحة المفاتيح يعد فنًا خاصًا! ولذلك، أقترح التقنية التالية. حرك لوحة المفاتيح بعيدًا عن SB قدر الإمكان. أفضل - على موسع PS/2. حوالي 2-2.5 متر.

ضع الهوائي بحيث يكون موجهًا نحو أقل قدر ممكن من القمر الصناعي (الإشارة، مع عرض نطاق مستقبلي أكبر من 10 كيلو هرتز، هي طيف مستمر). وبالقرب من الهوائي الثابت الموجه، ابدأ في لف لوحة المفاتيح والكابل الخاص بها (وليس العكس!). ثم سيكون لديك فرصة أفضل بكثير لاكتشاف إشارات PEMIN من لوحة المفاتيح ورؤية مكونات PEMIN على شاشة المحلل بأم عينيك.

يتم تطبيق كل ما سبق على لوحة المفاتيح ذات واجهة PS/2. ولكن الآن يتم استبدالها على نطاق واسع بلوحات المفاتيح ذات واجهة USB.

بشكل عام، تمت مناقشة هذه الواجهة بشيء من التفصيل مع الطابعات. ومع ذلك، قد يكون من المفيد إعطاء بعض "التسمية المستهدفة" فيما يتعلق بلوحة المفاتيح.

دعونا نتذكر بناء الحزم لواجهة USB، مع الأخذ في الاعتبار أن لوحة المفاتيح متصلة بشكل صارم بسرعة منخفضة (أي في الواقع عبر واجهة USB 1.0).

الحد الأقصى لحجم حمولة البيانات للأجهزة منخفضة السرعة هو 8 بايت. أي أن هذا هو بالضبط ما يتطلبه رمز فحص لوحة المفاتيح.

تبين أن رؤية الإشارة (أي البيانات) على خط USB ليست مهمة سهلة. ومع ذلك، هذا ما تم الكشف عنه بدقة في كابل نموذج "لوحة المفاتيح" USB النموذجي GENIUS KB-06XE، وتحديدًا في خط "data +" (السلك) (الشكل 14.10)


يتغير كل من مخططي الذبذبات هذين مع دورية غير محددة (فوضوية)، ولا تعتمد "صور" الإشارات على مفتاح لوحة المفاتيح الذي تم الضغط عليه (أو لم يتم الضغط عليه). ولم يكن من الممكن تحديد أي تغييرات أخرى في الجزء "المتغير" من الحزمة (الإطار).

يتم تثبيت تردد هذه الحزم بشكل صارم (الشكل 14.11)، وتكون مدة كل منها (مرئية على مخططات الذبذبات) حوالي 34 ± 1 μs.


تتبع الحزم كل 4 مللي ثانية. ومع ذلك، تجدر الإشارة إلى أن نهاية كل حزمة "تتوتر" طوال الوقت، و"الارتعاش" الكلاسيكي ملحوظ. ولذلك، فإن الصورة الطيفية ضبابية إلى حد ما ولا تصبح واضحة إلا مع متوسط ​​طويل بما فيه الكفاية.


وبالإضافة إلى ذلك، ينبغي أن يؤخذ في الاعتبار أنه بسبب فترات تكرار النبض المختلفة ومددها المختلفة، فإن الطيف له طابع خليط من الطيف المستمر والخط. ومع ذلك، فإن الطابع الفصي للطيف، الطبيعي لتسلسل لا نهائي من الرزم والمتعدد في "فصوصه" لمتوسط ​​مدة الرزمة، يتم الحفاظ عليه بوضوح شديد. يتم تسهيل "أصفار" الوظيفة فقط عن طريق الارتعاش وفترة التكرار غير المتغيرة للنبضات الفردية. ومع ذلك، فإن الصورة نفسها نموذجية تماما. مع دقة تردد أدق، يبدأ الطيف في التحول إلى "خطوط" يحددها معدل تكرار الحزمة (250 هرتز) (الشكل 14.13) وبالتالي، مع أبسط عرض لمخططات الذبذبات وغير متزامن مع الإرسال الحقيقي لرمز المسح، فشل تحديد وتصور أجزاء الإطار (الحزمة) المسؤولة عن نقل البيانات. ومع ذلك، يمكن القول أن PEMIN لكابل لوحة المفاتيح سيظل هذا وليس غيره. من الواضح ما هي الترددات التي يجب البحث عنها، ومن الواضح أنها ستكون ذات طبيعة مستمرة (على أي حال، مع دقة تردد جهاز الاستقبال أكثر من 0.3 كيلو هرتز). ومن الواضح ما هي القيمة التي يجب استبدالها كقيمة ساعة في العمليات الحسابية (كان الحد الأدنى لفترة النبضات في الحزمة في التجربة هو 1.322 ميكروثانية). يعد قياس ذلك، في أي نظام SI، باستخدام راسم الذبذبات بعرض نطاق ترددي يبلغ 200 ميجاهرتز على الأقل مهمة تافهة. وضع الاختبار، في الواقع، هو أي واحد، يمكنك الضغط على أي مفاتيح، أو لا يمكنك الضغط على أي شيء. يتم نقل الحزم عبر الواجهة على أي حال. وكتقدير أولي، فإننا نعتبرها معلوماتية (حتى يثبت العكس).

تم الحصول على مخططات الذبذبات والأطياف المعطاة باستخدام راسم الذبذبات AKIP-4108/2 المتصل بنفس الكمبيوتر الذي تم إجراء القياسات عليه (تجدر الإشارة إلى أن هذا تكرار وظيفي للغاية لتطوير شركة PICO Technology من قبلنا. لا أسوأ من الصينيين :)).

من الواضح أن الطيف يتجاوز بكثير 1 ميجاهرتز (لم يعد راسم الذبذبات يسمح بذلك، ولم يكن هناك أي معنى في توصيل المحلل). يتم تحديد الباقي بواسطة الكابل، كهوائي عشوائي، ودرجة درعه.

بالنسبة للأوضاع الأخرى لواجهة USB، تحتاج إلى راسم ذبذبات بنطاق ترددي يصل إلى عدة جيجاهرتز.

إن كيفية حساب الطيف المستمر بالضبط، وفي الوقت نفسه، البقاء ضمن إطار نظام NMD الحالي، هي محادثة منفصلة وليست للمناقشة المفتوحة، للأسف... ومع ذلك، في المنشورات اللاحقة سيتعين علينا العودة إليها، هناك ليس هناك مكان للذهاب. سأحاول "البقاء ضمن الحدود"...

ما دفعني للعمل على جهاز من هذا النوع هو أن أغلب أجهزة Gamemort سهلة التكرار لم تكن تسمح بتنفيذ عدد كافي من أزرار التحكم. تم تصميم منفذ ألعاب الكمبيوتر في الأصل لأربعة أزرار كحد أقصى. جميع أنواع الامتدادات أيضًا لا تتمتع بالمرونة المطلوبة. على سبيل المثال، يتيح لك ملحق CH Flightstick Pro، الشائع بين مستخدمي DIY، تنفيذ ما يصل إلى 14 زرًا، لكن لا يمكنك استخدام أي زرين في نفس الوقت - حول الطيران على مثل هذه الأجهزة في الألعاب التي يتعين عليك فيها "تحويل "الرأس" - في نفس الطيور يمكنك أن تنسى. تستخدم بعض الملحقات واجهة رقمية بحتة - يتم نقل البيانات حول الأزرار المضغوطة وانحراف المقبض عبر خطوط منفذ الألعاب الرقمية، والتي كانت تهدف في الأصل إلى نقل البيانات حول الأزرار الأربعة "القياسية". حتى أنني أعتبر مثل هذه الامتدادات زائدة عن الحاجة إلى حد ما. كما أن تحويل البيانات التناظرية إلى رقمية يؤدي إلى تعقيد تصميم عصا التحكم. بالإضافة إلى ذلك، لا تريد كل لعبة أن تفهم نوع الوحش "المرتبط" بها. ولوحة المفاتيح - ها هي، بكل مجدها المكون من 102 مفتاحًا! بالإضافة إلى ذلك، أضاف المشتركون في RU.GAME.FLIGHT الزيت على النار، ويسألون من وقت لآخر "كيف يمكنني ترويض لوحة المفاتيح وعبورها بالفرح؟" ويغادر بلا شيء.

باختصار، مهمة الجهاز هي "الجلوس" على الناقل بين لوحة المفاتيح والكمبيوتر ومحاكاة ضغطات المفاتيح على لوحة المفاتيح وفقًا للأزرار التي يتم الضغط عليها في الجهاز.

لذلك جلست لتطويره. قبل ذلك، كانت لدي خبرة في العمل مع العديد من المعالجات الدقيقة ووحدات التحكم الدقيقة. بشكل عام - الأصابع من الأذن إلى الأذن. واعتقدت بسذاجة أنني الآن سأتولى الأرصفة وأقوم بـ RTFM وفي غضون أسبوع سأكون على حصان أبيض. كانت المشكلة برمتها هي أنني لم أتمكن من العثور على وثائق حول بروتوكول نقل البيانات بين لوحة المفاتيح ووحدة التحكم سواء على الإنترنت أو في مؤتمرات Fido ذات الصلة. اضطررت إلى أخذ راسم الذبذبات وقضاء عدة أسابيع في تفكيك الأدوات المؤقتة ومحاولة تكرارها. ولذلك، فإن معظم المعلومات الواردة أدناه هي نتيجة لاستنتاجاتي وغير موثقة. إذا كنت مخطئًا بشأن شيء ما، سأكون سعيدًا لسماع تعليقاتك على راشبيلفي المملكة المتحدةنقطة شبكة.

المبادئ الأساسية لنقل البيانات

ينطبق كل ما يلي على لوحات المفاتيح PS/2 وAT، والتي تختلف فقط في تصميم الموصل (يمكن توصيله عبر محول).

يتم تبادل البيانات في اتجاهين بين لوحة المفاتيح ووحدة التحكم الموجودة على اللوحة الأم للكمبيوتر (يشار إليها فيما يلي ببساطة باسم "وحدة التحكم"). ترسل وحدة التحكم أوامر مختلفة (على سبيل المثال، تغيير حالة مصابيح LED أو سرعة التكرار التلقائي). تقوم لوحة المفاتيح بإرسال رموز المسح للمفاتيح المضغوطة (رمز المسح - رمزالمفاتيح، لا ينبغي الخلط بينها وبين رموز ASCII).

رموز المسح

مفتاح رمز المسح مفتاح رمز المسح مفتاح رمز المسح مفتاح رمز المسح
1 16 2 1E 3 26 4 25
5 2E 6 36 7 3D 8 3E
9 46 0 45 - 4E + 55
مسافة للخلف 66 فاتورة غير مدفوعة 0 د س 15 دبليو
ه 24 ر 2D ت ي 35
ش أنا 43 يا 44 ص 4 د
[ 54 ] 5 ب يدخل 5 أ السيطرة (L) 14
أ 1C س 1 ب د 23 F 2 ب
ز 34 ح 33 ج 3 ب ك 42
ل 4 ب ; " 52 ` 0E
التحول (L) 12 \ 61 ز 1 أ X 22
ج 21 الخامس 2 أ ب 32 ن 31
م 3 أ , 41 . 49 / 4 ا
التحول (ص) 59 البديل (ل) 11 فضاء 29 Caps lock 58
خروج 76 F1 05 F2 06 F3 04
F4 0 درجة مئوية F5 03 F6 F7 83
F8 F9 01 F10 09 F11 78
F12 07 قفل التمرير 7E * قفل الأرقام 77
7 8 75 9 7 د - 7 ب
4 6 ب 5 73 6 74 + 5 أ
1 69 2 72 3 7 أ 0 70
. 71 آلر(ص) E0-11 السيطرة (ص) E0-14 شاشة الطباعة E0-12-E0-7C
إدراج E0-70 يمسح E0-71 غادر E0-6B بيت E0-6C
نهاية E0-69 أعلى E0-75 تحت E0-72 صفحة لأعلى E0-7D
اسفل الصفحة E0-7A يمين E0-74 يدخل E0-5A / E0-4A

ملحوظة: تحتوي لوحة المفاتيح AT في الواقع على ثلاث مجموعات مختلفة من رموز المسح الضوئي. لقد أعطيت فقط القيم للمجموعة رقم 2 - القيمة الافتراضية.

عندما تضغط على أحد المفاتيح، تقوم لوحة المفاتيح بإرسال رمز المسح الخاص بهذا المفتاح إلى وحدة التحكم. عند الإصدار، قم أولاً بالبادئة 0F0h، ثم رمز المسح الضوئي للمفتاح الذي تم إصداره.

يتم إرسال مجموعات المفاتيح مع Shift وAlt وCtrl كسلسلة من رمزي المسح. من وجهة نظر وحدة التحكم، لا تختلف هذه المفاتيح عن أي مفاتيح أخرى. بنفس الطريقة، لا يختلف وضعا Num Lock وCaps Lock على مستوى الأجهزة - بل يختلفان على مستوى البرنامج حسب البرنامج الذي يخدم مقاطعة لوحة المفاتيح.

أود أن أناقش بإيجاز تنفيذ وضع التكرار التلقائي. كقاعدة عامة، يتم تعيين وظائف التكرار التلقائي إلى لوحة المفاتيح نفسها - بعد وقت معين، إذا لم يتم تحرير المفتاح، ترسل لوحة المفاتيح رمز المسح الضوئي نفسه تمامًا. إذا قمت بالضغط على مفتاح آخر في هذا الوقت، فسوف "ينتقل" رمز مسح ضوئي آخر إلى وحدة التحكم وسيتم اعتبار أنه تم الضغط على مفتاح واحد فقط. في الألعاب، يتم حل هذه المشكلة ببساطة - يعتبر المفتاح مضغوطا حتى وصول رمز المسح المقابل مع البادئة 0F0h. لذلك، لم أقم بتنفيذ وظائف التكرار التلقائي من حيث المبدأ.

بالإضافة إلى رموز المسح المذكورة أعلاه، يمكن للوحة المفاتيح إرجاع بعض أوامر الخدمة. لكن هذه الأوامر، وكذلك الأوامر الصادرة عن وحدة التحكم، ليس لها أي قيمة عملية في هذه الحالة. ولذلك، لن أتطرق إليهم.

وصف بروتوكول التبادل

يتم تبادل البيانات بين لوحة المفاتيح ووحدة التحكم بشكل غير متزامن باستخدام بروتوكول تسلسلي. جوهر النقل غير المتزامن هو أن البيانات يتم نقلها فقط عندما يكون هناك شيء يمكن نقله - يتم الضغط على/تحرير مفتاح على لوحة المفاتيح ويجب إصدار رمز المسح المقابل أو تحتاج وحدة التحكم إلى إصدار أمر إلى لوحة المفاتيح.

هناك خطين لتبادل البيانات - KBData وKBSync. عند إرسال رموز المسح، تقوم لوحة المفاتيح بتعيين البت التالي من البيانات على خط KBData وتؤكد الإرسال عن طريق نقل الإشارة من "1" إلى "0" على خط KBSync. عند تلقي البيانات من وحدة التحكم، تقرأ لوحة المفاتيح بت البيانات من خط KBData وتؤكد الاستقبال عن طريق نقل الإشارة على خط KBSync من "1" إلى "0". يمكن لوحدة التحكم الإشارة إلى عدم استعدادها لإرسال/استقبال البيانات بمستوى منخفض على خط KBSync. وفي بقية الأوقات، عندما لا تكون هناك بيانات للإرسال، يكون لدى كلا الخطين مستوى إشارة مرتفع. يبلغ معدل تكرار النبض لخط KBSync حوالي 10-25 كيلو هرتز.

يتم إرسال البيانات بالترتيب التالي: بتة بداية واحدة - "0"، وثمانية بتات بيانات، وبتة تكافؤ (مجموع كل البتات +1)، وبتة توقف واحدة - "1". بعد تلقي كل بايت من البيانات، تقوم وحدة التحكم بتعيين خط KBSync على مستوى منخفض، مما يشير إلى أنها مشغولة بمعالجة البيانات المستلمة وليست جاهزة لاستقبال البيانات التالية. ويمكن اعتبار هذا تأكيدا للقبول. تؤكد لوحة المفاتيح كل بايت من الأمر المستلم عن طريق إصدار الكود 0FAh. في حالة حدوث خطأ أثناء الإرسال، قد تطلب وحدة التحكم تكرار إرسال البايت الأخير عن طريق إصدار الأمر 0FEh. تتصرف لوحة المفاتيح بشكل مختلف - فهي ببساطة تتجاهل الأخطاء. لا أرى أي شيء قاتل في هذا - إذا كان نظامك يتعطل بشكل متكرر، فلا مكان له على سطح المكتب.

على الأرجح، كانت تفسيراتي مربكة للغاية، لذلك سأحاول توضيحها باستخدام مخططات زمنية متعددة.

عرض عام لنقل البيانات من لوحة المفاتيح (S1 - بت البداية؛ S2 - بت التوقف؛ D0-D7 - البيانات؛ P - بت التكافؤ؛ W - معالجة البيانات المستلمة)

مثال على نقل البايت لمدة 74 ساعة - المفتاح "6" الموجود على لوحة الأرقام. في هذا المثال، عندما تبدأ عملية النقل بواسطة لوحة المفاتيح، تشير وحدة التحكم إلى أنها غير جاهزة لتلقي البيانات وتنتظر لوحة المفاتيح حتى يصبح خط KBSync مجانيًا

تنفيذ الأجهزة

الآن سأنتقل مباشرة إلى وصف تنفيذ الجهاز في الأجهزة.

يتم توصيل الجهاز بفاصل إشارات KBSync وKBData ويمرر الإشارات من/إلى لوحة المفاتيح من خلال نفسه، ويستقصي حالة الأزرار الأربعة ويصدر رموز المسح المقابلة، وبالتالي محاكاة تشغيل لوحة المفاتيح.

يعتمد الجهاز على متحكم دقيق أحادي الشريحة AT89C2051. ينتمي متحكم Atmel AT89C2051 إلى عائلة MCS-51 ( التناظرية المحلية- MK-51). والفرق الرئيسي بين AT89C2051 وi8051 هو انخفاض استهلاك الطاقة، وتقليل عدد خطوط الإدخال/الإخراج إلى 15، وعدم القدرة على استخدام الذاكرة الخارجية. أكثر معلومات مفصلةيمكن العثور على AT89C2051 وi8051 على www.atmel.com وwww.intel.com. بدلاً من AT89C2051، يمكنك استخدام AT89C51 أو i8051 (KR1816BE51) أو i8031 (KR1816BE31) مع ROM خارجي. لكن الخيارين الأخيرين، نظرًا لاستهلاكهما المتزايد للطاقة، يمكن أن يؤديا إلى انفجار فتيل وحدة تحكم لوحة المفاتيح.

في وحدات التحكم الدقيقة Atmel، بعد التعيين الرئيسي، تتم الإشارة إلى الحد الأقصى لتردد مولد الساعة بالميغاهيرتز. أنصحك بتثبيت متحكم مصمم لتردد 24 ميجا هرتز وكوارتز بتردد أعلى - 16-20 ميجا هرتز.

رسم تخطيطى. (R1-R4 - 47K؛ R5 - 10K؛ C1، C2 - 18pF؛ C3 - 1 فائق التوهج؛ D1 - AT89C2051؛ BQ1 - كوارتز 12-24 ميجا هرتز)

يتم استخدام السطر P1.4 كإخراج تمكين استقصاء الزر. يعد هذا أساسًا للتوسعات المستقبلية - سيتم استخدام الأسطر P1.4-P1.7 لإصدار عنوان الخط لاستقصاء الأزرار المضغوطة (ما يصل إلى 16 سطرًا يتكون كل منها من 4 أزرار). "0" على السطر P1.0-P1.3 يعني أنه تم الضغط على الزر المقابل.

يقوم العنصران C3 وR5 بتنفيذ دائرة تولد إشارة إعادة ضبط عند تطبيق الطاقة.

يتم توفير خطوط بيانات KBD من لوحة المفاتيح ووحدة التحكم إلى المدخلات P3.2 (INT0) وP3.3 (INT1). وبالتالي، فإن محاولة بدء نقل البيانات من لوحة المفاتيح أو وحدة التحكم تؤدي إلى حدوث مقاطعة مقابلة. إن الإجراءات الروتينية لخدمة هذه المقاطعات تبث ببساطة إشارات تتوافق مع نقل بايت واحد عبر وحدة التحكم الدقيقة. عندما لا يكون وحدة التحكم الدقيقة مشغولة بإرسال البيانات، يتم استقصاء الخطوط P1.0-P1.4، وتتم معالجة البيانات المستلمة وإصدار رموز المسح المقابلة إلى وحدة التحكم. يعطي هذا الإصدار الأولوية للبيانات المنقولة بواسطة الجهاز نفسه. ولذلك، يمكن في بعض الأحيان فقدان بيانات لوحة المفاتيح.

في ختام هذا القسم، سأقدم دبوسًا لموصلات لوحة المفاتيح AT وPS/2.

إشارة -KBReset هي إشارة اختيارية. قد تستخدم بعض وحدات التحكم هذا لإعادة ضبط لوحة المفاتيح.

نص البرامج الثابتة

أقدم النص المصدر للبرنامج الثابت لوحدة التحكم الدقيقة AT89C2051 على أمل أن يتمكن القارئ الفضولي من تصحيحي أو تكييف البرنامج للعمل مع نوع آخر من وحدات التحكم الدقيقة.

Org 0 sjmp start org 3 jmp from_keyboard ; INT0 org 13h jmp to_keyboard ; INT1 ابدأ الحركة a,#5 ; تحديد نوع المقاطعة mov tcon,a ; INT0 وINT1 في المقدمة - mov a,#0 ; الانتقال من "1" إلى "0" mov ip,a mov a,#85h mov ie,a mov a,#0ffh ; يتم تخزين آخر mov 6,a في العنوان 06h؛ الكود المعالج clr p1.4؛ تمكين حلقة الاستقصاء mov a,p1 ; تتم قراءة حالة الأزرار anl a,#15؛ - البتات الأربعة الأقل أهمية للمنفذ P1؛ د0 - أعلى؛ د1 - صحيح؛ D2 - أسفل؛ D3 - اليسار mov dptr,#hat_table ; قراءة البيانات حول أربعة أزرار movc a,@a+dptr ; ووسعت إلى ثمانية اتجاهات؛ د0 - أعلى؛ د1 - صحيح؛ D2 - أسفل؛ د3 - يسار؛ D4 - إلى اليمين؛ D5 - من اليمين إلى الأسفل؛ D6 - من اليسار إلى الأسفل؛ D7 - الحركة اليسرى لأعلى r2,a ; حفظ البيانات mov r0,a xrl a,6 ; إذا كانت البيانات الجديدة لا تختلف عن حلقة JZ؛ تم استلامه في الدورة السابقة - كرر الاستطلاع mov r1,#8 ; حلقة لثمانية بتات، حلقة 3 jnb acc.7، حلقة 2؛ "1" - كان هناك تغيير في دفع acc mov a,r1 mov dptr,#key_table-1 ; قم باستخراج رمز المسح المقابل movc a,@a+dptr Push acc mov a,r0 ; تسجيل R0 - علامة الضغط/التحرير rlc a ؛ تمت محاكاة المفتاح mov r0,a ؛ "1" - تم إصدار "المفتاح" pop acc mov acc.7,c ; إذا كان D7=1 - سيسبق رمز المسح 0f0h acall send_key ؛ إصدار رمز المسح الضوئي pop ac sjmp حلقة 2a حلقة 2 دفع ac mov a,r0 rlc a mov r0,a pop acc حلقة 2a rl a djnz 1,loop3 mov 6,r2 sjmp حلقة send_key mov ie,#80h ; تعطيل المقاطعات acall send2comp ; إرسال رمز المسح الضوئي mov ie,#85h ; تم تمكين المقاطعات ret send2comp jnb acc.7,send ؛ إذا لزم الأمر، 0f0h دفع acc mov a,#0f0h acall إرسال pop ac clr acc.7 mov b,#200 l9 nop djnz b,l9 إرسال Push 1 Push 0 clr p3.3 ; P3.3 - KBData mov b,#6 ; إصدار بت البداية l10 nop djnz b,l10 clr p3.5 mov b,#15 l2 nop djnz b,l2 setb p3.5 mov b,#6 l3 nop djnz b,l3 mov r0,#8 ; إخراج ثماني بتات بيانات وعد التكافؤ mov r1,#1 byte_loop xrl 1h,a rrc a mov p3.3,c mov b,#6 l6 nop djnz b,l6 clr p3.5 mov b,#15 l4 nop djnz b, l4 setb p3.5 mov b,#6 l5 nop djnz b,l5 djnz r0,byte_loop mov a,r1 mov c,acc.0 mov p3.3,c ; بت تكافؤ الإخراج mov b,#6 l8 nop djnz b,l8 clr p3.5 mov b,#15 l12 nop djnz b,l12 setb p3.5 mov b,#6 l13 nop djnz b,l13 setb p3.3 ; بت توقف الإخراج mov b,#6 l7 nop djnz b,l7 clr p3.5 mov b,#15 l11 nop djnz b,l11 setb p3.5 mov b,#200 l14 nop djnz b,l14 setb p3.5 pop 0 البوب ​​1 متقاعد from_keyboard ; نقل بايت واحد إلى وحدة التحكم mov ie,#80h Push psw Push acc Push b mov b,#2 in6 jnb p3. 4,in8 djnz b,in6 sjmp in7 in8 mov b,#10 in1 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in1 in2 mov a,p3 rl a orl a,#11010111b mov p3,a jb p3.4,in2 djnz b,in1 in3 mov a,p3 rl a orl a,#11010111b mov p3,a jnb p3.4,in3 mov p3,#0ffh in4 jb p3.5,in4 in5 jnb p3 .3,in7 clr p3.4 jnb p3.5,in5 in7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov ie,#85h reti to_keyboard ; نقل بايت واحد إلى لوحة المفاتيح mov ie,#80h Push psw Push ac Push b mov b,#5 out61 jb p3.5,out7 djnz b,out61 setb p3.4 setb p3.2 out62 jnb p3.5,out62 out6 mov c ,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out6 out8 mov b,#10 out1 mov c,p3.4 mov p3.5,c mov c , p3.3 mov p3.2,c jnb p3.4,out1 out2 mov c,p3.4 mov p3.5,c mov c,p3.3 mov p3.2,c jb p3.4,out2 djnz b, out1 out3 mov c,p3.4 mov p3.5,c mov c,p3.2 mov p3.3,c jnb p3.2,out3 out7 mov p3,#0ffh pop b pop acc pop psw mov tcon,#5 mov على سبيل المثال، #85h reti hat_table؛ جدول لتوسيع البيانات المقروءة من المنفذ P1؛ الفهرس الموجود في الجدول عبارة عن رمز ثنائي مكون من أربعة بتات؛ البيانات - حالة المفاتيح الثمانية التي تمت محاكاتها؛ "0" - تم الضغط على المفتاح db 0ffh؛ left+right+up+down=مجموعة محظورة db 0ffh ; left+right+down=مجموعة محظورة db 0ffh ; left+up+down=مجموعة محظورة db 0bfh ; left+down=left-down db 0ffh ; left+right+up=مجموعة محظورة db 0ffh ; يسار + يمين = مجموعة محظورة db 07fh ; left+up=left-up db 0f7h ; اليسار ديسيبل 0ffh ; right+up+down=مجموعة محظورة db 0dfh ; down+right=down-right db 0ffh ; up+down=مجموعة محظورة db 0fbh ; أسفل ديسيبل 0efh ; right+up=right-up db 0fdh ; الحق ديسيبل 0feh ; يصل ديسيبل 0ffh ; لم يتم الضغط على أي أزرار key_table ; جدول كود المسح الضوئي 75 ساعة؛ لوحة رقمية 8 ديسيبل 74 ساعة؛ لوحة رقمية 6 ديسيبل 72 ساعة؛ لوحة رقمية 2 ديسيبل 6bh؛ لوحة رقمية 4 ديسيبل 7dh ؛ لوحة رقمية 9 ديسيبل 7ah ؛ لوحة رقمية 3 ديسيبل 69 ساعة؛ لوحة رقمية 1 ديسيبل 6 قنوات؛ اللوحة الرقمية 7

ستجد في أرشيف Tools.zip برنامجين: a51.exe - مجمع، Hex2bin - محول الملفات السداسية، التي يتم الحصول عليها عند إخراج المجمع، إلى تنسيق ثنائي مناسب لتحديث ذاكرة القراءة فقط لوحدة التحكم الدقيقة باستخدام مبرمج .

التجميع واستكشاف الأخطاء وإصلاحها

يمكنك تجميع الجهاز وفقًا للمخطط أعلاه على اللوح أو اللوح المحفور في المنزل أو المصنع صناعيًا. يجب وضع مقبس تحت الميكروكونترولر. من الأفضل ترك مساحة على اللوحة لـ 2-3 حزم DIP ذات 16 سنًا - سيتم إضافتها في الإصدارات اللاحقة.

بعد ذلك، بعد إجراء التغييرات المطلوبة، يتم تجميع النص المصدر للبرنامج الصغير باستخدام برنامج a51.exe. لتحديث البرنامج الثابت باستخدام المبرمج، يتم تحويل الملف السداسي الناتج إلى صورة ثنائية بواسطة برنامج hex2bin.exe.

بعد تجميع الجهاز بالكامل، نقوم بتوصيله بلوحة المفاتيح والكمبيوتر. ثلاثة... اثنان... واحد... هيا بنا!.. الجهاز الذي تم تجميعه بشكل صحيح من مكونات جيدة معروفة يجب أن يعمل على الفور. إذا لم يكن الأمر كذلك، فتحقق من التثبيت الصحيح ووجود الطاقة على وحدة التحكم الدقيقة. باستخدام راسم الذبذبات، تحقق مما إذا كان مولد الساعة قد بدأ وما إذا كانت النبضة عالية المستوى تصل إلى مدخل RST عند تشغيل الطاقة. عند الضغط على المفاتيح الموجودة على لوحة المفاتيح، يجب أن تتكرر النبضات على الخطين P3.3 وP3.5، مع بعض التأخير، النبضات على الخطين P3.2 وP3.4، على التوالي. عندما تضغط/تحرر أزرار الجهاز، يجب أن تظهر النبضات أيضًا على الخطين P3.3 وP3.5. إذا لم يساعد هذا، اكتب لي ( راشبيلفي ميناءنقطة رو) تقرير الأخطاء، مع الإشارة إلى طراز ونوع (AT، PS/2) للوحة المفاتيح، واللوحة الأم/البطاقات المتعددة، ووحدة التحكم الدقيقة المستخدمة وتكرار الاستخدام مرنان الكوارتز. حاولت اختبار الجهاز بأقصى عدد متاح لي اللوحات الأمولوحات المفاتيح - تم تحديد أية مشاكل. في حالتي، تم استخدام الكوارتز 14.2 ميغاهيرتز.

الأخطاء المعروفة

يحتوي الإصدار الحالي من البرنامج الثابت على العيوب التالية:

  • لا يتم تعقب رموز المسح مزدوجة البايت. يؤدي هذا إلى حقيقة أنه في بعض الأحيان، عند استخدام الكوخ ولوحة المفاتيح في نفس الوقت، فإن مفاتيح لوحة المفاتيح "تتجمد" عند الضغط عليها أو يُنظر إليها بشكل غير صحيح؛
  • في بعض الأحيان يتم نقل البيانات بشكل غير صحيح من وحدة التحكم إلى لوحة المفاتيح. يمكن التعبير عن ذلك، على سبيل المثال، في حقيقة أن مصابيح LED لا تغير حالتها عند الضغط على مفاتيح Num Lock وCaps Lock وScroll Lock؛
  • قعقعة الاتصالات من أزرار الكوخ. حتى الآن لم يكن هذا قاتلاً بالنسبة لي في الألعاب.

خطط مستقبلية

فيما يلي قائمة قصيرة بما أود تنفيذه في الإصدارات المستقبلية:

  • إصلاحات طفيفة - معالجة أكثر دقة للإشارات؛ تتبع رموز المسح مزدوجة البايت؛
  • اتصال مصفوفة 16x4 - دعم ما يصل إلى 64 زرًا أو كوخين وما يصل إلى 56 زرًا؛
  • يدعم ما يصل إلى 16 تخطيطًا مختلفًا لرمز المسح المخزن في ذاكرة القراءة فقط (ROM) لوحدة التحكم الدقيقة؛
  • توصيل شريحة NVRAM مع إمكانية حفظ وإعادة برمجة ما يصل إلى 32 تخطيطًا لرمز المسح الضوئي "أثناء التنقل".

خاتمة

حاولت تقديم جميع البيانات اللازمة لفهم مبدأ تشغيل جهازي. لا يدعي هذا الوصف أنه دقيق تقنيًا بنسبة 100%. إذا كنت مخطئًا بشأن شيء ما، من فضلك أخبرني بنسختك للأحداث. إذا كان بإمكانك إجراء تحسينات وإضافات على دائرتي و/أو البرامج الثابتة، وإذا كانت لديك أفكار لمزيد من التطوير للدائرة، فيرجى إبلاغي بذلك أيضًا. بالإضافة إلى ذلك، أنا في انتظار معلومات من الحرفيين الذين تمكنوا من تكرار هذا الجهاز أو تكييفه مع أنواع أخرى من وحدات التحكم الدقيقة.

فلاديمير "راسب" كليموس (راشبيلفي المملكة المتحدةنقطة شبكة)

  1. يوجد في الجزء العلوي من نافذة Google Play دالة البحث. وهذا هو بالضبط ما سوف نستخدمه. نقوم بتنشيط وكتابة اسم تطبيقنا. ليس من الضروري إدخاله على طول الطريق. بمجرد ظهور الكائن المشار إليه في لقطة الشاشة في نتائج البحث، ما عليك سوى النقر عليه.
  1. سيتم إعادة توجيهنا إلى الصفحة الرئيسية للبرنامج. يوجد زر أخضر كبير مكتوب عليه "تثبيت". انقر فوقه.
  1. نحن في انتظار انتهاء تنزيل التطبيق. نظرًا لأن وزنه يقل قليلاً عن 5 ميغابايت، فلن تستغرق العملية الكثير من الوقت.
  1. مستعد. بعد اكتمال التثبيت التلقائي يمكننا تشغيل البرنامج مباشرة من هنا.
  1. أيضا على الشاشة الرئيسية(إذا تم تنشيطه في الإعدادات) سيظهر اختصار التشغيل.

في هذه المرحلة، يكون تثبيت البرنامج قد اكتمل، ويمكننا الانتقال إلى نظرة عامة حول العمل معه.

في لقطة الشاشة أدناه ترى واجهة البرنامج. هنا يتم تقسيمها إلى 3 علامات تبويب رئيسية. يوجد أيضًا رمز إعدادات مصنوع على شكل ترس. يوجد في علامة التبويب "SCAN" الرئيسية 4 أدوات رئيسية:

  • مسح الرمز الشريطى. هذا ماسح ضوئي QR يعمل من خلال الكاميرا؛
  • الدخول اليدوي. وظيفة إدخال بيانات الكود يدويًا؛
  • فك التشفير من الملف. فك التشفير من ملف. من هنا يمكنك فتح رمز QR الذي تم تنزيله مسبقًا وقراءته؛
  • فك التشفير من URL. المسح عن طريق الرابط.

يوجد في الأسفل العديد من الأزرار التي لا توفر وظائف مفيدة. لا يجب أن تنتبه لهم.

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

على سبيل المثال، في الشاشة الأولى يمكنك تمكين أو تعطيل صوت البرنامج. ويمكن فعل الشيء نفسه مع استجابة الاهتزاز. يمكنك ضبط وضع التشغيل عندما يبدأ تشغيل البرنامج فورًا من الماسح الضوئي، متجاوزًا القائمة الرئيسية. ميزة أخرى مهمة هي النسخ التلقائي للبيانات إلى الحافظة.

بمجرد أن نرغب في بدء المسح وتشغيل الماسح الضوئي نفسه، سيطلب البرنامج الوصول إلى موارد النظام الضرورية. وبطبيعة الحال، لا بد من حلها. انقر فوق الزر المحدد في لقطة الشاشة.

بعد ذلك، نقوم بوضع إطار الماسح الضوئي بحيث يقع الشريط الأفقي مباشرة على QR. حاول ألا تصافح يديك وفي نفس الوقت راقب تركيزك. بدون الحدة العادية، لن ينجح المسح.

لتمكين QR BARCODE SCANNER من العمل في ظروف الإضاءة المنخفضة، توجد إضاءة خلفية.

بمجرد التعرف على الرمز، سترى المعلومات الموضحة في لقطة الشاشة أدناه.

بالإضافة إلى مسح QRs ضوئيًا، يمكنك أيضًا إنشاؤها هنا. للقيام بذلك، انتقل إلى علامة التبويب الثالثة. لقد وضعنا علامة عليه في لقطة الشاشة. تعرض القائمة جميع أنواع البيانات التي يمكن تشفيرها. يتم دعم ما يلي:

  • دليل الهاتف الاتصال؛
  • رقم التليفون؛
  • عنوان URL؛
  • بريد إلكتروني؛
  • طلب؛
  • موقع؛
  • أي نص؛
  • إشارة مرجعية؛
  • حدث التقويم.

كل شيء يبدو مثل هذا:

بمجرد تحديد نوع البيانات وتحديده، كل ما علينا فعله هو النقر فوق الزر "تشفير". في هذه الحالة، قمنا بتشفير الرابط.

دعونا نحاول تشفير النص التعسفي أيضًا. للقيام بذلك، حدد العنصر المطلوب.

أدخل العبارة في الحقل المخصص ثم اضغط على زر "تشفير".

النتيجة تبدو رائعة. دعونا أيضا تغيير لونه. انقر فوق الزر المخصص لذلك.

حدد الظل المطلوب من اللوحة.

ونحن معجبون بـ QR المستلم.

دعنا ننتقل إلى البرنامج التالي، والذي يحتوي أيضًا على وظائف رائعة.

QR الروبوت رمز الماسح الضوئي

تطبيق آخر يمكن العثور عليه على Google Play. كما يمكنك تحميله من رابط مباشر على موقع جوجل. في الوقت الحالي، سوف ننظر إلى البرنامج نفسه.

هذا هو ما يبدو عليه اختصار تشغيل QR Droid Code Scanner - انقر عليه.

هذا التطبيق، على عكس التطبيق السابق، مصنوع باللغة الروسية، وبمجرد أن يبدأ، سنحتاج إلى النقر على الزر الذي يقول: "ابدأ".

الماسح الضوئي مرئي على الفور، ولكن أولا دعونا نلقي نظرة على إعداداته. اضغط على الزر الموجود في الزاوية اليمنى العليا.

في القائمة الرئيسية، تظهر 6 مربعات أزرار تعيد توجيه المستخدم إلى القسم المطلوب. ها هم:

لذلك، من أجل استخدام الماسح الضوئي، تحتاج إلى تنشيطه في القائمة الرئيسية، وبالإشارة إلى رمز الاستجابة السريعة، اضغط على زر "قراءة".

هنا قمت بتحديد شاشة البداية، قم بتعيين عنوان نسخة احتياطيةويتم تكوين لغة واجهة البرنامج.

بعد ذلك يمكننا تثبيت آلية المسح. يتم استخدام إحدى الخوارزميات الخاصة: Zapper أو ZXing. يمكنك أدناه تمكين أو تعطيل علامة التقاطع وتكوينها العمل التلقائيبعد المسح الضوئي وتمكين عرض تلميحات الأدوات أو نسخ الرابط إلى الحافظة.

تكوين هذا القسم مرافقة الصوت، يتم تشغيل وإيقاف الاهتزاز. عملية تسجيل الإجراءات في السجل والتفاعل معها ساعة ذكيةأندرويد وير.

ثم سنكون قادرين على التصدير أو الاستيراد نسخة إحتياطيةأو تحديد موعد.

السماح بإرسال بيانات مجهولة المصدر (من الأفضل تعطيلها)، أو تمكين التحقق من رابط الأمان الذي تم استلامه أثناء المسح، أو تكوين المسح الدفعي. تتوفر أدناه ميزات مثل التكبير/التصغير أو التمييز.

لكن إعداداتنا لا تنتهي عند هذا الحد. بالإضافة إلى الوظائف المذكورة أعلاه، لدينا ما يلي:

  • ضبط اتجاه الشاشة؛
  • العمل مع الكاميرا الأمامية.
  • تحليل الارتباط؛
  • عرض المتاجر.
  • وظيفة الانزلاق الموسعة؛
  • حظر بعض الأحرف الخاصة؛
  • تفعيل معاينة الويب.
  • البحث عن الصور المحفوظة.

تحتوي شاشة الإعدادات الأخيرة على ميزات مثيرة للاهتمام مثل تحديد الحد الأقصى لعدد المواضع، وتكوين ملفات CSV المخصصة، وهز الساعة الذكية، وحفظ المواضع المكررة.

بالإضافة إلى الإعدادات، يوجد في قائمة QR Droid Code Scanner عنصر يسمى "المزيد". دعونا نفكر في وظيفتها.

إليك الاحتمالات التالية:

دعونا نلقي نظرة على التطبيق الأخير، ولكن ليس أقل وظيفية، في قائمتنا.

NeoReader QR وماسح الباركود

هذا البرنامج، مثل غيره، يمكنك تنزيله وتثبيته عبر تطبيقات جوجلأو عبر الرابط المباشر . عندما يتم ذلك، يمكنك البدء مباشرة في العمل معه.

في المرة الأولى التي نطلق فيها الخدمة، سنحتاج إلى تلبية طلب الوصول. انقر فوق "السماح".

ثم ستظهر نافذة الإعدادات. هنا يمكنك اختيار اللغة وتحديد بلدك وجنسك وعمرك. يتيح لك مربعا الاختيار أدناه تمكين أو تعطيل وصول البرنامج إلى البيانات الجغرافية.

يمكنك بالفعل بدء المسح. قم بتوجيه الكاميرا نحو رمز الاستجابة السريعة وسوف يتعرف NeoReader QR & Barcode Scanner على محتواه تلقائيًا.

نعتقد أن هذه البرامج الثلاثة كافية تمامًا لأي شخص. اختر الخيار الأكثر ملاءمة لك واستخدمه وفقًا لتقديرك. سنتحدث عن بعض مميزات الأجهزة الصينية.

الوظيفة القياسية

تحتوي بعض الهواتف الذكية والأجهزة اللوحية (حسب العلامة التجارية) على وظيفة مسح رمز الاستجابة السريعة بشكل قياسي، ويمكن القيام بكل شيء بدون تطبيق. لن نقوم بإدراجهم جميعًا، بل سنتطرق فقط إلى الطراز من Xiaomi.

دعونا نلخص ذلك

ونتيجة لذلك، تعلمنا كيفية مسح رمز الاستجابة السريعة ضوئيًا على نظام Android طرق مختلفة. نأمل أن تكون المقالة مفيدة لك. إذا كان لا يزال لديك أسئلة، اطرحها في التعليقات. سنحاول مساعدة الجميع.

حتى لو لم يحدث ذلك، سيخبرك أحد مستخدمي الموقع بالتأكيد بكيفية الخروج من الموقف وسيقدم لك نصائح عملية. كل ما عليك فعله هو إعادته إلى الحياة.

تعليمات الفيديو




قمة