راه اندازی 74hc595 با SPI !!!

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

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

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

راه اندازی 74hc595 با SPI !!!

پست توسط sinaset » پنج شنبه 20 دی 1397, 11:18 am

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


خیلی ساله،که این فکر به ذهنم خطور میکرد،که ایا میشود این ایسی را با SPI راه اندازی کرد! یا نه، بعد از مدتها دیشب به صورت اتفاقی ازمایشی در پرتئوس انجام دادم! و سون سگمنتی را با SPI راه اندازی کردم..!
 
تصویر
در ازمایش بالا،به کمک واحد SPI در فرکانس 4مگاهرتز، ایسی 74hc595 راه اندازی شده و اعداد 0 تا 9 را بر روی سون سگمنت تک کاتدمشترک،می شمارد و نمایش میدهد! 

*البته ازمایش روی پرتئوس جواب داده ولی هنوز به صورت سخت افزاری ازمایش نشده است! 

همچنین همانطور که در تصویر می ببینید،دو عدد ایسی 595 راه اندازی شده و مشکلی از بابت تعداد بالا راه اندازی در ایسی نیست!

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

 /*******************************************************
data :1397.10.20 
ver : spi 74hc 595 v1
by:sinaset
site:centralclubs.com
Chip type: ATmega8
AVR Core Clock frequency: 8.000000 MHz
*******************************************************/
#include <mega8.h>
#include <spi.h>
#include <delay.h> 

#define  SS  PORTB.2=1,PORTB.2=0;
flash unsigned char Segment[10]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F};  //عدد نمايشي سون سگمنت

void main(void)
{
char i=0;
DDRB=(0<<DDB7) | (0<<DDB6) | (1<<DDB5) | (0<<DDB4) | (1<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 4000/000 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=(0<<SPIE) | (1<<SPE) | (0<<DORD) | (1<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);  //راه اندازي SPI
SPSR=(0<<SPI2X);

delay_ms(300);

while (1)
      {     
         spi(0x0f);         //ايسي همينطوري وصل شده!
         spi(Segment[i]);   //سون سگمنت 
         SS;                //نمايش کدها  
         
         i++;
         if(i>9)i=0; 
         
         delay_ms(500);         
      }
}[/i]

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

ارسال پست

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