Micro

برنامه نویسی سیستم

 

 

 

 برنامه نویسی  ربات مسیر یاب

قبل از این که بحث برنامه نویسی رو شروع کنم باید یه سری تنظیماتی رو روی میکروتون و برنامه  انجام بدید  که تنظیم فیوز بیت های میکرو  و پرو گرامره J

ابتدا باید برنامه BASCOM AVR   رو تهیه یا دانلود کنید و بعد نصب و کرک اون این مبحث رو ادامه بدید

اول نحوه تنظیم پروگرامر رو توضیح میدم

اول برنامه رو باز کنید و بعد از منوی Option  گزینه Programmer  رو انتخاب کنید و بعد از اون صفحه ای باز میشه که باید نوع پروگرامرتون رو مشخص کنید که شما از لیست اون گزینه STK200/STK300 Programmer رو انتخاب کنید تا نوع پروگرامرتون رو بشناسه

تنظیم دوم

میکرو خود را به مدار پروگرامرتون وصل کرده و برق پروگرامرتون تامین کنید

وارد محیط برنامه BASCOM AVR  شوید و بعد از اون از منوی  File  گزینه New را انتخاب کنید

بعد از اون روی کلیک کنید و بعد از اون روی گزینه Manual Program  کلیک کنید و بعد از اون وارد محیطی شبیه محیط زیر میشوید که زبانه Lock and Fuse Bits  رو انتخواب کنید

 

و طبق تصویر بالا تنضیمات رو انجام بدید  و بعد از اون  روی کلید های  Write FSو Write FSH  کلیک کنید تا تنظیمات اعمال شود

حالا میکرو شما آماده برنامه نویسی شده

 

 

 

با سلام خدمت تمام بازديد كنندگان عزيز

بريم سر اصل مطلب كه برنامه نويسي بود

برنامه نويسي يك ربات مسير ياب معمولا يا با زبان برنامه نويسي Basic و يا با زبان برنامه نويسي C برنامه نويسي ميشه كه براي برنامه نويسي با زبان بيسيك از نرم افزار Bascom Avr و برنامه نويسي C از برنامه Codevision استفاده ميشه و من فعلا توي اين وبلاگ برنامه نويسي بيسك مقدماتي تا پيشرفته رو شروع ميكنم و دليل انكه اين زبان رو انتخاب كردم اين بود كه چون برنامه نويسي سي براي بعضي از بازديد كنندگان سخت و نا مفهومهو بيسك براي استارت كار راحت تره و بعدا هم سي رو شروع ميكنم ولي من توصيه ميكنم بعدا برنامه نويسي C++ رو شروع كنيد

شروع مبحث برنامه نويسي ( مقدماتي بيسك )

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

$ RegFile ="x"

x در اين مثال نوع ميكرو مورد استفاده شماست مثلاً

$RegFile ="M

32Def.Dat"

يا

$ Regfile ="M

16Def.Dat"

مثال اولي براي ميكروهاي سري اتمگا 32 هست و مثال دومي براي ميكرو هاي سري اتمگا 16 براي درك بهتر من اين مثال ها رو با 2 رنگ نوشتم توجه داشته باشيد كه بايد نام معرفي ميكرو تون رو داخل دابل كوتيشن " " قرارگيرد

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

$Crystal =

8000000

8000000

نوع كرستال شماست كه ميتونيد بنا به كريستالي كه داريد اونو تغيير بديد

مقدار پيش فرض رو همين مقدار 8000000

قرار بديد چون كريستال داخلي خود ميكرو 16 و 32 همين مقدار است ولي اگر از كريستال بيروني استفاده ميكنيد مقدار اون رو مطابق با كريستالدون تغيير بديد

توجه كنيد كه مقدار اين كرستال داخل دابل كوتيشن " " نمي باشد

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

' كوتيشن براريد كه متن شما سبز رنگ ميشه ماند مثال زير

 

' www.Robotic-Pro.blogfa.com

' Line Follower Programming

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

خوب فعلا بريد اينا رو ياد بگيريد تا پست بعدي

 

 

 

این  دستور برای تعریف نوع متغیر میباشد که انواع متغیر های عبارتند از :

Integer     è -32767 -> 32768

Byte è 255

Bit è 0 or 1 کوچکترین واحد حافظه که فقط مقدار 0 یا 1 میگیرد

