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

مدیونی نظر ندی

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

مدیونی نظر ندی

سلام.علیرضا آهنی هستم مدیر وبلاگ"الکترونیک دیجیتال". وبلاگ قبلی توی بلاگفا از بین رفت و به بلاگ مهاجرت کردم.در این وبلاگ دانسته هایم را می نویسم چون زکات علم اموزش ان است(هر چی یاد بدی بیشتر یاد میگیری).در صورتی که وبلاگ من نواقصی داشت از طریق نظرات به من اطلاع دهید.(خدایی دیگه اخر بی معرفتی هست که از مطلب ما استفاده کنی نظر ندی!)
تا کنون 14 دنبال کننده داشته ایم.لطفا دنبال کنید!
برای امنیت بیشتر ادرس ما را به صورت زیر وارد کنید:
https://micro1386.blog.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="">
تجدید کد امنیتی