تحقیق درباره بررسي چكونگي عملكرد سيستم باركد خوان

دانلود تحقیق و مقالات رایگان با عنوان تحقیق درباره بررسي چكونگي عملكرد سيستم باركد خوان

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

ـ هدف كلي ساخت

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

ـ شرح IC MAX 232

ـ شرح استاندارد RS 232

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

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

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

پيش گفتار :

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

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

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

اين مجموعه را به اساتيد گرانقدر جناب استاد بهرامي زاده تقديم (مي نمايم ) .

وه كه قبول افتد و در نظر آيد.

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

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

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

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

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

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

ـ شرح ميكروكنترلر 8051 :

لازم به توضيح است به جهت جلوگيري از پراكندگي موضوعات و مفاهيم شرح سخت افزار سيستم ، اي سي Max 232 استاندارد Rs232 و برنامه نرم افزاري در داخل همين بخش توضيح داده شده است .

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

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

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

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

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

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

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

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

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

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

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

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

در سال 1981شركت اينتل ميكروكنترلري به نام 8051 را معرفي كرد اين ميكروكنترلر داراي 128 بايت RAM ، K 4 بايت ROM، دو تايمر ، يك پورت سريال و چهار پورت موازي ( هر يك 8 بيت ) بودكه همه آنها در يك تراشه تعبيه شده بودند زماني به آن (سيستم در يك تراشه ) را مي گفتند . 8051 يك پروسسور 8 بيت است . يعني CPU هر بار مي تواند فقط روي 8 بيت داده كار كند. داده هاي بزرگتر از 8 بيت بايد به قطعات 8 بيت بشكنند و سپس بوسيله CPU پردازش شوند 8051 كلاً داراي چهار پورت I / O با عرض 8 بيت است گر چه 8051 مي تواند حداكثر 64K حافظه ROM در تراشه داشته باشد بسياري از سازندگان فقط K 4 بايت را در تراشه گذاشته اند .

8051 عضو اصلي خانواده 8051 است Intel آنرا MCS – 51 مي نامد.

Feature Quantity

ROM 4K bytes

RAM 128 bytes

Timer 2

I/O Pins 32

Serial Port 1

Interrupt Sources

دو عضو ديگر خانواده 8051 و 8058 و 8031 است.

AT89C1 از شركت Atmel :

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

AT89C51

ROM

RAM

I/ O

پايه هاي

تايمر

وقفه

Vcc

4K

128

32

2

6

5 V

8051 با سرعتهاي مختلف Atmel

پايه ها سرعت شماره قطعه

AT89C51 – 12 PC 12 M Hz 40

AT89C51 – 16 PC 16 M Hz 40

AT89C51 – 20 PC 20 M Hz 40

شكل 8051 Ic

شرح پايه هاي 8051

ـVcc پايه 40 ولتاژ تغذيه رابراي تراشه فراهم مي كند . ولتاژ منبع +5V است .

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

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

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

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

ـ : اعضا خانواده 8051 مانند 89C51 , 8751 يا DS 5000 همگي با ROM در تراشه براي ذخيره برنامه ارائه مي شوند. در اين حالت پايه به Vcc وصل مي گردد. به معني دستيابي بيروني است.

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

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

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

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

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

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

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

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

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

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

پورت 3 : اين پورت نيز داراي 8 پايه است ( 10 الي 17) مي توان آنرا به عنوان ورودي يا خروجي برنامه ريزي كرد. نيازي به مقاومت بالاكش ندارد.
ديگر پورت 3
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

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

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

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

اصول تبادل سريال:

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

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

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

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

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

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

استاندارهاي Rs 232 :

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

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

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

DB – 9 از استاندارد I / O سريال كه فقط 9 پايه دارد توسط IBM معرفي شد به منظور ايجاد انتقال سريع و قابل اطمينان داده بين دستگاها در انتقال بايد هماهنگي وجود داشته باشد .

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

