Arkadaşlar universitede hoca ödev verdi,
Bana zor geldi verdigi uygulama,Asm yazicaz fakat pek bilgim yok,
Bilen anlayan varsa ödevi buraya geçireyim yardımcı olun son gün bugün aksam saat 11.
SORU1.
Portd içerisinde yerleştirdiginiz b'11001100' bit paternini 6 bit kaydırdıktan sonra 6 bitde sola kaydıran programı yazin kaymalar arasi boşkuk 1 sn olsun.
SORU 3.
h'33' sabit sayısıyla portd deb girilen 8 bitlik bir sayıyı toplayan toplamı portbdeki ledlerde gmstereb programın akış diyagramını çizip,programı yaziniz.programı çalıştırmadan portd debn girilecek veri için port çaprazlama ve ölçme modülü üzerindeki DIP anahtarini ayarlayiniz..
mikroişlemci asm yazabilen.
4
●522
- 20-12-2010, 09:58:12
- 20-12-2010, 11:43:481 - 2 soru konuya yazdim bakin lütfen yardımcı olursanız sevinirim..
- 20-12-2010, 16:12:10Bu işlemler uzun süren işlemler sana kendi yazdığım toplama kodunu göndereyim ona bakarak bişeyler çıkar
Sola kaydırma işlemi için hazır komut var zaten sadece araya gecikme adlı alt yordamı ekleyeceksin onu da yolluyorum
16f84 ile senin işlemci aynı olması laızm
Toplama fonksiyonu 16 bitlik olarak gösterir çünkü toplam sonucu 8 biti aşabilir
;===PROG20.ASM====23706/2000======= LIST P=16F84 INCLUDE "P16F84.INC" CLRF PORTB ;PORTB' yi sil. BSF STATUS,5 ;BANKl'e geç. CLRF TRISB ;B portu tüm uçları çıkıs. MOVLW h'FF' ;W¬h'FF' MOVWF TRISA ;A potu tüın uçları giris. BCF STATUS, 5 ;BANK0'a geç. REG20 EQU 0X0C REG21 EQU 0X0D REG22 EQU 0X0E REG23 EQU 0X0F REG24 EQU 0X1A REG25 EQU 0X1B REG26 EQU 0X1C REG27 EQU 0X1D REG28 EQU 0X1E ;AL ve AH ilk sayının düşük ve yüksek biti ;BL ve BH 2. sayının düşük ve yüksek biti ;sonra alt tarafta bunlar toplanıyor ;sonucun düşük biti ilk olarak gösteriylir A1 butonuna basıldıgında yüksek bit ;gösteriliyor AL EQU 0x3D ;AL registerinin adresi AH EQU 0x3E ;AH registeri adresi BL EQU 0x3F ;BL registerinin adresi BH EQU 0x40 ;BH registerinin adresi TOPLA ;----------------------------------------- MOVF AL, W ;-->W¬AL ADDWF BL, F ;-->BL=BL+W(AL), alt byte toplamı BTFSC STATUS, 0 ;-->CARRY FLAG=1 mi ? INCF BH, F ;-->Evet, BH=BH+1 MOVF AH, W ;-->W¬AH ADDWF BH, F ;-->BH=BH+W(AH) , üst byte toplamı ALT_BYTE_GOSTER1 MOVF BL, W ;-->W¬BL MOVWF PORTB ;-->Alt byte toplamını göster TEST_A11 BTFSC PORTA, 1 ;-->A1 butonuna basıldı mı? GOTO TEST_A11 ;-->Hayır, tekrar test et UST_BYTE_GOSTER1 MOVF BH, W ;-->Evet, W¬0BH MOVWF PORTB ;-->Üst byte toplamını göster.
Diğer ödevin içinde sola veya saga öteleme komutu var tek yapmak gereken aşagıdaki gecikme altyordamını içine ekleyip çağırman
SAYAC1 EQU 0X0C SAYAC2 EQU 0X0D GECIKME MOVLW 0X90 MOVWF SAYAC1 DONGU1 MOVLW 0X90 MOVWF SAYAC2 DONGU2 DECFSZ SAYAC2,1 GOTO DONGU2 DECFSZ SAYAC1,1 GOTO DONGU1 RETURN END