ucdemirhan
Üye
- Katılım
- 7 Ocak 2021
- Mesajlar
- 2
- Puanları
- 1
- Yaş
- 25
Bizden istenen :
Devre Şeması :
Herkese merhabalar,
Öğrenciyim.
Mikroişlemci dersini alıyorum. Hocamız bizden bunları uygulamamızı istedi.
Maalesef ki hiçbir şey yapamıyoruz.(Derste öğrenmedik bundan dolayı da yapamıyoruz fakat final sınavında not olarak etkileyecek bir durum.)Yardımcı olabilir misiniz?
Teşekkürler...
Devre Şeması :
Kod:
;PROGRAM-17) 8-bit’lik sayıların çıkarılmasına örnek program
;(büyük sayıdan küçük sayıyı çıkarma). PORTB saklayıcısı
;içerisindeki h’5A’ sayısından W saklayıcı içerisindeki h’53’
;sayısını çıkarır, sonucu PORTB’ye bağlı LED’lerde gösteriri.
;Çıkarma sonucunun negatif veya pozitif olduğunu RA3’e bağlı LED’de gösterir.
;===PROG17.ASM====17/05/2005================================
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;-----------------------------------------------------------
ORG h'00'
CLRF PORTB ;PORTB'deki LED'leri söndür
CLRF PORTA ;PORTA'daki LED'leri söndür
BANKSEL TRISB ;BANK1'e geç
MOVLW b'11110111' ;PORTA.3 çıkış
MOVWF TRISA
CLRF TRISB ;PORTB tüm uçlar çıkış
BANKSEL PORTB ;BANK0'a geç
MOVLW h'5A' ;W ? h’5A’
MOVWF PORTB ;PORTB ? W
MOVLW h'53' ;W ? h’53’
SUBWF PORTB, F ;PORTB ? PORTB - W
BTFSC STATUS,0 ;STATUS C=1 mi?
BSF PORTA,3 ;Evet, çıkarma sonucu pozitif
DONGU
GOTO DONGU
END
;----------------------------------------------------------
Kod:
;PROGRAM-18) 8-bit’lik sayıların çıkarılmasına örnek program
;(küçük sayıdan büyük sayıyı çıkarma). PORTB saklayıcısı içerisindeki
;h’52’ sayısından W saklayıcısı içerisindeki h’53’ sayısını çıkaran,
;sonucu PORTB’ye bağlı LED’lerde gösteren program.
;===PROG18.ASM====17/05/2005================================
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;-----------------------------------------------------------
ORG h'00'
CLRF PORTB ;PORTB'deki LED'leri söndür
CLRF PORTA ;PORTA'daki LED'leri söndür
BANKSEL TRISB ;BANK1'e geç
MOVLW b'11110111' ;PORTA.3 çıkış
MOVWF TRISA
CLRF TRISB ;PORTB tüm uçlar çıkış
BANKSEL PORTB ;BANK0'a geç
BASLA
MOVLW h'53' ;W ? h’5A’
MOVWF PORTB ;PORTB ? W
MOVLW h'5A' ;W ? h’53’
SUBWF PORTB, F ;PORTB ? PORTB - W
COMF PORTB, F ;PORTB'yi tersle
INCF PORTB, F ;PORTB'ye 1 ekle
BTFSC STATUS,0 ;STATUS C=1 mi?
BSF PORTA,3 ;Evet, çıkarma sonucu pozitif
DONGU
GOTO DONGU
END
;-----------------------------------------------------------
Kod:
;PROGRAM-19) 16-bit’lik sayıların çıkarılmasına örnek program ;
;(büyük sayıdan küçük sayıyı çıkarma). h'0004' sayısından h'0001'
;sayısını çıkaran program. Program çalıştığında çıkarma sonucunun
;alt bayt'ı PortB'deki LED'lerde görülür. Üst bayt'ı görmek için RA0 butonuna basılır.
;===PROG19.ASM====17/05/2005================================
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;-----------------------------------------------------------
CBLOCK 20h
AL,AH,BL,BH ;Değişken adreslerini atama bloğu
ENDC
ORG h'00' ;Program kodlarının başlangıç adresi
CLRF PORTB ;PortB'yi sıfırla
BANKSEL TRISB ;BANK1'e geç
CLRF TRISB ;PortB'nin tüm uçları çıkış
MOVLW H'FF' ;W ? h'FF'
MOVWF TRISA ;PortA'nın tüm uçları giriş
BANKSEL PORTB ;BANK0'a geç
MOVLW h'07' ;W saklayıcıya h’07’ yükle
MOVWF CMCON ;W-->CMCON PORTA girişleri dijital
BASLA
MOVLW h'04' ;W ? h'04'
MOVWF AL ;AL ? h'04'
MOVLW h'00' ;W ? h'00'
MOVWF AH ;AH ? h'00'
MOVLW h'01' ;W ? h'01'
MOVWF BL ;BL ? h'01'
MOVLW h'00' ;W ? h'00'
MOVWF BH ;BH ? h'00'
CIKAR
MOVF BL, W ;W ? BL
SUBWF AL, F ;AL=AL-W(BL), alt bayt sonucu
BTFSS STATUS, 0 ;CARRY BAYRAĞI=0 mı ?
DECF AH, F ;Evet, AH=AH-1
MOVF BH, W ;Hayır, W ? BH
SUBWF AH, F ;AH=AH-W(BH), üst bayt sonucu
ALT_BAYT_GOSTER
MOVF AL, W ;W ? AL
MOVWF PORTB ;Alt bayt sonucunu göster
TEST_RA0
BTFSC PORTA, 0 ;RA0 butonuna basıldı mı?
GOTO TEST_RA0 ;Hayır, tekrar test et
MOVF AH, W ;Evet, W ? AH
MOVWF PORTB ;Üst bayt sonucunu göster.
DONGU
GOTO DONGU
END
;-----------------------------------------------------------
Herkese merhabalar,
Öğrenciyim.
Mikroişlemci dersini alıyorum. Hocamız bizden bunları uygulamamızı istedi.
Maalesef ki hiçbir şey yapamıyoruz.(Derste öğrenmedik bundan dolayı da yapamıyoruz fakat final sınavında not olarak etkileyecek bir durum.)Yardımcı olabilir misiniz?
Teşekkürler...