Kronometre ccs compiler pic 16f628a ile yapıldı harici osilatör kullanıldı.
süre program içi delay_ms(1000); 1 sn karşılığına gelir.
#include <16F628A.h>
#fuses xt
#use delay(crystal=4MHz)
#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <lcd.c>
int saat=0,dakika=0,saniye=0,sayi=0;
void main()
{
set_tris_a(0xff);
set_tris_b(0x00);
output_a(0x00);
output_b(0x00);
lcd_init();
while(TRUE)
{
if(input(pin_a0)==1)
{
sayi++;
delay_ms(50);
}
if(sayi==1)
{
for(;;)
{
if(input(pin_a1)==1)
{
sayi=0;
break;
}while(input(pin_a1)==1);
saniye++;
delay_ms(1000);
if(saniye >= 59)
{
saniye=0;
dakika++;
if(dakika >= 59)
{
dakika=0;
saat++;
if(saat >= 23)
{
saat=0;
dakika=0;
saniye=0;
}
}
}
printf(lcd_putc,"\f%d : %d : %d",saat,dakika,saniye);
}
}
if(input(pin_a2)==1)
{
saat=0;
dakika=0;
saniye=0;
printf(lcd_putc,"\f%d : %d : %d",saat,dakika,saniye);
}
}
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...