UYGULAMA-3

advertisement
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ı
Download