Dani Amarullah

Just Try in Error

Rekan-rekan LOA

Alumni-alumni LOA minta biodatanya key…

May 21, 2007 Posted by p2bf | Sukaresmi LOA | | 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