• 20-12-2010, 09:58:12
    #1
    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..
  • 20-12-2010, 11:06:37
    #2
    ...
  • 20-12-2010, 11:34:40
    #3
    P16F877A ile ilgili..
  • 20-12-2010, 11:43:48
    #4
    1 - 2 soru konuya yazdim bakin lütfen yardımcı olursanız sevinirim..
  • 20-12-2010, 16:12:10
    #5
    Bu 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