Dani Amarullah

Just Try in Error

Jam Digital AVR

Hmmmm.. mungkin jarang sekali ya yang mau bahas mikrokontroller disini,hehehee.. tapi sebelumnya saya juga dalam masa pembelajaran dan saya Cuma belajar otodidak jadi maaf klo ada yang kurang jelas dan masih banyak yang kurang nya. :D

Ok sebelumnya teman2 harus punya perangkat keras nya(hardware), yang dibutuhin

    1. Rangkaian AVR dengan IC AT90S8535
    111

    2. Kabel ISP sebagai downloader nya
    222

    2. 8 buah 7segmen
    333

    3. 4 buah keypad
    444

      Untuk software compilernya saya menggunakan CodeVisionAVR v1.24.6 Professional, untuk yang lain saya belum mengetahuinya,maklum belajar sendiri,hehehehehe…

      Ini source untuk buat jam digital dengan menggunakan C :

      Ket:

      /*****************************************************
      This program was produced by the
      CodeWizardAVR V1.24.6 Professional
      Automatic Program Generator
      © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
      
      http://www.hpinfotech.com
      
      e-mail:office@hpinfotech.com
      
      Project : Jam Digital
      Version :
      Date    : 28/07/2007
      Author  : Dani Amarullah
      Company : Ciloto
      Comments: 
      
      Chip type           : AT90S8535
      Clock frequency     : 8,000000 MHz
      Memory model        : Small
      External SRAM size  : 0
      Data Stack size     : 128
      *****************************************************/
      
      #include <90s8535.h>
      #include <delay.h>
      #include <stdio.h>     
      
      #define btjam     PIND.4
      #define btmenit   PIND.5
      #define btdetik   PIND.6
      #define btreset   PIND.7
      
      flash char select[8]={128,64,32,16,8,4,2,1};
      flash unsigned char angka[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
      char buffer[8]={0,0,11,0,0,11,0,0};
      char detik=0,menit=0,jam=0;
      char detikal=5,menital=0,jamal=0;
      char lcd_buff[20];    
      
      bit alarm=0;
      // Timer 1 output compare A interrupt service routine
      interrupt [TIM1_COMPA] void timer1_compa_isr(void)
      {              
      
         if(detik==detikal)alarm=1;
         detik++;
         if(detik==60)
         {
            detik=0;
            menit++;
            if(menit==60)
            {
               menit=0;
               jam++;
               if(jam==24)jam=0;
            }
         }
      }
      
      // Timer 2 output compare interrupt service routine
      interrupt [TIM2_COMP] void timer2_comp_isr(void)
      {
         static char i;
            PORTA=~select[i];
            PORTB=angka[buffer[i]];
            i++;
            if (i>7) i=0;
      }  
      
      // Declare your global variables here
      
      void main(void)
      {
         unsigned int i;
      PORTA=0x00;
      DDRA=0xFF;
      PORTB=0x00;
      DDRB=0xFF;
      PORTD=0xF7;
      DDRD=0x0f;
      
      TCCR1A=0x00;
      TCCR1B=0x0C;
      OCR1AH=0x7A;
      OCR1AL=0x12;
      
      ASSR=0x00;
      TCCR2=0x0B;
      TCNT2=0x00;
      OCR2=0xFA;
      
      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x90;
      
      // Global enable interrupts
      #asm("sei")     
      
      i=0;
      while (1)
            {
              if(btjam==0)
               {
                  jam++;
                  if(jam>=24)jam=0;
               }
               else if(btmenit==0)
               {
                  menit++;
                  if(menit>=60)menit=0;
               }
               else if(btdetik==0)
               {
                  detik++;
                  if(detik>=60)detik=0;
               }
               else if(btreset==0)
               {
                  detik=menit=jam=0;
               }                 
      
               buffer[2]=11;
               buffer[5]=11;
               buffer[7]=detik%10;
               buffer[6]=detik/10;
               buffer[4]=menit%10;
               buffer[3]=menit/10;
               buffer[1]=jam%10;
               buffer[0]=jam/10;
               delay_ms(100);  
      
            }
      }
      
      
      
      1. 7segmen menggunakan PORT A dan C
      2. Keypad menggunakan PIN 4,5,6, dan 7
      3. Menggunakan LPT1(Prot Printer) untuk downloader nya
      4. Programmer Settingnya menggunakan Kanda System STK 200+/300

      Bagi yang mau mencobanya temen2 tinggal copy paste aja, caranya buka dulu program AVR nya terus pilih New| Project | pilih yes. Setelah itu pilih IC = AT90S8535 dan Clock = 8,000000.
      lalu pilih File | Generate, save and exit | Save | Save
      terus pastekan source tadi ke editor,selesai dan compile lah lalu download programnya ke IC. Beres dech,xixixixi… di saya seh alhamdulillah sukses :D

       

      sekian artikel ini, moga membantu dan maaf klo penjelasannya kurang jelas…

       

      September 10, 2007 Posted by p2bf | Mikr0Kontroller | | 4 Comments

      Bikin jam DIgital

      Hmmmm.. mungkin jarang sekali ya yang mau bahas mikrokontroller disini,hehehee.. tapi sebelumnya saya juga dalam masa pembelajaran dan saya Cuma belajar otodidak jadi maaf klo ada yang kurang jelas dan masih banyak yang kurang nya. :D

      Ok sebelumnya teman2 harus punya perangkat keras nya(hardware), yang dibutuhin

        1. Rangkaian AVR dengan IC AT90S8535
        111

        2. Kabel ISP sebagai downloader nya
        222

        2. 8 buah 7segmen
        333

        3. 4 buah keypad
        444

          Untuk software compilernya saya menggunakan CodeVisionAVR v1.24.6 Professional, untuk yang lain saya belum mengetahuinya,maklum belajar sendiri,hehehehehe…

          Ini source untuk buat jam digital dengan menggunakan C :

          /*****************************************************
          This program was produced by the
          CodeWizardAVR V1.24.6 Professional
          Automatic Program Generator
          © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
          
          http://www.hpinfotech.com
          
          e-mail:office@hpinfotech.com
          
          Project : Jam Digital
          Version :
          Date    : 28/07/2007
          Author  : Dani Amarullah
          Company : Ciloto
          Comments: 
          
          Chip type           : AT90S8535
          Clock frequency     : 8,000000 MHz
          Memory model        : Small
          External SRAM size  : 0
          Data Stack size     : 128
          *****************************************************/
          
          #include <90s8535.h>
          #include <delay.h>
          #include <stdio.h>     
          
          #define btjam     PIND.4
          #define btmenit   PIND.5
          #define btdetik   PIND.6
          #define btreset   PIND.7
          
          flash char select[8]={128,64,32,16,8,4,2,1};
          flash unsigned char angka[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
          char buffer[8]={0,0,11,0,0,11,0,0};
          char detik=0,menit=0,jam=0;
          char detikal=5,menital=0,jamal=0;
          char lcd_buff[20];
          bit alarm=0;
          // Timer 1 output compare A interrupt service routine
          interrupt [TIM1_COMPA] void timer1_compa_isr(void)
          {
             if(detik==detikal)alarm=1;
             detik++;
             if(detik==60)
             {
                detik=0;
                menit++;
                if(menit==60)
                {
                   menit=0;
                   jam++;
                   if(jam==24)jam=0;
                }
             }
          }
          // Timer 2 output compare interrupt service routine
          interrupt [TIM2_COMP] void timer2_comp_isr(void)
          {
             static char i;
                PORTA=~select[i];
                PORTB=angka[buffer[i]];
                i++;
                if (i>7) i=0;
          }
          // Declare your global variables here
          void main(void)
          {
             unsigned int i;
          PORTA=0x00;
          DDRA=0xFF;
          PORTB=0x00;
          DDRB=0xFF;
          PORTD=0xF7;
          DDRD=0x0f;
          TCCR1A=0x00;
          TCCR1B=0x0C;
          OCR1AH=0x7A;
          OCR1AL=0x12;
          ASSR=0x00;
          TCCR2=0x0B;
          TCNT2=0x00;
          OCR2=0xFA;
          // Timer(s)/Counter(s) Interrupt(s) initialization
          TIMSK=0x90;
          // Global enable interrupts
          #asm("sei")
          i=0;
          while (1)
                {
                  if(btjam==0)
                   {
                      jam++;
                      if(jam>=24)jam=0;
                   }
                   else if(btmenit==0)
                   {
                      menit++;
                      if(menit>=60)menit=0;
                   }
                   else if(btdetik==0)
                   {
                      detik++;
                      if(detik>=60)detik=0;
                   }
                   else if(btreset==0)
                   {
                      detik=menit=jam=0;
                   }
                   buffer[2]=11;
                   buffer[5]=11;
                   buffer[7]=detik%10;
                   buffer[6]=detik/10;
                   buffer[4]=menit%10;
                   buffer[3]=menit/10;
                   buffer[1]=jam%10;
                   buffer[0]=jam/10;
                   delay_ms(100);
          }
          }
          
          
          

          Ket:

          1. 7segmen menggunakan PORT A dan C
          2. Keypad menggunakan PIN 4,5,6, dan 7
          3. Menggunakan LPT1(Prot Printer) untuk downloader nya
          4. Programmer Settingnya menggunakan Kanda System STK 200+/300

          Bagi yang mau mencobanya temen2 tinggal copy paste aja, caranya buka dulu program AVR nya terus pilih New| Project | pilih yes. Setelah itu pilih IC = AT90S8535 dan Clock = 8,000000.
          lalu pilih File | Generate, save and exit | Save | Save
          terus pastekan source tadi ke editor,selesai dan compile lah lalu download programnya ke IC. Beres dech,xixixixi… di saya seh alhamdulillah sukses :D

           

          sekian artikel ini, moga membantu dan maaf klo penjelasannya kurang jelas…

           

          May 19, 2007 Posted by p2bf | Mikr0Kontroller | | No Comments Yet

          Tulisan berjalan

          lagi iseng aja ahhhh…..

          neh ada contoh buat mikrokontroler AT89s52 buat tulisan berjalan broooo…..

          /*--------------------------------------------*/
          
          #include<8051.h>
          
          unsigned char x=0;
          unsigned char digit[8];
          code unsigned char seg[]={1,2,4,8,16,32,64,128};
          code unsigned char dani[]={0x7b,0x06,0x37,0x5f,0x74,0x5e,0,0};
          
          void tunda(unsigned int ii)
          {
             unsigned int i;
             while(ii)
             {
                for(i=0;i<140;i++){;}
                ii--;
             }
          }
          
          void int_timer0() interrupt 1
          {
             TF0=0;
             TH0=0xf6;
             TL0=0;
             TR0=1;
             P1=~seg[x];
             P2=~digit[x];
             x++;
             if(x==8)x=0;
          }
          
          void main()
          {
             unsigned char i=0,j=8,k=0;
             ET0=1;
             EA=1;
             TR0=1;
             while(1)
             {
                 for(i=0;i<8;i++)
                 {
                    k=i+j;
                    if(k>=8)k-=8;
                    digit[i]=dani[k];
                 }
                 tunda(400);
                 j--;if(j==0)j=8;
             }
          }
          
          /*--------------------------------------------*/
          
          

          dhanie2.gif
          ga penting banget yachhhhh…….

          May 18, 2007 Posted by p2bf | Mikr0Kontroller | | No Comments Yet