Variant این برای مواقعی است که متغیر معلوم نیست از چه نوعیه

Booliean این برای مواقعی است که مقدار بر کشتی متغیر صحیح یا غلط باشه یعنی فقط مقدار درستس و نادرستی می پذیره

Long  این برای تعریف اعداد خیلی بزرگ تا چند رقم اعشار میباشد که الان دقیقا یادم نیست مقدار دقیقش و دقتش تا چند رقم اعشاره

String این برای تعریف متغیر هایی از نوع رشته ای میباشد مثلا میخواید داخل یه متغیر یه متن بریزید

و ....

 

مثال

اول از همه بگم که اون حرف هایی که در متغیر های زیر قرمز رنگ میباشند اسم خاصی نیستند م شما میتوانید هر نامی که مورد نظرتان است را جای گزین کنید تا توی برنامه نویسی از انا استفاده کنید

Dim  a  As Integer

در بالا ما متغیری تعریف کردیم به نام A و از نوع Integer  میباشد یعنی عدد صحیح  که مقدار -32767 تا 32768 را میتواند در خود جای دهد

Dim  s  As String

در این مثال ما متغیری به نام s  تعریف کردیم که از نوع رشته ای میباشد و فقط میتوان در آن رشته ای ریخت

 Dim  b As Byte

در مثال بالا ما یک متغیر از نوع Byte  تعریف کردیم به اسم b  که میتوان تا مقدار 255 را در اون ریخت

 

به همین ترتیب متغیر های مورد نیاز رو تعریف میکنیم

ولی ما در این برنامه نویسی بیشتر به Integer  و Byte  نیاز داریم

 

خوب ها میخویم تعریف کنیم که کدوم پورت ها ورودی یا خروجی باشه که به این ترتیب عمل میکنیم

Config  PortA = Input

Config PortD= OutPut

خوب ما در بالا تعریف کردیم که پین های پورت A به عنوان ورودی میکرو در نظر گرفته بشه و پین های پورت  D به عنوان خروجی در نظر کرفته بشه که من در بالا نام پورت ها رو با رنگ قرمز و سبز مشخص  کردم Input یعنی ورودی و OutPut  یعنی خروجی که ما میتونیم برای هر پورتی تعریف کنیم یا میتونیم پین های ورودی و خروجی رو به صورت دونه دونه تعریف کنیم که به ای صورته :

 

 

 

Config pina.0 =input

Config pina.1 = input

‘----------------------------

Config pinD.4 =Output

Config PinD.5 =Out Put

 D.5 یعنی پین شماره 5 از پورت D  مثال بلای سرش همین طور

 به همین منوال پین ها رو تعریف میکنیم

 

خوب حالا ما میخوایم که برنامه نویسی با 3 سنسور را را شروع کنیم که بدین صورت عمل میکنیم

 

Dim s1 As integer    ‘ Sensore samte rast   سنسور ها

Dim s2 As integer    ‘ Sensore Vasati

Dim s3 As integer    ‘ Sensore Samte Chap

‘===============================

Config pinA.0 = Input  ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

Config pinA.1 = Input   ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

Config pinA.2 = Input    ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

‘-----------------------------------

Config pinD.4 = Output    Port D ;Pin 4 --- > Ro Be Onvane Khorooji Dar Nazar Migiri

Config pinD.5  = Output

Config pinD.6  = Output

Config pinD.7  = Output

‘===============================

M1 Alias PinD.4

M2 Alias PinD.5

M3 Alias PinD.6

M4 Alias PinD.7

‘==================================

S1 = pinA.0

S2 = pinA.1

S3 = pinA.2

اون کد هایی که با رنگ سبز مشخص شده که اصلا ربطی به کد های بر نامه نداره و فقط جنبه توضیحی داره که در کار کرد برنامه تاثیری نداره برای این کار هم شما میتونید توی برنامه نویسی برای اضافه کردن توضیحات که بیشتر متوجه کد نویسی بشید و سر در گم نشید از این علامت در اول و بعد از اون توضیحات رو بنویسید که خود به خود سبز رنگ میشه

 

فکر نکنم دیگه جایی مبهم مونده باشه به غیر از چند خط آخری که توضیح میدم

