یاری فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

یاری فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلود آشنایی با میکرو کنترلرهای AVR

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

دسته بندی : فنی و مهندسی _ برق مخابرات الکترونیک

فرمت فایل :  Doc ( قابلیت ویرایش و آماده چاپ ) Word


قسمتی از محتوی متن ...

 

تعداد صفحات : 40 صفحه

فهرست مطالب مقدمه 2 معایب و مزایای میکروکنترلر های مختلف 6 فیوز بیت ها، منابع کلاک وReset 8 منابع Reset 16 معرفی SPI Bus (نحوه عمل،رجیسترها ، ارتباط شبکه ای در SPI ومدارات داخلی) 21 برنامه میکروی فرستنده ATmegaA32 (محیط برنامه نویسی BASCOM ) 27 برنامه میکروی گیرنده ATMega8535(محیط برنامه نویسی BASCOM) 29 توضیح برخی از دستورات استفاده شده در محیط برنامه نویسی BASCOM 32 اتصال صفحه کلید 3× 4 بهAVR 36 اتصال LCD به AVR 38 شکل کلی مدار فرستنده و گیرنده توسط AVR 40 مقدمه: آشنایی با میکرو کنترلرهای :AVR میکرو کنترلر : به آی سی هایی که قابل برنامه ریزی می باشد و عملکرد آنها از قبل تعیین شده میکروکنترلرگویند میکرو کنترل ها دارای ورودی - خروجی و قدرت پردازش می باشد.
بخشهای مختلف میکروکنترلر : میکروکنترلر ها از بخشهای زیر تشکیل شده اند Cpu                    واحد پردازش Alu                     واحد محاسبات I /O                    ورودی ها و خروجی ها Ram                   حافظه اصلی میکرو Rom                 حافظه ای که برنامه روی آن ذخیره می گردد Timer                برای کنترل زمان ها و .
.
.
یک میکروکنترلر چگونه برنامه ریزی میشود: میکرو کنترلر ها دارای کامپایلرهای خاصی می باشد که با زبان های Assembly basic, c می توان برای آنها برنامه نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام   programmer که در این دستگاه  ای سی  قرار می گیرد و توسط یک کابل به یکی از در گاه های کامپیوتر وصل می شود برنامه نوشته شده روی آی سی  انتقال پیدا میکند و در Rom ذخیره می شود .
با میکرو کنترلر چه کارهایی می توان انجام داد: این آی سی ها حکم یک کامپیوتر در ابعاد کوچک و قدرت کمتر را دارند بیشتر این آی سی ها برای کنترل و تصمیم گیری استفاده می شود چون طبق الگوریتم برنامه ی آن عمل می کند این آی سی ها برای کنترل ربات ها  تا استفاده در کارخانه های صنعتی کار برد دارد .
میکرو AVR دارای معماری است که می تواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماری دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.
بهره های کلیدی AVR : دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit) دارای سیستمی با بهترین هماهنگی دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک( دارای کدهایی با کوچکترین سایز دارای حافظه خود برنامه ریز دارای واسطه JTAG که با IEEE 1149.
1 سازگار است (IEEE: Institute of Electrical and Electronics Engineers.
) دارای سخت افزار ضرب کننده روی خود دارای بهترین ابزارها برای پیشرفت و ترقی دارای حالات زیادی برای ترفیع دادن یا Upgrade واژگان کلیدی AVR : میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.
میکروکنترلر AVR بر مبنای معماری RISC (کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.
به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.
یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.
7 تا 5.
5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.
میکروهای AVR در هرجا که باشند با 1.
8 ولت تا 5.
5 ولت تغذیه می شوند البته با انواع توان پایین Low Powerکه موجودند.
راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است: با داشتن تنوعی باور نکردنی و اختیارات فراوان در کارایی محصولات AVR، آنها به عنوان محصولاتی که همیشه در رقابت ها پیروز هستند شناخته شدند.
در همه محصولات AVR مجموعه ی دستورالعملها و معماری یکسان هستند بنابراین زمانی که حجم کدهای دستورالعمل شما که قرار است در میکرو دانلود شود به دلایلی افزایش یابد یعنی بیشتر از گنجایش میکرویی که شما در نظر گرفته اید شود می توانید از همان کدها استفاده کنید و در عوض آن را در یک میکروی با گنجایش بالاتر دانلود کنید.
خانواده های محصولات AVR : Tiny AVR: میکروهای مدل tiny توانایی های عظیمی دارند.
به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک IC مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک و قابل برنامه ریزی است.
(منظور از حافظه استاتیک SRAM و حافظه قابل برنامه ریزی EEPROM است).
نکات کلیدی و سودمند مدل Tiny : • آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
• کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.
Mega AVR: اگر شما به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند.
این نوع میکروها قابلیت خود برنامه ریزی دارند و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256 کیلو بایت حافظه فلش و 4 کیلوبایت حافظه استاتیک و قابل برنامه ریزی دارند.
نکات کلیدی و سودمند مدل :Mega • حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block) • دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی • USART و SPI و TWI بر طبق واسطه های سریال • واسطه ی JTAG بر طبق IEEE 1149.
1 TWI: Two Wire Interface is a byte oriented interface USART: Universal Serial Asynchronous Receiver/Transmitter SPI: Serial Peripheral Interface JTAG available only on devices with 16KB Flash and up واسط JTAG فقط در میکروهای با بیش از 16 کیلوبایت حافظه فلش موجود است.
معایب و مزایای میکروکنترلر های مختلف میکرو کنترلر 8051: اگربخواهیم به صورت کلی سیر پیشرفت این نوع میکروکنترلر را در نظر بگیریم اولین میکروکنترلر هایی که ساخته شد با جدیدترین میکروکنترلرهای 8051 که الان تولید می شود با توجه به پیشرفت شگفت که صنایع دیگر در دنیا دارند پیشرفت زیادی نکرده اند به طور مثال AT89S5X که میکروکنترلر 8051 ساخت جدید ATMEL است نسبت به مدل های اولیه 8051 پیشرفت آنچنانی ندارد .
امکانات این میکرو نسبت به AVR و PIC قابل مقایسه نیست .
به صورتی که که همین مدل جدید 8051 تقریبا حافظه ای برابر یک صدم (0.
001 ) میکروکنترلر های AVR را دارد و سرعتش 4 برابر کمتر از میکروکنترلر های PIC و 12 بار کمتر از میکروکنترلر های AVR است .
از لحاظ امکانات دیگر هم چنین ضعفی احساس میشود.
اما برای کارهای ساده تر که پیچیدگی زیادی در آن نباشد به خاطر قیمت بسیار پایینی که این میکروکنترلر دارد بسیار مناسب است .
قیمت مدل جدید AT89S5X حدود 1000 تومان است که قیمت بسیار مناسبی است.
این میکرو کنترلر از زبان اسمبلی و C پشتیبانی میکند که زبان برنامه نویسی اصلی آن اسمبلی است که واقعا نوشتن با این زبان برنامه نویسی نسبت به زبان های برنامه نویسی دیگر هم مشکل تر و هم طولانی تر است.
در کل این میکروکنترلر امروزه دیگر توانای رقابت با AVR و PIC رو ندارد و امروزه رقابت اصلی بین این دو میکروکنترلر است .
میکروکنترلرPIC : این خانواده از نظر امکانات مانند AVR میباشد و در کل صنعتی تر است .
میکروکنترلر خیلی قوی است که بر اساس بعضی آمار ها بیشترین کاربر را به خود اختصاص داده است البته در ایران این آمار به نفع AVR است.
این میکروکنترلر ساخت شرکت میکرو چیپ است که PIC رو در مدل های خیلی زیادی با امکانات مختلف برای کارهای مختلف میسازد .
این میکروکنترلر با مدل های مختلفPIC16XXX و PIC12XXXX که به جای X دوم از چپ به راست حروف C ,X,E,F قرار میگیرد که هر کدام مفهوم خاصی دارد که X های بعدی هم اعدادی هستنند که نشان دهنده مدل های مختلف هستنند .
میکروکنترلرAVR: این خانواده از میکرو کنترلرها تمامی امکانات 8051 را دارا می باشد و امکاناتی چون ADC مبدل آنالوگ به دیجیتال نوسان ساز داخلی و قدرت و سرعت بیشتر و( – EEPROM حافظه) از جمله مزایای این خانواده می باشد.
.
اول از همه سرعت این میکروکنترلر بسیار بالاست و دستوراتی که به آن داده می شود را در یک سیکل کلاک انجام میدهد در صورتی که این سیکل کلاک برای 8051 باید تقسیم بر12شودو برای PIC باید تقسیم بر 4 بنابراین AVR سریعترین میکروکنترلر موجود در بازار است .
AVR از زبان های برنامه نویسی سطح بالا یا به اصطلاح (HIGH LEVEL LANGUAGE) HLLپشتیبانی می کند که باعث تولید کدهای بیشتری می شود که در کل برنامه نوشته شده نسبت به برنامه هایی که برای 8051 و PIC نوشته می شود کوتاهتر است.
امکانات جانبی این میکروکنترلر بسیار مناسب است و شما را از خرید بعضی لوازم جانبی مانند چیپ های آنالوگ به دیجیتال (ADC) , مقایسه گر آنالوگ و.
.
.
راحت میکند.
در ضمن AVR از بسیاری از استاندارد های ارتباطی مانند SPI,UART,12C,JTAG پشتیبانی میکند که به راحتی میتوان این میکروکنترلر را با میکروکنترلر دیگر یا به وسایل دیگر به راحتی وصل کرد.
قیمت این میکروکنترلر هم به نسبت امکانات فراوانی که داره بسیار پایین است به طوری که یک میکروکنترلر AVR تقریبا پیشرفته رو با قیمت حول و حوش 3 تا 4 هزار تومان خرید .
شرکت 5 Atmel میکروکنترلر 8 بیتی AVR جدید با توان مصرفی بسیار پایین برای استفاده در مدارات با تعداد کدهای بالا و اینترفیسینگ زیاد عرضه نموده است.
این میکروکنترلر ها با نام های ATmega640، ATmega1280، ATmega2560، ATmega1281، ATmega2561 عرضه شده است و دارای 64 تا 256 کیلو بایت flash و 8 کیلو بایت RAM به صورت داخلی می باشد.
این میکروهای جدید مدارات جانبی میکروها را با توجه به مدارات داخلی خود کاهش داده است که از آن جمله می توان به وجود یک اسیلاتور RC 8مگا هرتزی در داخل خود که باعث حذف اسیلاتور خارجی گشته است را نام برد؛ از دیگر قابلیت های جالب این میکرو مصرف بسیار پایین آن می باشد این میکرو که با 1.
5 ولت کار می کند در حالت power down تنها 100 نانو آمپر مصرف می کند که باعث افزایش عمر باتری خواهد شد.
.
مدل 100 پین این میکرو ها داراری 4 کانال UART و 16 عدد A/D می باشد.
فیوز بیت ها، منابع کلاک وReset فیوز بیت ها فیوز بیت ها قسمتی از حافظه ی میکروکنترلرAVRهستند که امکاناتی را در اختیار کاربر قرار می دهند و باErase شدن میکرو مقدار آن ها تغییر نمی کند.
یک به معنی غیر فعال بودن و صفر فعال بودن هر بیت می باشد.
قطعه ی mega 16 دارای 2 بایت فیوز بیت طبق جدول زیر می باشد: :BOOTRSTانتخاب برداری است BOOT که در حالت پیش فرض برنامه ریزی نشده است و آدرس برداری است0000 است و در صورت برنامه ریزی آدرس بردار Resetطبق جدول زیر تعیین می شود) براساس(BOOTSZ [1,0] :BODEN این بیت فعال ساز Brown-out Detector بوده و در صورت پروگرام شدن مطابق وضعیت جدول زیر سطح ولتاژ Brown-out تعیین می شود.
منابع کلاک همانطور که در دیاگرام زیر دیده می شود، این منابع شامل: اسیلاتور RC کالیبره شده، اسیلاتور کریستالی فرکانس پایین، اسیلاتور کریستالی، کلاک خارجی، اسیلاتور RC خارجی و اسیلاتور تایمر/کانتر می باشند.
انتخاب منبع کلاک بوسیله ی فیوزبیت های CKSEL بوده و مطابق جدول زیر می باشد.
مقدار پیش فرض بیت های , CKSEL یک بوده و در نتیجه منبع پیش فرض، اسیلاتور RC داخلی می باشد.
کلاک خارجی : برای راه اندازی وسیله بوسیله ی منبع کلاک خارجی باید مطابق شکل زیر یک پالس به پین XTAL1 اعمال می شود.
برای قرار گرفتن در این وضعیت باید تمام بیت های CKSEL پروگرام شده (صفر شوند (و کاربر می تواند با پروگرام کردن فیوزبیت CKOPTیک خازن داخلی به ظرفیت 36 پیکوفاراد را بین ورودی وزمین قرار دهد.
اسیلاتور RCکالیبره شده ی داخلی: این منبع در فرکانس های 1و2و4و8 مگاهرتز موجود می باشد و مقدار آن در دمای 25 درجه و ولتاژ 5 ولت کالیبره شده است که در این وضعیت ممکن است تا 3 درصد در کلاک ایجاد شده وجود داشته باشد .
فرکانس نوسان بوسیله ی فیوزبیت های CKSEL تعیین شده و مطابق جدول زیر می باشد.
در این وضعیت CKOPT نباید پروگرام شود.
اسیلاتور RC خارجی : در کاربردهایی که دقت کلاک اهمیت زیادی ندارد می توان از این منبع استفاده کرد .
پیکربندی مطابق شکل زیر بوده و فرکانس نوسان از رابطه ی بدست می آید .
حداقل مقدار Cبرابر22 پیکوفاراد بوده و در صورتی که CKOPT پروگرام شود می توان مقدار 36 پیکوفاراد را نیز لحاظ نمود.
این منبع نوسان می تواند در چهار MODEکاری عمل کند که هر کدام برای یک بازه ی فرکانسی بهینه شده است و بوسیله ی فیوزبیت های CKSEL مطابق جدول زیر انتخاب می شود.
اسیلاتور کریستالی فرکانس پایین: این منبع کلاک می تواند کریستال های فرکانس پایین مثل کریستال ساعت با فرکانس 32768 هرتز باشد با دادن مقدار 1001 به فیوزبیت های CKSEL.
منبع کلاک کریستال خارجی فرکانس پایین انتخاب شده و در این وضعیت پیکربندی مطابق شکل زیر می باشد.
در صورت پروگرام نمودن CKOPT می توان از خازن خارجی صرفنظر نمود.
کریستال کوارتز یا رزوناتور سرامیکی : پبن های XTAL1 و XTAL2 به ترتیب ورودی و خروجی یک تقویت کننده ی وارونگر هستند که می توانند به عنوان یک اسیلاتورOn-chip مطابق شکل زیر پیکربندی شوند.
• به جای کریستال کوارتز می توان از رزوناتور سرامیکی استفاده نمود که از دوام بیشتری در مقابل ضربه بر خوردار است و زمان STARTUP کمتری نیز دارد و البته نسبت به کریستال کوارتز دقت کمتری داشته و پایداری دمایی آن نیز کمتر است.
• در این وضعیت خازن های 36 پیکو فاراد حذف شده و عملکرد فیوزبیت CKOPT نیز تغییر می کند .
بدین ترتیب که با پروگرام شدن این بیت دامنه ی خروجی تقویت کننده ی وارونگر افزایش یافته و می توان از پین XTAL2 به عنوان کلاک برای یک وسیله ی دیگر استفاده نمود.
همچنین با فعال کردن CKOPT در محیط های نویزی عملکرد اسیلاتور بهبود می یابد.
• چنانچه از رزوناتور استفاده می شود برای فرکانس های بالاتر از 8 مگاهرتز باید CKOPT پروگرام شود.
اسیلاتور می تواند در سه وضعیت متفاوت نوسان کند که هرکدام برای یک محدوده ی فرکانسی بهینه شده است و آن را می توان با فیوز بیت های CKSEL مطابق جدول زیر انتخاب نمود.
با هر یک از منابع کلاک انتخاب شده بوسیله ی فیوزبیت های ,CKSELدو بیت به نام های [1,0] SUT نیز وجود دارد که از طریق آن می توان حداکثر زمان Start-up منبع کلاک را به میکرو اعلام نمود .
مقدار این بیت ها به طور پیش فرض ماکزیمم زمان Start-up را در نظر می گیرد و در صورتی که نیاز است مقدار آن را تغییر دهید مطابق جداول مربوطه در فصل System Clock and Clock Options در Datatsheet عمل کنید.
منابع RESET با Reset شدن میکروکنترلر، تمام رجیسترهای I/O به مقدار اولیه شان تغییر می کنند و CPU شروع به اجرای دستورالعمل ها از بردار Reset خواهد کرد.
در قطعه ی 5 Mega 16 منبع Reset وجود دارد که عبارتند از: 1.
Power-on Reset 2.
External Reset 3.
Brown-out Reset 4.
Watchdog Reset 5.
JTAG AVR Reset منطق Reset مطابق دیاگرام زیر می باشد: مشخصات هر یک از منابع Reset را در جدول زیر مشاهده می کنید: Power-on Reset .
1 : زمانی فعال خواهد که ولتاژ Vcc کمتر از حد تعیین شده باشد.
این منبع تضمین می کند که وسیله در زمان راه اندازی Reset می شود .
با رسیدن ولتاژ به حد آستانه ، شمارنده ی تاخیر راه اندازی شده که تعیین می کند چه مدت وسیله در وضعیت Reset بماند .
دیاگرام زمانی زیر شرایطی را نشان می دهد که پین RESET به Vcc وصل شده است.
(و یا آزاد باشد چون این پین از داخل Pull-up شده است).
و نمودار زیر شرایطی است که سطح منطقی پین Reset تابع Vcc نمی باشد: External Reset .
2: این Reset بوسیله ی یک پالس با سطح صفر منطقی روی پین Reset ایجاد شده و حداقل عرض آن 1,5 میکرو ثانیه می باشد .
با رسیدن ولتاژ این پین به مقدار آستانه در لبه بالا رونده، شمارنده ی تاخیر شروع به کار کرده و پس از اتمام زمان Time-out میکروکنترلر کار خود را شروع خواهد کرد.
Brown-out Detection .
3: قطعه ی ATMega 16 دارای یک مدار Brown-out Detection داخلی بوده که پیوسته مقدار ولتاژ Vcc را با یک مقدار ثابت مقایسه می کند .
این مقدار ثابت برابر 2,7 ولت بوده و در صورتی که فیوزبیت BODLEVEL پروگرام شود به 4,0 ولت افزایش می یابد .
با کمتر شدن ولتاژ تغذیه از این مقدار ثا بت میکروکنترلر وارد حالت Reset شده و با عادی شدن ولتاژ ، پس از اتمام تاخیر به وضعیت عادی باز می گردد .
برای حفاظت در برابر Spike مقدار آستانه دارای پسماند بوده و در نتیجه دارای دو مقدار مثبت و منفی می باشد که با توجه به مقادیر موجود در جدول از رابطه ی و بدست می آید.
مدار Brown-out Detection در حالت عادی غیر فعال بوده و برای راه اندازی آن باید فیوزبیت BODEN پروگرام (صفر) شود.
Watchdog Reset .
4 : با اتمام زمان تایمر Watchdog ،تایمر یک پالس به عرض یک سیکل ایجاد خواهد کرد .
در لبه ی پایین رونده ی این پالس، تایمر تاخیر شروع به شمارش زمان تاخیر کرده و پس ازاتمام آن میکروکنترلر کار عادی خود را ادامه خواهد داد.
MCU Control and Status Register این رجیستر محتوی اطلاعاتی است که نشان می دهد کدامیک از منابع Reset باعث راه اندازی مجدد CPU شده است.
نرم افزار پس از خواندن هر بیت باید با نوشتن صفر بر روی آن، پرچم را پاک کند تا در صورت Reset مجدد، وقوع آن قابل تشخیص باشد.
Bit 0 – PORF: Power-on Reset Flag Bit 1 – EXTRF: External Reset Flag Bit 2 – BORF: Brown-out Reset Flag Bit 3 – WDRF: Watchdog Reset Flag Bit 4 – JTRF: JTAG Reset Flag SPI Bus SPI که یک استاندارد سریال سنکرون می باشد سرنام Serial Peripheral Interface بوده و بوسیله شرکت موتورولا طراحی شده است .
این استاندارد به لحاظ پشتیبانی از سرعت های بالا نه تنها در کاربردهای اندازه گیری بلکه در مواردی نظیر انتقال حجم بالای اطلاعات ، پردازش سیگنال دیجیتال، کانال های ارتباطی و .
.
.
نیز مورد استفاده واقع می شود .
سرعت چند مگابیت بر ثانیه به راحتی توسط SPI قابل دسترسی است و در نتیجه امکان انتقال صوت فشرده نشده و تصویر فشرده شده وجود خواهد داشت.
در زیر لیست برخی از وسایل SPI آورده شده است: نحوه عملکرد SPI این استاندارد برای ایجاد یک ارتباط به چهار خط ارتباطی نیاز دارد: همانطور که ملاحظه می شود این چهار خط ,SCK ,MOSI ,MISO SS بوده که به ترتیب خط کلاک، ,Master out slave in ,Master in slave out ,Slave Select می باشند .
نحوه ی تعامل Master و Slave در شکل زیر نشان داده شده است: سیستم شامل دو Shift Register و یک مولد کلاک می باشد.
Master با صفر کردن خط SS از slave مورد نظر ، چرخه ی ارتباطی را آماده می کند.
Master و Slave داده ی مورد نظر برای ارسال را در Shift Register قرار داده و Master با ایجاد کلاک در خط SCK مبادله ی داده را آغاز می کند .
اطلاعات از پین MOSI در Master خارج شده و وارد پین MOSI درSlave می شود .
در طرف Slave نیز داده از پین MISO خارج شده و وارد MISO از Master می شود .
بعد از اتمام ارسال یک ,Packet مجددا خط SS توسط Master یک شده و بدین ترتیب Slave با Master سنکرون می شود.
رجیسترهای SPI ماژول SPI دارای سه رجیستر ,SPDR,SPSR وSPCR بوده که به ترتیب رجیسترهای داده، وضعیت و کنترل می باشند.
SPI Data Register نوشتن بر روی این رجیستر شروع انتقال داده را موجب خواهد شد و خواندن آن موجب خواندن داده ی موجود در بافر دریافت خواهد شد.
SPI Status Register :Double SPI Speed Bit با نوشتن یک بر روی این بیت در صورتیکه ماژول SPI در وضعیت Master باشد فرکانس کلاک موجود روی پین SCK دو برابر خواهد شد.
:Write COLlision Flagاین پرچم زمانی یک خواهد شد که در حین انتقال یک بایت بر روی رجیستر SPDR مقداری نوشته شود.
با اولین خواندن رجیستر SPSR این بیت پاک می شود.
:SPI Interrupt Flag این بیت در دو حالت یک می شود: 1.
با اتمام ارسال یک بایت این پرچم یک شده و در صورتی که بیت SPIE و فعال ساز عمومی وقفه ها یک باشند اتمام عملیات می تواند باعث ایجاد یک وقفه شود.
2.
پین SS از خارج توسط یک وسیله ی دیگر زمین شود، این به معنای از دست د ادن حاکمت باس بوده و این وضعیت با یک شدن بیت SPIF اعلام می شود .
با اجرای ISR یا خواندن رجیستر وضعیت این بیت پاک می شود.
SPI Control Register :SPI Clock Rate Select 1 and 0 این دو بیت نرخ کلاک SCK را که Master ایجاد می کند مطابق جدول زیر تعیین می کنند.
Clock Phase و Clock Polarity : این دو بیت مطابق جدول زیر زمان بندی انتقال و دریافت داده روی باس SPI را تعیین می کنند: Master/Slave Select: با یک کردن این بیت ماژول SPI در وضعیت Master قرار می گیرد.
:Data Order با یک بودن این بیت ابتدا MSB روی باس منتقل می شود و در صورت صفر بودن ابتدا LSB.
:SPI Enable بیت فعال ساز SPI :SPI Interrupt Enable بیت فعال ساز وقفه ی SPI نحوه ی انتقال داده در SPI وقتی ماژولSPI به عنوان Master پیکربندی شده است خط SS را بصورت خودکار کنترل نمی کند و این وظیفه باید توسط نرم افزار، قبل از آغاز یک چرخه ی ارتباطی انجام شود .
پس از صفر کردن ,SSنوشتن یک بایت در رجیستر داده (SPDR) باعث ایجاد کلاک توسط واحد تولید کلاک خواهد شد و با هر پالس ، داده ی موجود در Shift Register های Master و Slave یک بیت شیفت داده شده و پس از 8 پالس ساعت پرچم SPIF به نشانه ی اتمام ارسال یک می شود .
پس از این Masterمی تواند برای ارسال بایت بعدی آن را در SPDR نوشته و یا به نشانه ی اتمام ارسال خط SS را یک نگاه دارد.
در نقطه ی مقابل زمانیکه ماژول SPI در نقش Slave پیکربندی شده است، مادامیکه خط SS یک است پین MISO در وضعیت tri-stated می باشد .
در این شرایط ممکن است که رجیستر SPDR توسط Slave بروز شود اما تا زمانی که خط SS توسط Master صفر نشود انتقال انجام نخواهد شد .
پس از Low شدن SS و اتمام دریافت یک بایت پرچم SPIF یک شده و در صورت یک بودن SPIF و بیت و ,I این رویداد می تواند باعث ایجاد وقفه شود .
پس از این ممکن است Slave داده ی جدیدی را در SPDR قرار دهد منتها باید قبل از آن داده ی دریافتی را بخواند.
ارتباط شبکه ای در SPI مطابق تصویر زیر با استفاده از پین SS می توان تعدادی Slave را کنترل نمود.
Master باید تنها پین SS Slave, ای را که می خواهد با آن ارتباط برقرار کند صفر کند و بقیه را یک نگه دارد.
برنامه فرستنده: 'IN THE NAME OF GOD' 'NAME PROJECT:FERESTADAN ETELAAT BE VASILE 2 MICRO VA NAMAYESH ON ROYE LCD' 'DESIGN BY:hamed.
moniri@Gmail.
com' 'moarefi chip mored estefade' $regfile = "M32def.
dat" 'ferequence crystal ke mored estefade gharar migirad' $crystal = 8000000 'data order: ebteda Most Significant Bit ya least Most Significant be port spi ersal shavad' 'hard: baraye etesal sakht afzar estefade mishavad' 'polarity: Select HIGH to make the CLOCK line high while the SPI is idle.
LOW will make clock LOW while idle' 'clockrate:The clock rate selects the division of the of the oscillator frequency that serves as the SPI clock ' Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes Polarity = High , Phase = 0 , Clockrate = 128 'baraye taen payehayi az micro ke mored estefade gharar migirad' 'debounce baraye control sorate micro az en dastor estefade mishavad.
chon micro dar har saneye hodod 500 or 1000 bar zir barname ra mikhanad' 'delay baraye jologiri az noise dar safhe kelid estefade mishavad' Config Kbd = Portc , Debounce = 20 , Delay = 50 Dim B As Byte 'tarif B be onvan moteghayer dar vorodi' Spiinit 'rah andazi port spi' 'baraye ejade takhir dar barname be andazeye 500 ms estefade shode' Waitms 500 ' halghe ta zamani ke b<16 bashad tekrar mishavad va vaghti adad > 16 bashad az halghe kharej mishvim' Do 'shoroe halghe ba do' B = Getkbd() If B < 16 Then Spiout B , 1 'ferestadan 1 byte' Else 'dar gheyr en sorat B = 0 End If Loop End برنامه گیرنده : 'IN THE NAME OF GOD' ''DESIGN BY:HAMED.
MONIRI@GMAIL.
COM' regfile = "M8535.
dat" 'moarefi chip mored estefade'$ $crystal = 8000000 'ferequence crystal ke mored estefade gharar migirad' Config Lcdpin = Pin , Db4 = Portc.
4 , Db5 = Portc.
5 , Db6 = Portc.
6 , Db7 Portc.
7 , E = Portc.
3 , Rs = Portc.
2 'data order: ebteda Most Significant Bit ya least Most Significant be port spi ersal shavad' 'hard: baraye etesal sakht afzar estefade mishavad' 'polarity: Select HIGH to make the CLOCK line high while the SPI is idle.
LOW will make clock LOW while idle' 'clockrate:The clock rate selects the division of the of the oscillator frequency that serves as the SPI clock'.
Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = No , Polarity = High , Phase = 0 , Clockrate = 128 Dim A As Byte , B As Byte 'tarif A va B be onvan moteghayer' Lcd " READY!" Wait 1 Cls 'be modat 1 saniye peygham ready! zaher mishvad va tavasot dastor cls pak mishavad' Spiinit 'rah andazi port spi' Do Spiin A , 1 'khandan moteghayer az port spi' If A >= 0 And A < 16 Then B = Lookup(a , Read_key) 'be B dastor midahad az roye jadval read_key adad ra bar gardanad' Select Case B: :Case 0 To 9 Lcd B 'lcd prints 0 , 1 ,2 ,3 .
.
.
or 9' :Case 10 " Lcd "unknown :Case 11 " Lcd "unknown : Case 12 Lcd "unknown" Case 13: Cls 'safheye lcd ra pak mikonad' Case 14: Lcd ".
" 'lcd print .
' :Case 15 "Lcd "unknown End Select Else Lcd "Bad input" 'agar bar asar noise adad digari ferestade shod en peygham zaher mishavad' End If Loop End Read_key: Data 15 , 13 , 0 , 14 , 12 , 9 , 8 , 7 , 10 , 6 , 5 , 4 , 11 , 3 , 2 , 1 توضیح برخی از دستورات استفاده شده در محیط برنامه نویسی BASCOM برای برنامه نویسی در محیط BASCOM ابتدا بایستی به تعیین میکروی مورد استفاده و نوع کریستال آن اشاره نمود برای این منظور از دستورات زیر استفاده می شود.
VAR= REGFILE $ $CRYSTAL = X در دستورات فوق VAR نام چیپ های مورد استفاده است و X فرکانس کریستال استفاده شده بر حسب هرتز می باشد این دستور حتی برای زمانیکه تنها از اسیلاتور داخلی میکرو استفاده می شود به کار می رود.
CONFIG برای تعیین پایه پورتها از این پیکربندی استفاده می کنیم ، جهت یک پایه میتواند خروجی یا ورودی باشد.
برای مثل :Config port x = state xبسته به میکرو می تواند به ترتیب پایه های 7-0 پورت های A,B,C,D,E,F باشد.
State نیز می تواند یکی از گزینه های INPUT و OUTPUT باشد.
در این حالت رجیستر جهت داده پایه یا پورت به عنوان ورودی یا خروجی استفاده می شود.
DIM این دستور بُعد یک متغیر را می دهد.
با این دستور می توان متغیر هایی که در برنامه به کار برده شده ، تعریف نمود.
Dim Var As [ XRAM / SRAM / ERAM ] data tape [ AT location ] [ OVERLAY ] VARنام متغیری که در برنامه به کار برده می شود.
در صورت استفاده از حافظه ی جانبی آن را با XRAM مشخص می کنیم و SRAM قرار دهیم و ERAM متغیر مورد نظر را در EEPROM داخلی جای می دهد.
Data tape نوع داده است.
گزینه ی اختیاری OVERLAY متغیر تعریف شده را به صورت POINTER در نظر می گیرد و فضایی را برای متغیر در نظر نمی گیرد.
LCD این دستور برای نوشتن متن روی LCD استفاده می شود و برای LCD های ماتریسی عادی عمل می کند.
CURSOR توسط این دستور ، مکان نمای LCD تنظیم می شود.
CURSOR ON/OFF BLINK/NOBLINK می توان روشن (ON) یا خاموش (OFF) و چشمک زدن (BLINK) و یا چشمک زدن(NOBLINK) مکان نما را تنظیم کرد.
در حالت پیش فرض مکان نما در حالت (ON) و (NOBLINK) است.
CLS این دستور تمام صفحه نمایش LCD چه قسمت متنی و چه گرافیکی را پاک می کند.
DO-LOOP فرم کلی دستور DO….
.
LOOP به صورت زیر می باشد.
DO Statements Loop [ UNTIL Expression ] دستورالعمل Statements تازمانیکه Expression دارای ارزش True یا غیر صفر است تکرار خواهد شد.
بنابراین ، این نوع حلقه ، حداقل یک بار تکرار می شود.
DO….
.
LOOP به تنهایی یک حلقه ی بینهایت است که با EXIT DO می توان از درون آن خارج شد و اجرای برنامه در خط بعد از حلقه ادامه یابد.
WAIT برای ابجاد تأخیر در برنامه از این دستور استفاده می شود.
در صورتیکه بخواهیم تأخیر در برنامه در حد میلی ثانیه باشد پس از استفاده از دستور WAIT علامت ms را بکار می بریم.
GETKBD( ) SOURCE = GETKBD( ) توسط این دستور میکرو صفحه کلید را خوانده و عدد متناظر با کلید فشرده شده را در متغیر Source قرار می دهد.
این دستور زمانی که کلید فشرده نشده ایت عدد 16 را بر می گرداند.
BOUNCE ( لغزش ) سرعت میکرو کامپیوترها به قدری بالاست که در هر ثانیه حدود 500 تا 1000 بار زیر برنامه بالا اجرا می شود بایستی توجه کنید که اگر به طور مثال یک کلید به مدت یک ثانیه فشار داده شود با این حساب 500 تا 1000 بار کلید خوانده می شود و در روند برنامه اختلال ایجاد می شود که به این اتفاق BOUNCE می گویند و برای رفع آن پس از هر بار اجرای این زیر برنامه باید یک تأخیر در حدود ms25 ایجاد کنیم.
CASE کنترل اجرای دستورات یک برنامه دارای ترتیب بالا به پائین است ولی در صورت نیاز می توان توسط دستورالعمل های انشعاب یا پرش برای کنترل اجرای دستورات یک برنامه را تغییر داد.
Select Case Var CASE test 1 : statement 1 [ CASE test 2 : statement 2] CASE ELSE : statement 3 End select اگر متغیر Var با مقدار test 1 برابر باشد statement 1 اجرا می شود و سپس اجرای برنامه بعداز End select ادامه می یابد در غیر این صورت اگر متغیر Var با مقدار test 1 برابر نباشد ولی با مقدار test 2 برابر باشد ، statement 2 اجرا می شود و سپس اجرای برنامه بعد از End select ادامه می یابد و در نهایت اگر متغیر Var با هیچکدام از مقادیر test 1 و test 2 برابر نباشد ، statement 3 اجرا می شود و سپس اجرای برنامه بعد از End select ادامه می یابد.
آماده کردن LCD برای نمایش CONFIG LCD = LCDtype اتصال صفحه کلید 3 × 4 بهAVR صفحه کلیدها در ماتریس هایی از ستون های و سطر ها سازماندهی می شود .
AVR سطرها و ستون ها را از طریق یکی از 4 پورت خود دستیابی می کند .
بنابراین با یک پورت 8 بیت یک ماتریس 4×4 یا 3×4 از کلیدها قابل اتصال خواهد بود .
هنگامی که که کلیدی فشرده شود یک سطر به یک ستون می چسبد.
در غیر این صورت اتصالی بین سطرها و ستونها موجود نیست .
شکل( الف )یک ماتریس3×4 متصل به یک پورت را نشان می دهد .
سطرها به پورت PC0تا PC3 و ستونها به پورت PC5 تا PC7 وصل می باشد .
اگر کلید فشرده نشود خواندن پورت ورودی 1 را برای همه ستونها نتیجه خواهد داد زیرا همه آنها به ولتاژ سطح بالا (vcc) متصل می باشد .
اگر همه سطرها به زمین وصل شوند و کلیدی فشرده شود یکی از ستون ها 0 خواهد شد زیرا کلید فشرده شده مسیری را به زمین ایجاد می کند.
این به عهده میکرو کنترلر است که صفحه کلید را دائما برای تشخیص و شناسایی کلید فشرده شده پویش کند.
زمین کردن سطرها و خواندن ستون ها برای تشخیص کلید فشرده شده میکروکنترلر همه سطرها رابا تهیه 0درلچ خروجی به زمین وصل می کند و سپس ستون را می خواند.
اگر داده خوانده شده از ستون D3-D0=1111 باشد کلیدی فشرده نشده است و فرآیند تا تشخیص کلید فشرده شده ای ادامه خواهد داشت.
با این وجود اگر یکی از بیت های ستون حاوی 0 باشد به این معنی است که کلید فشرده شده است.
مثلا اگر D3-D0=1101 باشد کلیدی در ستون D1فشرده شده است.
پس از تشخیص کلید فشرده شده میکروکنترلر وارد فرایند شناسایی کلید می گردد.
با شروع از سطر بالا میکروکنترلر با زمین کردن سطر D0ان را به زمین وصل می نماید سپس ستون ها را می خواند.
اگر داده خوانده شده تماما 1باشد کلید در ان سطر فشرده نشده است و فرآیند به سطر بعدی منتقل می گردد.
سپس سطر را زمین می کند و ستون ها راخوانده و به دنبال 0 می گردد .
این عمل تا شناسایی سطر ادامه می یابد.
پس از شناسایی سطری که در آن کلید فشرده شده است یافتن ستونی که کلید به آن متعلق است کار بعدی می باشد این شناسایی ساده است زیرا میکروکنترلر در هر لحظه می داند که کدام سطر یا ستون یا دستیابی کرده است.
برای اطمینان از رهائی کلید قبلی به همه سطرها به یکباره 0 اعمال می شود و ستون ها مرتبا خوانده شده و وارسی می گردند تا همه ستونها در سطح بالا باشند.
وقتی همه ستونها در سطح بالا تشخیص داده شوند برنامه قبل از رفتن به مرحله بعدی مکث می کند و سپس برنامه منتظر فشردن کلید بعدی خواهد بود.
برای یافتن کلید فشرده شده ستون ها بوسیله یک حلقه نا متناهی مکررا پویش می شوند تا یکی از آنها حاوی 0 شود پس از تشخیص فشردگی کلید 20 میلی ثانیه برای حذف جهش ناشی از اتصال کلید صبر کرده و دوباره ستون ها را پویش می کند.
این کار دو عمل را موجب می شود .
(الف): اطمینان از اینکه اولین تشخیص فشردگی به دلیل پارازیت اتفاقی نبوده (ب): تاخیر 20 میلی ثانیه ی موجب می شود تا فشردن کلید مذکور بعنوان چندین فشردگی تعبیر نشود .
اگر پس از تاخیر باز هم کلید فشرده تشخیص داده شد برای یافتن سطر مربوط به مرحله بعد خواهد رفت در غیر این صورت به حلقه برنامه یافتن کلیدفشرده واقعی باز می گردد .
اتصال LCD به AVR در این قسمت پایه های LCD را توسط شکل توضیح داده شده است.
این شکل ها کاملا واضح است و نیاز به توضیح نمیبینم.
شکل کلی مدار فرستنده و گیرنده توسط AVR شکل(الف) .
متن بالا فقط تکه هایی از متن به صورت نمونه در این صفحه درج شده است.شما بعد از پرداخت آنلاین فایل را فورا دانلود نمایید

 

بعد از پرداخت ، لینک دانلود را دریافت می کنید و ۱ لینک هم برای ایمیل شما به صورت اتوماتیک ارسال خواهد شد.


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


دانلود آشنایی با میکرو کنترلرهای AVR

دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم

اختصاصی از یاری فایل دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم دانلود با لینک مستقیم و پر سرعت .

دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم


دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم

موضوع :دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم

 

 

 

 
2 فایل ریکاوری گوشی اچ تی سی HTC One VX
twrp -totemc2.img

با لینک مستقیم می توانید فایل مورد نظر خود را دانلود نمایید
با تشکر تیم پدوفایل


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


دانلود فایل ریکاوری گوشی اچ تی سی وان وی ایکس مدل HTC One VX با لینک مستقیم

ساخت فلاشر با میکروکنترلر AVR و با ATMEGA 16

اختصاصی از یاری فایل ساخت فلاشر با میکروکنترلر AVR و با ATMEGA 16 دانلود با لینک مستقیم و پر سرعت .

ساخت فلاشر با میکروکنترلر AVR و با ATMEGA 16


ساخت فلاشر با میکروکنترلر AVR و با ATMEGA 16

 

 

 

 

 

 

 

 

 

اِی‌وی‌آر (به انگلیسی: AVR)، خانواده‌ای از ریزکنترل‌گرهای جدید است که شرکت اتمل، آن را روانهٔ بازار الکترونیک کرده است. این ریزکنترل‌گرهای هشت بیتی به خاطر دارا بودن قابلیت برنامه‌نویسی توسط کامپایلر زبان‌های برنامه‌نویسی سطح بالا، مورد توجه قرار می‌گیرند. این ریزکنترل‌گرها از معماری ریسکبرخوردارند. همچنین شرکت اتمل کوشیده‌است تا با استفاده از معماری پیشرفته و دستورهای بهینه، حجم کد تولید شده را پایین آورده و سرعت اجرای برنامه را بالا ببرد. یکی از مشخصات این نوع ریزکنترل‌گرها دارا بودن ۳۲ ثبات همه منظوره است. همچنین در این ریزکنترل‌گرها، از حافظه‌های کم مصرف و غیر فرار فلش و ای‌ای‌پی‌رام استفاده می‌شود.

کامپایلرهایی به زبان بیسیک و C که زبان‌هایی پرکاربردی در دنیا محسوب می‌شوند: برای این نوع ریزکنترل‌گرها طراحی شده‌است. البته در حال حاضر استفاده از کامپایلر بسکام BAScom که نسبت به زبان c بسیار راحت تر و سریع تر عمل می‌کند جایگزین زبان c شده است. همچنین زبان اسمبلی را نیز می‌توان برای برنامه‌نویسی به کار برد. برای نمونه کامپایلر بسکام با زبان بیسیک برای برنامه‌نویسی این نوع از ریزکنترل‌گرها می‌تواند به کار رود. همچنین نرم‌افزار CodeVision، برای برنامه‌نویسی به زبان C (سازگار با این ریزکنترل‌گرها) بسیار رایج است (البته این برنامه بیشتر میان کاربران ایرانی رواج دارد، در میان کاربرهای خارجی کمتر دیده شده و بیشتر از برنامهٔ رسمی شرکت Atmel استفاده می‌شود).

در این پروژه با استفاده از میکروکنترلر ATMEGA16 و زبان کد نویسی Code Vision یک فلاشر طراحی شده است که مدار آن نیز در پروتئوس اجرا شده است. در این مدار 8 LED به میکروکنترلر وصل شده اند و از بالا تا پایین روشن می شوند و سپس از پایین به بالا دوباره روشن می شوند. با روشن شده یک ال ای دیود قبلی خاموش می شود.


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


ساخت فلاشر با میکروکنترلر AVR و با ATMEGA 16

افزایش کارآیی برنامه های وب در ASP.NET 2.0

اختصاصی از یاری فایل افزایش کارآیی برنامه های وب در ASP.NET 2.0 دانلود با لینک مستقیم و پر سرعت .

افزایش کارآیی برنامه های وب در ASP.NET 2.0


افزایش کارآیی برنامه های وب در ASP.NET 2.0

مقاله کامل بعد از پرداخت وجه

لینک پرداخت و دانلود در "پایین مطلب"

فرمت فایل: word (قابل ویرایش و آماده پرینت)

تعداد صفحات:117

افزایش کارآئی برنامه های وب در ASP.NET 2.0  ( بخش اول )
یکی از ملزومات کلیدی در هر نوع برنامه کامپیوتری میزان کارائی و قابلیت پاسخگوئی سریع آن به کاربران است . طراحان و  پیاده کنندگان برنامه های کامپیوتری می بایست در زمان طراحی ، پیاده سازی و نوشتن کد به این موضوع توجه جدی داشته باشند.
برنامه های وب با توجه به ماهیت و رسالت خود می بایست قادر به ارائه خدمات مورد نیاز  به صدها و یا هزاران متقاضی همزمان به سادگی و با سرعت مطلوب باشند. به عبارت دیگر ، همزمان با افزایش کاربران نمی بایست شاهد افت سرعت و کارآئی یک برنامه وب باشیم . 
با ارائه فریمورک دات نت و به دنبال آن ASP.NET ، پیاده سازی یک برنامه وب بطرز ناباورانه ای ساده شده است . همین موضوع باعث شده است که  طراحان و پیاده کنندگان بیشتر در اندیشه طراحی و پیاده سازی سریع برنامه های وب باشند و به مسائل مربوط به کارآئی برنامه کمتر توجه نمایند .
پیاده کنندگان برنامه های وب با استفاده از  فناوری ASP.NET می بایست با بکارگیری مجموعه ای از ترفندها ، فناوری ها و رعایت برخی نکات کلیدی اقدام به پیاده سازی برنامه های وب با کارآئی بالا نمایند .


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


افزایش کارآیی برنامه های وب در ASP.NET 2.0