الـــکـــتــرونـــــیــــک دیجــــیـــــتـــــال

آردوینو|AVR|ARM|آموزش
الـــکـــتــرونـــــیــــک دیجــــیـــــتـــــال

سلام.علیرضا آهنی هستم مدیر وبلاگ"الکترونیک دیجیتال". وبلاگ قبلی توی بلاگفا از بین رفت و به بلاگ مهاجرت کردم.در این وبلاگ دانسته هایم را می نویسم چون زکات علم اموزش ان است(هر چی یاد بدی بیشتر یاد میگیری).در صورتی که وبلاگ من نواقصی داشت از طریق نظرات به من اطلاع دهید.(خدایی دیگه اخر بی معرفتی هست که از مطلب ما استفاده کنی نظر ندی!)
تاکنون ‌12 نظر ثبت شده است.لطفا نظر بدهیــــــــــــــــــــــــــــــــــــــد!
تا کنون 6 دنبال کننده داشته ایم.لطفا دنبال کنیــــــــــــــــــــــــــــــــــــد!

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
آخرین نظرات

چند برنامه جالب با کدویژن

علی رضا آهنی | دوشنبه, ۲۲ آبان ۱۳۹۶، ۰۲:۱۱ ب.ظ

سلام.

یه چند تا برنامه نوشتم گفتم بگذارم

برنامه یک:
#include <mega16a.h>//میکرومگا شانزده

interrupt [EXT_INT0] void ext_int0_isr(void){//تابع وقفه
PORTB.0=!PORTB.0;//اگه بیت اول پورت یک بود صفرش کن و اگر صفر بود یک کن
}
void main(void)//تابع اصلی
{
    DDRB=0XFF;//پورت خروجی شود
    DDRD=0X00;//پورت در حالت صفر قرار گیرد
    GICR|=0x40;
    MCUCR=0x02;
    GIFR=0x40;
    #asm("sei")//فعال کردن وقفه
while (1)
      {
      // Place your code here

      }
}

برنامه دو:

#include <mega8.h>
#include <i2c.h>
#include <stdio.h>
#include "ssd1306.c"
void main(void)
{
i2c_init();
LCD_init();
LCD_Clear();
LCD_DrawImage(1);
while (1)
      {
}
}
برنامه سه:
#include <mega16a.h>
#include <stdio.h>
#include <i2c.h>
#include <delay.h>
#include <ds1307.h>
#include <alcd.h>
void main(void)
{
char buffer[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},h=0,m=0,s=0;
i2c_init();
rtc_init(0,3,0);
lcd_init(16);
while (1)
      {
rtc_get_time(&h,&m,&s);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buffer,"%d:%d:%d",h,m,s);
lcd_puts(buffer);
delay_ms(200);
      }
}

برنامه چهار:

#include <mega16.h>
#include <delay.h>
//////////////////////////////////////////////// 
flash char column[64]=
{
//استفاده کنیدMXCODERNEW 1.7از نرم افزار مخصوص تابلو روان یعنی 
};
char i,scan=0x01;
////////////////////////////////////////////////
void main(void)
{
    ////////////////////////////////////////////////
    DDRA=0xFF;
    DDRC=0xFF;
    DDRD=0xFF;
    ////////////////////////////////////////////////  
    while (1)
    {
        PORTA=0x01;
        for(i=0 ; i<=7 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;            
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد.
        
        PORTA=0x02;
        for(i=8 ; i<=15 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;  
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد. 
        
        PORTA=0x04;
        for(i=16 ; i<=23 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;    
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد.
        
        PORTA=0x08;
        for(i=24 ; i<=31 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;  
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد.
        
        PORTA=0x10;
        for(i=31 ; i<=39 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;  
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد.
     
        PORTA=0x20;
        for(i=40 ; i<=47 ; i++)
        {   
            PORTD = scan;
            PORTC = column[i];
            delay_us(63);
            scan=scan<<1;
        }   
        scan=0x01;  
        PORTD =0x00;//برای از بین بردن حافظه هستش-برشدار تا ببینی که چه مشکلی پیش میاد.       
    };                                                                             
}

برنامه پنج:

#include <mega16.h>
#include <delay.h>
#include <lcd.h>
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm


int Feshode_SHodane_Kelid(void)
{
    PORTA.0=0; PORTA.1=1; PORTA.2=1; PORTA.3=1;
    if(!PINA.4) return 1;
    if(!PINA.5) return 2;
    if(!PINA.6) return 3;
    if(!PINA.7) return 10;

    PORTA.0=1; PORTA.1=0; PORTA.2=1; PORTA.3=1;
    if(!PINA.4) return 4;
    if(!PINA.5) return 5;
    if(!PINA.6) return 6;
    if(!PINA.7) return 11;

    PORTA.0=1; PORTA.1=1; PORTA.2=0; PORTA.3=1;
    if(!PINA.4) return 7;
    if(!PINA.5) return 8;
    if(!PINA.6) return 9;
    if(!PINA.7) return 12;

    PORTA.0=1; PORTA.1=1; PORTA.2=1; PORTA.3=0;
    if(!PINA.4) return 15;
    if(!PINA.5) return 0;
    if(!PINA.6) return 14;
    if(!PINA.7) return 13;
    
    return 16; //اگه کلیدی فشرده نشه مقدار 16 ارسال میشه 
}


void Namayesh_Kelid_Feshorde_SHode(int key)
{
    if(key==0)  lcd_puts("0");
    if(key==1)  lcd_puts("1");
    if(key==2)  lcd_puts("2");
    if(key==3)  lcd_puts("3");
    if(key==4)  lcd_puts("4");
    if(key==5)  lcd_puts("5");
    if(key==6)  lcd_puts("6");
    if(key==7)  lcd_puts("7");
    if(key==8)  lcd_puts("8");
    if(key==9)  lcd_puts("9");
    if(key==10) lcd_puts("/");
    if(key==11) lcd_puts("*");
    if(key==12) lcd_puts("+");
    if(key==13) lcd_puts("-");
    if(key==14) lcd_puts("=");
    if(key==15) lcd_clear();
}


void main(void)
{
    int key;

    //چهار تا پایه اول ورودی و پول دان شدن
    DDRA=0X0F; PORTA=0XF0;

    lcd_init(16);

    while (1)
    {
        //وقتی  مقدار کی برابر 16 بشه یعنی هنوز روی دکمه ای فشرده نشده است
        //فرق حلقه زیر با حلقه وایل تنها اینه که حلقه زیر حداقل یکبار اجرا میشه
        //اگه از حلقه وایل استفاده میکردیم از دفعه دومی که حلقه وایل اجرا میشه  دیگه درست کار نمیکنه پروژه
        do
            key = Feshode_SHodane_Kelid();
        while(key==16);

        Namayesh_Kelid_Feshorde_SHode(key); 
        
        delay_ms(350);
    };
}
  • علی رضا آهنی

برنامه

جالب

کدویژن

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی