Σάββατο 7 Ιανουαρίου 2012

ΑΥΤΟ ΤΟ ΜΕΡΟΣ ΤΩΝ ΑΣΚΗΣΕΩΝ, ΕΙΝΑΙ ΑΠΟ ΤΟ ΒΙΒΛΙΟ “Δομή και Λειτουργία Μικροεπεξεργαστών και μικροελεγκτών” ΤΟΥ ΠΡΩΤΟΥ ΚΕΦΑΛΑΙΟΥ. ΟΙ ΑΣΚΗΣΕΙΣ ΕΙΝΑΙ ΓΡΑΜΜΕΝΕΣ ΜΕ ΚΩΔΙΚΑ ASSEMBLY.

Άσκηση 1: Να γραφεί κώδικας που θα δημιουργεί έναν καταχωρητή REG1. Στον REG1 αρχικά θα μεταφέρεται ο δυαδικός αριθμός Β'(ΟΝΟΜΑ)'. Τέλος το περιεχόμενο του REG1 να μεταφέρεται στον καταχωρητή PORTB.

        LIST P=16F628
        INCLUDE "P16F628.inc"
        REG1 EQU 0x20
        ORG 0x00
        MOVLW b'00000111'
        MOVWF CMCON
        BSF STATUS,RP0
        MOVLW b'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
LOOP
        MOVLW b'10101110'
        MOVWF REG1
        MOVF REG1,0
        MOVWF PORTB
        GOTO LOOP
        END

Άσκηση 2: Να γραφεί κώδικας όπου θα δημιουργεί 3 καταχωρητές, REG1, REG2, REG3. Αρχικά θα μεταφέρεται ο δυαδικός αριθμός Β'(ΟΝΟΜΑ+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG1 και ο δυαδικός αριθμός Β'(ΟΝΟΜΑ*3+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG2. Στη συνέχεια θα μεταφέρονται τα περιεχόμενα του καταχωρητή REG1 στον REG3. Τέλος τα περιεχόμενα του REG3 θα μεταφερθούν στον καταχωρητή PORTB.

        LIST P=16F628
        INCLUDE "P16F628.inc"
        REG1 EQU 0x20
        REG2 EQU 0x21
        REG3 EQU 0x22
        ORG 0x00
        MOVLW b'00000111'
        MOVWF CMCON
        BSF STATUS,RP0
        MOVLW b'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
LOOP
        MOVLW b'10101110'
        MOVWF REG1
        MOVLW b'10011100'
        MOVWF REG2
        MOVF REG1,0
        MOVF REG1,0
        MOVWF REG3
        MOVF REG3,0
        MOVWF PORTB
        GOTO LOOP
        END

Άσκηση 3:  Να γραφεί κώδικας όπου θα δημιουργεί 3 καταχωρητές, REG1, REG2, REG3. Αρχικά θα μεταφέρεται ο δυαδικός αριθμός Β'(ΟΝΟΜΑ+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG2 και ο δυαδικός αριθμός Β'(ΟΝΟΜΑ*3+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG3. Στη συνέχεια θα μεταφέρονται τα περιεχόμενα του καταχωρητή REG2 στον REG1. Τέλος τα περιεχόμενα του REG1 θα μεταφερθούν στον καταχωρητή PORTB.

        LIST P=16F628
        INCLUDE "P16F628.inc"
        REG1 EQU 0x20
        REG2 EQU 0x21
        REG3 EQU 0x22
        ORG 0x00
        MOVLW b'00000111'
        MOVWF CMCON
        BSF STATUS,RP0
        MOVLW b'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
LOOP
        MOVLW b'10101110'
        MOVWF REG2
        MOVLW b'10010010'
        MOVWF REG3
        MOVF REG2,0
        MOVWF REG1
        MOVF REG1,0
        MOVWF PORTB
        GOTO LOOP
        END

Άσκηση 7: Να γραφεί κώδικας στον οποίο θα υπάρχουν 2 καταχωρητές REG1, REG2. Αρχικά θα μεταφέρεται ο δυαδικός αριθμός Β'(ONOMA)' στον καταχωρητή REG1 και μέσω του W θα μεταφέρεται στον καταχωρητή REG2. Τέλος, το περιεχόμενο του REG2 θα μεταφέρεται στον καταχωρητή PORTB.

        LIST P=16F628
        INCLUDE "P16F628.inc"
        REG1 EQU 0x20
        REG2 EQU 0x21
        ORG 0x00
        MOVLW b'00000111'
        MOVWF CMCON
        BSF STATUS,RP0
        MOVLW b'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
LOOP     
        MOVLW b'10101110'
        MOVWF REG1
        MOVF REG1,0
        MOVWF REG2
        MOVF REG2,0
        MOVWF PORTB
        GOTO LOOP
        END

Άσκηση 8:  Να γραφεί κώδικας όπου θα δημιουργεί 3 καταχωρητές, REG1, REG2, REG3. Αρχικά θα μεταφέρεται ο δυαδικός αριθμός Β'(ΟΝΟΜΑ+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG1 και ο δυαδικός αριθμός Β'(ΟΝΟΜΑ*3+ΕΠΙΘΕΤΟ)' στον καταχωρητή REG2. Στη συνέχεια θα μεταφέρονται τα περιεχόμενα του καταχωρητή REG2 στον REG3. Τέλος τα περιεχόμενα του REG2 θα μεταφερθούν στον καταχωρητή PORTB.

        LIST P=16F628
        INCLUDE "P16F628.inc"
        REG1 EQU 0x20
        REG2 EQU 0x21
        REG3 EQU 0x22
        ORG 0x00
        MOVLW b'00000111'
        MOVWF CMCON
        BSF STATUS,RP0
        MOVLW b'00000000'
        MOVWF TRISB
        BCF STATUS,RP0
LOOP
        MOVLW b'10101110'
        MOVWF REG1
        MOVLW b'10110001'
        MOVWF REG2
        MOVF REG2,0
        MOVWF REG3
        MOVF REG2,0
        MOVWF PORTB
        GOTO LOOP
        END

Δεν υπάρχουν σχόλια: