Tester obvodu 7493: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 21: | Riadok 21: | ||
Tento obvod na overenie funkčnosti 4-bitového počítadla sa skladá z častí: mikrokontrolér (vývojová doska Arduino UNO R3),z rezistorov s odporom 330 ohmov, z LED diód a z integrovaného obvodu 7493. | Tento obvod na overenie funkčnosti 4-bitového počítadla sa skladá z častí: mikrokontrolér (vývojová doska Arduino UNO R3),z rezistorov s odporom 330 ohmov, z LED diód a z integrovaného obvodu 7493. | ||
Princíp fungovania je pomerne jednoduché, Na pin obvodu 7493 je privedený obdĺžníkový signál z pinu arduina PD7 (D7). Integrovaný obvod 7493 má za účel počítať impulzy odaoslané z arduina. Funguje tak že sníma či je signál rastúci alebo klesajúci (rising edge, falling edge). | |||
Napojené LED diódy slúžia na znázornenie bitov. Jedna ledka reprezentuje jeden bit, ktorá ledka zo štyroch práve svietí reprezenuje bit s hodnotou 1 a ktorá nesvietí reprezentuje bit s hodnotou 0. | |||
Podstate je to binárna sústava a podla pravdivostnej tabulky 4 bitového počítadal dá sa prepočítať do decimálnej sústavy. | |||
Na počítadle piny MR1 a MR2 (niekedy sa označuje ako Ro1 a Ro2) sú reset. Dá sa snimi určiť do akej hodnoty má počítadlo počítať. | |||
V tomoto prípade sú zapojené na piny na počítadle MR1 na QB a MR2 na QD, stým je nastavený počítadlo aby počítalo 10 znakov teda od 0 do 9. | |||
LED diódy sú napojené na piny QA (1.bit), QB (2.bit), QC (3.bit), QD (4.bit). | |||
Na tieto piny sú napojené aj vedenia naspäť do arduina. Kód nahratý do arduina impulzy z týchto pinov spočíta, prevedie ich do desiatkovej sústavy a vypíše ich cez sériový kanál (Putty, Serial port...). Hodnotu vypíše vo forme: Counter value: value. | |||
Úloho tohto obvodu je overiť funkčnosť integrovaného obvodu 7493. | |||
V prípde keby ledky neblikali a keby cez seriálný kanál nevedel vypísať hodnoty, takto sa dá zistiť že je obvod 7493 nefunkčný. | |||
Reálné využitie má iba pre testovanie tohto obvodu. | |||
[[Súbor:7493.jpg|400px|thumb|center|Integrovaný obvod 7493.]] | [[Súbor:7493.jpg|400px|thumb|center|Integrovaný obvod 7493.]] |
Verzia z 08:33, 18. máj 2024
Záverečný projekt predmetu MIPS / LS2024 - Gabriel Nagy
Zadanie
Úlohou je zapojiť a testovať funkčnosť integrovaného obvodu 7493, je to 4 bitové počítadlo. Hodnoty počítadla musia byť odosielané cez UART a vypísané cez sériový kanál (Putty, Serial port). Binárné hodnoty počítadla 7493 musia byť znázornené (vyblikané) pomocu ledky.
Literatúra:
- Dokumentácia k doske Arduino UNO R3
- Datasheet pre integrovaný obvod 7493
- Pin diagram pre Aruino UNO R3
Analýza a opis riešenia
Tento obvod na overenie funkčnosti 4-bitového počítadla sa skladá z častí: mikrokontrolér (vývojová doska Arduino UNO R3),z rezistorov s odporom 330 ohmov, z LED diód a z integrovaného obvodu 7493.
Princíp fungovania je pomerne jednoduché, Na pin obvodu 7493 je privedený obdĺžníkový signál z pinu arduina PD7 (D7). Integrovaný obvod 7493 má za účel počítať impulzy odaoslané z arduina. Funguje tak že sníma či je signál rastúci alebo klesajúci (rising edge, falling edge).
Napojené LED diódy slúžia na znázornenie bitov. Jedna ledka reprezentuje jeden bit, ktorá ledka zo štyroch práve svietí reprezenuje bit s hodnotou 1 a ktorá nesvietí reprezentuje bit s hodnotou 0. Podstate je to binárna sústava a podla pravdivostnej tabulky 4 bitového počítadal dá sa prepočítať do decimálnej sústavy. Na počítadle piny MR1 a MR2 (niekedy sa označuje ako Ro1 a Ro2) sú reset. Dá sa snimi určiť do akej hodnoty má počítadlo počítať. V tomoto prípade sú zapojené na piny na počítadle MR1 na QB a MR2 na QD, stým je nastavený počítadlo aby počítalo 10 znakov teda od 0 do 9.
LED diódy sú napojené na piny QA (1.bit), QB (2.bit), QC (3.bit), QD (4.bit). Na tieto piny sú napojené aj vedenia naspäť do arduina. Kód nahratý do arduina impulzy z týchto pinov spočíta, prevedie ich do desiatkovej sústavy a vypíše ich cez sériový kanál (Putty, Serial port...). Hodnotu vypíše vo forme: Counter value: value.
Úloho tohto obvodu je overiť funkčnosť integrovaného obvodu 7493. V prípde keby ledky neblikali a keby cez seriálný kanál nevedel vypísať hodnoty, takto sa dá zistiť že je obvod 7493 nefunkčný. Reálné využitie má iba pre testovanie tohto obvodu.
Nezabudnite doplniť schému zapojenia!
Algoritmus a program
Algoritmus programu je....
#define F_CPU 16000000UL
#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
/* Pripojenie periferii k vyvojovej doske Arduino: */
#define LED PD7 // externa LED dioda
#define LED_ON (PORTD |= (1<<LED))
#define LED_OFF (PORTD &= ~(1<<LED))
volatile uint8_t count = 0;
// Inicializacia UART
void USART_Init(unsigned int ubrr) {
UBRR0H = (unsigned char)(ubrr >> 8);
UBRR0L = (unsigned char)ubrr;
UCSR0B = (1 << TXEN0);
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
}
// Prenos cez uart UART
void USART_Transmit(unsigned char data) {
while (!(UCSR0A & (1 << UDRE0)));
UDR0 = data;
}
int USART_putchar_printf(char var, FILE *stream) {
if (var == '\n') USART_Transmit('\r');
USART_Transmit(var);
return 0;
}
FILE mystdout = FDEV_SETUP_STREAM(USART_putchar_printf, NULL, _FDEV_SETUP_WRITE);
int main(void)
{
/* SETUP */
// Nastavenie PB0-PB3 ako vstup
DDRB &= 0xF0;
// Inicializacia UART
USART_Init(MYUBRR);
stdout = &mystdout;
// Globalne prerusenia
sei();
DDRD = (1<<LED); // PORTD: LED na PD7 je output
/* LOOP */
unsigned char duty = 250;
// Main loop
while(1)
{
// nase vlastne pocitadlo pocita stale dokola, rychlost dana delay
for (int time=0;time<255;time++)
{
if (time > duty)
LED_ON;
else
LED_OFF;
_delay_us(1500);
}
// Čítanie pinov PB0-PB3
uint8_t input_pins = PINB & 0x0F;
// Ked input pin je low tak aktualizuje pocitadlo
if (input_pins != 0x0F) {
count = input_pins;
}
printf("Counter value: %d\n", count);
_delay_ms(1000);
} /* koniec while */
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.