متغیرها آرایه ها و رشته ها مقدار دهی 2

قسمت دوم

متغیرها آرایه ها و رشته ها مقدار دهی 2

انواع داده ها (متغیر یا همون ثبات ها):

Type                      Size (Bits)               Range

 

Bit                         1                             0 , 1

char                       8                           -128 to 127

unsigned char                     8                            0 to 255

signed char              8                           -128 to 127

int                          16                          -32768 to 32767

short int                  16                           -32768 to 32767

unsigned int             16                           0 to 65535

signed int                16                          -32768 to 32767

long int                   32                          -2147483648 to 2147483647

unsigned long int      32                           0 to 4294967295

signed long int          32                          -2147483648 to 2147483647

float                       32                          ±1.175e-38 to ±3.402e38

double                    32                          ±1.175e-38 to ±3.402e38

 

برای تعریف یک متغیر ابتدا نوع داده (Type) و سپس نام متغیر را می نویسیم:

  متغیر ali از نوع bit بیت Bit  ali; //

متغیر ali از نوع char و 8 بیتی است char  ali; //

بعد از تعریف نام متغیر حتما علامت ; را باید قرار داد. برای مقدار دهی اولیه یک متغیر به دو صورت می تونم این کار رو انجام بدیم.

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

Char   smgh;      Char   smgh;                  Char   smgh;

smgh=0x1E;      smgh=0b00011110;        smgh=30;

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

ادامه نوشته

مقدمات و اصول و قوانین زبان سی C 1

قسمت اول

مقدمات و اصول و قوانین زبان سی C 1

در زبان C برای نوشتن یک توضیح در کنار دستورات و یا در هر محل دلخواه به دو روش می توانیم این کار رو انجام بدیم. 1) اگر توضیحات فقط در یک سطر هست از علامت //  در ابتدای توضیخات می نویسیم. مثال: //MC8051.blogfa.com این عبارت یک توضیح هست نه دستور سی پس برای اینکه کامپایلر متوجه بشه که این یک دستور نسیت باید به این صورت اونو بنوسیم.

2) اگر توضیحات بیشتر از یک سطر شد باید در اولین سطر عبارت /* را نویسییم و در آخرین سطر هم عبارت */ را بنویسیم. مثال:

/* WEB: MC8051.blogfa.com

Email: mgh8051@gmail.com

designer: Seyed mohsen ghasemian */

ساختمان یک برنامه زبان C :

برای نوشتن یک برنامه سی ابتدا باید توابع مورد نیاز را فراخوانی کنیم و بعد از اون معرفی متغییرها و بعد هم تابع اصلی (main) را باید بنویسیم. در یک برنامه زبان سی تابع main لازم و ضروری است یعنی یه جورایی حتما باید باشه (ثابته). و یه نکته مهم اینکه در زبان سی بین حروف بزرگ و حروف کوچک تفاوت هست یعنی اگر شما می تونید یه متغییر با اسم a داشته باسید و یه متغیر دیگه با اسم A داشته باشید و کاملا هم معتبر هست یعنی کامپایلر خطا نمی گیره و اونو به عنوان دو متغیر جدا و مجزا در نظر می گیره. که در اینجا یه مثال میزنیم:

ادامه نوشته

آموزش AVR به زبان سی C

مقدمه

از امروز می خوام آموزش میکروکنترلر AVR به زبان C (سی) رو شروع کنم الیته خودم هم تازه زبان سی رو شروع کردم، انشاء الله به کمک هم یه چیزهایی من میگم شما استفاده می کنید و یه چیزهایی هم شما میگید من استفاده می کنم. تا این زبان قدرتمند رو باهم دیگه یاد بگیریم.

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

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

ادامه نوشته

اندازه گیری دما توسط سنسور آنالوگ LM35

با عرض سلام خدمت دوستان

این هم یه پروژه خوب برای یادگیری و کار کردن با  مبدل آنالوگ به دیجیتال AVR  همچنین طریقه استفاده و راه اندازی و برنامه نویسی سنسور LM35 که امیدوارم به کارتون بیاد.

www.mc8051.blogfa.com

تنظیمات ADC در بیسک

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

 Reference ولتاژ مبنا ای می باشد میکرو نسبت آن ولتاژ آنالوگ را به دیجیتال تبدیل می کند.

Reference = Internal :

ادامه نوشته

برنامه شبیه ساز قدرتمند پروتیوس  Proteus 7.6 آخرین ورژن

جدید ترین و آخرین ورژن نرم افزار قدرتمند پروتیوس Proteus 7.6 این ورژن از ورژن های قبلی متفاوت تر است. حتما دانلود کنید.

 

برنامه شبیه ساز قدرتمند پروتیوس  Proteus 7.6 آخرین ورژن

برای دانلود به ادامه مطلب بروید

نظر هم یادتون نره

ادامه نوشته

شروع مجدد

با عرض سلام خدمت دوستان

تقریبا یکسالی هست که وبلاگ رو آپدیت نکردم اون هم به خاط کنکور بود. ...

اشاء الله بزودی دوباره شروع می کنیم.

متاسفانه تو این یک سال برنامه نویسی کار نکردم و خیلی از دستورات و مسائل دیگه یادم رفته مخصوصا در مورد ۸۰۵۱ که اگه بتونم به سولات ۸۰۵۱ شما جواب خواهم داد و اگر نه دیگه ببخشید.

از این به بعد تمرکز ما بیشتر روی برنامه نویسی AVR به زبان بیسیک خواهد بود. و بزودی با مثال ها و نکات آموزشی خوب میام.

فقط نظر یادتون نره