دستور Alias میاد و اون اسمی رو که برای پینی که در جلوی اون تعریف کرید در نظر میگیره که توی برنامه میتونید اون پین رو با اون اسمی که براش تعریف کردید صدا بزنید مثلا اگه میخواید توی برنامه pina.0 رو صدا بزنی اسم معادل اون رو که M1 گذاشتی صدا میزنی

Port D هم که به عنوان خروجی تعریف کردیم که به درایور موتور وصل میشه و به اون دستور میده

S1 = pinA.0

این هم که معلومه S1  رو به عنوان سنسور شماره 1 که در بالا تعریفش کردیم که کدوم پینه رو در نظر میگیره که توی برنامه سنسور شماره 1 رو به این اسم میشناسم

 

 

در بیسیک یک دستور برای چک کردن شرطه که چک میکنه که آیا این شرط برقراره یا نه

اگه بود فلان کاری رو بکن و اگه نبود فلان کارو بکن

 

دستور شرط : If   . . .   Then

در غری اینصورت : Else

 

دستور بعدی هم حلقه تکراره :

Do   . . .  Loop

 

For   . . . Next

 دستور اولی حلقه تکرار بی نهایته و لی دستور دومی حلقه به تهداد مورد نظر شما اجرا میشه

 

خوب حالا برنامه نویسی رو شروع میکنیم

شرط های ما :

1 - اگر سنسور وسطی ما روی خط سیاه بود به جلو حرکت کن

2 - اگر سنسور سمت چپ روی خط بود موتور سمت چب خاموش و موتور سمت راست روشن باشد

3 - اگر سنسور سمت راست روی خط بود موتور سمت راست خاموش و سنسور سمت چب روشن باشد

 این شرط ها باید مرتباً تکرار و چک شود

خوب حالا الگوریتم های بالا رو به کد نویسی تبدیل میکنیم

برای تبدیل دستورات مورد نیاز ما یک حلقه تکرار بینهایت و دستود چک کردن شرطه که به صورت زیر مینویسیم

اول از همه یاد آوری کنم که M1,M2,M3,M4 موتور های ما هستند یعنی 1و 2 موتور سمت راست و 3و 4 موتور سمت چپ  و S1,S2,S3 سنوسور های ما هستند که  S1 سنسور چپ  و S2 سنسور وسطی و اون یکی هم سنسور سمت راست ما است

 

 

Do

If S2=1 Then

M1= 1

M2= 1

M3= 1

M4= 1

ElseIf S1=1 Then

M1= 1

M2= 1

M3= 0

M4= 0

ElseIf S3=1 Then

M1= 0

M2= 0

M3= 1

M4= 1

End If

Loop

1 جواب مثبت و 0 جواب منفی

 

 

 

سلام بر تمام کسانی که به الکترونیک علاقه دارن

 

 

 میکروکنترلر چیست؟

میکروکنترلر به سیستم تک تراشه ای گفته میشود که دارای

1- ریز پردازنده

2- حافظه برنامه

3- حافظه داده

4-و یک سری ورود/خروجی (I/O)

باشد.میکروکنترلرهایی که هم اکنون در بازار کشور ما به راحتی یافت میشود و همچنین

 کار برد زیادی هم دارند به سه گروه زیر تقسیم میشود.

 

1-8051از شرکت Atmel

2-PICاز شرکت MICRO CHIP

3-AVRاز شرکت Atmel

 

AVR وPIC نصبت به 8051از تکنولوژی ساخت بالاتری بر خوردار هستند و همچنین

 یک سری امکانات دیگری از قبیل EEPROMوADCداخلی سرعت بالاویک سری

امکاناتدیگر که انشاالله بعد از آشنائی با 8051 به آنها اشاره خواهد شد.

 

 

 ساختمان داخلی میکروکنترلرها:

مکروکنترلرها متشکل از یک ریزپردازند،حافظه،و درگاه ورودی وخروجی(I/O) هستند

.

که ریز پردازنده خود ار دو بخش پردازنده مرکزی(CPU)و واحد کنترل(CU) تشکیل

شده است.

 

 :CPUدر واقع مغز یک پردازنده  و محلی برای انجام محاسبات ریاظیو منطقی میباشد.

 

CU :عملیات داخلی ریز پردازنده را کنترل میکند و سیگنالهای کنترلی رابه سایر بخشهای ریزپردازنده ارسال میکند.

 

