155 lines
5.0 KiB
TeX
155 lines
5.0 KiB
TeX
\documentclass[10pt, a4paper]{report}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[ngerman]{babel}
|
|
\usepackage{datetime}
|
|
\usepackage[]{amsmath}
|
|
\usepackage[]{amsthm}
|
|
\usepackage[]{amssymb}
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
\usepackage{fancyhdr}
|
|
|
|
\pagestyle{fancy}
|
|
\fancyhf{}
|
|
\lhead{Rechnerarchitekturen 1 - Praktikum A2 - WS20/21}
|
|
\rfoot{Page \thepage}
|
|
|
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|
|
|
%Code listing style named "mystyle"
|
|
\lstdefinestyle{mystyle}{
|
|
backgroundcolor=\color{backcolour},
|
|
commentstyle=\color{codegreen},
|
|
keywordstyle=\color{magenta},
|
|
numberstyle=\tiny\color{codegray},
|
|
stringstyle=\color{codepurple},
|
|
basicstyle=\ttfamily\footnotesize,
|
|
breakatwhitespace=false,
|
|
breaklines=true,
|
|
captionpos=b,
|
|
keepspaces=true,
|
|
numbers=left,
|
|
numbersep=5pt,
|
|
showspaces=false,
|
|
showstringspaces=false,
|
|
showtabs=false,
|
|
tabsize=2
|
|
}
|
|
|
|
%"mystyle" code listing set
|
|
\lstset{style=mystyle}
|
|
|
|
\newdateformat{myformat}{\THEDAY{ten }\monthname[\THEMONTH], \THEYEAR}
|
|
|
|
\title{Rechnerarchitekturen 1 - Praktikum A2}
|
|
\author{}
|
|
\date\today
|
|
\begin{document}
|
|
|
|
|
|
\begin{center}
|
|
\begin{tabular}{| l | c | c | c | c | c | c | c | c | }
|
|
\hline
|
|
\multicolumn{9}{|c|}{Frequenzen der C-Dur Tonleiter}\\
|
|
\hline
|
|
\hline
|
|
Ton & c' & d' & e' & f' & g' & a' & h' & c'' \\\hline
|
|
f(Hz) & 261,6 & 293,7 & 329,6 & 349,2 & 392,0 & 440,0 & 493,9 & 523,2 \\\hline
|
|
Zählkonstante & 7662 & 6825 & 6079 & 5730 & 5102 & 4545 & 4056 & 3824 \\\hline
|
|
Freq(Hex) & 1DEEH & 1AA9H & 17BFH & 1662H & 13EEH & 11C1 & FD8H & EF0H\\\hline
|
|
\end{tabular}
|
|
\end{center}
|
|
|
|
\section*{ Grundaufgabe a)}
|
|
\scriptsize{Der Kanal 0 des Timerbausteins soll als programmierbarer Frequenzgenerator benutzt werden. Dazu wird die Betriebsart „Mode 3“ verwendet (Frequenzteiler mit symmetrischer Rechteckschwingung am Output). Die Output-Frequenz soll 440 Hz betragen. Als Input benutzen Sie den eingebauten 2-MHz-Generator.}
|
|
$$\text{Zählkonstante: } \frac{2 MHz}{440 Hz} = 4545,4545 = (11C1)_{16}$$
|
|
\begin{lstlisting}
|
|
MOV AL, 36H; Steuerbyte 00110110
|
|
OUT 57H, AL
|
|
MOV AL, 0C1H; LSB
|
|
OUT 54H, Al
|
|
MOV AL, 011H; MSB
|
|
OUT 54H, AL
|
|
\end{lstlisting}
|
|
|
|
|
|
\section*{ Grundaufgabe b)}
|
|
\scriptsize{Schalten Sie die Tonausgabe zunächst wieder ab und erweitern Sie das Programm um die Initialisierung der PIT-Kanäle 1 und 2. Die am Output des Kanals 2 angeschlossene LED soll mit einer Periodendauer von 0,5s blinken. Es ist wiederum Mode 3 zu benutzen. Da beide Kanäle hintereinander geschaltet (kaskadiert) sind, müssen Sie die benötigte Frequenzteilung auf beide Kanäle aufteilen. Außer der LED haben Sie diesmal keine weitere Kontrollmöglichkeit. }
|
|
$$\text{Zählkonstante: } \frac{2 MHz}{2 Hz} /2 = 1000000 / 2 = 500000$$
|
|
\begin{lstlisting}
|
|
MOV AL, 0B6H; Kanal 2
|
|
OUT 57H, AL
|
|
MOV AL, 0FFH
|
|
OUT 56H, AL
|
|
MOV AL, 0FFH
|
|
OUT 56H, AL
|
|
|
|
MOV AL, 076H ;Kanal 1
|
|
OUT 57H, AL
|
|
MOV AL, 0FFH
|
|
OUT 55H, AL
|
|
MOV AL, 0FFH
|
|
OUT 56H, AL
|
|
|
|
\end{lstlisting}
|
|
\clearpage
|
|
|
|
\section*{ Grundaufgabe c)}
|
|
\scriptsize{Die Tonausgabe von Kanal 0 wird wieder eingeschaltet. Sie soll jetzt aber nur noch dann aktiv sein, wenn gerade eine beliebige Taste in der blauen Tastenreihe gedrückt ist. Dazu müssen Sie in der Endlosschleife des Programms eine entsprechende Abfrage einbauen.}
|
|
|
|
\begin{lstlisting}
|
|
noton: MOV AL, 59H
|
|
OUT 57H, AL
|
|
taste: IN AL, 59H
|
|
AND AL, 0FFH
|
|
JZ noton ;keine taste gedrueckt
|
|
JMP ton
|
|
ton: MOV AL, 0C1H
|
|
OUT 54H, AL
|
|
MOV AL, 011H
|
|
OUT 54H, AL
|
|
JMP taste
|
|
\end{lstlisting}
|
|
|
|
\section*{ Fortgeschrittene Aufgabe d)}
|
|
\scriptsize{Erweitern Sie das Programm dann so, dass den einzelnen Tasten unterschiedliche Frequenzen zugeordnet sind. Es wird angenommen, dass nicht mehrere Tasten gleichzeitig gedrückt werden. Das Blinken der LED von Aufgabe b) soll weiterhin funktionieren. }
|
|
|
|
\begin{lstlisting}
|
|
noton: MOV AL, 59H
|
|
OUT 57H, AL
|
|
taste: IN AL, 59H
|
|
MOV BL, AL
|
|
AND AL, 0FFH
|
|
JZ noton ;keine taste gedrueckt
|
|
MOV AL, BL
|
|
AND AL, 001H ; Taste A
|
|
JNZ tonA
|
|
MOV AL, BL
|
|
AND AL, 003H ; Taste B
|
|
JNZ tonB
|
|
MOV AL, BL
|
|
AND AL, 004H ;Taste C
|
|
JNZ tonC
|
|
JMP taste
|
|
tonA: MOV AL, 0C1H
|
|
OUT 54H, AL
|
|
MOV AL, 011H
|
|
OUT 54H, AL
|
|
JMP taste
|
|
tonB: MOV AL, 008H
|
|
OUT 54H, AL
|
|
MOV AL, 0FDH
|
|
OUT 54H, AL
|
|
JMP taste
|
|
tonC: MOV AL, 000H
|
|
OUT 54H, AL
|
|
MOV AL, 0EFH
|
|
OUT 54H, AL
|
|
JMP taste
|
|
|
|
\end{lstlisting}
|
|
|
|
\end{document} |