رابطه پلاك و پايه DB–9 سيگنالهاي و پايه IBMPC

توصيف

پايه

تشخيص حامل داده DCD

1

داده رسيده RXD

2

داده ارسال شده TXD

3

پايانه داده آماده DTR

4

سيگنال زمين

5

مجموعه داده آماده

6

تقاضاي ارسال

7

آمادگي براي ارسال

8

تشخيص دهنده

9

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

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

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

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

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

DTE DTE Text Box: TXD RXD Text Box: TXD RXD

( ارتباطات DTE – DCE و DTE – DTE )

اتصال 8051 به Rs232

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

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

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

MAX232 :

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

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

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

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

برنامه نويسي تبادل اطلاعات سريال در 8051

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

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

3 كار به كمك تايمر 1 انجام مي شود. وقتي كه از تايمر 1 براي تنظيم ميزان باود

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

Text Box: 110 150 300 600 1200 2400 4800 9600 19200 ميزان باود Pc

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

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

ميزان باود

( دهي هي ) ­TH1‌‌

­TH1‌ (‌ شانزده شانزدهي )

9600

-3

FD

4800

-6

FA

2400

-12

F4

1200

-24

E8

توجه : XTAL = 11 / 0592 MHZ

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

ثبات كنترل سريال SCON .

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

جدول ثبات كنترل پورت سريال SCO

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

Text Box: SM1 SM0 0 0 1 0 0 1 1 1 مد 0 سريال

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

مد 2 سريال

مد 3 سريال

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

REN : بيت REN ( فعال ساز در يافت ) بيت D4 از ثبات SCON است اين بيت SCON.4 هم خوانده مي شود چون SCON يك ثبات آدرس پذير بيتي است وقتي بيت REN بالا باشد اجازه مي دهد تا 8051 داده را از پايه RXD در 8051 دريافت كند . در نتيجه اگر بخواهيم داده را ارسال يا دريافت كنيم بايد REN، 1 باشد با REN=0 گيرنده غير فعال مي شود REN =1 يا =0REN به ترتيب با دستورات SETB SC. N 4 و CLRSCON- 4حاصل مي شوند.

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

RI : ( در يافت وقفه) بيت D0 از ثبات SCON است اين بيت هم پرچم مهم ديگري از ثبات SCON است وقتي كه 8051 داده سريال را از طريق RXD دريافت مي كند بيت هاي شروع و ختم را حذف و بايت باقميانده را در ثابت SBUF قرار مي دهد سپس بيت پرچم RI را به علامت دريافت داده بالا مي برد و بايد قبل از محو شدن برداشته شود.

برنامه نويسي 8051 براي ارسال سريال داده

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

جدول بردار وقفه براي 8051

پايه

مكان ( hex ) ROM

وقفه

9

0000

بازنشاني

P3.2 (12)

0003

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

000B

وقفه تايمر ( TFO)

P3.3 (13)

00B

وقفه 1 سخت افزاري بيروني ( INT1)

00B

وقفه تايمر1 ( TF1)

0023

وقفه سريال تبادل داده

( T1, ­R1 ) Com

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

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

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

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

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

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

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

شش وقفه در 8051

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

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

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

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

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

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

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

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

D0 D7

EA

– –

ET2

ES

ET1

EX1

ET0

EX0

EA IE07 اگر EA=0 باشد هيچ وقفه اي تصديق نمي شود . اگر EA= 1 باشد هر وقفه اي

جداگانه با تنظيم بيت مربوطه اش فعال يا غير فعال مي گردد.

– – IE.6 پياده سازي نشده و براي آينده رزرو شده است

ETZ IE.5وقفه سر ريز تايمر 2 رافعال يا غير فعال مي نمايد .

ES IE.4 وقفه پورت سريال را فعال يا غير فعال مي كند .

ET1 IE.3 وقفه سرريز تايمر 1 را فعال يا غير فعال مي كند .

EX1 IE.2 وقفه 1 بيروني را فعال يا غير فعال مي نمايد .