با تشکر فراوان

وقفه در AVR و انجام دو كار همزمان

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

در اين مثال هدف من اين كه يه برنامه اي بنويسيم كه ميكرو يه كار ثابت داشته باشه يعني يه كاري رو مدام انجام بده و يك ثانيه شمار ديگه رو هم بتونه كنترل كنه. در اين برنامه ما از يك LCD استفاده كرديم كه كه دو سطر داره در سطر اول نوشتيم WORK1 و در سطر دوم هم نوشتيم WORK2 كه اولي همون كار ثابت ميكرو ميشه يعني هر 300 ميلي ثانيه يك شمارش انجام ميده و دومي كه از طريق وقفه انجام ميگره يك ساعت هستش كه با سر ريز شدن كانتر و پر شدن يك شمارنده كه در اينجا A هست يك ثانيه زمان ايجاد ميشه كه اين زمان جلوي work2 نوشته ميشه.

تايمر در مود صفر برنامه ريزي شده بنابرياين 8 بيتي است و از 0 تا 255 پر ميشه خوب فركانس كريستال ما 12000000 هرتز مي باشد همچنين ما در برنامه مقدار Prescale = 256 قرار داديم:

بنابراين:

183=(256×256) ÷ 12000000

يعني هر با كه محتواي A به 183 رسيد معادل يك ثانيه مي باشد. با مك يه دستور شرطي مي تونيم اين كار رو انجام بديم. برنامه و ديگر فايل هاي مربوط رو براي دانلود گذاشتم تا بهتر متوجه بشين.   موفق باشيد

دانلود

پسورد: mc8051.blogfa.com

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

بررسي كاربردهاي كارت‌هاي هوشمند

كارت‌هاي هوشمند داراي مزايا و قابليت‌هاي بسياري هستند و اين باعث شده است تا بسيار مورد توجه قرارگيرد و كاربردهاي آن‌ها بسيار گسترش يابد. برخي از مزاياي اين كارت‌ها عبارتند از:

 

- اندازه: اندازه اين قبيل كارت‌ كوچك است و نياز به حمل مدارك و پول را برطرف مي‌سازد.

- امنيت: به دليل وجود سيستم‌هاي حفاظتي روي كارت نظير رمزنگاري، از داده‌هاي موجود بر روي آن به خوبي محافظت مي‌شود.

- حجم اطلاعات قابل‌حمل: كارت‌هاي هوشمند قادرند حجم زيادتري از اطلاعات را در مقايسه با كارت‌هاي مغناطيسي درخود ذخيره كنند.

 

برخي ديگر از مزاياي كارت‌هاي هوشمند غيرتماسي عبارتند از :

          راهکار ايده آل برای Transaction سريع )  مانند Toll collection  و   Mass Transit )

          امکان برقراری ارتباط در فواصل

          كاربردهاي  Hand-free

          طول عمر بيشتر کارت و Reader (بدليل عدم نياز به تماس مستقيم بين كارت و كارت‌خوان)

          امکان سرويس به بيش از يک شخص در آن واحد

          جلوگيری از بروز مشکل در استفاده از کارت

 

امروزه در بسياري ازكشور‌ها، از كارت‌هاي هوشمند در كاربرد‌هاي مختلفي استفاده مي‌شود، اين كاربردها به طور كلي به سه دسته طبقه‌بندي مي‌شوند:

1.       كاربرد‌هاي شناسايي: از اين كارت‌ها براي شناسايي هويت افراد و صاحبان آنها استفاده مي‌شود؛ مثل كارت تردد، كارت پاركينگ.

ادامه نوشته

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

الگوها و برنامه‌ريزي‌هاي جديد در سيستم عامل كارت‌هاي هوشمند، سيستم عامل JavaCard است. اين سيستم عامل توسط شركت Sun Microsystem توسعه داده شده است و بعد از آن در فروم JavaCard گسترش يافته است. اين سيستم عامل بسيار مورد توجه است زيرا در معماري براي طراحان و برنامه‌نويسان استقلال و آزادي عمل فراهم مي‌آورد. همچنين برنامه‌هاي كاربردي مبتني بر سيستم عامل جاوا مي‌تواند براي هر كارت‌هوشمندي كه سيستم عامل JavaCard را پشتيباني مي‌كند استفاده گردد.

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

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

سيستم عامل ديگري كه براي كارت‌هاي هوشمند فراهم شده  MULTOS(Multi-Application Operating System) يا سيستم عامل چند منظوره است. همچنان كه از نام اين سيستم برمي‌آيد، اين سيستم عامل قابليت پشتيباني چندين برنامه كاربردي را دارد. اما اين سيستم عامل براي كاربردهايي با امنيت بالا طراحي شده است و در بسياري از كشورها به ITSec E6 High دست يافته است. شركت مايكروسافت نيز در اين مسير با سيستم SmartCard for Windows قرار دارد.

اين سيستم عامل‌ها، رابط‌هاي برنامه‌هاي كاربردي درون كارت‌ها(Card-Side API) هستند براي اجرا نمودن برنامه‌هاي كوچك و مبتني بر كارت روي آن‌ها. اما رابط‌هاي طرف كارت‌خوان (Reader-Side API)مانند زيرساخت OpenCard و GlobalPlatform نيز ارائه شده‌اند.

ادامه نوشته

كارت‌هاي هوشمند(قسمت اول ) معرفي، ساختار

قسمت اول: معرفي، ساختار

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

