AVR_Pro
22 subscribers
2 photos
13 files
آموزش قدم به قدم AVR بصورت عملی

سوال و راهنمایی:
@SMHashemi66
Download Telegram
یک نمونه دیگر از بلاک دیاگرام ATMEGA16
LCD.c
4.7 KB
#فایل_c_کتاب_خانه_LCD
برای استفاده از کتاب خانه LCD این فایل را به برنامه اضاف کنید.
LCD.h
2.1 KB
#فایل_h_کتاب_خانه_LCD
برای استفاده از کتاب خانه LCD این فایل را به برنامه اضاف کنید.
در فایل هدر(h) حتما تنظیمات مربوط به Port که LCD به آن متصل هست را انجام دهید
TIMER_cunter.pdf
1.1 MB
#Timer_Counter
آموزش تایمر وکانتر
در نظر داشته باشید آموزش برای تایمر0 گفته شده است
TST1.rar
45.4 KB
فایل برنامه و شبیه سازی مثال گفته شده در آموزش تایمر کانتر
#Timer_Counter
Channel photo updated
Channel photo updated
#مقدار_دهی_تک_بیت_ها_در_رجیستر
در هنگام برنامه نویسی بطور متداول زیاد پیش میاد که می خواهیم مقدار چند تک بیت داخل یک رجیستر را تغییر دهیم، ولی مقادیر دیگر بیت ها تغییر نکند. برای این کار روش منطقی زیر استفاده می شود.
زمانی که بخواهیم تعدادی بیت در یک رجیستر را یک کنیم از عملیات OR کردن استفاده می کنیم، بدین صورت که بیت های متناظر با بیت هایی که می خواهیم یک کنیم را مقدار یک و بقیه بیت ها را مقدار صفر می گذاریم. بدین دلیل که می دانیم OR شدن با صفر تغییری در مقدار بوجود نمی آورد و همچنین OR شدن با یک جواب یک در بر خواهد داشت.
@AVR_pro
Register_name|=0x26;
در اینجا @AVR_pro
"Register_name|=0x26;" = "Register_name= Register_name | 0x26;"
"0x26" = "0b00100110"
با این کار بیت های 1و2و5 رجیستر مقدار یک را خواهند گرفت و بقیه بیت های رجیستر بدون تغییر خواهند بود.
زمانی که بخواهیم تعدادی بیت در یک رجیستر را صفر کنیم از عملیات AND کردن استفاده می کنیم، بدین صورت که بیت های متناظر با بیت هایی که می خواهیم صفر کنیم را مقدار صفر و بقیه بیت ها را مقدار یک می گذاریم. بدین دلیل که می دانیم AND شدن با یک تغییری در مقدار بوجود نمی آورد و همچنین AND شدن با صفر جواب صفر در بر خواهد داشت.
Register_name&=0xBE; @AVR_pro
در اینجا
"Register_name&=0xBE;" = "Register_name= Register_name & 0xBE;"
"0xBE" = "0b10111110" @AVR_pro
با این کار بیت های 0و6 رجیستر مقدار صفر را خواهند گرفت و بقیه بیت های رجیستر بدون تغییر خواهند بود.
#خواندن_یا_بررسی_کردن_چند_بیت_در_رجیستر
@AVR_pro
برای خواندن یا بررسی کردن تعداد چند بیت یک رجیستر از دستور زیر استفاده می شود:
فرض کنید می خواهیم بدانیم دو بیت 3و5 مقدار یک دارند یا خیر، برای اینکار رجیستر را با متناظر بیت های بررسی شونده یک و بقیه صفر AND می کنیم تا تاثیر بقیه را از بین ببریم.
if ((Register_name & 0x24) == 0x24)
{
-------; @AVR_pro
-------;
}
@AVR_pro
watch(@AVR_pro).rar
87.9 KB
برنامه ساعت همراه با تنظیم
به شیوه کدنویسی دقت کنید سوالی داشتین بپرسین
Frequency_Meter.rar
89.7 KB
#frequency_meter
برنامه فرکانس متر با استفاده از تایمر0 بعنوان کانتر و تایر1 برای اندازه گیری زمان یک ثانیه
قابلیت اندازه گیری تا چند مگاهرتز با خطای چند هرتز البته تو شبیه سازی
Network Master Slave @AVR_pro.zip
211.1 KB
#Network_Master&Slave
برنامه شبکه میکروکنترلر با استفاده از روش Master & Slave با استفاده از USART برای بستر ارتباطی
در این مثال هر Slave وظیفه اندازه گیری دما رو بر عهده دارد. ولتاژ مرجع 2.55 ولت
در مثال بالا 👆👆 دقت کنید که پایه های TX نبایستی به یکدیگر بطور مستقیم وصل شوند, برای اینکار از بافر همراه با پایه enable استفاده شده است
در صورت داشتن سوال از طریق @SMHashemi66 اقدام فرمایید
The account of the user that owns this channel has been inactive for the last 5 months. If it remains inactive in the next 27 days, that account will self-destruct and this channel may no longer have an owner.
The account of the user that owns this channel has been inactive for the last 5 months. If it remains inactive in the next 19 days, that account will self-destruct and this channel may no longer have an owner.
The account of the user that owns this channel has been inactive for the last 5 months. If it remains inactive in the next 7 days, that account will self-destruct and this channel may no longer have an owner.