ET0 IE.1 وقفه سرريز تايمر صفر را فعال يا غير فعال مي نمايد .

EX0 ­IE.0 وقفه صفر بيروني را فعال يا غير فعال مي كند .

ثبات IE ( فعال ساز و قفه )

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

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

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

2 ـ اگر EA=1 باشد، وقفه ها فعال شده و هنگامي كه بيت هاي مربوطه به هر وقفه در IE فعال گردد به آن وقفه پاسخ داده خواهد شد اگر EA =0 باشد به هيچ وقفه اي پاسخ داده نميشود حتي اگر بيت هاي مربوطه IEدر سطح بالا باشند.

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

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

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

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

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

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

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

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

ثبات TCoN از نوع آدرس پذير بيتي است . پس از ريست هر دو IT1 , IT0 در منطق صفر هستند. به اين معني كه وقفه هاي سخت افزاري پايه هاي INT1 , INT0 به سطح حساس هستند با بالا بردن . بيت هاي IT1 , IT0 كه با دستوراتي چون SET B TcoN .2 , SET B TCON.oانجام مي شود وقفه هاي سخت افزاري بيروني INT1 , INT0 سيگنال هاي حساس به لبه خواهند شد.

D0 D7

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1 TCON.7 پرچم سرريز تايمر 1 . هنگام سرريز تايمر / شمارنده 1 به طور سخت افزاري 1 مي شود . با هدايت پردازنده به روال سرويس وقفه اين بيت پاك مي شود .

TR1 TCON.6 بيت كنترل راندمان تايمر 1 به طور نرم افزاري نشانده / پاك مي شود تا تايمر / شمارنده 1 را روشن / خاموش كند .

TF0 TCON.5 پرچم سرريز تايمرصفر

TR0 TCON.4 بيت كنترل راندن تايمر صفر

IE1 TCON.3 پرچم لبه وقفه بيروني به وسيله CPU هنگام تشخيص لبه وقفه بيروني ( گذر H به L ) نشانده مي شود . وقتي كه وقفه پردازش شد به وسيله CPU پاك مي گردد .

IT1 TCON.2 بيت كنترل بايت وقفه 1 ‌به صورت نرم افزاري نشانده / پاك مي شود تا حساسيت به لبه پايين رونده / سطح پايين وقفه بيروني را مشخص نمايد .

IE0 TCON.1 پرچم لبه وقفه بيروني صفر . هنگام تشخيص لبه (H به L ) به وسيله CPU نشانده مي شود .

IT0 TCON.O بيت كنترل بابت وقفه صفر

( تايمر شمارنده ) ثبات ( بيت آدرس پذير )

( تايمر شمارنده ) ثابت ( بيت آدرس پذير )

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

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

آي سي 8951

آي سي LM324

آي سي MAX232

آي سي 7404

رگولاتور 7805

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

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

ـ ديود 4148

ـ BUZZER

ـ كريستال 12MHz

ـRs232 ( سوكت )

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

ـ يك كليد فشاري براي ريست .

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

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

ديود با ياس V 6/0 دارد و ترانزيستور off است و LM 324 كه يك مدار مقايسه گر اكتيولو است غيرفعال است زيراولتاژ پايه مثبت آن از ولتاژپايه منفي آن بزرگتر است پس مقايسه گر در حالت غير فعال است.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نرم افزار دوم كه به كمك C‌نوشته شده است به منظور مچ كردن بين PC و ميكرو است .

و مهمترين تابعي كه در اينجا مورد استفاده قرار گرفته است تابع bioscom است . اين تابع وظيفه مهم مچينگ را به عهده دارد .

تابع ديگر status است كه لود عدد 16 بيتي است . كه ما فقط از بيت DATA Ready آن استفاده كرديم وبقيه را ماكس كرديم .

Vegaf Come كه تابعي فارسي ساز است .

Home : شكل ساز است

بررسي چكونگي عملكرد سيستم

باركد خوان