UYGULAMA-3 YAPAY OLARAK ÜRETĐLEN ĐŞARETLERĐN MĐKRODENETLEYĐCĐ ĐLE ALINMASI, GÖRSEL C++ DĐLĐNDE YAZILAN PROGRAM ĐLE GÖRÜNTÜLENĐP KAYDEDĐLMESĐ 1.ÖZET Bu uygulamada, ADUC841 µ--denetleyicisinin denetleyicisinin ADC ile sayısallaştırdığı analog işaretler işaretl UART haberleşmesi ile bilgisayara aktarılacak ve bilgisayarda çalışmakta olan program aracılığı ile ekranda ekr görüntülenecektir. Đlk kısımda, ADuC841 denetleyicisi programlanacaktır. Belirli bir örnekleme frekansı ile örneklenen analog giriş işareti, UART üzerinden bilgisayara akt aktarılacaktır. Đkinci kısımda görsel C++ ++ dilinde bir program gerçeklenecektir. Program, seri porttan gönderilen bilgiyi kullanarak örnek değerlerini elde edip edip, bu değerleri ekranda çizdirecektir. Uygulama sonunda, µ-denetleyici denetleyicinin ADC girişine işaret üreteci teci ile verilen analog işaret, bilgisayar ekranında görüntülenecek ve örnek örneklenen değerler bir dosyaya yazılacaktır. 2. ADUC 841 ĐLE ANALOG ĐŞARETLERĐN ÖRNEKLENMESĐ Analog bir işaret sayısal biçime dönüştürülürken, belirli bir periyot ile örnekleme örne yapılmalıdır. Örnekleme frekansı, Nyquist kriterine göre işaretteki maksimum frekansın iki katından daha büyük olmalıdır. Örneğin frekans spektrumunda incelendiğinde, Elektrokardiyogram (EKG) işaretinin anlamlı kısmı 0.05 Hz ile 100 Hz arasında bulunmaktadır. unmaktadır. Bu nedenle, EKG işareti minimum 200 Hz ile örneklenmelidir. Uygulamada, µ-denetleyici analog işareti 400 Hz ile örnekleyecektir. Bu durumda örnekleme periyodu TS=1/ 400Hz =2.5 ms olmalıdır. Uygulamada, TIMER0, kesme ile kullanılacak, her 2.5ms’de bir, ADC girişindeki analog işaret örneklenip UART ile bilgisayara gönderilecektir. ADC işaretinin bilgisayar tarafında tarafından doğru bir şekilde okunabilmesi için, ADC byte’ları gönderilmeden önce UART üzerinden bir FF gönderilir. Böylece bilgisayarda çalışan yazılım yeni bir ADC verisi geldiği bilgisini alacaktır (Bkz: Şekil 1) Şekil 1. ADuC841’den PC’ye gönderilecek verinin formatı: Yapılacaklar: a) ADC ile 400 Hz’de örnekleme yapmak için gerekli TH0 ve TL0 değerlerini hesaplayınız. b) UART’ın aşağıdaki gibi programlanması için diğer saklayıcı değerlerini belirtiniz. Mod 1 Tek işlemcili çalışma Veri alımı aktif 57600 Baudrate c) Şekil 2’deki akış diyagramını sağlayacak olan program kodunu hazırlayınız. d) Programı işlemciye yükleyiniz. e) Yükleme bittikten sonra WSD programını kapatınız. f) "C:\ADUC\SeriPortOku.exe" programını çalıştırıp, seri port’tan veri gönderildiğini doğrulayınız. 3. VISUAL C++ ĐLE BĐLGĐSAYAR PROGRAMININ HAZIRLANMASI Bu kısımda Visual C++ kullanılarak, seri port üzerinden bilgisayara gönderilen ADC işaretleri ekranda görüntülenecektir. NOT: Kendi grup elemanlarınız tarafından hazırlanan ön çalışmalardan herhangi birini kullanabilirsiniz. Ön çalışmada dosyadan okuma yaptığınız için, ön çalışmaya ek olarak, yalnızca seri port açma ve ayarlamaya ilişkin kodu programınıza eklemeniz gerekmektedir. Grubunuzda kimse ön çalışmayı yapmadıysa ya da kimsenin ön çalışması çalışmıyorsa, uygulama sırasında ön çalışmayı yeniden hazırlamanız gerekmektedir. Elinizde kullanabileceğiniz bir ön çalışma varsa, aşağıdaki adımlara geçebilirsiniz. Yapılacaklar: 1. Ön çalışmanızı Visual C++ programı ile açınız. 2. Ön çalışmada, programınızın bir dosyayı açıp bu dosyadan okuma yapması gerekiyordu. Burada, dosyanın yerine seri portun açılması ve ayarlanması için gerekli kodu programınızın uygun bölümüne ekleyiniz. (SeriPort: 57600 BaudRate, ByteSize=8 Bit, OneStopBit, NoParity) 3. Mikro denetleyici çalışır haldeyken programınızı çalıştırınız. Menüyü kullanarak okuma işlemini başlatınız. 4. Mikro denetleyicinin ADC girişine işaret üreteci ile 0-3.3V arası genlikte ve 10Hz frekansında sinüs işareti uygulayınız. 5. Programınızın gönderilen işareti doğru bir biçimde görüntülediğini doğrulayınız. 6. Asistanınızın yönergeleri doğrultusunda istenilen değişiklikleri programınızda gerçekleştiriniz. ANA PROGRAM BAŞLA ADC’yi uygun biçimde ayarla TIMER0 KESME PROGRAMI TH0 ve TL0 saklayıcılarına uygun değerleri yaz Timer0 başlat UART için gerekli ayarları yap TMOD ve TCON saklayıcılarını ayarla TH0 ve TL0 saklayıcılarına uygun değerleri yaz Bir ADC çevrimi yap UART üzerinden bir FF yolla ADCDATAH saklayıcı değerini (kanal bilgisini silip) UART üzerinden gönder ADCDATAL saklayıcı değerini UART üzerinden gönder Timer0 kesmesini etkinleştir Kesmeden Çık Timer0 başlat JMP $ Şekil 2. ADuC 841 için yazılacak programın akış diyagramı