معماری
خانه / مطالب وبلاگ سایت / آشنای با باركد خوان
فرادرس

آشنای با باركد خوان

ساخت دستگاه باركد خوان و اتصال آن به پورت سريال PC

ـ پيش گفتار

ـ هدف كلي ساخت

ـ توضيح ميكرو كنترلي 8 – 51

ـ شرح سخت افزار سيستم

ـ شرح Le  هاي Ln 324 , max 

ـ توضيح برنامه نرم افزاري

ـ ضمايم

يكي هست و هيچ نيست جز او

وحده لااله الاهو

پيش گفتار :

پروژة دستگاه بار كد خوان محصول تحقيق چندين ماهه بوده كه ؟ مسير از منابع و مأخذهاي مختلف در زمينة باركد خواني و ارسال آن به پورت سريال PC بهره جستم .

لازم به ذكر اين نكته است كه مطلوب نظر اينجانب استفاده از باكس رفلكس باركد خوان بود و ؟ به دليل يافت نشدن اين ؟ بنده را بر آن داشت كه به جاي استفاده از روش انعكاس از روش عبوري استفاده كنيم.

كه اين روش مستلزم آن بود كه كارت را نيز اينجانب تعريف نمايم. كه توضيحات لازم به ادامه ارايه خواهد شد.

اين مجموعه را به اساتيد گرانقدر جناب استاد بهرامي زاده تقديم نمايم. وه كه قبول افتد و در نظر آيد.

 

ـ هدف كلي ساخت:

مي دانيم امروزه دنياي الكترونيك روند رو به رشد سرسيمي را مي پيمايد كه در مقايسه با گدشته غير قابل وصف است. در اين پيمايش سرعت ارسال و دريافت اطلاعات نقش بسزاي دارد و افكار متخصصين را كاملاً به خود مشغول كرده تا مسأله زبان را به حداقل رسانده و نرخ ارسال و دريافت داده ها را تا نهايت ممكن بالا ببرند.

اينك با پي بردن  به اهميت اين مسأله ما نيز در جهت تحقيق نيل به اين هدف دستگاه باركد خوان را طراحي نموده و يك نمونه عملي آنرا ساختيم. اين دستگاه همچنان كه از نامش پيداست قادر به خواندن باركد و ارسال آن به پورت سريال PC است.

كه با قرار گرفتن كارت در بين فرستنده به گيرنده نوري خطوط سياه و سفيد trace  مي شوند و كد اين كارت استخراج مي شود و طريق پورت سريال به PC منتقل مي شود.

قسمت عمده و مهم طراحي و ساخت اين دستگاه، ميكروكنترلي 8.51  است .

كه در بخشهاي آينده به توضيح اين مسأله مي پردازيم.

نگاهي گذرا و اجمالي به ميكروكنترلي 8.51

ابتدا بايد ببينيم فرق ميكروكنترلي با ميكرو پروسسور چيست ؟

