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

طرز کار با نرم افزار AVR

انتشار 5 آذر 1397
مطالعه 4 دقیقه

در این بخش کار با ریز پردازند avr و چگونگی استفاده از آن را برای شما آموزش خواهیم داد

طرز کار با نرم افزار AVR

avr چیست؟

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

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

  •  AVR Z-Link
  •  CAN AVR
  •  LCD AVR
  •  Lighting AVR
  •  megaAVR
  • Smart Battery AVR
  • tinyAVR
  • USB AVR
  •  XMEGA 
  • AT90S (منسوخ شده)

آموزش تصویری کار نرم افزار avr

 
 

 

پورت ها:

در atmega32  چهار پورت ورودی/خروجی به نام های A,B,C,D وجود دارد که هرکدام دارای مقاومت های pullup هستند .پورت ها بعد از ریست همه به عنوان ورودی قرار می گیرند .برای تنظیم پورتها به عنوان ورودی و خروجی با توجه به جدول زیر عمل می کنیم.

تصویر

 برای نمونه کد زیر پورت A را به عنوان پورت خروجی با مقدار اولیه 1 قرار میدهد:

DDRA=0xFF; 
PORTA=0x00;

تأخیر نرم افزاری:

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

  1.  استفاده از تایمر ها/شمارنده ها
  2. استفاده از توابع تأخیر نرم افزاری آماده

در اینجا شیوه دوم را توضیح میدهیم. بدین منظور باید اول کتابخانه مربوط به توابع تأخیر ( delay.h) را در برنامه لود کنیم. سپس از توابع تأخیر میتوانیم استفاده کنیم. توابع تأخیر موجود delay_ms(n)  و delay_us(m) هستند که n نشان دهنده تأخیر به صورت میلی ثانیه است و m نیز تأخیر به صورت میکروثانیه است.
برای  مثال در کد زیر LED های متصل به پورت A  هر یک ثانیه روشن و خاموش میشوند.

#include
#include void
main(){ DDRA=0xFF;
PORTA=0x00; while(1){PORTA=~PORTA; delay_ms(1000);
}

راه اندازی LCD کاراکتری:

برای مشخص کردن پورت خروجی متصل کننده ی LCD به میکروکنترلر از طریق کامپایلر که در اینجا  codevision است به ترتیب زیر عمل میکنیم.
از مسیر project/configure پنجره ی configure project باز می شود.
در اینجا تب C Compiler و سپس libraries و بعد (alphanumeric lcd (alcd.h را انتخاب می کنیم.
در تب باز شده گزینه enable alphanumeric lcd support را انتخاب می کنیم. سپس با توجه به تصویر زیر پورت مورد نظر را انتخاب می کنیم.
البته این کار را هم میشد در مرحله اول ساخت پروژه جدید در codevision AVR wizard انجام داد.
حال برای استفاده از توابع LCD کاراکتری باید فایل کتابخانه ای توابع آن (alcd.h) را در ابتدای برنامه لود کرد.

توابع موجود در LCD کاراکتری:

  • عدد n که ورودی تابع است باید برابر 12 باشد.
  • lcd_clear: این تابع کل صفحه نمایش را پاک می کند و نشانه گر را در سطر صفر و ستون صفر قرار میدهد.
  • (lcd_puts (buffer : این تابع رشته متنی موجود در حافظه SRAM را روی نمایشگر چاپ  میکند.
  • (lcd_putsf (str : این تابع رشته متنی str را روی نمایشگر چاپ  میکند.
  • (lcd_putchar (c : این تابع تک کاراکتر موجود در حافظه SRAM یا ورودی تابع را روی نمایشگر چاپ  میکند.
  • (lcd_write_data(num_ : این تابع کد های فرمان )که در اینجا num ورودی تابع است( را مطابق جدول زیر به LCD می فرستد.
  • lcd_read_byte : برای خواندن اطلاعات موجود در RAM نمایشگر استفاده می شود.

تصویر

منابع وقفه در میکروکنترلر AVR در جدول زیر آمده اند:

تصویر

مبدل آنالوگ به دیجیتال:

میکروکنترلر AVR خود دارای مبدل آنالوگ به دیجیتال است.
رجیسترهای مربوط به مبدل آنالوگ به دیجیتال:
رجیستر ADMUX :

تصویر

برای انتخاب ولتاژ مرجع ADC با توجه به جدول زیر استفاده میکنیم.

تصویر

ADLAR : از این بیت برای 8 یا 12 بیتی بودن خروجی ADC استفاده می کنیم.

[ADMUX [4:0 : برای انتخاب کانال ورودی استفاده میشود.(00000 تا 00111 برای انتخاب تک سیگنال ورودی به پایه های پورت A به کار برده می شود.)

رجیستر ADCSRA :

تصویر

  • ADEN : با یک کردن این بیت ADC فعال می شود.
  • ADSC : با یک شدن این بیت تبدیل شروع می شود.
  • ADATE : با یک کردن این بیت ADC می تواند به صورت اتوماتیک با لبه بالا رونده منبع تحریک کننده شروع به تبدیل کند. منبع تحریک توسط بیت های ADTS از رجیستر SFIOR انتخاب می شود.
  • ADIF : بعد از اتمام تبدیل یک می شود از این بیت ما متوجه می شویم که تبدیل به پایان رسیده است.
  • ADIE : با یک کردن این بیت هرگاه عمل تبدیل به اتمام رسید وقفه ای صادر می شود که توسط آن زیر روال وقفه میتوان مقدار داده ADC را خواند.
  • ADC :با توجه به جدول زیر استفاده می شود.

تصویر

رجیستر داده (ADC ( ADCH,ADCL : 
در این دو رجیستر اطلاعات خروجی ADC قرار دارند. برای دسترسی به هر دو به صورت 12 بیتی میتوان از ADCW استفاده کرد.
رجیستر SFIOR :

تصویر

[ADTS [2:0 : از طریق این بیت ها می توان منبع تحریک را برای شروع تبدیل مطابق جدول زیر انتخاب کرد:

تصویر


 

لطفا امتیاز خود را ثبت کنید
1 5
  ارسال به دوستان:

در پاسخ به:
اختیاری
اختیاری (نمایش داده نخواهد شد)
ضروری
پرسش و دیدگاه شما
اختیاری
اختیاری (نمایش داده نخواهد شد)
ضروری
دیدگاه کاربران

خدمات سینا ترجمه


ترجمه تخصصی کتاب

ثبت سفارش

ترجمه تخصصی مقاله

ثبت سفارش

ترجمه تخصصی متن

ثبت سفارش

ترجمه انگلیسی به فارسی

ثبت سفارش

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

ثبت سفارش

پارافریز

ثبت سفارش

فرمت بندی

ثبت سفارش

ترجمه تخصصی

ثبت سفارش

اینستاگرام تلگرام