قسمت دوم
متغیرها آرایه ها و رشته ها مقدار دهی 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) اگر توضیحات فقط در یک سطر هست از علامت // در ابتدای توضیخات می نویسیم. مثال: //MC8051.blogfa.com این عبارت یک توضیح هست نه دستور سی پس برای اینکه کامپایلر متوجه بشه که این یک دستور نسیت باید به این صورت اونو بنوسیم.
2) اگر توضیحات بیشتر از یک سطر شد باید در اولین سطر عبارت /* را نویسییم و در آخرین سطر هم عبارت */ را بنویسیم. مثال:
/* WEB: MC8051.blogfa.com
Email: mgh8051@gmail.com
designer: Seyed mohsen ghasemian */
ساختمان یک برنامه زبان C :
برای نوشتن یک برنامه سی ابتدا باید توابع مورد نیاز را فراخوانی کنیم و بعد از اون معرفی متغییرها و بعد هم تابع اصلی (main) را باید بنویسیم. در یک برنامه زبان سی تابع main لازم و ضروری است یعنی یه جورایی حتما باید باشه (ثابته). و یه نکته مهم اینکه در زبان سی بین حروف بزرگ و حروف کوچک تفاوت هست یعنی اگر شما می تونید یه متغییر با اسم a داشته باسید و یه متغیر دیگه با اسم A داشته باشید و کاملا هم معتبر هست یعنی کامپایلر خطا نمی گیره و اونو به عنوان دو متغیر جدا و مجزا در نظر می گیره. که در اینجا یه مثال میزنیم:
مقدمه
از امروز می خوام آموزش میکروکنترلر AVR به زبان C (سی) رو شروع کنم الیته خودم هم تازه زبان سی رو شروع کردم، انشاء الله به کمک هم یه چیزهایی من میگم شما استفاده می کنید و یه چیزهایی هم شما میگید من استفاده می کنم. تا این زبان قدرتمند رو باهم دیگه یاد بگیریم.
برای شروع اصلا چرا زبان سی رو باید یاد بگیریم؟ ما تا الان زبان بیسیک رو توضیح دادیم این زبان یاد گیری بهتری نسبت به سی داره ولی کلا سی یه چیز دیگه ای هستش هم از لحاظ قدرت و هم اجرا یادگیری اش کمی سخت هست ولی اگر علاقه داشته باشید حتما موفق خواهید شد چون زبان C به اسمبلی نزدیک هست باید کمی هم سخت افزار میکرو رو بلد باشیم تا بتونیم خیلی خوب با میکرو ارتباط برقرار کنیم. من هم تا اون جایی که به تونم ساده و روان همراه با مثال های زیاد توضیح می دم.
خوب ابتدا نرم افزار هایی که لازم داریم:
با عرض سلام خدمت دوستان
این هم یه پروژه خوب برای یادگیری و کار کردن با مبدل آنالوگ به دیجیتال AVR همچنین طریقه استفاده و راه اندازی و برنامه نویسی سنسور LM35 که امیدوارم به کارتون بیاد.

تنظیمات ADC در بیسک
نکته مهم و اساسی در تنظیمات ADC برای اندازه گیری دقیق دما تنظیم Reference می باشد.
Reference ولتاژ مبنا ای می باشد میکرو نسبت آن ولتاژ آنالوگ را به دیجیتال تبدیل می کند.
Reference = Internal :
برای دانلود به ادامه مطلب بروید
نظر هم یادتون نره
تقریبا یکسالی هست که وبلاگ رو آپدیت نکردم اون هم به خاط کنکور بود. ...![]()
اشاء الله بزودی دوباره شروع می کنیم.
متاسفانه تو این یک سال برنامه نویسی کار نکردم و خیلی از دستورات و مسائل دیگه یادم رفته مخصوصا در مورد ۸۰۵۱ که اگه بتونم به سولات ۸۰۵۱ شما جواب خواهم داد و اگر نه دیگه ببخشید.![]()
از این به بعد تمرکز ما بیشتر روی برنامه نویسی 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. كاربردهاي شناسايي: از اين كارتها براي شناسايي هويت افراد و صاحبان آنها استفاده ميشود؛ مثل كارت تردد، كارت پاركينگ.