الوصف(Description):-
الوحدة (الموديول) USART لها نظامان للعمل :
النظام المتزامن synchronous: يحتاج
لنبضات ساعة للتزامن بين المرسل والمستقبل . (اي خط لنبضا ت ا لساعه وخط للبيانات)
النظام الغير متزامن asynchronous : لا يحتاج
لنبضات ساعة للتزامن بين المرسل والمستقبل . وهذا النظام هو الأكثر شيوعا لذلك سوف
يتم التركيز عليه ونقوم بإنشاء ربط للبيانات التسلسلية بين الميكروكونترولر PIC وبين
الكومبيوتر الشخصى(البيانات والتزامن سوف يكون علي خط واحد)
المعلومات النظرية المطلوبة ( Required Theory)
تستخدم الاتصالات التسلسلية فى النظم المبنية على أساس
الميكروكونترولر ويرجع ذلك في معظمه إلى ندرة أطراف المداخل / المخارج المتاحة .
وبالاضافة الى إمكانية الاتصالات لمسافات طويلة فإن نقل البيانات تسلسليا هو
الأكثر بساطة وفعالة من حيث التكلفة لأن توصيلات الأجهزة المطلوبة لربط البيانات
يمكن أن تخفض إلى ثلاثة , هى وصلة الإرسال Tx ووصلة الاستقبال Rx والأرضى
المشترك Gnd
.
هناك نوعان مختلفان من الاتصالات التسلسلية : النوع
المتزامن والنوع الغير المتزامن. ويتمثل التحدي الرئيسي في وجود صلة (ربط) للبيانات التسلسلية هو الحفاظ على التزامن بين
المرسل والمستقبل .
يستخدم الأسلوب الغير متزامن بروتوكول ذو خانة بدء start bit
وخانة إيقاف stop bit للتزامن بين طرفى (نهايتى)
الوصلة .
يتم إرسال كل بايت لحرف character byte في إطار يتألف من خانة بدء start bit يليها خانات الحرف character bits يليها (اختياريا) خانة التماثل (التطابق) parity bit ويتم
الانتهاء بخانة توقف واحدة أو أكثر stop bits.
لابد من تهيئة (إعداد) كل من المرسل والمستقبل بنفس معدل
البيانات وبنفس عدد خانات البيانات وبنفس عدد خانات التوقف.
في حالة الخمول(السكون ) idle condition
يكون خرج الارسال فى الحالة المنطقية المرتفعة .عندما يكون المرسل على استعداد
لإرسال بايت الحرف فإنه يشير (يعطى إشارة) إلى المستقبل عن طريق سحب خط الارسال
للحالة المنخفضة لفترة زمنية واحدة لنبضات الساعة . هذا هو بت (خانة) البدء start bit وهو
يخبر المستقبل بأن القادم هو إطار بايت البيانات . يقوم المستقبل بقراءة عدد خانات
الحرف المتوقع حسب البروتوكول المعتمد (والذى تم التهيئة له من قبل) حتى يتم سحب
الخط إلى المنطق المرتفع بواسطة المرسل (يمثل بت توقف واحد أو أكثر) ويكون هذا هو
نهاية الإطار. يتم تكرار العملية برمتها في كل مرة يكون المرسل جاهزا لإرسال بايت
لحرف.
ويسمى هذا النوع من الارسال التسلسلى بالغير متوامن لأن
المستقبل يقوم بعمل إعادة تزامن لنفسه مع المرسل في كل مرة يتم إرسال البيانات
باستخدام بت البداية start bit.
ومع ذلك، فإنه داخل كل إطار يكون الطرفين متزامنين .
من ناحية أخرى، فإنه فى الاتصال التسلسلى المتزامن يتم
إرسال الحروف فى مجموعات أو كتل blocks مع عدم وجود
خانات إطار تحيط بها . تتم مزامنة الارسال والاستقبال بخط منفصل لنبضات الساعة أو
في بعض الحالات يتم تضمين إشارة نبضات الساعة مع الحروف المرسلة .
في كلا النوعين من الاتصالات التسلسلية،يعرف معدل
البيانات المرسلة والمستقبلة بمعدل البود baud rate ( عدد النبضات فى الثانية ).
على سبيل المثال
موديول USART
الموجود داخل الميكروكونترولر PIC16F88
يعتمد كلا النوعين من الاتصالات التسلسلية ولكنه أكثر ملائمة للطريقة الغير متزامن
asynchronous .
فى النظام الغير متزامن يعمل الطرف RB5 كمخرج إرسال
TX ويعمل الطرف
RB2 كمدخل
استقبال RX
.
ترسل بايت البيانات كسلسلة نصية مكونة من 10 خانات : خانة البدء start bi
و 8 خانات
بيانات
eight data bits وخانة إيقاف stop bit كمل فى الشكل التالى :
المنفذ التسلسلى بالكومبيوتر الشخصى (والمعروف باسم COM port)
يستخدم النظام القياسى RS232-C للاتصال
التسلسلى . والذى يحدد خواص الكهربائية والميكانيكية والإشارات والخطوات المتبعة
للربط عن طريق الاتصال التسلسلى .
المنطق المرتفع فى RS232-C هو إشارة بجهد فى المدى -3 V to -15V ( عمليا -12V) والمنطق
المنخفض يكون فى المدى +3
V to +15 V (عمليا +12V) . أى أنه لا يماثل المستويات
المنطقية للميكروكونترولر PIC
لأنه فى RS232-C الحالة المرتفعة سالبة والحالة
المنطقية المنخفضة موجبة .
هنا سوف نتناول فقط أقل توصيلات ممكنة بين الميكروكونترولر والكومبيوتر
الشخصى باستخدام خطوط الإشارات TX,
RX, GND فقط .
سوف نستخدم النظام الغير متزامن لعمل اتصال مع المنفذ
التسلسلى بالكومبيوتر الشخصى عن طريق RS232-C .
نظرا لأن الميكروكونترولر PIC16F88A يمتلك
بالفعل ضمكن بنائه الداخلى الموديول USART والذى يعتمد النظام الغير
متزامن للاتصال التسلسلى لذلك كل ما هو مطلوب وحدة خارجية لإزاحة المستوى لترجمة
الإشارات ذات المستوى TTL
إلى مستويات النظام RS232-C
والعكس بالعكس .
يمكن تحقيق ذلك
باستخدام الشريحة MAX232
المصنعة بمعرفة شركة Maxim
.تحتاج الشريحة إلى قليل من المكثفات الخارجية لاستخدامها فى عملية مضخات الشحن
الداخلية لكى تولد الجهود +12V
و -12V
المطلوبة للاتصال عن طريق RS232-C
.
في هذه التجربه سوف نستعرض كيفيه التعامل
مع الموديول
USARTبطرقتين
الطريقه الاولي:- طريقه
التوصيل الوهمي مع البروتوس وبرنامج
HyperTerminal
الطريقه الثانيه :- طريقه
التوصيل الفعلي وربط الميكرو بالسي شارب
الطريقة البسيطة لارسال واستقبال بيانتات من خلال المنفذ
التسلسلى للكومبيوتر الشخصى باستخدام برنامج
HyperTerminal
الموجود ضمن نظام الوندوز عن طريق :
Start → Menu → Programs
→ Accessories → Communications→Hyperterminal
حيث يمكنك إنشاء اتصال مع المنفذ التسلسلى (COM1 على سبيل
المثال) واختيار معدل البود baud rate
وعدد الخانات number of bits
وتحديد نوع التطابق parity
..ألخ .
عند إتمام الاتصال فأن أى حرف سوف تكتبه سوف يرسل
(ككود أسكى) من خلال المنفذ التسلسلى . الحروف المستقبلة سوف يتم عرضها على الشاشة
أيضا
تدريب : إرسال نص
توصيل COM مع الوحدة الطرفية التخيلية
1- توصيل COMPIM بالوحدهالطرفية بالبروتوس
توصيل العنصرالموجود بكتبه العناصر للبروتوس COMPIM (COM port Physical Interface) ونختار الوحدة الطرفية لنظام المحاكاة ولإرفاق الوحدة الطرفية لنظام المحاكاة المستهدف
:
اختار أيقونة المقاييس المتعددة Multimeter ومنها إلتقط (إجلب) الوحدة الطرفية التخيليةVIRTUAL TERMINAL وضعها فى المخطط
. وصل
بأسلاك (بخطوط) كل من الأطراف RX و TX إلى كل من خطوط الإرسال والاستقبال للنظام المختبر
. RX هو الدخل و TX هو
الخرج . إذا كان النظام يستخدم المصافحة بالاجهزة hardware handshaking وصل الأطراف RTS و CTS بالخطوط الملائمة . RTSRequest to Send " "
هو الخرج ويشير
(يعطى إشارة) على أن الوحدة الطرفية جاهزة لاستقبال البيانات , بينما CTS " Clear to Send " هو
الدخل والذى يجب أن يكون
مرتفعا ( أو غيرموصل ويسمى عائم floating ) قبل أن تقوم الوحدة الطرفية بالارسال
. (كما بالشكل السابق)
إبدأ
المحاكاة بالطريقة المعتادة . تعرض الوحدة الطرفية البيانات القادمة بمجرد ما
تستقبلها , لإرسال حرف إلى النظام تأكد وجود الوحدة الطرفية وانها فعالة عندئذ
اكتب النص المطلوب بلوح مفاتيح الكومبيوتر الشخصى
.بمجرد بدء المحاكاة تتاح وظائف إظافية عن طريق قوائم
منبثقة والتى يمكن عرضها بالنقر بالزر الأيمن على النافذة المنبثقة . هذه القائمة تمكن من إيقاف العرض مؤقتا pause ونسخ
ولصق النص إلى ومن الحافظة clipboard .
2- تشغيل برنامج HyperTerminal
نشغيل برنامج HyperTerminal وتسمية للتوصيل وليكن TEST
الموجود ضمن نظام الوندوز عن طريق :
tart → Menu → Programs → Accessories →
Communications→Hyperterminal
وعمل الاعدادت الموجوده بالصور التاليه
لتحديد باقى الخواص من
القائمة File اختار الخواص Properties
تظهر
لك قائمة الخواص أنقر على مفتاحٍsettingثم انقر علي مفتاحASCII Setupوضع علامه عليEcho typedكما بالشكل
3-عمل منفذ وهمي
عمل منفذ وهمي يمكن تنفيذ ذلك برمجيا عن طريق البرنامج
المعروف باسمVirtual
Serial Ports Driver درايفر المنافذ المتسلسلة
التخيلية ) . بعد تنصيب البرنامج وتشغيله نقوم بإنشاء منفذين متسلسلين تخيليين
يمكن عن طريقهما تحقيق الاتصال المطلوب كما فى الشكل حيث يتم إضافة زوج Add pair من المنافذ التخيلية
ولتكن COM3 و COM4 .
أحد المنفذين يمثل الكومبيوتر وليكنcom3ويتم تحديد ذلك فى برنامجHyperTerminal كما يلى :
المنفذ الآخرCom4 ويمثل برنامج المحاكاةCOMPIMويتم ذلك بالضغط علي هذا العنصر كليك يمين واختيارEdit Properties كما بالصوره
ويتم ضبط منفذ COM ومعدل البود الطبيعى لعمل موائمة بين الجهاز المرتبط بالكومبيوتر . الضبط
الافتراضى للمنفذ COM1 هو 2400 baudولكننا سوف نغيرهم الي Com4 و 9600
فى التطبيقات الحقيقية سوف يتم استبدال VTERM بالوحدة
المركزية CPU أو بجهاز UART بحيث يكون النظام المحاكى يتفاعل مع الاجهزة hardware للعالم الحقيقى.
شغل برنامج المحاكاة وتأكد من تمام الاتصال بكتابة
نص على نافذة برنامج HyperTerminal فتظهر لك النتيجة على الوحدة الطرفية
سوف نستخدم المترجمMikroC
Pro for PICهذا المترجم يمدنا
بمكتبة باسمUARTوالتى
تعتمد نظام الاتصال التسلسلى الغير متزامن فى النظام المزدوج الكاملfull duplex الارسال والاستقبال
فى نفس الوقت وهذا يؤدى إلى سهولة البرمجة بشكل كبير .
على سبيل المثال إذا رغبت فى تهيئة
الموديول UARTالموجود بالميكروكونترولرPIC16F88للبدء بمعدل نبضات قدره 9600 نبضة فى الثانية فقط
كل ما تحتاجه هو كتابة الدالةUART1_Init(9600)البرنامج التالى يقوم بإنشاء اتصال تسلسلى بالنظام
الغير متزامن بين الميكروكونترولر PIC16F88A والكومبيوتر الشخصى . يقوم
الميكروكونترولر بارسال الرسالةType in a Numberأكتب عدد" والتى تعرض فى نافذة برنامجالبروتوس
من خلال التطبيقVIRTUAL TERMINALالموجود بهذا البرنامج كما بالشكل
البرنامج (Software)
void newline(){
UART1_Write(13);
UART1_Write(10);
}
void main() {
unsigned char MyError, Temp;
CMCON = 7;
TRISB = 0b00000100;
UART1_Init(9600);
Delay_ms(100);
UART1_Write_Text("Testing
UART! ");
newline();
do {
UART1_Write_Text("Type
in a Number: ");
while(!UART1_Data_Ready());
Temp = UART1_Read();
newline();
UART1_Write_Text("You entered: ");
UART1_Write(Temp);
newline();
} while(1);
}
عند إتمام الاتصال فأن أى حرف سوف تكتبه سوف يرسل
(ككود أسكى) من خلال المنفذ التسلسلى . الحروف المستقبلة سوف يتم عرضها على الشاشة
أيضا
تدريب : إرسال نص
توصيل COM مع الوحدة الطرفية التخيلية |
1- توصيل COMPIM بالوحدهالطرفية بالبروتوس
توصيل العنصرالموجود بكتبه العناصر للبروتوس COMPIM (COM port Physical Interface) ونختار الوحدة الطرفية لنظام المحاكاة ولإرفاق الوحدة الطرفية لنظام المحاكاة المستهدف
:
اختار أيقونة المقاييس المتعددة Multimeter ومنها إلتقط (إجلب) الوحدة الطرفية التخيليةVIRTUAL TERMINAL وضعها فى المخطط
. وصل
بأسلاك (بخطوط) كل من الأطراف RX و TX إلى كل من خطوط الإرسال والاستقبال للنظام المختبر
. RX هو الدخل و TX هو
الخرج . إذا كان النظام يستخدم المصافحة بالاجهزة hardware handshaking وصل الأطراف RTS و CTS بالخطوط الملائمة . RTSRequest to Send " "
هو الخرج ويشير
(يعطى إشارة) على أن الوحدة الطرفية جاهزة لاستقبال البيانات , بينما CTS " Clear to Send " هو
الدخل والذى يجب أن يكون
مرتفعا ( أو غيرموصل ويسمى عائم floating ) قبل أن تقوم الوحدة الطرفية بالارسال
. (كما بالشكل السابق)
إبدأ
المحاكاة بالطريقة المعتادة . تعرض الوحدة الطرفية البيانات القادمة بمجرد ما
تستقبلها , لإرسال حرف إلى النظام تأكد وجود الوحدة الطرفية وانها فعالة عندئذ
اكتب النص المطلوب بلوح مفاتيح الكومبيوتر الشخصى
.بمجرد بدء المحاكاة تتاح وظائف إظافية عن طريق قوائم
منبثقة والتى يمكن عرضها بالنقر بالزر الأيمن على النافذة المنبثقة . هذه القائمة تمكن من إيقاف العرض مؤقتا pause ونسخ
ولصق النص إلى ومن الحافظة clipboard .
2- تشغيل برنامج HyperTerminal
نشغيل برنامج HyperTerminal وتسمية للتوصيل وليكن TEST
الموجود ضمن نظام الوندوز عن طريق :
tart → Menu → Programs → Accessories →
Communications→Hyperterminal
وعمل الاعدادت الموجوده بالصور التاليه
لتحديد باقى الخواص من
القائمة File اختار الخواص Properties
تظهر
لك قائمة الخواص أنقر على مفتاحٍsettingثم انقر علي مفتاحASCII Setupوضع علامه عليEcho typedكما بالشكل
3-عمل منفذ وهمي
عمل منفذ وهمي يمكن تنفيذ ذلك برمجيا عن طريق البرنامج
المعروف باسمVirtual
Serial Ports Driver درايفر المنافذ المتسلسلة
التخيلية ) . بعد تنصيب البرنامج وتشغيله نقوم بإنشاء منفذين متسلسلين تخيليين
يمكن عن طريقهما تحقيق الاتصال المطلوب كما فى الشكل حيث يتم إضافة زوج Add pair من المنافذ التخيلية
ولتكن COM3 و COM4 .
أحد المنفذين يمثل الكومبيوتر وليكنcom3ويتم تحديد ذلك فى برنامجHyperTerminal كما يلى :
المنفذ الآخرCom4 ويمثل برنامج المحاكاةCOMPIMويتم ذلك بالضغط علي هذا العنصر كليك يمين واختيارEdit Properties كما بالصوره
ويتم ضبط منفذ COM ومعدل البود الطبيعى لعمل موائمة بين الجهاز المرتبط بالكومبيوتر . الضبط
الافتراضى للمنفذ COM1 هو 2400 baudولكننا سوف نغيرهم الي Com4 و 9600
فى التطبيقات الحقيقية سوف يتم استبدال VTERM بالوحدة
المركزية CPU أو بجهاز UART بحيث يكون النظام المحاكى يتفاعل مع الاجهزة hardware للعالم الحقيقى.
شغل برنامج المحاكاة وتأكد من تمام الاتصال بكتابة
نص على نافذة برنامج HyperTerminal فتظهر لك النتيجة على الوحدة الطرفية
سوف نستخدم المترجمMikroC
Pro for PICهذا المترجم يمدنا
بمكتبة باسمUARTوالتى
تعتمد نظام الاتصال التسلسلى الغير متزامن فى النظام المزدوج الكاملfull duplex الارسال والاستقبال
فى نفس الوقت وهذا يؤدى إلى سهولة البرمجة بشكل كبير .
على سبيل المثال إذا رغبت فى تهيئة الموديول UARTالموجود بالميكروكونترولرPIC16F88للبدء بمعدل نبضات قدره 9600 نبضة فى الثانية فقط كل ما تحتاجه هو كتابة الدالةUART1_Init(9600)البرنامج التالى يقوم بإنشاء اتصال تسلسلى بالنظام الغير متزامن بين الميكروكونترولر PIC16F88A والكومبيوتر الشخصى . يقوم الميكروكونترولر بارسال الرسالةType in a Numberأكتب عدد" والتى تعرض فى نافذة برنامجالبروتوس من خلال التطبيقVIRTUAL TERMINALالموجود بهذا البرنامج كما بالشكل
على سبيل المثال إذا رغبت فى تهيئة الموديول UARTالموجود بالميكروكونترولرPIC16F88للبدء بمعدل نبضات قدره 9600 نبضة فى الثانية فقط كل ما تحتاجه هو كتابة الدالةUART1_Init(9600)البرنامج التالى يقوم بإنشاء اتصال تسلسلى بالنظام الغير متزامن بين الميكروكونترولر PIC16F88A والكومبيوتر الشخصى . يقوم الميكروكونترولر بارسال الرسالةType in a Numberأكتب عدد" والتى تعرض فى نافذة برنامجالبروتوس من خلال التطبيقVIRTUAL TERMINALالموجود بهذا البرنامج كما بالشكل
البرنامج (Software)
void newline(){
UART1_Write(13);
UART1_Write(10);
}
void main() {
unsigned char MyError, Temp;
CMCON = 7;
TRISB = 0b00000100;
UART1_Init(9600);
Delay_ms(100);
UART1_Write_Text("Testing
UART! ");
newline();
do {
UART1_Write_Text("Type
in a Number: ");
while(!UART1_Data_Ready());
Temp = UART1_Read();
newline();
UART1_Write_Text("You entered: ");
UART1_Write(Temp);
newline();
} while(1);
}
|
شرح البرنامج
النتائج
هذه الطريقه
تحتاج الي عنصرين اساسيين وهما
1- هارد وير (MAX232)
2- سوفت وير وسوف نستخدم هنا سي شارب وكيفيه ربطه
بالدائره
مخطط الدائره
يتم توصيل الدائره كما يلي مع الحرص عند
توصيل الدائره عمليا يكون علي النحو التالي واهم شئ في التوصيل هي الاعتناء جيدا
بطرفي TX و RXوتوصيلهم كما بالشكل مع اطراف
الميكر المكتوب عليها TX و RX كما بالشكل التالي
اولا السي شاربC#
لكي نفهم كيفيه عمل البرنامج السي شارب انظر الي الفيديو
الخاص بذلك داخل المشروع
شرح اكواد
السي شارب
استدعاء مكتبه تعريف البورتات الخاصه بالسي شارب
امر تعريف رقم البورت المستخدم والسرعه الارسال ويجب ملاحظه شئ مهم وهو
عندما نجرب هذا المشروع علي البروتوس نجعل ال com3 في هذا الامر اما داخل
البروتوس يتم ضبط ال com 4 كما في بالشكل
مع ضبط برنامج البورت الوهمي كما بالصوره لكي يعمل البرنامج مع البروتوس
اما في حاله التوصيل العملي فيتم اعداد الامر السابق علي
com1توصيل
الدائره كما سبق
هذه الاوامر الخاصه بالازرار الارقام الامر الاول خاص بفتح البورت الامر
الثاني خاص ارسال اسم الزر ارساله
علي البورت اما الامر الثالث فهو خاص بغلق
البورت
هذه الاوامر خاصه
بزرsendالخاص بارسال ما يكتب في
صندوق الرساله علي البورت فالامر الاول خاص بفتح البورت الامر الثاني خاص ارسال ما
يكتب في صندوق الرساله و ارساله علي
البورت اما الامر الثالث فهو خاص بغلق البورت
هذه الطريقه
تحتاج الي عنصرين اساسيين وهما
1- هارد وير (MAX232)
2- سوفت وير وسوف نستخدم هنا سي شارب وكيفيه ربطه
بالدائره
مخطط الدائره
يتم توصيل الدائره كما يلي مع الحرص عند
توصيل الدائره عمليا يكون علي النحو التالي واهم شئ في التوصيل هي الاعتناء جيدا
بطرفي TX و RXوتوصيلهم كما بالشكل مع اطراف
الميكر المكتوب عليها TX و RX كما بالشكل التالي
اولا السي شاربC#
لكي نفهم كيفيه عمل البرنامج السي شارب انظر الي الفيديو
الخاص بذلك داخل المشروع
شرح اكواد
السي شارب
استدعاء مكتبه تعريف البورتات الخاصه بالسي شارب
امر تعريف رقم البورت المستخدم والسرعه الارسال ويجب ملاحظه شئ مهم وهو
عندما نجرب هذا المشروع علي البروتوس نجعل ال com3 في هذا الامر اما داخل
البروتوس يتم ضبط ال com 4 كما في بالشكل
مع ضبط برنامج البورت الوهمي كما بالصوره لكي يعمل البرنامج مع البروتوس
اما في حاله التوصيل العملي فيتم اعداد الامر السابق علي
com1توصيل
الدائره كما سبق
هذه الاوامر خاصه
بزرsendالخاص بارسال ما يكتب في
صندوق الرساله علي البورت فالامر الاول خاص بفتح البورت الامر الثاني خاص ارسال ما
يكتب في صندوق الرساله و ارساله علي
البورت اما الامر الثالث فهو خاص بغلق البورت
ثانيا : برنامج الميكروسي
char datawrite ;
void main() {
TRISB = 0b00000100;
TRISA = 0X00 ; //
ANSEL = 0b00000000;
PORTb=0XFF ;
PORTA=0XFF ;
Delay_ms(1000);
UART1_Init(9600);
Delay_ms(100);
while(1){
if (UART1_Data_Ready())
{
datawrite = UART1_Read();
switch (datawrite)
{
case '0':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=1;break;
case '1':
PORTb.f0=1;PORTb.f1=0;PORTb.f3=0;PORTb.f4=1;PORTa.f0=1;PORTb.f7=1;PORTa.f1=1;break;
case '2':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=1;PORTb.f4=0;PORTa.f0=0;PORTb.f7=1;PORTa.f1=0;break;
case '3':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=0;PORTa.f0=1;PORTb.f7=1;PORTa.f1=0;break;
case '4':
PORTb.f0=1;PORTb.f1=0;PORTb.f3=0;PORTb.f4=1;PORTa.f0=1;PORTb.f7=0;PORTa.f1=0;break;
case '5':
PORTb.f0=0;PORTb.f1=1;PORTb.f3=0;PORTb.f4=0;PORTa.f0=1;PORTb.f7=0;PORTa.f1=0;break;
case '6':
PORTb.f0=0;PORTb.f1=1;PORTb.f3=0;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
case '7':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=1;PORTa.f0=1;PORTb.f7=1;PORTa.f1=1;break;
case '8':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
case '9':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=0;PORTa.f0=1;PORTb.f7=0;PORTa.f1=0;break;
case 'A':
PORTb.f0=0;PORTb.f1=0;PORTb.f3=0;PORTb.f4=1;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
case 'B':
PORTb.f0=1;PORTb.f1=1;PORTb.f3=0;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
case 'C':
PORTb.f0=0;PORTb.f1=1;PORTb.f3=1;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=1;break;
case 'D':
PORTb.f0=1;PORTb.f1=0;PORTb.f3=0;PORTb.f4=0;PORTa.f0=0;PORTb.f7=1;PORTa.f1=0;break;
case 'E':
PORTb.f0=0;PORTb.f1=1;PORTb.f3=1;PORTb.f4=0;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
case 'F':
PORTb.f0=0;PORTb.f1=1;PORTb.f3=1;PORTb.f4=1;PORTa.f0=0;PORTb.f7=0;PORTa.f1=0;break;
}} }
}
|
شرح البرنامج
بدء
تهيئة موديولUART1بمعدل بود9600ثم تأخير زمنى 100 ملى ثانية حتى
تستقر التهيئة .
اختبار جاهزية UARTلقراءة
البيانات فإن كانت البيانات جاهزة يتحق الشرط ويتم تنفيذ الاوامر الخاصه بهذا الشرط
قراءه ما يتم ارساله الي الميكرو من الكمبيوتر وحفظه
داخل المتغيرdatawrite
امر سوتش وتم شرحه من قبل علي حسب قيمه المتغير سوف يقفز
البرنامج لينفذ الحاله المطابقه للمتغير فمثلا لو قيمه المتغير بواحد فينفذ
البرنامج الاوامر
وذلك
لإضائه السفن سجمت ليعبر عن الرقم واحد مع ملاحظه اننا هنا اضررنا لكتابه هذا الامر بالشكل السابق للأننا لم نتمكن من عمل مسك للأرقام حيث ان هذا المسك
الذي تم استخدامه في التجربه السادسه كان
سهلا للأننا كنا نتعامل مع البورت كاما اما هنا فالبور B سوف لا نتمكن من استخدامه بالكامل لاننا
مستخدمين منه طرفين لعمليه التوصيل بالدائره المتكامله MAX232
فيديو التجربة
لو سمحت ممكن صورة عن طريقة توصيل المنفذ التسلسلي rs232 على برنامج LABVIEW من أجل ارسال واستقبال البيانات علما أنني أريد ربطها مع PROTEUS
ردحذف