حافظه:حافظه بخش مهمی ازیک میکروکنترلر است که خود به دو بخش حافظه برنامه و

 حافظه داده تقسیم میشود حافظه برنامه تمام کدهای برنامه را در خود ذخیره میکند این نوع

 حافظه معمولاًاز نوع فقط خواندنی (ROM) می باشد.حافظه داده از نوع  خواندن/نوشتن

(RAM)می باشد

 

 درگاههای ورودی/خروجی:درگاههای ورودی/خروجی به سیگنالهای بیرونی امکان میدهد

که با میکرو در ارتباط داشته باشد.

 

این درگاهها(I/O)به صورت گروههای 8 بیتی دسته بندی میشود و به هرگروه نام خاصی   اختصاص داده میشود 89C51 دارای 4 درگاه ورودی /خروجی 8بیتی با نام های P0.P1

.P2.P3 میباشد.

 

که هر یک از این گروههای 8 بیتی را یک پورت مینامند پس ۸۹C51ارای 4 پورت 8

بیتی است که هر مکدام از آنها به صورت جدا گانه قابل دست رسی است

 

  در این بخش تعدادی از خانواده معروف 8051 به شما معرفی میکنم  

      

شماره آی سی

حجم حافظه برنامه 

حجم حافظه داده

   تایمر/شمارنده

    I/O 

تعداد PIN

AT89C1051

1K  flash

64 RAM     

1       

15   

20    

AT89C2051

2K flash

128 RAM     

2       

15   

20    

AT89C51

4K flash

128 RAM     

2      

32   

40    

AT89C52

8K flash

256 RAM      

3      

32   

40    

8051AH

4K ROM

128 RAM      

2      

32   

40    

87C51H

4K EPROM

128 RAM     

2      

32   

40    

87C52

8K EPROM

256 RAM     

3      

32   

40    

87C54

16K EPROM

256 RAM     

3      

32   

40    

87C58

32K EPROM

256 RAM     

3      

32   

40    

                                        

 

 

 

 

تاریخچه ی میکرو پرسوسور و کاربرد

مقدمه:
تغییر سیستم‌های مکانیکی و برقی به سیستم‌های الکترونیکی در بیشتر تکنولوژی‌های عمده، سیستم‌های الکترونیکی جایگزین بخش‌های مکانیکی شده و از آن پیش افتاده‌اند. سیستم تلفن در اصل مجموعه‌ای از اجزای مکانیکی (یعنی سیستم شماره‌گیر) بود که در آن حرکت فیزیکی به علائم الکتریکی تبدیل می‌شد. با وجود این، امروزه تلفن تماماً الکترونیکی است ؛ امروزه چاپ الکترونیکی شده است. تلویزیون، کامپیوتر و بسیاری از ابزارهای دیگر نیز که در زندگی روزمره از آن استفاده می‌کنیم همین گونه‌اند. سیستم‌های الکترونیکی مسلماً یک سره بر تکنولوژی فکری متکی هستند زیرا محاسبات ریاضی و نوشتن نرم‌افزار و برنامه‌ها کارکرد آنها را ممکن می‌گرداند.

یکی از برجسته‌ترین تغییرات، کوچک شدن وسایلی است که هادی برق هستند یا تکانه‌های برقی را منتقل می‌کنند. وسایل اولیه مانند لامپ‌های خلاء که در رادیوهای قدیمی دیده می‌شود حدود 5 تا 10 سانتی‌متر ارتفاع داشتند. اختراع ترانزیستور تغییری شگرف را به دنبال داشت: توانایی تولید وسایل میکروالکترونیک با صدها کارکرد از جمله کنترل، تنظیم، هدایت و حافظه که میکروپرسسورها به اجرا درمی‌آورند. در آغاز هر تراشه 4 کیلو بایت حافظه داشت که بعدها به 8، 16، 32، 64 کیلو بایت افزایش یافت و امروزه سازندگان میکروپروسسور تراشه‌هایی تولید می‌کنند که ظرفیت ذخیره‌سازی آنها چندین مگابایت یا حتی گیگا (میلیارد) بایت است.
امروزه یک تراشه‌ی ریز سیلیکنی(میکروپروسسور) حاوی مدارهای الکترونیکی دارای صدها هزار ترانزیستور و همه‌ی اتصالات لازم و بهای آن فقط چند دلار است. مداربندی روی این تراشه می‌تواند خود میکروکامپیوتری باشد با ظرفیت پردازش ورودی / خروجی و حافظه‌ی دستیابی تصادفی و... .


