Tester obvodu 7400
Zo stránky SensorWiki
Záverečný projekt predmetu MIPS / LS2024 - Jakub Macák
Zadanie
Mojou úlohou bolo spraviť tester obvodu 7400 (4xNAND), pripojeného k doske Arduino UNO
Literatúra:
Analýza a opis riešenia
Obvod 7400 (4xNAND) je obvod, ktorý obsahuje štyri samostatné NAND brány, pričom každá brána má dva vstupy a jeden výstup. Najskôr som si musel zistiť PIN layout tohto obvodu a následne obvod správne zapojiť. Po zapojení som spravil program, ktorý posiela do obvodu kombinácie (1) jednotiek a (0) núl. Obvod kombinácie vyhodnotí a odošle hodnotu na základe danej kombinácie. Keďže to je NAND obvod, v prípade kombinácie 1-1 vracia 0, pre každú inú kombináciu vracia 1.
Zapojenie
Zapojenie som realizoval zapojením pinu 1 na D8, 2 na D7 a 3 na D6. Pin 7 na GND a 14 na Vcc.
Algoritmus a program
Algoritmus programu je....
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include "uart.h"
FILE mystdout = FDEV_SETUP_STREAM(uart_putc, NULL, _FDEV_SETUP_WRITE);
#define F_CPU 16000000UL
#define BAUD 9600
#define NAND_A_PIN PD6
#define NAND_B_PIN PD7
#define NAND_OUT_PIN PB0
void init_pins() {
DDRD |= (1 << NAND_A_PIN) | (1 << NAND_B_PIN);
DDRB &= ~(1 << NAND_OUT_PIN); // Nastavit pin jako vstup
}
void send_input_signals(uint8_t a, uint8_t b) {
if (a) PORTD |= (1 << NAND_A_PIN);
else PORTD &= ~(1 << NAND_A_PIN);
if (b) PORTD |= (1 << NAND_B_PIN);
else PORTD &= ~(1 << NAND_B_PIN);
}
uint8_t read_output_signal() {
return PINB & (1 << NAND_OUT_PIN);
}
int main() {
init_pins();
uart_init();
stdout = &mystdout;
printf("Kombinacie:\n");
for (;;) {
send_input_signals(1, 0);
printf("Vystup pro 10: %d\r\n", read_output_signal());
_delay_ms(1000);
send_input_signals(1, 1);
printf("Vystup pro 11: %d\r\n", read_output_signal());
_delay_ms(1000);
send_input_signals(0, 1);
printf("Vystup pro 01: %d\r\n", read_output_signal());
_delay_ms(1000);
send_input_signals(0, 0);
printf("Vystup pro 00: %d\r\n", read_output_signal());
_delay_ms(1000);
}
return 0;
}
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.
Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.