اختراع كارت هوشمند را براي اولين بار فردي فرانسوي با نام رولاند مورنو در سال 1974 به ثبت رساند. از آن زمان به بعد،‌ شركت‌هايي نظير Bull‌،‌ Honeywell،Motorola  دراين زمينه به فعاليت پرداختند و در نتيجة فعاليت‌هاي آنها، در سال 1979 اولين كارت هوشمند ريز‌پردازنده‌اي ساخته شد. اولين استاندارد براي كارت هوشمند در سال 1986 و با عنوان ISO 789116/1 مطرح شد. استفاده از كارت هوشمند در سطح ملي براي نخستين بار در فرانسه در سال 1986 و براي كارت‌هاي اعتباري تلفن انجام گرفت. پس از آن، از اوايل دهة 90 ميلادي، استفاده از كارت‌هاي هوشمند دركشور‌هاي مختلف رواج پيدا كرد و به تدريج كاربرد‌هاي جديدي براي آن پيدا شد.

بررسي ساختار و انواع

كارت‌هوشمند كارتي است كه از يك ريزپردازنده و چيپ حافظه و يا فقط چيپ حافظه (بدون منطق برنامه‌پذير) تشكيل شده است. كارت داراي ريزپردازنده مي‌تواند اطلاعات روي كارت را اضافه، تغيير، حذف و مديريت نمايد، درحاليكه كارت فقط داراي حافظه (مانند كارت‌هاي اعتباري تلفن)، مي‌تواند فقط يك عمليات از پيش تعريف شده را قبول كند.

كارت‌هاي هوشمند برخلاف كارت‌هاي نوار مغناطيسي، مي‌توانند كليه توابع عملياتي و اطلاعات مربوطه را در خود داشته باشند، بنابراين در زمان انجام تراكنش نياز به ارتباط با بانك اطلاعاتي نخواهد داشت. در حال حاضر سه گروه (بر اساس نوع تراشه بكار رفته در آن، حافظه و ريزپردازنده) از كارت‌هاي هوشمند در كاربردهاي مختلف در دنيا و به صورت گسترده مورد استفاده قرار مي‌گيرند:

ادامه نوشته

انواع موتورهای الکتریکی

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

ادامه نوشته

ترمیستور چیست؟

نیم رساناهایی که به سبب ضریب مقاومت گرمایی زیادشان بکار می‌روند، به مقاومتهای حساس به دما یا ترمیستور thermistors که از عبارت temperature sensitive resistors گرفته شده ، معروف هستند. مقاومتهای حساس به دما در شاخه‌های مهندسی کاربردهای مهم و زیادی دارند:
در کنترل خودکار ، فاصله سنجی و نیز در دماسنجهای خیلی دقیق و حساس بکار برده می‌شوند.
دماسنجهای مقاومتی یا بارترها barertte دستگاهی است برای اندازه گیری چگالی شار تابشی که طرز کار آن بر پایه تغییر مقاومت الکتریکی پیل حساس نیم رسانایی در موقع گرم کردن آن استوار است)، را خیلی پیش در آزمایشگاهها بکار می‌بردند. ولی قبلا آنها را از فلز می‌ساختند که به سبب محدودیت گسترده کاربردشان ، مشکلات زیادی به بار می‌آوردند.
برای اینکه مقاومت بارتر را در مقایسه با مقاومت سیمهای رابط بالا ببرند، ناچار بودند بارتر را از سیم نازک و دراز بسازند. به علاوه تغییر مقاومت فلزات با دما خیلی کم است و از این اندازه گیری دما به کمک بارتر فلزی به اندازه گیری خیلی دقیق مقاومت نیاز داشت.
بارترهای نیم رسانایی (ترمیستورها) این معایب را ندارند. مقاومت ویژه الکتریکی آنها آنچنان بالاست که یک بارتر می‌تواند فقط چند میلیمتر طول داشته باشد. با چنین ابعاد کوچکی ، ترمیستور خیلی زود به دمای محیط بیرون می‌رسد. همین امر به آن امکان می‌دهد که دمای اشیای کوچک (مثلا برگ گیاهان یا ناحیه‌هایی روی پوست بدن) را اندازه بگیرد.
ترمیستورهای مدرن (ترمیستورهای نیم رسانا)
حساسیت ترمیستورهای امروزی چنان بالاست که تغییری به اندازه یک میلیونیم کلوین را می‌توان به کمک آنها آشکار سازی و اندازه گیری کرد. این وضع عملی بودن کاربرد آنها را در دستگاههای جدید به جای پیلهای ترموالکتریک برای اندازه گیری شدت تابش خیلی ضعیف نشان می‌دهد.
در ابتدا انرژی لازم برای آزاد شدن الکترون از حرکت گرمایی یعنی انرژی داخلی نیم رساناها ، تأمین می‌شد. ولی این انرژی را جسم می‌تواند در ضمن جذب انرژی نور به الکترون انتقال دهد. مقاومت چنین نیم رساناهایی بر اثر نور به مقدار زیادی کاهش می‌یابد. این پدیده را نور رسانش فوتو رسانش یا اثر فوتو الکتریکی ذاتی گویند.
اصطلاح ذاتی در اینجا تأکید بر این واقعیت دارد که الکترونهای آزاد شده با نور ، مانند انتشار الکترون از فلز درخشانی که به “اثر فوتوالکتریک غیر ذاتیمعروف است، مرزهای جسم را ترک نمی‌کنند. این الکترونها در جسم باقی می‌مانند و دقیقا رسانندگی آن را تغییر می‌دهند. دستگاههایی که بر پایه این پدیده ساخته می‌شوند را در مقیاس صنعتی برای دستگاههای اعلان و خودکار بکار می‌برند (مانند دزدگیر و ...).
فقط بخش کوچکی از الکترونهای آزاد نیم رسانا در حالت آزادند و در جریان شرکت می‌کنند. اما درست این است که بگوییم همین الکترونها بطور دائم در حالت آزادند و دیگران در حالت مقید. بر عکس ، در نیم رساناها همزمان دو فرآیند رخ می‌دهد:
از یک طرف با صرف انرژی داخلی یا انرژی نورانی فرآیند آزادسازی الکترونها اتفاق می‌افتد.
از طرف دیگر ، فرآیند ربایش الکترونهای آزاد ، یعنی ترکیب مجدد آنها با بعضی از یونهای باقیمانده (یعنی ، اتمهایی که الکترونهایشان را از دست داده‌اند) مشاهده می‌شود. بطور متوسط ، هر الکترون آزاد شده فقط مدت کوتاهی (از ۳-۱۰ تا ۸-۱۰ ثانیه) آزاد می‌ماند. همواره الکترونهایی وجود دارد که پیوسته جایشان را با الکترونهای مقید عوض می‌کنند. تعادل بین الکترونهای آزاد و مقید از نوع تعادل دینامیکی است.