اولین میکروپروسسور:

میکروپروسسور: پس از پیدایش الکترونیک دیجیتال و جنبه های جذاب و ساده طراحیهای دیجیتال و کاربردهای فراوان این نوآوری، با تکنولوژیهای SSI , MSI ، ادوات الکترونیک دیجیتال، مانند قطعات منطقی به بازار ارائه شد. شرکت تگزاس اولین میکروپروسسور 4 بیتی را با فن آوری 2SI طراحی و عرضه نمود که بعنوان بخش اصلی ماشین حساب مورد استفاده قرار گرفت و این گام اول در پیدایش و ظهور میکروپروسسورها بود.

BIOSوکاربرد میکروپرسسوردر کامپیوتر:


یکى از متداول ترین کاربردهاى Flash memory در سیستم ابتدایى ورودى ‎/ خروجى (basic input/output system) کامپیوتر است که معمولاً به BIOS شناخته مى شود. وظیفه BIOS که تقریباً روى هر کامپیوترى وجود دارد،آن است که مطمئن شود تمام قطعات و اجزاى افزارى یک کامپیوتر در کنار یکدیگر به درستى کار مى کنند . هر کامپیوترى در قلب خود براى پردازش درست اطلاعات شامل یک میکروپروسسور است . میکروپروسسور قسمت سخت افزارى کار است. براى انجام درست کار ، به نرم افزار نیز احتیاج است. هر کاربرى با دو نوع نرم افزار آشنا است:سیستم عامل و نرم افزارهاى کاربردى. BIOS نوع سوم نرم افزارى است که کامپیوتر شما براى
اجراى درست به آن نیازمند است.
BIOS چه کارى انجام مى دهد: نرم افزار BIOS مجموعه اى از وظایف مختلف را بر عهده دارد، ولى مهم ترین آنها اجراى سیستم عامل است. وقتى یک کامپیوتر روشن مى شود، میکروپروسسور سعى مى کند اولین دستورات را اجرا کند. ولى نکته در این است که این دستورات باید از جایى به میکروپروسسور اعلام شود. گرچه سیستم عامل روى هارد وجود دارد، ولى میکروپروسسور نمى داند اطلاعات در آنجاست. BIOS دستورات اولیه را براى این دسترسى به میکروپروسسور اعلام مى کند.

کاربرد میکروپروسسوردرانواع کارتهای هوشمند :