منظور از يك ميكروپروسسور ( ريز پردازنده نام ميكروپروسسورهايي از خانواده X86  انتيل مثل 8.386 , 8.286 , 8.86 , 68020 , 68030 , 68040  و يا خانواده اي از اين قبل است . اين ميكروپروسسورها فاقد ROM , RAM  و پورت هاي I / O   در درون خود تراشه هستند به اين دليل به آنها ميكروپروسسورهاي همه منظوره گويند.

طراح سيستمي كه از ميكروپروسسور همه منظورهاي چون پنتيوم، 68040  استفاده باشد كه بايد در خارج از آن ROM , RAM پورت هاي I / O و تمايمرها را اضافه نمايد. طراح ما بتواند روي مقدار ROM , RAM پورت هاي I / O به حسب نوع ميكروكنترلي داراي يك CPN  به همراه مقدار ثابتي از ROM , RAM ، پورت هاي I / O  و تايمر در درون خود مي باشد.

ـ سيستم تك منظوره چيست؟

ميكروكنترلها و ميكروپروسسورها به طور گستره اي در توليد سيستم هاي تك منظوره به كار مي روند. يك محصول تك منظوره بار استفاده از ميكروپروسسور و يا ميكروكنترلي براي انجام فقط يك كار است. يك چاپگر نمونه اي از يك سيستم تك منظوره است زيرا پروسسور داخل آن فقط يك كار را انجام مي دهد و آن اين است كه داده را بدست اورده و آنرا چاپ مي كند. در يك سيستم تك منظوره تنها يك نر افزار كاربردي وجود دارد و معمولاً كه ROM سوزانده باشد.

وظيفه اش يافتن مكان ماوس  و ارسال آن به PC است.

انتخاب ميكروكنترلي :

چهار نوع ميكروكنترلي 8 بيتي مهم وجود دارد كه عبارتند از 6811  از موتورولا ، 8.51  از انيتل ، Z 8  از زايلوك و PIC 16 X  از شركت ميكرو چپ تكنولوژي ميكروكنترلهاي 16 و 36 بيتي هم وجود دارد . سه روش براي انتخاب وجود دارد.

1 ـ بر آورد كردن نيازهاي محاسبات كار به طوري مؤثر و مقرون به صرفه

2 ـ در دسترس داشتن نرم افزارهاي كمكي مانند كامپايلرها، اسمبلرها و عيب ياب ها

3 ـ منابع گسترده و قابل اعتماد و بي ميكوركنترلها

مروري بر خانواده 8.51

تاريخچه مختصري از 8.51  

در سال 1981شركت  In Ael ميكروكنترلري به نام 8.51 را معرفي كرد اين ميكروكنترلر داراي 128 بايت ROM ، K 4 بايت ROM، در تايمر ، يك پورت سريال و چهار پورت موازي ( هر يك 8 بيت ) بودكه همه آنها در يك تراشه تعبيه شده بودند زماني به آن  (سيستم در يك تراشه ) را گفتند . 8.51 يك پروسسور 8 بيت است . نيمي CPX هر بار مي تواند فقط روي 8 بيت داده كار كند. داده اي بزرگتر از 8 بيت بايد به قطعات 8 بيت بشكنند و سپس بوسيله CPX پردازش شوند 8.51 كلاً داراي چهار پورت I / O  با عرض 8 بيت است گر چه 8.51 مي تواند حداكثر 64X حافظه ROM در تراشه داشته باشد بسياري از سازندگان فقط K 4 بايت را در تراشه گذاشته اند . ( شكل ص 27 نمودار ملوج )

8.51 عضو اصلي خانواده 8.51 است In tel  آنرا  Mes – 51  مي نامد.

                                                                   امكانات 8.51

Feature                  Quantity

ROM                      4K bytes
RAM                      128 bytes
Timer                      2
I/O Pin 5                 32
Serial Port              1
Interrupt                 Sources 6

دو عضو ديگر خانواده 8.51 و 8.58 و 8.31 است.

نمودار بلوكي درون ميكروكنترلر 8.51

××××

AT89C51  از شركت Atmel :

اين تراشه 8.51 دانيم داراي ROM  سريع مي باشد. در اطراحي هاي سريع اين نوع حافظه ميكرو؟ است. زيرا حافظه سريع بتواند مرا چند ثانيه در مقايسه 20 دقيقه در ؟ برس 8751 باعث شود به اين دليل AT89C51 به جاي 8751 به كاربرده شده است تا هنگام تك شدن تراشه وقتي تلف نشود. هنگام استفاده از AT89C51  برس ساخت سيستم هاي مبتني بر ميكروكنترلر به سوزاننده يا برنامه ريز ROM  سريع نياز داريم. وجود به شكننده ROM نيازي نيست.

AT89C51

 

ROM

4K

RAM

128

IP

32

تايمر

2

وقفه

6

Vce

5 V

 

 

 

8.51  با سرعتهاي مختلف Atmol
صوت                     حجم در قطعه            5
AT89C51   – 12 PC     12 m Hz      40
AT89C51   – 16 PC     16 m Hz      40
AT89C51   – 20 PC      20 m Hz     40

شكل 8.51 Ic

شرح لايه هاي 8.51

ـVec  بايد 40 ولتاژ تغذيه صورتي تراشه فراهم باشد و  ؟ +5  است.

ـ GND  لايه 20 زمين است .

ـ  XTAL 2 , XT AL1 : 8.51  داراي يك اسيلاتور درون تراشه اي است. و براي راندن آن به يك ساعت كرسيتال اسيلاتور كريستال كوارتز به ورودي هاي XT AL1  ( پايين 19 ) و XTAL 2 ( يا 18 ) وصل است.

اسيلاتور كريستال كوارتز متصل به XTAL 2 , XT AL1 به دو خازن P.F وصل مي باشد يك طرف هر يك از خازنها به زمين وصل است.

ـ RST  لايه 9 ، لايه Res ET  است . اين يك ورودي فعال بالاست. بعد از اعمال يك پالس بالا به اين پايه ميكروكنترلر ايست شده و همه فعاليت را رها مي كند.

ـ : اعضا خانواده 8.51 مانند 89C51 , 8751  يا  DS 500  همگرا با ROM  در تراشه براي ذخيره برنامه ارائه مي شوند. در اين حالت لايه  به Vce روي خانواده  براي دستيابي بيروني است.

ـ  به معني فعال كردن برنامه ذخيره است.

ـ ALE : ( فعال ساز لچ آدرس ) يك لايه خروجي فعال بالاست.

پايه هاي پورت I / O

چهار پورت P3 , P2 ,P1 , P0  هر كدام 8 پايه را به كار برند تا پورت ها را 8 بيتي سازند همه پورت ها پس از Reser  به صورت خروجي در كار آيند و آماده استفاده به عنوان خروجي هستند. براي استفاده از هر يك از اين پورت ها به عنوان و وصل، بايد آنها را برنامه ريزي كرد.

كارت O: اين پورت 8 پايه ( 32 – 39  ) را اشغال مي كند. مي توان از آن به عنوان ورودي يا خروجي استفاده كرد.

براي استفاده از پايه هاي پورت  O بر محتواي ورودي و خروجي هر پايه از بيرون به يك مقاومت بالاكش 10km  وصل شود.

دليل اين است كه پورت صفر بر خلاف P3 , P2 ,P1  يك در بين باز است.

پورت 1 : جمعاً 8 پايه ( 1 تا 8 ) را اشغال مي كند. مي توان از آن به صورت ورودي يا خروجي استفاده كرد.

و نيازي به مقاومت بالاكش توليد زيرا داراي مقاومت بالاكش دروني است.

پورت 2: اين پورت داراي 8 پايه است ( 21 تا 28 ) ؟ آنها به عنوان ورودي يا خروجي برنامه ريزي كرد. و به  ؟ بالاكش نياز ندارد.

پورت 3 : اين پورت نيز داراي 8 پايه است ( 10  الي 17) مي توان آنرا به عنوان ورودي يا خروجي برنامه ريزي كرد. نيازي به مقاومت بالاكش ندارد.

                                                    توان ديگر پورت ها

P3 Bit            Function            Pin

P3.0                   RXD              10
P3.1                   TXD              11
P3.2                              12
P3.3                               13
P3.4                      TO             14

P3.5                        T1             15

P3.6                                 16
P3.7                                   17

شكل صفحه 129 ص 11

شكل صفحه 130 ص 12

اينك شرح مختصري در ارتباط با تبادل سريال مي دهيم.

كامپيوترها داده را به دو طريق موازي و سريال انتقال مي دهند در انتقال هاي موازي، داده اغلب از 8 خط داده و يا بيشتر استفاده مي شود. در اين حالت داده مي تواند به وسيله اي كه فقط جند فوت دورتر است انتقال يابد مثالهايي از اين دست عبارتند از چاپگرها و ديسك هاي سخت كد از كابل هاي نوري استفاده نمايند.

گر چه در اين موارد حجم بسياري از داده در زماني كوتاه جابه جا مي شود نوع فاصله نمي تواند چندان طولاني باشد در فواصل بيشتر از تبادل سريال استفاده مي كنند. در تبادل سريال بر عكس تبادل موازي، هر بار يك بيت ارسال مي گردد.

اصول تبادل سريال: وقتي اين پردازنده هاي با دنياي خارج تبادل اطلاعات باشد بسته اي داده را در ابعاد بايت فراهم مي نمايد در بعضي موارد همچون جايگرها به اطلاعات به راحتي از گذرگاه داده 8 بيت اخذ شده و به گذرگاه داده 8 بيت  جايگر تحويل مي شود. اين  روش اگر كابل زياد طولاني نباشد عملي است زيرا كابل هاي طولاني سيگنالها را تضعيف و ؟ ديگر سيكل مي دهند. بعلاوه مسير 8 بيت گران هم هست. بنابراين دو تبادل داده بين دو سيستم با فاصله هاي تا صدها فوت يا ميليون ها كيلومتر از انتقال سريال استفاده مي شود.

تبادل سريال نه تنها موجب ارزاني ؟ بلكه موجب تبادل اطلاعات بين دو كامپيوتر در دو شهر مختلف  از طريق خط تلفن مي گردد.

براي به راه اندازي تبادل سريال داده، بايت داده بايد از گذرگاه 8 بيتي ريز پردازنده گرفته شده و با استفاده از شيفت رجيستر ورودي ـ موازي ـ خروجي ـ سريال به بيت هاي سريال تبديل گردد. كه دستگاه قابل ارسال به يك خط داده خواهد بود. واضح است كه درست گيرنده بايد يك شيفت دجيستر ورودي ـ سريال ـ خروجي موازي براي دريافت داده ارسالي وجود داشته باشد و پر از بسته بندي اين به صورت بايت آنها را به گيرنده تحويل دهد.

تبادل داده دو روش را به كار مي برد. كه يكي روش همزمان و ديگري روش غير همزمان است. روش همزمان هر بار يك بلوك از داده را انتقال مي دهد. در حالي كه روش غير همزمان هر بار يك بايت را منتقل مي كند.

براي پياده كردن هر يك از مورد تر فوق تراشه اي IC خاصي بوسيله سازندگان برس تبادل سريال داده ساخته شده است. اين تراشه ها عموماً UART  ( فرستنده گيرنده غير همزمان يئيتئرسال ) و USART ( فرستنده گيرنده ‏يونيو‏-‏02غير همزمان  . يونيورسال ) خوانده مي شوند.

كه 8.51  داراي UART  دروني است.

استاندارهاي Rs 232 : براي ايجاد امكان سازگاري در ميان تجهيزات تبادل داده ساخت سازندگان مختلف يك استاندارد واسطي به نام Rs 232 بوسيله سازمان صنايع الكترونيك ( BIA  ) در 1960  بر پاشد. در سال 1963  استاندارد فوق اصلاح و Rs 232 A  نام گرفت. در سالهاي بعد Rs 232s  و Rs 232e  نيز معرفي شد. در اين جا به استاندارد Rs 232 مي پردازيم.

امروزه Rs 232 يك استاندارد واسط I / O  با كاربردي گسترده است. چون استاندارد مذكور قبل از خانوادة TTL  با نهاده شد سطوح ولتاژ ورودي و خروجي سازگار با TTL نيستند . در Rs 232 منطق 1 با – 3   تا – 25  ولت تعريف ميشد ضمن اينكه +3  تا +25  ولت هم بيت 0 است.

فاصله – 3 تا +3 تعريف نشده است. به اين دليل براي اتصال هر Rs 232 به يك سيستم مبتني بر ميكروكنترلر، بايد از مبدل هاي ولتاژي همچون MAX 232  براي تبادل از سطح TTL به سطح Rs 232 و بر عكس استفاده اين تراشه هاي MAX 232 به نام راه اندازهاي خط  گيرنده هاي خط نام گذاري شده اند.

DB – (  از استاندارد I / O سريال كه فقط 9  پايه دارد توسط IAM  معرفي شد به منظور ايجاد انتقال سريع و قابل اطمينان داده بين دستگاها در انتقال بايد هماهنگي داشته باشد در ست مثل چاپگر چئن در وسيله گيرنده ممكن است براي پذيرش داده جاي نباشد. بايد مكانيزي براي اطلاع به فرستنده ايجاد شد تا از ارسال داده خودداري كند.

DTR  : و آمادگي پايانه داده وقتي كه پايانه ( يا پورت Cnm  در LPC  روشن شود، پس از يك سوي تست هاي دروني PC سيگنال DTR رابه بيرون ارسال نمايد تا آمادگي خود را براي تبادل داده اعلام نمايد. اگر شكلي در پورت Cnm وجود داشته باشد اين سيگنال فعال نمي گرد. اين سيگنال يك سيگنال فعال پايين بوده و به مودم اطلاع مي دهد كه آماده است . اين پايه يك خروجي از DTR ( پورت Cm  در PC  ) و يك دورمن به موازات.

CD  يا DCD  : ( تشخيص حامل يا تشخيص حامل داده ) مودم يا سيگنال DCD را براي اطلاع PC , DTR ارسال دارد تا مشخص حامل معتبر و ارتباط بين خود در گير مودم ها را اعلام نمايد. بنابراين DCD يك خروجي از مودم و ورودي به يك  PC است.

DSR  ( آماده دريافت يا مجموعه داده آماده ) : وقتي كه يك  DCR  ( مودم ) روشن شود و شروع به قسمت خود كند يك DSR را صادر باشد تا كه ؟ تبادل اطلاعات را اعلام نمايد. بنابراين سيگنال مذكور يك خروجي از مودم روس به PC  است اين يك سيگنال فعال پايين است.

RTS  : تقاضاي ارسال: وقتي وسيله (PC) DTR  داراي با؟ براي ارسال است سيگنال RTS را ايجاد كند تا به مودم داشتن يك بايت داده براي ارسال را اعلام نمايد RTS يك خروجي فعال پايين از DTR  و ورودي به مودم است .

( ساده ترين اتصال بين ميكروكنترلر و PC  )

DTR                                      DTR                                                                   

 

 

اتصال 8.51  به Rs232

در اين قسمت جزئيات اتصال فيزيكي 8.51  به كانكتور Rs232  ارائه شده است. همانگونه كه قبلاً گفته شد استاندارد Rs232 با TTL  سازگار نيست بنابراين از راه اندازي همچون MAX232  براي تبادل سطوح و ولتاژ Rs232 به سطح TTL و بالعكس بايد استفاده شود.

پايه اي TXD   , RXD  در 8.51

8.51 داراي دو پايه است كه خصوصاً براي ارسال و دريافت سريال داده بكار مي رود اين دو پايه TXD  و RXD  ناميده شود و بخشي از پورت 3  (P3.1, P3.0) مي باشند . پايه 11 از 8.51 (P3.1 ) به TXD يك راه انداز خط دارند تا با Rs232  سازگار شوند چنين وسيله اي تراشه MAX232  مي باشد كه دو زير مورد بحث قرار مي گيرند.

MAX232  :

MAX232  دو مجموعه راه انداز براي ارسال و دريافت داده دارد كه در شكل زير نشان داده شده است.

راه اندازهاي به كار رفته براي TXD ,  T1  و T2  خوانده مي شوند در حالي كه راه اندازهاي RXD با P2 , P1  مشخص شده اند.

و بسياري در به كاربردها تنها يكي از آنها به كار مي رود مثلاًT   1 و P1 همراه با هم براي TXD و RXD در 8.51 استفاده شده و مجموعه دوم بلا استفاده باقي مانده است. توجه اينكه كه راه انداز T1  در MAX232 داراي علائم T lin  و Tlont به ترتيب و پايه اي 11 و 14 باشد و پايه T lin در سمت TTL  به TXD  ميكروكنترلي وصل است در حالي كه Tlont در سمت Rs232  بوده و به پايه  RXD در كانكتور Rs232 DB   وصل مي باشد . خط راه انداز R1  داراي علامت Rlin  و Rlout  روسي شماره پايه هاي 12 , B  مي باشد. R11n  ( پايه 12)  نيز در سمت TTL بوده و به پايه RXD از ميكروكنترلر متصل مي باشد .

MAX232 به چهار خازن از 1 تا ms 22 نياز دارد بيشتيوم نوع معرفي خازن   ms 22  است يكي از مزاياي MAX232 اين است كه از منبع تغذيه +5V استفاده كند كه مشابه ولتاژ براي 8.51 است به بيان ديگر با يك منبع +5V مي توان 8.51 و MAX232 راه انداخت.

برنامه نويسي تبادل اطلاعات سريال در 8. .51

در اين قسمت مثالهاي تبادل اطلاعات سريال 8..51  را مورد بحث قرار مي دهيم و نشان خواهيم داد كه چگونه آنها را براي ارسال و دريافت داده سريال برنامه نويسي كنيمبرتبادل اطلاعات سريال با پورت Cm  در PC  تأكيد خواهيم كرد.

8.51 داده را با ميزان باودهاي مختلفي بطور سريال ارسال و يادريافت  مي كند ميزان باود بر 8.51 قابل برنامه ريزي است . 

3 كار به كمك تايمر 1  انجام مي شود. وقتي كه از تايمر 1 براي تنظيم ميزان باود استفاده شود بايد آنرا در مد 2 ايمز 8 بيت را باركردن خودكار، برنامه ريزي كرد براي يافتن ميزان باودسازگار با PC بايد T1 را با مقادير جدول زير بار كنيد.

جدول مقادير ثبات TH1 تايمر 1 براي انواع باودها 

ميزان باود PC

SBUL : يك ثبات 8 بيت است كه معمولاً در تبادل داده 8 . 51 به كارمي رود براي ارسال يك بايت داده  از طريق خط TXD  بايد آنرا در ثابت SBUL قرار داده به طور مشابه SBUL بايت داده  را هنگامي كه از خط RXD  دارد، شود هم گذرگاه دارد. . و اين ثبت قابل دسترس است.

ثبات كنترل سريال SC . N .

بايت SC . N يك ثبات 8 بيت است كار براي برنامه ريزي بيت شروع، بيت ختم و بيت هاي داده تاب و ديگر موارد استفاده مي شود

جدول ص 161 ثبات كنترل پورت سريال SC . N

 SM1 , SM0 :

 SM1 , SM0 به ترتيب بيت هاي D6 , D7  ثبات SC . N هستند اين دو بيت قاب بندي داده را با تعيين بيت در هر كاراكتر و بيت هاي شروع و ختم مشخص شد.

مد 0 سريال

مد 1 سريا با 8بيت  ، 1 بيت ختم تا 1 بيت شروع

مد 2 سريال

مد 3 سريال

از 4 مد سريال، فقط مد 1 براي ما مورد توجه است درثبات SC . N وقتي كد مد سريال 1 انتخاب مي شود. تاب بندي 8 بيت يا 1بيت ختم و 1 بيت شروع است كه در ؟ آنرا با پورت CoM  از PC  و سازگارها منطبق مي سازد مهمتر از ظان و مد سريال 1 اجازه مي رود تا ميزان بود باود متغير بوده و بوسيله تايمر 1 از 8 . 51  تنظيم مي گردد در مد سريال 1 براي هر كاراكتر جمعاً 10 بيت ارسال مي شود كه اولين بيت شروع به دنبال آن 8 بيت داده و نهايتاً 1 بيت ختم مي باشند.

REN : بيت REN ( فعال ساز در يافت ) بيت D4  از ثبات SC . N  است اين بيت SC.N4  هم خانواده مي شود چون SC . N يك ثبات آدرس پذير بيتي است وقتي بيت REN بالا باشد اجازه مي دهد تا 8 . 51 دريافت شدن در نتيجه اگر بخواهيم داده را ارسال يا دريافت كنيم بايد REN، 1 باشد با RENs گيرنده غير فعال مي شود REN s يا s REN به ترتيب با دستورات SETB SC. N 4 و CLRSC.N- 4حاصل مي شوند.

TI : TI ( ارسال وقفه ) بيت D1  از ثبات SC . N است اين يك پرچم بسيار با اهميتي در ثبات SC . N است وقتي كه 8 . 51 ارسال كاراكتر 8 بيتر را تمام مي كند. پرچم T1 را براي اعلام آمادگي در ارسال بايت بهمري 20 را برد.

RI : ( در يافت وقفه) بيت D0 از ثبات SC . N است اين بيت هم پرچم مهم ديگري از ثبات SC . N است وقتي كه 8 . 51 داده سريال را از طريق RXD  دريافت باشد بيت هاي شروع و خم تا حذف و بايت باقميانده را در ثابت SBUL  قرار داد سپس بيت پرچم LRI  به علامت دريافت داده باشد بايد دو قبل از محو شدن برداشته شود.

برنامه نويسي 8 . 51 براي ارسال سريال داده

در برنامه نويسي 8 . 51 براي ارسال سريال بايت هاي كاركتر مراحل زير بايد اجرا شود.

1ـ ثبات TM . D  با مقدار 20 H بار شود كه به معز استفاده از تايمر 1 در مد 2 است.

2 ـ TH1  با يكي از مقادير جدول ( مقادير ثبات  TH1 تايمر D براي انواع باود آن بار شود.

3 ـ ثبات SC . N با مقدار 50 H  بار ميش ود كه مد سريال 1 است و در آن يك داده 8 بيتي با يك بيت شروع و يك بيت ختم قاب بندي مي شود.

4ـ TR1 در 1 قرارداده ميشود تا تايمر 1 شروع شود.

5 ـ TI  با دستور CLRTI ؟ مي شود.

6 ـ بايت كاركتر ارسالي در ثبات SBUL  نوشته مي شود.

7 ـ بيت پرچم TI با دستورJNB TI , X رديابي مي شود تا ارسال كامل كاركتر صورت گرفته باشد .

8 ـ براي ارسال كامل كاراكتر بعد به مرحله 5 برويد.

برنامه ريزي وقفه ها :

در اين قسمت ابتدا تفاوت بين سركشي و وقفه ها را بررسي مي كنيم سپس انواع وقفه هاي 8.51  را توضيح مي دهيم. يك ميكروكنترلر مي تواند چندين دستگاه را سرويس بدهد. براي انجام آن دو راه وجود دارد: روش وقفه و روش سركشي در روش وقفه هر وقت وسيله به سرويس نياز داشته باشد. با ارسال يك سيگنال وقفه ميكروكنترلر را مطلع ميسازد ميكروكنترلر پس از دريافت سيگنال وقفه، هر كاري را كنار گذاشته و به وسيله سرويس مي دهد برنامه متعلق به وقفه، روال سرويس وقفه (    ISR) ناميده ميشود.

در روش سركشي ميكروكنترلر مرتباً وضعيت وسيله مورد نظر را رديابي مي كند. وقتي كه شرايط ايجاب كند سرويس را انجام مي دهد پس از آن به سراغ وسيله ديگر مي رود تا اينكه همه را سرويس دهد.

مهمترين دليل مزيت وقفه اين است كه روش سركشي وقت زيادي را در سركشي به وسايل و دستگاهاي كه نياز به سرويس ندارند تلف مي كند. پس براي جلوگيري از كند شدن عملكرد ميكروكنترلر از وقفه استفاده مي كند.

روال سرويس وقفه:

به ازاي هر وقفه، بايد روال سرويس وقفه (    ISR) وجود داشته باشد وقتي وقفه اي رخ مي دهد، ميكروكنترلر روال سرويس وقفه را اجرا مي كند. به ازاي هر وقفه بايد مكان كه پس در حافظه تعريف شود تا آوري     ISRرا نگه دارد مجموعة حافظه هاي كنار گذاشته شده براي لكه داري اكسوس هاي     ISR، جدول بردار دقفه نام دارد.

جدول ص 182 جدول بردار وقفه

مراحل اجزاي يك وقفه :

از فعال شدن وقفه، ميكروكنترلر دارد مراحل زير ميشود.

1 ـ اجراي دستور جاري را پايان مي دهد و اكوس دستور بعدي ( P  C ) را پشته ذخيره مي شد.

2 ـ وضعيت جاري همه وقفه هاي دروني را نيز ذخيره مي نمايد . ( نه در پشته )

3 ـ به مكان معيني از حافظه به نام جدول بردار وقفه كه آدرس روال سرويس وقفه ؟ دارد پرش مي كند.

4ـ ميكروكنترلري آمادگي ISR  را از جدول بردار وقفه بدست آورده و به آن پرش مي كنند آنگاه شروع به اجراي زير روال سرويس وقفه مي كند. تا به آخرين دستور كه P ETI  است برسد.

5 ـ پس از اجراي دستور  P ETI ميكروكنترلر به مكاني كه در آن وقفه را دريافت كرده بود بازي گردان ابتدا آلودي شمارنده برنامه را از پشته با برداشت از دو بايت بالا پشته بازيافت مي كند به PC ، فرستنده سپس شروع به اجزاي برنامه از آن آدرس مي نمايد.

شش وقفه در 8 .51

1 ـ Reset  وقتي كه پايه است فعال شود 8 .51 به آدرس 0000 پرش كند .

2 ـ در وقفه براي تايمرها كنار گذاشته شده است يكي براي تايمر 0 و ديگري براي تايمر 1 آن حافظه 001 BH , 000 B H

3 ـ دو وقفه براي وقفه هاي سخت افزاري بيروني كنار گذاشته شده اند.

براي شماره 12 و 13 در پوست 3 به ترتيب براي وقفه هاي سخت افزاري 1 NT1 ,  1 NT0 باشند.

4 ـ تبادل داده سريال داراي وقفه هاي است كه متعلق به ارسال و دريافت مي باشد.

فعال سازي و غير فعال سازي وقفه:

پس از ريست، همه وقفه ها غير فعال شدند و براي اينكه فعال شوند بايد وقفه ها را با نرم افزار فعال كرد جمع تر به نام فعال سازي وقفه،  I E  مسئول اين توانا سازي و ناتوان اين وقفه ها است .

شكل زير ثبات ؟ را نشان مي دهد كه يك ثابت آدرس پذيري بيتي است.

شكل ص 183

مراحل فعال سازي يك وقفه:

براي فعال كردن يك وقفه مراحل زير اجرا مي گردد.

1 ـ بيتD 7 از ثابتI E   بايد به سطح بالا برده شود تابع ثباتها فعال گردد.

2 ـ اگر E A S1 باشد، وقفه ها فعال شده و هنگامي كه بيت هاي مربوطه به هر وقفهI   در فعال گردد به آن وقفه پاسخ داده خواهند شد اگر باBASشد به هيچ وقفه اي پاسخ داده نميشود حتي اگر بيت هاي مربوطه  I در سطح بالا باشند.

برنامه نويسي وقفه هاي سخت افزاي بيروني

8 .51  داراي دو وقفه سخت افزاري بيروني است پايه 12 و پايه 13 از 8.51 كه برس INT1 , INT0  در نظر گرفته شده اند، برس وقفه اي سخت افزاري به كار رفته اند با فعال شدن اين پايه ها 8 .51 سخت هر وضعيتي وقفه يافته و به جدول بردار وقفه براي اجزاي روال سرويس وقفه پرش مي كند. در اين بخش اين دو وقفه سخت افزاري بيروني برس 8 .51 را برس مي كند.

براي وقفه هاي سخت افزاري بيروني دو سطح فعال شدن وجود دارد.

1 ـ حساس به سطح ـ 2  حساس به لبه

وقفه حساس به سطح :

در مد حساس به سطح، معمولاً پايه هاي  INT 1 , INT0  در سطح بالا هستند. و اگر يك سيگنال سطح پايين به آنها اعمال شود وقفه را مثال مي كند.

وقفه هاي به لبه به همانطور كه ملاحظه شد پس از Reset  8 .51 ، وقفه هاي INT 1 , INT0 جاي به سطح خواهد شد براي تبديل آنها به نوع حساس به لبه بايد بيتهاي ثبات TCoN   را برنامه توپ مي كند . ثبات TCoN  همراه با ديگر چيزها، بيت هاي پرچم IT1 , IT0  كه تعيين كننده وقفه حساس به سطح يا لبه هستند را نگه مي دارد.

IT1 , IT0  به ترتيب بيت هاي D2 , D0  از ثبات TCoN هستند.

ثبات TcoN از نوع آدرس پذير بيتي است . پس از ايست هر دو IT1 , IT0 در منطق 0 هستند. به اين معني كه وقفه هاي سخت افزايش پايه هاي  INT1 , INT0  به سطح حساس هستند با بالا بردن . بيت هاي IT1 , IT0 به دستوراتي چون SETB  TcoN ,  , SETBTCoN, 0  انجام مي شود وقفه اي سخت افزايش بيروني INT1 , INT0 سيگنال هاي حساس به لبه خواهند شد.

شكل صفحه190 كشيده شود.

توضيح راجع به سخت افزار سيستم:

قطعات مورد نياز :

آي سي 8951

آي سي LM324

آي سي MAX232

آي سي 7404

ـ گيرنده فرستنده نوري

ـ ترانزيستور C945 2 عدد

ـ ديود 4148

ـ BUZZER

ـ كريستال 12MHz

ـRs232 ( سوكت )

ـ مقاومتها و خازنهاي متفاوت كه در شكل شماتيك واضح است

ـ يك كلينشاري براي ايست .

حال به توضيح مختصري در ارتباط با سخت افزار سيستم مي پردازيم .

ابتدا به شكل زير توجه كنيد .

دو حالت ؟ حايلر بين فرستنده و گيرنده  وجود ندارد.

ديود با ياس 6/0 دارد و ترانزيستور off  است و LM 32H  كه يك مدار مقايسه گر اكتيولو است .

ولتاژ پايه مثبت آن از ولتاژپايه مقدار بزرگتر است و مقايسه گر در حال غير فعال است.

به محض  قرار گرفتن حائل، ديود خاموش باشد ترانزيستور  روش مي شود و ولتاژ بايد  از مثبت بزرگتر باشد و مدار مقايسه گرما فعال مي شود ( اطلاعات دو مورد آي LM 324  در ضميمه موجود است.

همچنانكه در بخشهاي قبل توضيح داده شد آي MAX232 براي برابري سطوح ولتاژ بين ميكروكنترلر 8.51 و پورت سريال است كه توضيحات لازم داده شده است و ضمن اطلاعات بيشتر در مورد ساختار Ie  در قسمت ضميمه وجود دارد.

آي سي 74.4 برس احتياط در سر راه BUZZER قرار گرفته است كه جريان زيادي كشيده نشود BUZZER  فقط هنگامي فعال مي شود كه حائلي بين فرستنده و گيرنده قرار گيرد و ورودي آن از پورت 1 ميكروكنترلر 51. 8 است.

طرز اسمبل كردن اين سخت افزار و چيدن مقاومتها و خازنها، مربوط به راه اندازي IC    هاي فوق است كه در بخشهاي قبلي و در زير اجمالاً توضيح داده شده است.

توضيح راجع به نرم افزار سيستم :

لازم به توضيح است كه دستگاه باركد خوان براي ارسال اطلاعات به P C  به صورت سريال نياز به دو نرم افزار دارد.

ـ يك نرم افزار كه همان اسمبلي 8.51  است كه براي راه اندازي آي سي 8.51 مورد نياز است .

ـ نرم افزار دوم مربوط به مچ كردن بين P C  و ميكروكنترلر است كه در اين از نرم افزار و پژوال C استفاده گرديده است.

در مورد نرم افزار اسمبلي 8.51 ساختار كلي آن به طور مفصل در بحث ميكروكنترلر عنوان گرده ايد اينك به بررسي جزيياتي مختصر از اين برنامه مي پردازيم . همانطور كه در مقدمه نيز عنوان شد به دليل يافت نشدن با كس رفلكسي، ساخت دستگاه باركد خوان را به روش عبوري مد نظر قرار داديم .

كه اين روش مستلزم آن بود كه كارتهاي باركد را نيز خوان تعريف كنيم.

كه در اين براي ساخت كارتها از يك قطعه ترين پرنت استفاده كرديم و وي آن نوارهاي مشكلي را پرينت گرفتيم .

منطق دستگاه به اين صورت است كه در حالت عادي كه حايلي ما بين فرستنده گيرنده نوري س؟ يك است به محض قرار گرفتن حايل اين منطق صفر مي شود و در ضمن هنگامي كه شكافهاي روشن بين گيرنده و فرستنده نوري قرار مي گيرد باز هم منطق دستگاه يك است پس در دو حالت منطق دستگاه يك است 1 هنگامي كه حايلي بين فرستنده و گيرنده وجود ندارد و 2 هنگامي كه شكافهاي روشن ما بين فرستنده و گيرنده قرار مي گيرد.

پس از پي بدن به اين منطق به سراغ قسمتهاي ديگر دستگاه مي رويم .

در برنامه كارتها از يك سمت به شكافهاي مشكي نازك شروع مي شوند و از سمت ديگر با شكافهاي مشكي پهن شروع مي شود .

دومين منطق برنامه اين است كه طريقه كشيدن صحيح كارت از سمت شكافهاي مشكي نازك است اگر از سمت شكافهاي مشكي پهن كشيده شود كدخوانده نميشود.

كه اين قسمت در برنامه با مقايسه گر 255 H  مشخص گرديده است.

مي دانيم فضاي RAM  همه منظوره از 30H  تا 7FH  است كه با در اين برنامه از  30H  تا 41H را استفاده مي كرده ايم .

و از خانه15 25 راي كد گذاري استفاده كرده ايم .

قسمت اصلي و مهم برنامه هم قسمت كد خواني است كه اعداد ترسين شده در RAM  همه منظوره قرار گيرند آنگاه عدد وجود در اولين بايت را دو برابر كنيم در خانه R   O قرار مي دهيم . آنگاه اين عدد موجود در R 5   را به عنوان بيس تلقي كرده و خانه اي بالاO RAM  يكي يكي از آن كم كرده اگر كدي ايجاد نكرد صفر و اگر ايجاد كرد 1 و اين صفر و يك را در  خانه 15 25 ذخيره مي كند كه همان كد كارت است.

لازم به توضيح است كه منطق 2 برابر كردن به وسيله روش سعي و خطا بدست  آمده است . قسمت بعدي برنامه تبادل كاراكتر ها بين P  C  و ميكرواست .

ميكرو 5 كاراكتر e , d , c, b , a  را فرستد و P  C دو كاراكتر u , q  را مي فرستد .

كاراكتر q اي را كه P  C مي فرستد براي تست است كه آيا ارتباط برقرار است يا نه.

و كاراكتر u  را مي فرستد اين كه ميكرو كد ذخيره شده در خويش را براي P C  بفرستد. و كاراكترهاي e , d , c, b , a ارسال از ميكرو نيز به؟  رابطه يا عدم رابطه بين P C و ميكرو است.

 

فرادرس

درباره ی روح الله وکیل زاده

همچنین ببینید

از چه سایتی خرید کنم +فیلم

با سلام به دوستان امروز می پردازم که از چه سایت های خرید کنیم و …


پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code

قالب وردپرس
برای دریافت فایل ایمیل خود را وارد کنید .
Your Information will never be shared with any third party.
سلام دوست عزیز کد تخفیف را یاداشت کنید برای خرید خود