7Segment 4Digit Timer

It continues from where it left the counter with a power outage. 99 hourse 99 minutes

Step 1: And Source Code

#include <16F628a.h>     // Kullan?lacak denetleyicinin ba?l?k dosyas? tan?t?l?yor.
//#device high_ints=true
 
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc, no CLKOUT
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES NOMCLR                   //Master Clear pin used for Input           
#FUSES NOCPD                    //No EE protection
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
 
//#priority ext, timer0 
/*
B7  E 
B6  D
B5  C
B4  G
B3  B
B2  F
B1  A
B0 BO?
*/
 
 
#define   display_1   pin_A0
#define   display_2   pin_A1
#define   display_3   pin_A2
#define   display_4   pin_A3
 
#define   buton       pin_A7
 
int  onlar = 0, yuzler = 0, binler = 0, birler=0, sayac=0;
int kayit=0;
//int16 resetle=0;
 
const int digit[10] = {0xD7, 0x42, 0xCD, 0xCB, 0x5A, 0x9B, 0x9F, 0xC2, 0xDF, 0xDB};
 
int i=0; // Tamsay? tipinde de?i?ken tan?mlan?yor
 
   void eeprom_yaz()
 
{
 write_eeprom(0,birler); 
 write_eeprom(1,onlar);  
 write_eeprom(2,yuzler); 
 write_eeprom(3,binler); 
 
}
 
void eeprom_oku()
{
birler=read_eeprom(0);delay_ms(8);
onlar =read_eeprom(1);delay_ms(8);
yuzler=read_eeprom(2);delay_ms(8);
binler=read_eeprom(3);delay_ms(8);
}
 
/* //****************** INT Kesmesi *****************************
 #int_ext 
 void ext_isr()
 {
 
 #use delay(clock=4000000)
 eeprom_yaz();
 
 }
 */
 
//****************** Timer0 Kesmesi *****************************
#int_timer0 // Timer0 kesmesi
void timer0_kesme () // Kesme fonksiyonu ismi
{
 set_timer0(61); // TMR0 de?eri belirleniyor
 i++; // i de?eri 1 artt?r?l?yor
 
 if (i==10) //  
 output_high(pin_A6);
 if (i==20) // i de?eri 20'ye e?itse  ç?k??? lojik-1 olsun ve i de?eri s?f?rlans?n
 {
 output_low(pin_A6);
 sayac++;
 i=0;
 
 }
}
 
 
 
 
 void basla()
{
 
if(input(buton))
{
delay_ms(10);
while(input(buton))
   {delay_ms(10);
onlar = 0;
yuzler = 0;
binler = 0;
birler=0;
i=0;
sayac=0;
   }  
}  
 
 
 
if(sayac==60)
{
 
if(binler==9 && yuzler==9)
{
onlar = 0;
yuzler = 0;
binler = 0;
birler=0;
}
kayit++;
sayac=0;
birler++;
if(birler==10)
      {
         onlar++;
         birler=0;
            if(onlar==6)
            {
            yuzler++;
            onlar=0;
               if(yuzler==10)
                  {
                     binler++;
                     yuzler=0;
                  }
              }
      }
if(kayit==2)
{eeprom_yaz();kayit=0;}      
}      
 
 
output_low(display_4);
output_low(display_3);
output_low(display_2);
output_high(display_1);
output_b(digit[birler]);
delay_ms(1);
 
output_low(display_4);
output_low(display_3);
output_low(display_1);
output_high(display_2);
output_b(digit[onlar]);
delay_ms(1);
 
output_low(display_4);
output_low(display_2);
output_low(display_1);
output_high(display_3);
output_b(digit[yuzler]);
delay_ms(1);
 
output_low(display_3);
output_low(display_2);
output_low(display_1);
output_high(display_4);
output_b(digit[binler]);
delay_ms(1);
 
 }
 
 
 
/********* ANA PROGRAM FONKS?YONU********/  
void main ( )
{
    
 
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_timer_0(RTCC_INTERNAL |RTCC_8_BIT | RTCC_DIV_256); // Timer0 ayarlar? yap?l?yor
   set_timer0(61); // TMR0 de?eri belirleniyor
 
   
   
  set_tris_a(0b10010000);
  set_tris_b(0b00000000);
  output_a(0x00);
  output_b(0x00); // B portu ç?k??? ilk anda s?f?rlan?yor
 
  //ext_int_edge(L_TO_H);
  //enable_interrupts(INT_EXT);
  enable_interrupts(INT_timer0); // int_timer0 kesmesini aktif yapar
  enable_interrupts(GLOBAL); // Aktif edilen kesmelere izin ver
 
eeprom_oku();
 
 
 while(true) // Sonsuz döngü
 {
basla();
 }
}
 








Jul 27,2016
1,118 viewsReport item
  • Comments(0)
  • Likes(0)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
0 / 10000

    You might like