'------------------------------------------------------------ 'Programın adı: Uyg_5_3.bas 'Programın işlevi: 16F84'ün PortA.1'deki butona basınca PortB'deki binary artan LED'ler yavaşlar, PortA.2'ye basınca LED'lerin binary sayma hızı artar.(Saymaya kaldığı yerden devam eder.) 'Tarih:26/03/2007 Uyarlama:1.00 Derleyici:PBP '------------------------------------------------------------ i var byte 'For-next dongu değişkeni gecikme var word 'Gecikme değişkeni Symbol LEDLER=$6 'PortB'nin adresini LEDLER 'değişkenine ata '------------------------------------------------------------ TrisB=%00000000 'PortB'nin tüm pin'leri çıkış TrisA=%00011111 'PortA'nın 0-4 pin'leri giriş gecikme=250 'Gecikme değişkeninin ilk değeri '------------------------------------------------------------ basla: i=0 'Saymayı 0'dan başlat say: while i<255 'i<255'den küçükse döngüye devam Poke LEDLER, i 'i'nin değerini LED'lerde göster i=i+1 ' i'yi 1 arttır Pause gecikme 'Gecikme kadar LED'leri yanık tut If PortA.1=0 then yavas 'PortA.1 butonuna basıldığında yavas bloğuna git If PortA.2=0 then hizli 'PortA.2 butonuna basıldığında hizli bloğuna git wend 'While komutuna git i'yi test et Goto basla 'i=>255 olduğunda 0'dan başla yavas: 'Gecikme süresini arttırma bloğu Pause 50 'Buton arkının sönmesi için bekle gecikme=gecikme+10 'gecikme değişkenini 10 mS arttır If PortA.1=1 then say 'Buton bırakıldıysa saymaya devam if gecikme>1000 then gecikme=1000 '1 sn den fazla gecikmeyi engelle endif goto yavas hizli: 'Gecikme süresini azaltma bloğu Pause 50 'Buton arkının sönmesi için bekle If PortA.2=1 then say 'Buton bırakıldıysa saymaya devam gecikme=gecikme-10 'gecikme değişkenini 10 mS azalt if gecikme<20 then gecikme=20 '20 mS den az gecikmeyi engelle endif goto hizli End '------------------------------------------------------------