طرز کار فیبر نوری

هرجا که صحبت از سیستم های جدید مخابراتی، سیستم های تلویزیون کابلی و اینترنت باشد، در مورد فیبر نوری هم چیزهایی می شنوید. فیبرهای نوری از شیشه شفاف و خالص ساخته می شوند و با ضخامتی به نازکی یک تار موی انسان، می توانند اطلاعات دیجیتال را در فواصل دور انتقال دهند. از آنها همچنین برای عکسبرداری پزشکی و معاینه های فنی در مهندسی مکانیک استفاده می شود. یک رشته فیبر نوری در این مطلب به مطالعه این که این فیبرهای نوری چگونه نور را منتقل می کنند و نیز درمورد روش های عجیب ساخت آنها بحث می کنیم!
● فیبرنوری چیست؟
فیبرهای نوری رشته های بلند و نازکی از شیشه بسیار خالصند که ضخامتی در حدود قطر موی انسان دارند. آنها در بسته هایی به نام کابلهای نوری کنار هم قرار داده می شوند و برای انتقال سیگنالهای نوری در فواصل دور مورد استفاده قرار می گیرند. اگر با دقت به یک رشته فیبر نوری نگاه کنید، می بینید که از قسمتهای زیر ساخته شده: هسته : هسته بخش مرکزی فیبر است که از شیشه ساخته شده و نور در این قسمت سیر می کند.
● قسمتهای مختلف یک رشته فیبر نوری
▪ لایه روکش :
واسطه شفافی که هسته مرکزی فیبر نوری را احاطه می کند وباعث انعکاس نور به داخل هسته می شود.
▪ روکش محافظ :
روکشی پلاستیکی که فیبر نوری در برابر رطوبت و آسیب دیدن محافظت می کند.صدها یا هزاران عدد از این رشته های فیبر نوری به صورت بسته ای در کنار هم قرار داده می شوند که به آن کابل نوری گویند.
این دسته از رشته های فیبر نوری با یک پوشش خارجی موسوم به ژاکت یا غلاف محافظت می شوند.
فیبرهای نوری دو نوعند:
۱) فیبرهای نوری تک وجهی:
این نوع از فیبرها هسته های کوچکی دارند (قطری در حدود۵‎/۳ ،x۱۰ (۴-) inch یا ۹ میکرون) و می توانند نور لیزر مادون قرمز (با طول موج ۱۳۰۰ تا ۱۵۵۰ نانومتر) را درون خود هدایت کنند.
۲) فیبرهای نوری چند وجهی :
این نوع از فیبرها هسته های بزرگتری دارند (قطری در حدود inch (۳-) ۱۰x ۵‎/۲ یا ۶۲‎/۵ میکرون) و نور مادون قرمز گسیل شده از دیودهای نوری موسوم به LEDها را (با طول موج ۸۵۰ تا ۱۳۰۰ نانومتر) درون خود هدایت می کنند. برخی از فیبرهای نوری از پلاستیک ساخته می شوند. این فیبرها هسته بزرگی (با قطر ۴ صدم inch یا یک میلیمتر) دارند و نور مریی قرمزی را که از LEDها گسیل می شود (و طول موجی برابر با ۶۵۰ نانومتر دارد) هدایت می کنند. بیایید ببینیم طرز کار فیبر نوری چیست.
یک فیبر نوری چگونه نور را هدایت می کند؟
فرض کنید می خواهید یک باریکه نور را به طور مستقیم و در امتداد یک کریدور بتابانید. نور به راحتی در خطوط راست سیر می کند و مشکلی ازین جهت نیست. حال اگر کریدور مستقیم نباشد و در طول خود خمیدگی داشته باشد چگونه نور را به انتهای آن می رسانید؟ برای این منظور می توانید از یک آینه استفاده کنید که در محل خمیدگی راهرو قرار می گیرد و نور را در جهت مناسب منحرف می کند. اگر راهرو خیلی پیچ در پیچ باشد و خمهای زیادی داشته باشد چه؟ می توانید دیوارها را با آینه بپوشانید و نور را به دام بیندازید به طوریکه در طول راهرو از یک گوشه به گوشه دیگر بپرد. این دقیقاً همان چیزی است که در یک فیبرنوری اتفاق می افتد. نور در یک کابل فیبرنوری، بر اساس قاعده ای موسوم به بازتابش داخلی، مرتباً به وسیله دیواره آینه پوش لایه ای که هسته را فراگرفته، به این سو و آن سو پرش می کند و در طول هسته پیش می رود.
● تصویری از بازتابش کلی نور در یک فیبر نوری
از آنجا که لایه آینه پوش اطراف هسته هیچ نوری را جذب نمی کند، موج نور می تواند فواصل طولانی را طی کند. به هر حال، برخی از سیگنالهای نوری در حین حرکت در طول فیبر، ضعیف می شوند که علت عمده آن وجود برخی ناخالصی ها داخل شیشه است. میزان ضعیف شدن سیگنال به درجه خلوص شیشه به کار رفته در داخل فیبر و نیز طول موج نوری که درون فیبر سیر می کند بستگی دارد (به عنوان مثال
۸۵۰ نانومتر = ۶۰ تا ۷۵ درصد در هر یک کیلومتر
۱۳۰۰ نانومتر = ۵۰ تا ۶۰ درصد در هر یک کیلومتر
۱۵۵۰ نانومتر = بیش از ۵۰ درصد در هر یک کیلومتر).
برخی از فیبرهای نوری هم هستند که سیگنال در داخل آنها خیلی کم تضعیف می شود. (کمتر از ۱۰ درصد در هر یک کیلومتر برای ۱۵۵۰ نانومتر). سیستم ارتباط به وسیله فیبرنوری برای پی بردن به اینکه فیبرهای نوری چگونه در سیستم های ارتباطی مورد استفاده قرار می گیرند، اجازه دهید نگاهی بیاندازیم به فیلم یا سندی که مربوط به جنگ جهانی دوم است. دو کشتی نیروی دریایی را درنظر بگیرید که از کنار یکدیگر عبور می کنند و لازم است باهم ارتباط برقرار کنند درحالی که امکان استفاده از رادیو وجود ندارد و یا دریا طوفانی است. کاپیتان یکی از کشتی ها پیامی را برای یک ملوان که روی عرشه است می فرستد. ملوان آن پیام را به کد مورس ترجمه می کند و از نورافکنی ویژه که یک پنجره کرکره جلو آن است برای ارسال پیام به کشتی مقابل استفاده می کند. ملوانی که در کشتی مقابل است این پیام مورس را می گیرد، ترجمه می کند و به کاپیتان می دهد. (ملوان کشتی دوم عکس عملی را انجام می دهد که ملوان کشتی اول انجام داد.)حالا فرض کنید این دو کشتی هر یک در گوشه ای از اقیانوسند و هزاران مایل فاصله دارند و در فاصله بین آنها یک سیستم ارتباطی فیبرنوری وجود دارد.

