ارتباط میکروکنترولرها،بدون استفاده از واحد درونی!(ورژن 0.2)

در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

ارسال پست
Colonel II
Colonel II
نمایه کاربر
پست: 7162
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9217 بار
سپاس‌های دریافتی: 21328 بار
تماس:

ارتباط میکروکنترولرها،بدون استفاده از واحد درونی!(ورژن 0.2)

پست توسط sinaset » پنج شنبه 10 اسفند 1396, 9:30 am

بنام خدا
باسلام



ارتباطات بین میکروکنترولرها،بدون استفاده از واحد درونی!

در این تاپیک راه هایی ارتباط بین میکروکنترولرها بدون استفاده از واحدهای ارتباطی درونی (مثل I2C و UART و SPI و .. ) معرفی میشوند .

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

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 7162
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9217 بار
سپاس‌های دریافتی: 21328 بار
تماس:

Re: ارتباطات بین میکروکنترولرها،بدون استفاده از واحد درونی!

پست توسط sinaset » پنج شنبه 10 اسفند 1396, 10:26 am

بنام خدا
باسلام


ارتباط 9 پایه و ارسال 8 بیتی (1 بایتی )اطلاعات! (ورژن 0.2 بتا) تصویر در این نوع ارتباط تقریبا ساده،که به تازگی ان را ساخته ایم، می توان به کمک 1 پایه (برای کلاک ) هشت بیت (1 بایت) را برای میکروکنترولر گیرنده،ارسال کرد !

شرح مختصرع:
برای راه اندازی این ارتباط از وقفه شماره 0 میکروکنترولر گیرنده استفاده شده.بدین صورت که،وقتی میکروکنترولر فرستنده،می خواهد پیام ارسال کند، یک لحظه پایه وقفه شماره 0 را صفر یا زمین می کند، سپس بایت دریافت (که بطور کلی شکل PORTB می باشد) به درون یک متغیر ریخته میشود،سپس به روی LCD نمایش داده میشود .
در این نوع ارتباط،با هر بار کلاک 8 بیت اطلاعات ارسال میشود ..

کد فرستنده:

کد: انتخاب همه

/*******************************************************
Project : Sent & Rec Atmega 8 to Atmega 8
Date    : 1396.12.10
Author  :  sinaset
centralclubs.com
v 0.2 Beta

*******************************************************/
#include <mega8.h>     //کتابخانه ميکروکنترولر
#include <delay.h>     //کتابخانه تاخير
#include <stdio.h>

#define DATA  PORTB       //هشت  بيت ارسالي توسط اين پايه مشخص ميشود
#define flag_on  PORTD.0=0;   // تنظيم پايه کلاک
#define flag_off  PORTD.0=1;  //تنظيم پايه کلاک

const int Time=100;  //مدت زمان تاخير بين دستورات ارسالي به ميلي ثانيه

interrupt [EXT_INT0] void ext_int0_isr(void)   //تابع وقفه 0
{
}

void Send_c(unsigned char c)
{
      flag_on;
      DATA=c;
      flag_off;
      delay_ms(Time);
}
void main(void)   
{
 

// INT0: On
// INT0 Mode: Any change
GICR|=(0<<INT1) | (1<<INT0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00);
GIFR=(0<<INTF1) | (1<<INTF0);

DDRD.0=1;
PORTD.0=1;
DDRB=0xff;
PORTB=0x00;

delay_ms(500);

#asm("sei")
while (1) 
    {   
      Send_c('b');
      Send_c('e');
      Send_c('n');
      Send_c('a');
      Send_c('m');
      Send_c('e');
      Send_c('k');
      Send_c('h');
      Send_c('o');
      Send_c('d');
      Send_c('a');
      
    }   
   
}


کد گیرنده :

کد: انتخاب همه

/*******************************************************
Project : Sent & Rec Atmega 8 to Atmega 8
Date    : 1396.12.10
Author  :  sinaset
centralclubs.com
v 0.2 Beta
*******************************************************/
#include <mega8.h>    
#include <delay.h>   
#include <alcd.h>
#include <stdio.h>

#define DATA PINB    //پايه دريافت هشت بيت دريافتي

unsigned char rec,str[16];

interrupt [EXT_INT0] void ext_int0_isr(void)    //وقفه صفر،براي مطلع شد،دريافت اطلاعات
{

if(PIND.2==0)
{   
  rec=DATA;
}

}

void main(void)    
{
#asm("sei")   

lcd_init(16);

lcd_clear();
lcd_gotoxy(0,0);
lcd_puts("Be Name KHoda");
delay_ms(500);
lcd_clear();

// INT0: On
// INT0 Mode: Any change
GICR|=(0<<INT1) | (1<<INT0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00);
GIFR=(0<<INTF1) | (1<<INTF0);

while (1)
    { 
      while(DATA==0)
      lcd_clear();
      lcd_gotoxy(0,0);
      sprintf(str,"data:%c",DATA);
      lcd_puts(str);
      DATA=0;
    }
   




دانلود برنامه از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

ارسال پست

بازگشت به “آموزش و مثال‌ها AVR”