کارتهای هوشمند ((DRAC|TRAMSکارتهایی هستند که از یک قسمت پلاستیکی تشکیل گردیده اند که در داخل آنها یک چیپ میکروپروسسور ( PIHCROSSECORPORCIM) قرار دارد و اطلاعات لازم روی این چیپها قرار می گیرند. میزان و تنوع اطلاعاتی که در کارت ذخیره می گردد، به توانایی چیپ داخل آن بستگی دارد.
انواع مختلف کارتهای هوشمند که امروزه استفاده می شود، کارتهای تماسی ، بدون تماسی و کارتهای ترکیبی هستند.
کارتهای هوشمند تماسی بایستی در داخل یک کارت خوان قرار داده شوند. این کارتها یک محل تماس روی صفحه دارند که تماسهای الکترونیکی را برای خواندن ونوشتن روی چیپ میکروپروسسور )زمانی که در داخل کارت خوان قرار دارد(، فراهم می آورد. نمونه این کارتها در زندگی روزمره بسیار به چشم می خورد.
کارتهای بدون تماس ، یک آنتن سیم پیچی درون خود دارا هستند که همانند چیپ میکروپروسسور درداخل کارت ، گنجانده شده است . این آنتن درونی اجازه انجام ارتباطات و ردوبدل کردن اطلاعات را فراهم می آورد. برای چنین ارتباطی ، بایستی علاوه بر اینکه زمان ارتباطکاهش یابد، راحتی نیز افزایش پیدا کند..
کارتهای ترکیبی ، به عنوان هم کارتهای تماسی و هم کارتهای بدون تماس عمل می کنند و در حقیقت داخل این نوع کارتها هم چیپ الکترونیکی و هم آنتن وجود دارد وچنانچه کارت خوان وجود داشته باشد از کارت خوان می توان استفاده کرد و چنانچه وجود نداشته باشد، از آنتن کارت می توان ارتباط را برقرار کرد.
شاید این سوال پیش آید که چرا از کارتهای هوشمند )کارتهای حافظه دار( به جای کارتهای مغناطیسی استفاده می شود؟
پاسخ این است که ذخیره سازی اطلاعات در کارتهای هوشمند و میکروپروسسور دارهزار مرتبه بیشتر ازکارتهای مغناطیسی است . مزیت دیگر اینکه این کارتها از سرعت ذخیره سازی بالا ومکانیسم های ایمنی قویتری برخوردارند.


میکروپروسسور درکنترل فرکانس :


520B یک دستگاه فرکانس متوسط است که بوسیله میکروپروسسور کنترل می شود، دارای نمایشگر LCD یا (Liquid Crystal Display و دو خروجی می باشد.
کنترل های تاچ سوییچ و نمایشگر LCD این امکان را به استفاده کننده می دهد که با سرعت و دقت پارامترها را انتخاب کرده و بر روی نمایشگر LCD به وضوح مشاهده نماید. تراپیست به سرعت با کنترل ها آشنا شده و از سهولت استفاده در درمانهای کلینیکی لذت خواهد برد.


خصوصیات منحصر به فرد :

520B مانند هر دستگاه اینترفرنشیال می تواند به صورت دو الکترودی، چهار الکترودی، چهار الکترودی با سیستم وکتوراسکن مورد استفاده قرار گیردوآن به خاطر کنترل آن به وسیکه ی میکروپروسسور است. اما آنچه این دستگاه را متمایز می سازد جریان های کاملاً اختصاصی است.

میکرو پروسسور در دستگاههای کارت خوان :
این سیستم با استفاده از کارت-بلیت هوشمند بدون تماس قادر به ثبت اعتبار مالى و دیگر اطلاعات دارنده کارت مى‌باشد. و موارد استفاده ی آنها در این مکانهایی است .
· مترو،· اتوبوسرانى،· عوارض اتوبان
· تعاونى فرهنگیان،· تسهیلات رفاهى و بُن کارمندى
· مراکز تفریحى و باشگاههاى ورزشى
· شناسنامه پزشکى بیمار
· سلف سرویس دانشگاهها و ادارات
· پارکینگها
· کارت تلفن،· پارکومتر،· جایگاههاى سوختگیرى

مشخصات سخت‌افزاری دستگاه:


· میکروپروسسور: 16 بیت
· پردازنده رمزنگار کمکى
· ارتقاء خودکار نرم‌· افزارى با فلاش بایوس (منحصر بفرد در ایران)
· حافظه: 512Kb اصلى و 512Kb براى Bios
· بازسازى هوشمند اطلاعات کارت
· سازگارى ساختار کارت با استاندارد بین‌· المللى
· ذخیره‌· سازى دوگانه اطلاعات براى بازیافت اضطرارى
· رابط: RS232, RS422 و مودم ‏(RS485 بنا به سفارش)
· پورت چاپگر
· مجهز به UPS داخلى جهت کار هنگام قطع برق
· باترى پشتیبان براى نگهدارى اطلاعات
· 2 رله براى کنترل چراغ سبز و قرمز (و آژیر)
· نمایشگر با کیفیت‌· FSTN داراى لامپ‌· پس‌· زمینه‌·
· امکانات جانبی: اتصال به راه‌· بند،· نمایشگر بزرگ بیرونى،· صفحه‌· کلید بیرونى
مشخصات کارت:
· چیپ MIFARE
· ابعاد: ISO 7816
· حافظه: 1024 بایت ‎(*8 BIT) EEPROM
· عمر خدماتى چیپ: 100000 بار نوشتن،· 10 سال حفظ اطلاعات

 

برنامه نویسی سخت افزار به کمک ویژوال سی

(596 کلمه در این مقاله وجود دارد)
(8255 بار مطالعه شده است)   نسخه چاپی

یه مدت بود که دنبال این میگشتم که چطوری توی وی بی میشه با پورتها و سخت افزارهای دست ساز ارتباط برقرار کرد .بالاخره پیداش کردم و برای شما دوستان می زارمش اینجا !!

فقط باید ویژوال سی هم داشته باشید تا بتونید DLL مربوطه رو کامپایل کنید !





شاید تابحال خواسته باشید از طریق پورت پرینتر و یا پورت سریال یا باس ISA با سخت افزاری که خودتان ساخته اید ارتباط برقرار کنید . برای این کار شما نیاز به برنامه ای دارید که بوسیله دستورات I/O با سخت افزار شما ارتباط برقرار کند . چون ویژوال بیسیک دارای دستورات کار با پورتهای I/O نیست بایستی توسط ویژوال سی یک Dll برای کار با این پورتها بسازیم و تو وی بی فایل کامپایل شده رو به طور مشابه توابع آی پی آی به کار بگیرید.

DLL و کاربردهای آن


اگر شما در DOS برنامه نویسی کرده باشید با دستورات INPUT و OUPUT در زبان QuickBasic و با دستورات inp و outp در C آشنا هستید . این توابع در VB پیاده سازی نشده اند . این توابع برای سازندگان سخت افزار برای PC و نیز برنامه نویسان سیستم حیاتی هستند زیرا به شما اجازه خواندن از پورت و نوشتن به پورت را می دهند . برای ایجاد امکان استفاده ار پورت در VB باید از Dll یا کتابخانه های دینامیک استفاده کنیم . Dll ها به VB اجازه می دهند تا یک کد نوشته شده به یک زبان دیگر را در زمان اجرا ( بطور دینامیک ) به برنامه لینک شود . چون ویژوال سی دارای توابع خواندن و نوشتن پورت است بنابراین ما از این زبان برای ساخت Dll موردنظر استفاده می کنیم .
نوشتن DLL در VC
برای ساخت Dll ما بایستی دو فایل را ایجاد کنیم . اولین فایل یک فایل define یا DEF است و دومین فایل ، یک فایل C++ source یا CPP می باشد . هر دو فایل را می توانید توسط Notepad ایجاد کنید . لیست کد این دو فایل بصورت زیر است :
پس از نوشتن این دو فایل آنها را در یک دایرکتوری قرار دهید ( مثلاً C:port ) و سپس وارد محیط ویژوال سی شوید . از منوی File مورد New را انتخاب کنید و در کادری که ظاهر می شود در قسمت Projects مورد Win32 Dynamic-Link Library را انتخاب کنید . همچنین در سمت راست همان صفحه در کادر Project name عبارت port را وارد کنید و در کادر Location عبارت C:portport را وارد کنید و آنگاه OK را کلیک کنید .



Port.def file :

LIBRARY Port
DESCRIPTION DLL FOR I/O PORT
EXPORTS
Outp @1
Inp @2


Port.cpp file :

include "conio.h"x#
short _stdcall Outp(int PortAddress,int PortData){
short Dummy;
Dummy=(short)(_outp(PortAddress,PortData));
return(Dummy);
;}
short _stdcall Inp(int PortAddress)
{
short PortData;
PortData=(short)(_inp(PortAddress));
return(PortData);
;}


در مرحله بعدی بایستی فایل های def و cpp را به workspace ایجاد شده اضافه کنیم . برای اینکار در برگه FileView روی عبارت Port files کلیک راست کرده و مورد Add Files to Project را انتخاب کنید .




در کادری که ظاهر می شود فایل port.cpp را انتخاب کنید . با همین روش فایل port.def را نیز به پروژه اضافه نمائید .
حال وارد منوی Build شده مورد Build port.dll را انتخاب کنید تا dll مورد نظر ساخته شود .




dll ساخته شده را در دایرکتوری system ویندوزتان کپی کنید .
استفاده از Dll در ویژوال بیسیک
برای استفاده از توابع dll ساخته شده باید ابتدا توابع Out و In را declare کنید :

Private Declare Function Outp Lib "port.dll" (Byval PortAddress as Integer,Byval PortData as Integer) as Integer
Private Declare Function Inp Lib "port.dll" (Byval PortAddress as Integer) as Integer

حال در برنامه تان برای نوشتن به یک پورت از دستور زیر استفاده کنید :



Dummy=Outp(port_number,data)
و برای خواندن از پورت از دستور زیر استفاده کنید :

Portvalue=Inp(port_number)

منبع:
ایران ویج