نور و رنگ در تلویزیون

نورمرئی یا قابل رویت به امواج الکترومغناطیسی که دارای طول موج بین ۳۷۰ تا۷۸۰ نانومتر باشند نورمرئی یا قابل رویت گفت می شود .حساسیت چشم انسان نسبت به تمام موج ها یکسان نبوده وهر طول موج به یک رنگ خاص دیده می شود. بطور کلی چشم طبیعی انسان قادر به تشخیص وتفکیک بیش از یکصدوهشتاد نوع رنگ با شدت های مختلف است.
بعبارت دیگر هر رنگ با یک فرکانس خاص مشخص می شود . سرعت نور واواج الکترومغناطیسی در خلاء ثابت وبرابر درنظر گرفته می شود. طول موج برابر فرکانس را برابر f وسرعت را برابرc درنظر بگیریم ، بین این پارامتر ها رابطه : برقرار خواهد بود. پهنای باند تلویزیون رنگی همانطوریکه گفته شد چشم انسان قادر به تشخیص وتفکیک بیش از ۱۸۰ نوع رنگ مختلف می باشد . این رنگها با شدت وروشنائی های متفاوتی وجود دارند. بنابراین درارسال تصاویر رنگی پهنای باند عظیمی غیر ممکن وبسیار مشکل است.
ادامه نوشته

كار با EEPROM خارجي و داخلي ... || قسمت پنجم

EEPROM خارجي:

توسط ميكرو كنترلر AVR شما مي توانيد داده هاي خود را در يك حافظه خارجي ذخيره كنيد. كه من در اينجا نحوي پيكره بندي و برنامه نويسي آن را براي آيسي هاي EEPROM با مد سريال I2C خواهم گفت.

در پروتكل I2C ما تنها از دو سيم براي خواندن و نوشتن اطلاعات استفاده مي كنيم كه يك سيم آن به پايه SCL مشهور مي باشد كه روي اين پايه توسط ميكرو ما يك كلاك پالس با فركانس مشخص (بستگي به نوع EEPROM دارد) توليد مي كنيم. اين پايه اين كلاك را به EEPROM مي دهد و كه EEPROM بر اساس اين پالس ساعت داده ها را مي خواند و مي نويسد.

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

اكنون به پيكره بندي EEPROM در محيط بيسكام مي پردازيم:

تعيين پايه هاي SCL و SDA :
ادامه نوشته

آموزش ميكرو كنترلر AVR به زبان بيسيك || قسمت چهارم

در اين قسمت آموزشي به نحوي پيكره بندي امكانات AVR مي پردازيم. از جمله پيكره بندي LCD  و كيبورد

اتصال LCD به AVR و نحوي پيكره بندي آن در بيسكام :

Config   Lcdpin = Pin   Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , _

Db7 = Porta.7 , E = Porta.2 , Rs = Porta.3

Config Lcd = 16 * 2

