Compare commits
4 Commits
b0f6d15cac
...
356e7c9055
Author | SHA1 | Date |
---|---|---|
Tiago Garcia | 356e7c9055 | |
Tiago Garcia | 6de8af17a4 | |
Tiago Garcia | b0b31001fb | |
Tiago Garcia | 8078087938 |
|
@ -26,3 +26,9 @@
|
||||||
|
|
||||||
# QEMU Virtual Hard Disks
|
# QEMU Virtual Hard Disks
|
||||||
/**/*.qcow2
|
/**/*.qcow2
|
||||||
|
|
||||||
|
# MIPS compiled
|
||||||
|
/**/*.hex
|
||||||
|
/**/*.elf
|
||||||
|
/**/*.map
|
||||||
|
/**/*.o
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,292 @@
|
||||||
|
\part{Lógica de Primeira Ordem e Demonstração Automática}
|
||||||
|
\label{part:1lpo}
|
||||||
|
|
||||||
|
\chapter{Interpretação}
|
||||||
|
\label{chap:1-interpretacao}
|
||||||
|
|
||||||
|
\section{Proposição}
|
||||||
|
\label{sec:1-interpretacao-proposicao}
|
||||||
|
|
||||||
|
\subsection{Definição}
|
||||||
|
São proposições as afirmações que podem ser classificadas como verdadeiras ou falsas mas não ambas.
|
||||||
|
|
||||||
|
\subsection{Exemplos}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item O sol é uma estrela.
|
||||||
|
\item Deus existe.
|
||||||
|
\item D. Pedro I foi o primeiro imperador do Brasil.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
Afirmações com o seu valor lógico:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Para todo o $n \in N$, $2n$ é múltiplo de $2$. $\rightarrow$ Proposição \textbf{Verdadeira}.
|
||||||
|
\item Para todo o $n \in Z$, $2n \geq n$. $\rightarrow$ Afirmação \textbf{Ambígua}: \textbf{Verdadeira} para $n > 0$ e \textbf{Falsa} para $n \leq 0$.
|
||||||
|
\item Para todo o $n \in N$, $3n \geq 4n$. $\rightarrow$ Proposição \textbf{False}.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsection{Tipos de Proposições}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Atómica}: Não pode ser decomposta em proposições mais simples.
|
||||||
|
\item \textbf{Composta}: É formada a partir da combinação de proposições atómicas usando conectivos lógicos.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\section{Conectivos Lógicos}
|
||||||
|
\label{sec:1-interpretacao-conectivos}
|
||||||
|
|
||||||
|
\subsection{Negação}
|
||||||
|
|
||||||
|
\subsubsection{Símbolo}
|
||||||
|
O símbolo da negação é $\neg$.
|
||||||
|
|
||||||
|
\subsubsection{Tabela de Verdade}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $\neg p$ \\
|
||||||
|
\hline
|
||||||
|
1 & 0 \\
|
||||||
|
0 & 1 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Conjunção}
|
||||||
|
|
||||||
|
\subsubsection{Símbolo}
|
||||||
|
O símbolo da conjunção é $\land$.
|
||||||
|
|
||||||
|
\subsubsection{Tabela de Verdade}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \land q$ \\
|
||||||
|
\hline
|
||||||
|
1 & 1 & 1 \\
|
||||||
|
1 & 0 & 0 \\
|
||||||
|
0 & 1 & 0 \\
|
||||||
|
0 & 0 & 0 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Disjunção}
|
||||||
|
|
||||||
|
\subsubsection{Símbolo}
|
||||||
|
O símbolo da conjunção é $\lor$.
|
||||||
|
|
||||||
|
\subsubsection{Tabela de Verdade}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \lor q$ \\
|
||||||
|
\hline
|
||||||
|
1 & 1 & 1 \\
|
||||||
|
1 & 0 & 1 \\
|
||||||
|
0 & 1 & 1 \\
|
||||||
|
0 & 0 & 0 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Implicação}
|
||||||
|
|
||||||
|
\subsubsection{Símbolo}
|
||||||
|
O símbolo da conjunção é $\rightarrow$.
|
||||||
|
|
||||||
|
\subsubsection{Tabela de Verdade}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \rightarrow q$ \\
|
||||||
|
\hline
|
||||||
|
1 & 1 & 1 \\
|
||||||
|
1 & 0 & 1 \\
|
||||||
|
0 & 1 & 0 \\
|
||||||
|
0 & 0 & 1 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Equivalência}
|
||||||
|
|
||||||
|
\subsubsection{Símbolo}
|
||||||
|
O símbolo da conjunção é $\leftrightarrow$.
|
||||||
|
|
||||||
|
\subsubsection{Tabela de Verdade}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \leftrightarrow q$ \\
|
||||||
|
\hline
|
||||||
|
1 & 1 & 1 \\
|
||||||
|
1 & 0 & 0 \\
|
||||||
|
0 & 1 & 0 \\
|
||||||
|
0 & 0 & 1 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Exemplos}
|
||||||
|
|
||||||
|
\subsubsection{Exemplo 1}
|
||||||
|
Ou o José foi ao supermercado ou está sem ovos em casa.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item $\phi$ = "O José foi ao supermercado"
|
||||||
|
\item $\psi$ = "O José está sem ovos em casa"
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{Resultado}: $\phi \lor \psi$
|
||||||
|
|
||||||
|
\subsubsection{Exemplo 2}
|
||||||
|
A Beatriz decidiu emigrar e não tenciona regressar.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item $\phi$ = "A Beatriz decidiu emigrar"
|
||||||
|
\item $\psi$ = "A Beatriz não tenciona regressar"
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{Resultado}: $\phi \land \psi$
|
||||||
|
|
||||||
|
\subsubsection{Exemplo 3}
|
||||||
|
|
||||||
|
Ou o meu pai está em casa e a minha mãe não ou o meu pai não está em casa mas a minha mão está.
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item $\phi$ = "O meu pai está em casa"
|
||||||
|
\item $\psi$ = "A minha mão não está em casa"
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{Resultado}: $(\psi \land \neg \phi) \lor (\neg \psi \land \phi)$
|
||||||
|
|
||||||
|
\subsubsection{Exemplo 4}
|
||||||
|
|
||||||
|
Ficarei milionário se ganhar o euromilhões
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item $\phi$ = "Ficar milionário"
|
||||||
|
\item $\psi$ = "Ganhar o euromilhões"
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{Resultado}: $\psi \rightarrow \phi$
|
||||||
|
|
||||||
|
\section{Validade de Fórmulas}
|
||||||
|
|
||||||
|
\subsection{Tautologia}
|
||||||
|
\subsubsection{Definição}
|
||||||
|
Uma fórmula diz-se \textbf{Tautologia} quando tem valor lógico \textbf{1} para todas as suas interpretações.
|
||||||
|
|
||||||
|
Representa-se com $\top$.
|
||||||
|
|
||||||
|
\subsubsection{Exemplos}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $\neg \psi \lor \psi$
|
||||||
|
\item $(\psi \land \phi) \rightarrow \psi$
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \land q$ & $(p \land q) \rightarrow q$ \\
|
||||||
|
\hline
|
||||||
|
0 & 0 & 0 & 1 \\
|
||||||
|
0 & 1 & 0 & 1 \\
|
||||||
|
1 & 0 & 0 & 1 \\
|
||||||
|
1 & 1 & 1 & 1 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Consistente}
|
||||||
|
\subsubsection{Definição}
|
||||||
|
Uma fórmula diz-se \textbf{Consistente} quando tem valor lógico \textbf{1} para alguma das suas interpretações.
|
||||||
|
|
||||||
|
\subsection{Inconsistente ou Contradição}
|
||||||
|
\subsubsection{Definição}
|
||||||
|
Uma fórmula diz-se \textbf{Inconsistente} ou \textbf{Contradição} quando tem valor lógico \textbf{0} para todas as suas interpretações.
|
||||||
|
|
||||||
|
Representa-se com $\bot$.
|
||||||
|
|
||||||
|
\subsubsection{Exemplo}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $\neg \psi \land \psi$
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\section{Fórmulas Equivalentes}
|
||||||
|
\subsection{Definição}
|
||||||
|
As fórmulas $\phi$ e $\psi$ dizem-se equivalentes quando a fórmula $\phi \leftrightarrow \psi$ é uma tautologia.
|
||||||
|
|
||||||
|
\subsubsection{Demonstação}
|
||||||
|
\begin{table}[H]
|
||||||
|
\begin{tabular}{|c|c|c||c|c|c|}
|
||||||
|
\hline
|
||||||
|
$p$ & $q$ & $p \rightarrow q$ & $\neg p$ & $\neg p \lor q$ & $(p \rightarrow q) \leftrightarrow (\neg p \lor q)$ \\
|
||||||
|
\hline
|
||||||
|
0 & 0 & 1 & 1 & 1 & 1 \\
|
||||||
|
0 & 1 & 1 & 1 & 1 & 1 \\
|
||||||
|
1 & 0 & 0 & 0 & 0 & 1 \\
|
||||||
|
1 & 1 & 1 & 0 & 1 & 1 \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\subsection{Exemplos}
|
||||||
|
\noindent Equivalências:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $p \land q \equiv q \land p$
|
||||||
|
\item $p \lor q \equiv q \lor p$
|
||||||
|
\item $p \land (q \land r) \equiv (p \land q) \land r$
|
||||||
|
\item $p \lor (q \lor r) \equiv (p \lor q) \lor r$
|
||||||
|
\item $p \land p \equiv p$
|
||||||
|
\item $p \lor p \equiv p$
|
||||||
|
\item $p \land \top \equiv p$
|
||||||
|
\item $p \lor \top \equiv \top$
|
||||||
|
\item $p \land \bot \equiv \bot$
|
||||||
|
\item $p \lor \bot \equiv p$
|
||||||
|
\end{enumerate}
|
||||||
|
Distributividade:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $p \land (q \lor r) \equiv (p \land q) \lor (p \land r)$
|
||||||
|
\item $p \lor (q \land r) \equiv (p \lor q) \land (p \lor r)$
|
||||||
|
\end{enumerate}
|
||||||
|
Leis de Morgan:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $\neg (p \land q) \equiv \neg p \lor \neg q$
|
||||||
|
\item $\neg (p \lor q) \equiv \neg p \land \neg q$
|
||||||
|
\end{enumerate}
|
||||||
|
Contraposição e dupla negação:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $p \rightarrow q \equiv \neg q \rightarrow \neg p$
|
||||||
|
\item $p \rightarrow q \equiv \neg p \lor q$
|
||||||
|
\item $\neg \neg p \equiv p$
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\section{Formas Normais}
|
||||||
|
\label{sec:1-interpretacao-formas-normais}
|
||||||
|
|
||||||
|
\subsection{Literais}
|
||||||
|
\subsubsection{Definição}
|
||||||
|
Um literal é uma proposição atómica ou a negação de uma proposição atómica.
|
||||||
|
|
||||||
|
\subsubsection{Exemplos}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $p$, $q$, $\neg r$ são literais.
|
||||||
|
\item $\neg \neg p$, $p \rightarrow q$ não são literais.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsection{Forma Normal Conjuntiva (FNC)}
|
||||||
|
Uma fórmula está na \textbf{Forma Normal Conjuntiva} se é uma conjunção de disjunção de literais.
|
||||||
|
|
||||||
|
\subsection{Forma Normal Disjuntiva (FND)}
|
||||||
|
Uma fórmula está na \textbf{Forma Normal Disjuntiva} se é uma disjunção de conjunções de literais.
|
||||||
|
|
||||||
|
\subsection{Exemplos}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $p \land q \land \neg r$ está na FNC e na FND.
|
||||||
|
\item $(p \lor \neg q) \land (q \lor r)$ está na FNC.
|
||||||
|
\item $(p \land \neg q) \lor (q \land r)$ está na FND.
|
||||||
|
\item $(p \land q) \lor (p \land \neg q) \lor (q \land r)$ não está na FNC nem na FND.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
\part{Princípios de Enumeração Combinatória}
|
||||||
|
\label{prt:2pec}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
\part{Agrupamentos e Identidades Combinatórias}
|
||||||
|
\label{prt:3aic}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
\part{Recorrência e Funções Geradoras}
|
||||||
|
\label{prt:4rfg}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
\part{Elementos de Teoria dos Grafos}
|
||||||
|
\label{prt:5etg}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
.PHONY: all compile clean
|
||||||
|
|
||||||
|
all: compile clean
|
||||||
|
|
||||||
|
compile: main.tex
|
||||||
|
pdflatex main.tex
|
||||||
|
pdflatex main.tex
|
||||||
|
mv main.pdf ../md-tiagorg.pdf
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.aux *.blg *.bbl *.toc *.log *.lof *.lot *.log.xml *.bcf *.out *.run.xml *.gz
|
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
Binary file not shown.
|
@ -0,0 +1,98 @@
|
||||||
|
%! Author = TiagoRG
|
||||||
|
%! GitHub = https://github.com/TiagoRG
|
||||||
|
|
||||||
|
\documentclass[15pt]{report}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\usepackage[portuguese]{babel}
|
||||||
|
\usepackage[printonlyused]{acronym}
|
||||||
|
\usepackage[hidelinks]{hyperref}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{indentfirst}
|
||||||
|
\usepackage{float}
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\usepackage{geometry}
|
||||||
|
\usepackage{titlesec}
|
||||||
|
\usepackage{titletoc}
|
||||||
|
\usepackage{tocloft}
|
||||||
|
\usepackage{listings}
|
||||||
|
\usepackage{array}
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\usepackage{multirow}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{setspace}
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
|
||||||
|
\geometry{
|
||||||
|
paper=a4paper,
|
||||||
|
margin=45pt,
|
||||||
|
includefoot
|
||||||
|
}
|
||||||
|
\setcounter{tocdepth}{1}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
%%%%%% CAPA %%%%%%
|
||||||
|
\begin{titlepage}
|
||||||
|
\begin{center}
|
||||||
|
\vspace*{60pt}
|
||||||
|
{\fontsize{10\textwidth}{0}\selectfont{\textbf{MATEMÁTICA\\\vspace*{10pt}DISCRETA\\}}}
|
||||||
|
\vspace*{40pt}
|
||||||
|
\Huge
|
||||||
|
\textbf{Tiago Rocha Garcia}\\
|
||||||
|
\vspace*{20pt}
|
||||||
|
\Large
|
||||||
|
\textbf{\href{mailto:tiago.rgarcia@ua.pt}{tiago.rgarcia@ua.pt}}\\
|
||||||
|
\vspace*{5pt}
|
||||||
|
\textbf{\href{https://tiagorg.pt}{https://tiagorg.pt}}\\
|
||||||
|
\vspace*{30pt}
|
||||||
|
\huge
|
||||||
|
\textbf{2023/2024}\\
|
||||||
|
\vspace*{200pt}
|
||||||
|
\includegraphics[width=0.2\textwidth]{images/ua}\\
|
||||||
|
\vspace*{10pt}
|
||||||
|
\huge
|
||||||
|
\textbf{Universidade de Aveiro}\\
|
||||||
|
\end{center}
|
||||||
|
\end{titlepage}
|
||||||
|
|
||||||
|
\renewcommand{\headrulewidth}{0pt}
|
||||||
|
\renewcommand{\footrulewidth}{0.1pt}
|
||||||
|
\fancypagestyle{plain}{
|
||||||
|
\fancyhf{}% Clear header/footer
|
||||||
|
\fancyfoot[L]{Matemática Discreta\\Universidade de Aveiro\\2023/2024}
|
||||||
|
\fancyfoot[C]{\\{\huge\thepage}}
|
||||||
|
\fancyfoot[R]{Tiago Garcia\\\href{https://tiagorg.pt}{https://tiagorg.pt}\\\href{mailto:tiago.rgarcia@ua.pt}{tiago.rgarcia@ua.pt}}
|
||||||
|
}
|
||||||
|
\pagestyle{plain}
|
||||||
|
|
||||||
|
\renewcommand{\thepart}{Capítulo \arabic{part}}
|
||||||
|
\titleformat{\part}[display]{\bfseries\centering}{\Huge\thepart}{2em}{\Huge}
|
||||||
|
|
||||||
|
\renewcommand{\thechapter}{Tópico \arabic{chapter}}
|
||||||
|
\titleformat{\chapter}[display]{\bfseries}{\LARGE\thechapter}{1em}{\huge}
|
||||||
|
\dottedcontents{chapter}[7.2em]{\bfseries\vspace{0.6em}}{5em}{0.65pc}
|
||||||
|
|
||||||
|
\renewcommand{\thesection}{\arabic{chapter}.\arabic{section}}
|
||||||
|
\titleformat{\section}[block]{\bfseries}{\Large\thesection}{1em}{\Large}
|
||||||
|
\dottedcontents{section}[9.2em]{\vspace{0.6em}}{2em}{0.65pc}
|
||||||
|
|
||||||
|
\renewcommand{\contentsname}{Índice}
|
||||||
|
\tableofcontents
|
||||||
|
%\listoftables % descomentar se necessário
|
||||||
|
%\listoffigures % descomentar se necessário
|
||||||
|
|
||||||
|
\input{1lpo}
|
||||||
|
\input{2pec}
|
||||||
|
\input{3aic}
|
||||||
|
\input{4rfg}
|
||||||
|
\input{5etg}
|
||||||
|
|
||||||
|
\chapter*{Acrónimos}
|
||||||
|
\begin{acronym}
|
||||||
|
\end{acronym}
|
||||||
|
|
||||||
|
\end{document}
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
.equ READ_CORE_TIMER, 11
|
||||||
|
.equ RESET_CORE_TIMER, 12
|
||||||
|
|
||||||
|
.data
|
||||||
|
.text
|
||||||
|
|
||||||
|
timedone:
|
||||||
|
li $t0, 0
|
||||||
|
timedone_if:
|
||||||
|
blez $a1, timedone_else
|
||||||
|
li $v0, RESET_CORE_TIMER
|
||||||
|
syscall
|
||||||
|
j timedone_return
|
||||||
|
timedone_else:
|
||||||
|
li $v0, READ_CORE_TIMER
|
||||||
|
syscall
|
||||||
|
move $t1, $v0
|
||||||
|
mul $t2, $a0, 20000
|
||||||
|
ble $t1, $t2, timedone_return
|
||||||
|
div $t0, $t1, 20000
|
||||||
|
timedown_return:
|
||||||
|
move $v0, $t0
|
||||||
|
jr $ra
|
|
@ -1,3 +1,4 @@
|
||||||
|
.equ INKEY, 1
|
||||||
.equ READ_CORE_TIMER, 11
|
.equ READ_CORE_TIMER, 11
|
||||||
.equ RESET_CORE_TIMER, 12
|
.equ RESET_CORE_TIMER, 12
|
||||||
.equ PUT_CHAR, 3
|
.equ PUT_CHAR, 3
|
||||||
|
@ -11,10 +12,12 @@
|
||||||
# cnt1: $s0
|
# cnt1: $s0
|
||||||
# cnt5: $s1
|
# cnt5: $s1
|
||||||
# cnt10: $s2
|
# cnt10: $s2
|
||||||
|
# factor: $s3
|
||||||
|
|
||||||
main: li $s0, 0
|
main: li $s0, 0
|
||||||
li $s1, 0
|
li $s1, 0
|
||||||
li $s2, 0
|
li $s2, 0
|
||||||
|
li $s3, 100
|
||||||
|
|
||||||
while: li $a0, '\r'
|
while: li $a0, '\r'
|
||||||
li $v0, PUT_CHAR
|
li $v0, PUT_CHAR
|
||||||
|
@ -49,21 +52,39 @@ while: li $a0, '\r'
|
||||||
li $v0, PRINT_INT
|
li $v0, PRINT_INT
|
||||||
syscall
|
syscall
|
||||||
|
|
||||||
|
li $v0, INKEY
|
||||||
|
syscall
|
||||||
|
move $t0, $v0
|
||||||
|
beq $t0, 'A', increase_speed
|
||||||
|
beq $t0, 'N', decrease_speed
|
||||||
|
beq $t0, 'S', suspend
|
||||||
|
j continue
|
||||||
|
|
||||||
|
increase_speed:
|
||||||
|
div $s3, $s3, 2
|
||||||
|
j continue
|
||||||
|
decrease_speed:
|
||||||
|
li $s3, 100
|
||||||
|
j continue
|
||||||
|
suspend:
|
||||||
|
li $v0, INKEY
|
||||||
|
syscall
|
||||||
|
beq $v0, 'R', continue
|
||||||
|
j suspend
|
||||||
|
continue:
|
||||||
addu $sp, $sp, -4
|
addu $sp, $sp, -4
|
||||||
sw $ra, 0($sp)
|
sw $ra, 0($sp)
|
||||||
li $a0, 100
|
move $a0, $s3
|
||||||
jal delay
|
jal delay
|
||||||
|
|
||||||
remi $t0, $s0, 10
|
rem $t0, $s2, 10
|
||||||
bnez $t0, ignore1
|
bnez $t0, ignore1
|
||||||
addi $s0, $s0, 1
|
addi $s0, $s0, 1
|
||||||
li $s3, 0
|
|
||||||
|
|
||||||
ignore1:
|
ignore1:
|
||||||
remi $t0, $s1, 2
|
rem $t0, $s2, 2
|
||||||
bnez $t0, ignore5
|
bnez $t0, ignore5
|
||||||
addi $s1, $s1, 1
|
addi $s1, $s1, 1
|
||||||
li $s4, 0
|
|
||||||
|
|
||||||
ignore5:
|
ignore5:
|
||||||
addi $s2, $s2, 1
|
addi $s2, $s2, 1
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
||||||
|
#include <detpic32.h>
|
||||||
|
|
||||||
|
void delay(int ms) {
|
||||||
|
resetCoreTimer();
|
||||||
|
while (readCoreTimer() < ms * 20000);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// Configure RB14 as output
|
||||||
|
TRISCbits.TRISC14 = 0;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
// Wait 0.5s
|
||||||
|
delay(500);
|
||||||
|
// Update value
|
||||||
|
LATCbits.LATC14 = !LATCbits.LATC14;
|
||||||
|
|
||||||
|
// Print current value
|
||||||
|
printStr("RB14: ");
|
||||||
|
printInt10(LATCbits.LATC14);
|
||||||
|
putChar('\r');
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#include <detpic32.h>
|
||||||
|
|
||||||
|
void delay(int ms) {
|
||||||
|
resetCoreTimer();
|
||||||
|
while (readCoreTimer() < ms * 20000);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// Configure RE6-RE3 as output
|
||||||
|
TRISE = TRISE & 0xFF87;
|
||||||
|
// Initialize the counter
|
||||||
|
unsigned int counter = 0;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
// Update value
|
||||||
|
LATE = (LATE & 0xFF87) // Reset bits 6-3
|
||||||
|
| counter << 3; // Merge with counter
|
||||||
|
|
||||||
|
delay(460);
|
||||||
|
counter = (counter + 1) % 10;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#include <detpic32.h>
|
||||||
|
|
||||||
|
void delay(int ms) {
|
||||||
|
resetCoreTimer();
|
||||||
|
while (readCoreTimer() < ms * 20000);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// Configure RE6-RE3 as output
|
||||||
|
TRISE = TRISE & 0xFF87;
|
||||||
|
// Initialize the counter
|
||||||
|
unsigned int counter = 0;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
// Update value
|
||||||
|
LATE = (LATE & 0xFF87) // Reset bits 6-3
|
||||||
|
| counter << 3; // Merge with counter
|
||||||
|
|
||||||
|
delay(370);
|
||||||
|
counter = (counter + 9) % 10;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue