Kalkulator Wrocław0

Wrocław 13.04.2015r.

Laboratorium z mikrokontrolerów

Kalkulator

Prowadzący:

dr hab. inż. Janusz Janiczek

Poniedziałek godz.11.15-12.45

Wykonał:

1. Bury Marcin 207560

1.Założenia projektowe:

Celem projektu było napisanie programu "kalkulator", który wykonywał następujące operacje arytmetyczne : dodawanie, odejmowanie, mnożenie. Kalkulator miał pracować w zakresie od -10 000 do 10 000. Wynik operacji miał być wyświetlany na wyświetlaczu.

2.Schemat blokowy

3.Kod programu:

#include "msp430.h" ; #define controlled include

NAME main ; module name

PUBLIC main ; make the main label vissible

; outside this module

ORG 0FFFEh

DC16 init ; set reset vector to 'init' label

RSEG CSTACK ; pre-declaration of segment

RSEG CODE ; place program in 'CODE' segment

init: MOV #SFE(CSTACK), SP ; set up stack

main: NOP ; main program

MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timer

OPER1 EQU 1143

ZNAK EQU '*'

OPER2 EQU 10

MOV #0,R4 ; ZEROWANIE REJESTROW

MOV #0,R5

MOV #0,R7 ;REJESTR DO POROWNYWANIA LICZB

;SPRAWDZAM CZY JEST UJEMNA

MOV #-1,R8 ;REJESTRY KTORE SLUZA DO WYSWIETLENIA

MOV #-1,R9 ;WYNIKU

MOV #-1,R10

MOV #-1,R11

MOV #-1,R12

MOV #OPER1,R4 ;DO REJESTROW PRZYPISUJE

MOV #OPER2,R5 ;WARTOSCI OPERANDOW

#if (ZNAK=='+')

ADD R4,R5 ;DODAWANIE

#elif (ZNAK=='-')

SUB R4,R5 ;ODEJMOWANIE

MOV.B #08H,LCDM6

#elif (ZNAK=='*') ;MNOZENIE ZE ZNAKIEM

MOV R4,MPYS ;ZAPISUJE DO 1 REJESTRU

MOV R5,OP2 ;ZAPISUJE DO 2 REJESTRU

NOP

MOV RESLO,R5 ;ZAPISUJE MLODSZE BITY DO R5

MOV RESHI,R6 ;ZAPISUJE STARSZE BITY DO R6

#endif

CMP R7,R5 ;POROWNUJE WYNIK DO 0

JN ujemne ; JESLI MNIEJSZY PRZECHODZI DO UJEMNE

CMP #10001,R5 ;SPRAWDZA CZY WYNIK MIESCI SIE W ZAKRESIE

JGE blad

know: ;ZAMIANA Z HEX NA DEC

dzies_tys: ;DZIESIATKI TYSIECY

INC R8 ;LICZNIK PRZEBIEGOW PETLI

CMP #10000,R5 ;POROWNUJE WYNIK Z 10 000

JGE dzies_t_sub ;JESLI JEST CONAJMNIEJ ROWNE SKOK

JMP tys ;JESLI NIE TO PRZEJSCIE DO TYSIECY

dzies_t_sub:

SUB #10000,R5 ;ODJECIE 10 000

JGE dzies_tys ;PONOWNE PRZEJSCIE DO dzies_tys

tys: ;TYSIACE

INC R9 ;LICZNIK PRZEBIEGOW PETLI

CMP #1000,R5 ;POROWNUJE WYNIK Z 1 000

JGE tys_sub ;JESLI JEST CONAJMNIEJ ROWNE SKOK

JMP seti ;JESLI NIE TO PRZEJSCIE DO setki

tys_sub:

SUB #1000,R5 ;ODJECIE 1 000

JGE tys ;PONOWNE PRZEJSCIE DO tys

setki: ;SETKI

INC R10 ;LICZNIK PRZEBIEGOW PETLI

CMP #100,R5 ;POROWNUJE WYNIK ZE 100

JGE setki_sub ;JESLI JEST CO NAJMNIEJ ROWNY SKOK

JMP dzies ;JESLI NIE PRZEJSCIE DO dzies

setki_sub:

SUB #100,R5 ;ODJECIE 100

JMP setki ;PONOWNE PRZEJSCIE DO setki

dzies: ;DZIESIETNE

INC R11 ;LICZNIK PRZEBICZNIK PRZEGOW PETLI

CMP #10,R5

JGE dzies_sub

JMP jed ;SKOK DO jed

dzies_sub:

SUB #10,R5 ;ODJECIE 10

JMP dzies ;PONOWNE PRZEJSCIE DO dzies

jed: ;JEDNOSCI

INC R12 ;LICZNIK PRZEBIEGOW PETLI

CMP #1,R5

JGE jed_sub

JMP wyswietl ;PRZEJSCIE DO wyswietl

jed_sub:

SUB #1,R5 ;ODJECIE 1

JMP jed ;PONOWNY SKOK DO jed

ujemne:

MOV.B #08H,LCDM6 ;WYSWIETLENIE MINUSA

MOV R5,MPYS ;MNOZENIE PRZEZ -1

MOV #-1,OP2 ;WYNIK JEST DODATNI

NOP

MOV RESLO,R5 ;ZAPISANIE WARTOSCI DO R5

JMP know ;PRZEJSCIE DO MIEJSCA ZAMIANY Z HEX NA DEC

wyswietl:

MOV.B #0FFH,LCDACTL ;WLACZANIE WYSWIETLACZA

MOV.B tab(R8),LCDM5

MOV.B tab(R9),LCDM4

MOV.B tab(R10),LCDM3

MOV.B tab(R11),LCDM2

MOV.B tab(R12),LCDM1

JMP koniec

blad: ;DEKLARACJA NAPISU ERROR

MOV.B #0FFH,LCDACTL ;WLACZANIE WYSWIETLACZA

MOV.B #0ADH,LCDM5 ;WYSWIETLENIE E

MOV.B #0BBH,LCDM4 ;WYSWIETLENIE R

MOV.B #0BBH,LCDM3 ;WYSWIETLENIE R

MOV.B tab,LCDM2 ;WYSWIETLENIE O

MOV.B #0BBH,LCDM1 ;WYSWIETLENIE R

JMP koniec

tab: ;DEKLARACJA TABLICY ZNAKOW

DB 0B7H ;0

DB 12H ;1

DB 8FH ;2

DB 1FH ;3

DB 3AH ;4

DB 3DH ;5

DB 0BCH ;6

DB 13H ;7

DB 0B7H ;8

DB 3FH ;9

koniec:

JMP $ ; jump to currentlocation '$'

;(endlessloop)

END

4.Wnioski:

Program spełnia założenia projektowe. W przypadku przekroczenia zakresu, na wyświetlaczu pojawi się napis ERROR. Projekt jest oddany na 1 zajęciach po terminie.


Wyszukiwarka

Podobne podstrony:
KALKULACYJNY RACHUNEK KOSZTÓW
2014 mistrzostwa wroclawia zestaw 2
arkusz kalkulacyjny 4
25 Kalkulowanie cen potraw i napojów
kalkulator budowlany Xella XELLA2
Zadania-lista4, POLITECHNIKA WROCŁAWSKA (2009), Semestr II, Fizyka 2
Zadanie z pasowania otwarte, PWR Politechnika Wrocławska, podstawy metrologii, Wykłady 2011
II O- Biochemia cwiczenie 5, Politechnika Wrocławska - ochrona środowiska, biochemia - laboratorium
ekonomia kolo, Politechnika Wrocławska Energetyka, II semestr, Ekonomia
Wykad 3, Dokumenty STUDIA SKANY TEXT TESTY, ADMINISTRACJA UNIWEREK WROCŁAW MAGISTER, POŚ - PRAWO OCH
Zagad NE09, Politechnika Wrocławska, PWR - W10- Automatyka i Robotyka, Sem3, Elektro, Podstawy elekt
Matematyka (1), Politechnika Wrocławska, Wydział Mechaniczny, Mechanika i Budowa Maszyn, Matematyka
zagadnienia chemia wody, Politechnika Wrocławska, Inżynieria Środowiska, II rok, Chemia wody
Anatomia 5 cwiczenia, kosmetologia-wyższa szkoła fizjoterapii-wrocław
cw05-protokol, Politechnika Wrocławska Energetyka, III semestr, Materiały
II O- Biochemia cwiczenie 1, Politechnika Wrocławska - ochrona środowiska, biochemia - laboratorium

więcej podobnych podstron