به كمك دستور بالا ما قادر خواهيم بود كه LCD را به هر پورتي كه مي خواهيم وصل كنيم. در خط اول برنامه ما تك تك پايه هاي LCD را معرفي كرديم و گفتيم DB4 ال سي دي را مي خواهيم به porta.4 وصل كنيم و همين طور تا آخر. و پايه هاي E و RS رو هم تعريف مي كنيم البته پايه RW رو هم زمين مي كنم چون ما اغلب در LCD مي نويسيم و كم پيش مياد كه بخواهيم ازش بخونيم. در خط بعدي هم تعداد سطر و ستون هاي LCD را براي ميكرو تعريف كرديم.

نكته: چون در خط اول بايد دستورات پشت سر هم باشد مي مي توانيم به كمك يه آندرلاين " _" ادامه دستورات را در خط بعدي بنويسيم. اين كار صرفا براي اين كه طول برنامه زياد نشه و يا در موقع چاپ به هم نريزه .

دستورات LCD :

ادامه نوشته

آموزش ميكرو كنترلر AVR به زبان بيسيك || قسمت سوم

در اين قسمت آموزشي به تشريح دستور CASE و زير برنامه ها و نحوي فراخواني آنها مي پردازيم.

دستور العمل CASE :

به كمك اين دستور شما مي تواند محتواي يك متغيير را نسبت به يك بازه عددي انتخاب كنيد و سپس براي اين بازه ها زير برنامه بنويسيد تا ميكرو اين برنامه ها را نسبت به محدوده بازه و متغيير انجام بده.

ساده تر ميگيم: به عنوان مثال شما يك برنامه دماسنج مي خواهيد بنويسيد. بعد از اندازه گيري دما شما مي خواهيد به ميكرو بگيد كه اگر دما از 0 تا 20 درجه بود فلان كار رو انجام بده و اگر دما از 21 تا 30 بود فلان كار رو انجام بده و اگر دما از 31 تا 40 بود فلان كار رو انجام بده. به همين سادگي شما مي توانيد به ميكرو فرمان بدهيد كه اگر دما در اين بازه بود اين كار رو انجام بده.

همين توضيحات رو به كمك اين دستور به صورت برنامه مي نويسيم:

ادامه نوشته

شمارنده دو رقمی با 8051 و زبان اسمبلی

با سلام خدمت دوستان

یکی از دوستان گرامی یه شمارنده خواسته بود به صورت زیر:

با استفاده از میکرو ۸۰۵۱ و زبان اسمبلی یک شمارنده دو رقمی می خواهم که یک کلید برای شروع شمارش داشته باشه و بعد از فشار دادن کلید هر یک ثانیه یک واحد به شمارنده اضافه بکنه و تا به عدد ۹۹ رسید شمارنده ریست شود و دو باره با فشار دادن کلید میکرو شروع به شمارش کند.

نوع فایل: ZIP

پسورد: mc8051.blogfa.com  (به کوچک بودن حروف دقت نمایید).

دانلود

چشمك زن با وقفه 0 بيروني Interrupt

با سلام خدمت دوستان

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

برنامه به زبان اسمبلي

نقشه مدار:

چشمك زن با وقفه

براي نمايش تصوير با وضوح بيشتر اينجا كليك كن

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

دستورات حلقه

دستور Do-Loop

اين دستور يه حلقه بينهايت ايجاد مي كند كه شما مي توانيد دستورات خودتان را دراين حلقه بنويسيد تا مدام توسط CPU تكرار شود. به عنوان مثال شما مي خواهيد كه يكي از بيت هاي پورت D به صورت يك چشكا زن عمل كنه و تا بي نهايت اين كار رو انجام بده كه برنامه رو به اين صورت مي نويسيم:

$regfile "m16def.dat"

$crystal=8000000

Config portd.0=output

  شروع حلقه    DO       '

Set portd.0  'portd.0 = 1

يك ثانيه تاخيرWait 1  ' 

Reset portd.0   'portd.0= 0

Wait 1

  پايان حلقه    Loop          '

 

End

در مثال بالا ميكرو تا ابد اين چند تا دستور رو انجام ميده و ديگه از اين حلقه هم بيرون نمياد!

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

نوعي ديگري از حلقه loop هم هست كه تنها يك بار حلقه را اجرا مي كند (ولي دستورات داخل اون تا زماني كه شرط برقرار نشه اجرا ميشه) و بعد از اينكه شرط  حلقه محقق شد از حلقه بيرون مياد.

ادامه نوشته

راه اندازي استپ موتور با 8051  (STEPER MOTOR)

امروز مي خوام در مورد STEPER MOTOR و نحوي اتصال اون به ميكرو 8051 رو به شما آموزش بدم همراه با برنامه و مدار اون. استپ موتور با آيسي راه انداز L298 مي باشد.

ابتدا جدول حركت استپ موتور:

خلاف جهت ساعت

سيم پيچ D

سيم پيچ C

سيم پيچ B

سيم پيچ A

پله

در جهت ساعت

0

0

0

1

1

0

0

1

0

2

0

1

0

0

3

1

0

0

0

4

اصول راه اندازي استپ موتور به اينگونه مي باشد:

ادامه نوشته

آموزش ميكرو كنترلر AVR به زبان بيسيك || قسمت اول

براي آموزش اين ميكرو از كامپايلر BASCOM و پروتيوس 7.2 استفاده مي كنيم.

زبان بيسك يك زبان راحت و سريع مي باشد يعني اينكه آنچه شما بر زبان مي آوريد رو اگر درقالب دستورات بيسكام بنويسيد اون كاري كه شما از ميكرو مي خواهيد رو براي شما انجام مي دهد. اكثر دستورات بيسكام يك واژه معني دار انگليسي مي باشد كه اگر معني اونا رو بدونيد ديگه دستورات براي همشه تو ذهن شما مي ماند.

