راه اندازی پورت سریال

شنبه 03 اسفند 1392  •  دسته بندی: پروژه های آماده با میکروکنترلر AVR  •  بازدیدها: 6342  •  برچسب ها: | | | | | | | | |

هدف پروژه

هدف از انجام این پروژه راه اندازی پورت سریال در میکروکنترلر avr میباشد.پورت سریال در این پورژه به صورت غیر هم زمان (Asynchronous) استفاده شده است بدین صورت که برای پورت سریال یک نرخ تبادل داده مشخص (Baud Rate) در نظر میگیریم و سپس در مقصد و یا کامپیوتر هم پورت سریال را با همان نرخ داده تنظیم میکنیم تا تبادل داده بین دو دستگاه صورت پذیرد.

سخت افزار مورد استفاده                                   

در این پروژه از واحد USART میکروکنترلر AVR استفاده میکنیم.واحد USART شامل دو پین خروجی به نام های TXD,RXDمی باشد که داده ها به صورت سریال از پین TXD ارسال میشود و داده ها به صورت سریال به پین RXD وارد میشود.واحد USART میکروکنترلر دارای وقفه دریافت و ارسال اطلاعات میباشد.بدین صورت که اگر وقفه واحد USART برای ارسال و یا دریافت داده ها فعال شده باشد میکروکنترلر پس پایان هر ارسال و یا دریافت اطلاعات وارد روتین وقفه خود میشود.بر روی برد آموزشی  یک عدد مبدل TTL به RS232 وجود دارد که این امکان را برای ما فراهم میکند که پورت سریال میکرو را به پورت COM کامپیوتر و یا هر دستگاه دیگری که دارای این پورت میباشد متصل نماییم.بر روی برد آموزشی همچنین یک مبدل پورت سریال به USB قرار دارد و در صورتی کابل USB برد به کامپیوتر وصل شود یک پورت سریال مجازی در کامپیوتر ساخته میشود که دادهای ارسالی و دریافتی توسط میکرو به وسیله این پورت را میتوان مشاهده کرد.

کتابخانه های استفاده شده                          

  • توابع ارسال و دریافت اطلاعات از پورت سریال در میکرو

تشریح کد برنامه

در این بخش به بررسی main برنامه میپردازیم.

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

#include <mega32.h>

// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>

کتابخانه mega32.h شامل تعریف رجیسترهای میکروکنترلر میباشد و از این کتابخانه برای دسترسی به آدرسدهی رجیستر های میکروکنترلر استفاده میکنیم.

کتابخانه stdio.h شامل توابع Printf و Scanf برای ارسال و دریافت دادها از پورت سریل میکروکنترلر میباشد.

کتابخانه delay.h شامل توابع لازم برای ایجاد تاخیر میباشد این کتابخانه شامل تابع delay_ms برای ایجاد تاخیر میلی ثانیه و تابع delay_us برای ایجاد تاخیر در حد میکرو ثانیه میباشد.

سپس میبایست با استفاده از پنجره CodeWizardAVR موجود در نرم افزار CodeVision پورت سریال میکرو را تنظیم نماییم ودر گزینه Teansmmiter را انتخواب کرده و Baud Rate را 9600 تنظیم میکنیم سپس کد تولید شده را در برنامه کپی میکنیم.

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

سپس برنامه وارد حلقه while میشود که در این حلقه میکروکنترلر هر یک ثانیه جمله www.naminic.com را به پورت سریال ارسال میکند.

while (1)
      {
      
      printf("www.naminic.com");
      
      delay_ms(1000);

      }

دانلود سورس کد

سورس کد کامل را از اینجا دانلود کنید.

مشاهده نتیجه

با کلیک بر روی عکس زیر فیلم راه اندازی این پروژه را مشاهده کیند.

فیلم راه اندازی پورت سریال میکروکنترلر

مطالب مرتبط

این مطلب را به اشتراک بگذارید:

نظری در این باره وجود ندارد، شما می توانید اولین کسی باشید که نظر می دهید.
نام:
ایمیل:
نظر: