Selam. Siz kendi kendine sayan
programı yazın. Şemayı da ekleyin.
Sensör kısmına yardım ederim.
Asagidaki programda MicroC de yazilmis sanirim.
#define UP Button(&PORTA,6,180,0)
#define DWN Button(&PORTA,7,180,0)
const char ledKod[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x67};
char basamak[4],sayac=0,digit=0;
const char tr[4]={1,2,4,8};
int sayi=0;
void basamakHesapla(int deger)
{
basamak[0]=ledKod[deger/1000];
basamak[1]=ledKod[(deger%1000)/100];
basamak[2]=ledKod[(deger%100)/10];
basamak[3]=ledKod[(deger%10)];
}
//----------Timer0---------------------------------------------------
//Prescaler 1:16; TMR0 Preload = 68; Actual Interrupt Time : 3,008 ms
void InitTimer0()
{
OPTION_REG = 0x83; // tarama süresi 3ms olarak ayarlandı
TMR0 = 68;
INTCON = 0xA0; // T0IE, GIE bitleri "1", T0IF biti "0"
}
void Interrupt()
{
if (INTCON.T0IF){
INTCON.T0IF = 0;
TMR0 = 68;
sayac++; // sayac'ı bir arttır (display sayısı için)
if(sayac==4) sayac=0; //dört display olduğu için 4 te sıfırlanıyor
PORTA=0;
PORTB=basamak[sayac];
PORTA=tr[sayac];
}
}
void kurulum()
{
CMCON=7;
TRISA=0xC0;
TRISB=0;
PORTA=0x0F;
PORTB=0xFF;
InitTimer0();
}
void main()
{
kurulum();
Delay_ms(1000); // test için 1 sn bütün segmentler aktif
basamakHesapla(sayi);
while(1)
{
if(UP)
{
sayi++;
basamakHesapla(sayi);
Delay_ms(200);
}
if(DWN)
{
sayi--;
basamakHesapla(sayi);
Delay_ms(200);
}
}
}
#define arttir button (&porta,0,100,1) // A portunun 0 pinine arttir butonu tanımladık
#define azalt button (&porta,1,100,1) // A portunun 1 pinine arttir butonu tanımladık
#define birler porta.f2 // birler basamağını aktif edecek pini tanımladaık
#define onlar porta.f3 // onlar basamağını aktif edecek pini tanımladaık
char sayi=0; // sayi diye bir karakter tanımladık
char birlerbasamagi=0, onlarbasamagi=0; // basamaklardaki değerleri göstereşek değişkenleri
// tanımladık
void main() // Programın başlama noktası ve ana fonksiyon
{
trisb=0; // B portunu çıkış ayarladık
trisa.f0=1; // A portunun 0. pinini giriş olarak ayarladık
trisa.f1=1; // A portunun 1. pinini giriş olarak ayarladık
trisa.f2=0; // A portunun 2. pinini çıkış olarak ayarladık
trisa.F3=0; // A portunun 3. pinini çıkış olarak ayarladık
portb=0; // B potunu temizledik
cmcon=7; // Karşılaştırıcıları kapattık ve ADC de kapalı
while(1) // Sonsüz döngüye girdik
{
birler=0; // birler basamağını aktif ettik
portb=birlerbasamagi; // B poruna birler basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
birler=1; // birler basamağını pasif ettik
onlar=0; // onlar basamağını aktif ettik
portb=onlarbasamagi; // B poruna onlar basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
onlar=1; // onlar basamağını pasif ettik
if(arttir) // Eğer arttir butonuna basıldı ise
{
sayi++; //sayıyı bir arttır
birlerbasamagi=sayi%10; // birler basamağını bulmak için mod 10'ununa eşitledik
onlarbasamagi=sayi/10; // onlar basamağını bulmak için 10'a böldük
while(arttir) // Arttir butonuna basıldığı sürece
{
birler=0; // birler basamağını aktif ettik
portb=birlerbasamagi; // B poruna birler basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
birler=1; // birler basamağını pasif ettik
onlar=0; // onlar basamağını aktif ettik
portb=onlarbasamagi; // B poruna onlar basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
onlar=1; // onlar basamağını pasif ettik
}
}
if(azalt && sayi!=0) // Eğer azalt butonuna basıldı ve sayı 0 değilse
{
sayi--; // sayıyı bir azalt
birlerbasamagi=sayi%10; // birler basamağını bulmak için mod 10'ununa eşitledik
onlarbasamagi=sayi/10; // onlar basamağını bulmak için 10'a böldük
while(azalt) // Azalt butonuna basıldığı sürece
{
birler=0; // birler basamağını aktif ettik
portb=birlerbasamagi; // B poruna birler basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
birler=1; // birler basamağını pasif ettik
onlar=0; // onlar basamağını aktif ettik
portb=onlarbasamagi; // B poruna onlar basamağını yükledik
Delay_ms(3); // 3ms gecikme bıraktık
onlar=1; // onlar basamağını pasif ettik
}
}
if(sayi==99) // Eğer sayı 99'a eşitse
sayi=98; // sayıyı 98'e eşitle
}
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?