ابتدا دستوراتي كه براي شروع يك برنامه لازم است بدانيم را توضيح مي دهيم:

معرفي ميكرو:

اولين دستور مهم و هميشگي كه توي همه برنامه ها بايد بنويسيم دستور $regfile هست كه ما به كمك اين دستور ميكرو خودمون رو به كامپايلر معرفي مي كنم و كامپايلر هم بر اساس اين مدل ميكرو دستورات را به زبان ماشين ترجمه مي كند. (فايل هاي هگز و باينري)

مثلا شما مي خواهيد از ميكروي ATMEGA8  استفاده كنيد كه به اين صورت اونو معرفي مي كنيد:

$regfile= "m8def.dat"

كه m8 معادل atmega8 و def.dat  كه اكثرا ثابت هست.

معرفي كريستال:

براي معرفي كريستالي كه به ميكرو وصل مي كنيم از دستور $crystal استفاده مي كنيم به عنوان مثال اگر شما مي خواهيد به ميكرو كريستال 12 مگاهرتزي وصل كنيد اين طوري مي نويسيم:

فركانس را بر حسب هرتز مي نويسيم  $crystal= 12000000

ادامه نوشته

ماشین حساب ساده با 8051

با عرض سلام خدمت تمامی دوستان

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


يكي از دوستان گفته بود كه يه كمي درباره متغييرها و پايه RST توضيح بدم! كه منم يه توضيح مختصر دادم

توضيح برنامه:

در ابتداي برنامه من اومدم چند تا متغيير تعريف كردم يعني مثلا من گفتم مي خوام كه A1 همون خونه 40H باشه به جاي اينكه تو برنامه بيام و بنويسم 40H فقط نام متغيير يعني A1 رو مي نويسم.

حال اين متغير هاي براي چي هستند؟

متغير هاي A1,A2, براي براي نگهداري اولين، دو عدد وردي ما هستند و B1,B2‌ هم براي نگهداري دومين، دو عدد ورودي ما هستند. از همه مهم تر متغير POL هست كه خونه 20H مي باشد و همتنطور كه مي دانيم از رنج 20 تا 2F محدود بيتي و باتي هستند يعني اينكه ما هم مي تونيم به عنوان بيت و هم بايت ازش استفاده كنيم كه من از بيت دوم آن POL.1=20H.1 استفاده كرده ام. حال وظيفه اين بيت چيست؟ اين برنامه مي تونه تا حداكثر دو عدد از ورودي بخونه براي عمليات قبل از جمع يا تفريق و دو عدد هم بعد از جمع يا تفريق. حالا شايد شما بخواهيد 1 رو بعلاوه 23 كنيد مي بينيم كه عدد 1 يك عدد تك رقمي ميباشد كه نه دو رقمي وظيفه اين بيت POL1 در اينجا اينكه اگه ما يك عدد 1 راوارد كردم و بعد كليد + يا – را زديم اين بيت 1 مي شود و ديگه اجازه نميده كه عدد بعدي در A2 قرار بگيره يعني عدد 2 ميره تو B1 و عدد 3 هم ميره تو B2 . اين از وظيفه POL

متغير هاي TEMP1 , TEMP2  هم متغيير هاي موقت ما هستند كه اعداد ورودي به صورت موقت درونشون نگداري ميشه يعني اينكه شما همون جمع بالا رو در نظر بگيريد مگه اولين دو عدد ما همون 01 نميشه خوب دومين عد ما يعني 23 هست كه 2 با ارزش تر از 3 هست و اولين رقمي هم هست كه ميكرو دريافت ميكنه حالا من اومدم و اين دو عدد كه هر كدوم تو يه ثبات 8 بيتي بود رو تركيب كردم يعني عدد 23 رو تو يه ثبات جاي دادم كه اين كار رو شما مي تونيد به كمك دستور SWAP و دستور ORL انجام دهيد. به اين صورت كه اواين رقم ما 2 هست پس به كمك SWAP اون به سمت چپ يعني نيبل با ارزش انتقال ميديم حالا عدد 3 رو با اون OR مي كنيم و نيجيه اون يك عدد BCD فشرده خواهد شد. كه از TEMP1 ,TEMP2 براي اين كار استفاده كرديم.

يه نكته مهم:

وقتي ما دو عدد BCD فشرده رو با هم جمع مي كنيم ممكنه كه ديگه حاصل جمع ما BCD‌ نباشه كه براي اينكار از دستور DA   A استفاده مي كنيم اين دستور به طور اتوماتيك عدد 6 رو به نيبل پايين يا بالا اضافه ميكنه تا عدد به BCD تبديل بشه.

براي تفريق هم همين مشكل ممكنه پيش بياد كه بايد 6 واحد از نيبل پايين يا بالا كم كنيم كه من با گذاشتن يه شرط براي اون اگه BCD‌نبود به كمك دستور DEC يعني 6 تا از اين دستور مي تونيم اين كار ور انجام بديم.

در ضمن اگر نتيجه حاصل تفريق ما يك عد منفي بود 8051 اين حاصل تفريق رو به صورت متمم 2 رها مي كنه كه ما مي تونيم به كمك پرچم CY=1  به منفي بودن حاصل تفريق پي ببريم. يعني اينكه اگه CY=1 شد CPU اين عدد رو به صورت ممتم 2 رها مي كنه و ما به كمك اين پرچم خودمون بايد درستش كنيم يعني ابتدا ما اين عدد رو متمم مي كنيم كه دستور CPL اين كار رو انجام ميده و بعد از اون هم بايد يك واحد بهش اضافه كنيم كه با دستور  INC‌اين كا رو انجام ميديم ويك LED رو هم روشن مي كنيم كه نشان دهند منفي بودن نتيجه عمليات بوده.

در مورد پايه RST : اين پايه با مدار ريستي كه دورش براي ريست كردن دستي ميكرو هست. مثل همون دكمه ريست كامپيوتر هست.!

ماشين حساب ساده دو رقمي با 8051

براي وضوح بيشتر روي عكس يا اينجا كليك كنيد

دانلود فايلها (حجم ۷۲ كيلو بايت)

پسورد: mc8051.blogfa.com

اتصال کیبورد 4×4 و ال سی دی به 8051 (keyboard and LCD)

سلام

اين برنامه را به درخواست يكي از دوستان نوشتم:

عملكرد برنامه: با استفاده از يك كيبورد 4*4 و يك نمايشگر ال سي دي و اتصال آن به 8051 مي خواهيم با وارد كردن هر عددي از كيبورد آن عدد روي ال سي دي نمايش داده شود.

اتصال كيبورد و ال سي دي به 8051

براي وضوح بيشتر روي عكس يا اينجا كليك كنيد.

 دانلود برنامه و مدار

برنامه به زبان اسمبلي و از كامپايلر Keil و پروتيوس 7.2 استفاده شده. ميكرو استفاده شده 89c51 مي باشد.

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

با تشكر

آموزش ميكرو كنترلر AVR

آموزش ميكرو كنترلر AVR به زبان زبان بيسيك

با عرض سلام خدمت دوستان عزيز

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

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

نظر بديد ها؟؟؟؟

منتظر نظرات شما عزيزان هستم.

تولید اعداد طبیعی با چهار بیت و نمایش روی 4 تا 7 سگمنت

با عرض سلام خدمت تمامی دوستان

این همه دانلود می کنید و وبلاگ رو میگردید یه نظر هم بدید!!!

یکی از دوستان يه برنامه درخواست کرده بود با عملکرد زیر:

 با استفاده از چهار بیت (چهار تا کلید) بتوانیم اعداد ۰ تا ۹ را ایجاد کرده و بعدا طی چهار مرحله یکی یکی این اعداد را به سون سگمنت ها بفرستیم.یعنی اینکه اگر ما اولین عدد را عدد ۱ وارد کردیم این عدد روی با ارزش ترین سون سگمنت قرار بگیرد. بعد اگر عدد دوم مثلا ۳ را وارد کردیم روی سون سگمنت ۲ نمایش داده بشه و اگر عدد ۸ را وارد کردیم روی سگمت ۳ و اگر ۷ را وارد کردیم روی سگمنت ۴ و بعد اگر عدد پنجم را وارد کردیم این عدد جایگزین سگمن اولی شود. ۱۳۷۸

تولید اعداد طبیعی با چهار بیت و نمایش روی 4 تا 7 سگمنت

 نقشه مدار براي وضوح بيشتر كليك كنيد.

من برنامه رو به دو صورت نوشتم:

اول: عمکرد مدار به اینگونه می باشد که اگر شما اولین کلید رو تغییر وضعیت دادید تنها به شما ۲ ثانیه فرصت داده میشه تا کل  بیت ها را برای عدد مورد نظر تنظیم کنید. و سپس به طور خودکار حاصل را روی اولین سگمن نشان می دهد و بعد میره سراغ عدد بعدی و همین طور تا آخر ...

دانلود   پسورد: mc8051.blogfa.com

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

دانلود   پسورد:  mc8051.blogfa.com 

کدام زبان و کدام میکروکنترلر

با عرض سلام خدمت دوستان

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

نظر خودتان در اين پست ثبت كنيد.

زبان ‍C

زبان بيسيك

زبان اسمبلي

ميكرو 8051

ميكرو PIC

ميكرو AVR

نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟نظر شما چي؟

دیتاشیت خانواده 8051 و ...

این مجموعه شامل مشخصات کامل انواع خانواده ۸۰۵۱ می باشد و چند میکرو از خانواده های دیگر هم در آن موجود می باشد.

نوع فایل RAR --->  PDF

حجم فايل: 863 كيلو بايت

دانلود

پسورد: mc8051.blogfa.com (به كوچك بودن حروف دقت نماييد)

شمارنده 4 رقمي (اسمبلي 8051)

با عرض سلام خدمت دوستان

برنامه درخواستي دوست عزيزي به شرح زير مي باشد:

من ميخوام يه برنامه بنويسم كه يه عدد ثابت مثل 1300 رو در ابتدا روي 4 تا سون سگمنت نشون بده و بعد هر يك ثانيه يكبار يكي به اون اضافه كنه.
ممنون ميشم اگه كمك كنيد.ضمنا من با 8951 كار ميكنم.

شمارنده 4 رقمي (اسمبلي 8051)

براي مشاهد تصوير با وضوح بيشتر روي عكس يا اينجا كليك كنيد.

از  Proteus 7.2 Professional و كامپايلر keil استفاده شده است.

نوع فايل: ZIP

دانلود فایلها ==> لینک دانلود اصلاح شد.

دانلود از سرور جدید

پسورد: www.mc8051.blogfa.com  (به كوچك بودن حروف دقت نماييد)

فركانس 1 هرتز

سلام

يكي از دوستان كه تازه وارد يه برنامه خواسته كه يك LED روي يكي از پايه هاي 8051 وصله به مدت .5 ثانيه روشن باشد و .5 ثانيه خاموش.

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

از كامپايلر 8051IDE براي راحتي شما استفاده كردم.

برنامه هم با Proteus 7.2 Professional مي باشد.

دانلود برنامه