-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Wer hilft mir eine Tastenmatrix 3X4 am Atmega 8 in Gang zu .

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.03.2007
    Ort
    NRW
    Beiträge
    62

    Wer hilft mir eine Tastenmatrix 3X4 am Atmega 8 in Gang zu .

    Anzeige

    Bin Anfänger , und versuche an meinem Atmega 8 eine 3X4 Tastaturmatrix in Betrieb zu nehmen. Leider bin ich Anfänger mit Bascom und Suche eine Hilfe zur Programmierung, allerdings sollte es für mich als Neuling verständlich (einfach) erklärbar sein.

    Wäre für Hilfe sehr dankbar.



    nase

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo du nase...

    ich habe gerade deine frage gelesen und habe mich da an etwas erinnert. also habe ich in mein archiv geklickt und die gewünschten informationen gefunden.

    ich hoffe du kannst ein bisserl englisch... und du verstehst was der verfasser meint, dann wirst du diese schaltungsvariante lieben. es ist zwar ein 4x4 ... aber das kannst du ja leicht abwandeln.

    der vorteil gegenüber vielen anderen lösungen ist die interruptsteuerung. das heisst, dass der mikro nicht immer schauen muss, ob einer ne taste drückt oder nicht.

    falls jedoch einer eine drückt, wird er durch nen interrupt aufgescheucht und versucht rauszufinden, welche taste es war.

    hier mal der text des autors, den ich leider namentlich nicht nennen kann:

    Code:
    The third method, an interrupt-driven keypad, offers several benefits. First, using interrupts frees the microcontroller to perform other tasks or to switch into an idling or power-down mode while awaiting the next key closure. Second, using interrupts helps reduce electromagnetic interference produced by continuously scanning the keypad's lines. Figure 1 shows an interrupt-driven keypad implementation that's based on Atmel's AT89C52 version of the popular MCS-51 family of microcontrollers. Here, the rows of a 16-key keypad, S1 through S16, implemented as a 4×4-key matrix connect to the lower nibble (P1.0 to P1.3) of IC1's Port 1. The keypad's columns connect to IC1's Port 1 upper nibble (P1.4 to P1.7) and a network of four diodes (D1 through D4 and a 10-kΩ resistor, R9. The junction of R9 and the diodes' anodes connects to Port Pin 3.2 and generates an interrupt whenever the user presses a key.
    Initially, Port 1's lower nibble sits high at logic one, and the upper nibble is grounded at logic zero, applying reverse bias to the diodes and pulling the   signal high. Pressing a key applies forward bias to the diode corresponding to that row and causes     to go low, generating an external interrupt to the microcontroller. Upon receiving an interrupt and after a 20-msec software-debouncing interval, the microprocessor sequentially reads the row and column lines. Capacitor C1 provides a hardware-based debouncing interval of approximately 25 msec.
    In this design, the microcontroller's software returns a binary-formatted input corresponding to the pressed key's number as sensed at Port P1 (P1.0 to P1.3). As the commented assembly-language routine, available here, explains, the software ignores invalid key combinations. Idle and power-down modes available in CHMOS (complementary high-density MOS) versions of the MCS-51 family save power and thus make these microcontrollers ideal choices for battery-operated devices. For example, a 5V, 12-MHz Atmel AT89C52 consumes approximately 25 mA in active mode, 6.5 mA in idle mode, and only 100 µA in power-down mode. Any enabled interrupt can switch the microprocessor from idle to active modes.
    und dann die zeichnung. lass dich von dem verwendeten mikrokontroller nicht stören... ports sind ports... int eingänge sind int eingänge!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken x_176.jpg  

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    und nochwas...

    sollte dein mega8 mal kaputt gehen, kauf keinen neuen.
    mitlerweile gibt es den mega88v... der ist eigentlich genauso..... braucht weniger strom und noch ein paar vorteile, die du, wenn du nicht mehr anfäger bist... vielleicht zu schätzen lernst.

    gruss

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    18.03.2007
    Ort
    NRW
    Beiträge
    62
    Danke für diese Information und vor allem für deine Mühe, werde versuchen mich da einmal einzuarbeiten. Noch eine Frage? Hat der Mega88v die gleiche Anschlußbelegung , also ist er PIN Kompatible ?

    gruß Nase

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Das wäre mein Favorit zum Anschluss einer 3x4-Tastenmatrix an einen ATMega8. Es wird nur ein (ADC-)Pin verwendet:

    http://www.avr-asm-tutorial.net/avr_...board.html#adc

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    ja ja ... der 8er und der 88er sind pinkompatibel.

    die interne referenzspannung ist anders... das sollte man beim design beachten. ansonsten nur vorteile.
    unter anderem ist beim 88er jeder portpin interruptfähig.
    da kannste bezüglich tastatur dann ganz gut mit arbeiten

    gruss

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    18.03.2007
    Ort
    NRW
    Beiträge
    62
    Danke ,,, alles schön und gut, aber zum einen kenn ich mich mit assembler nun überhaupt nicht aus, zum anderen habe ich meine 3X4 Tastatur schon an meiner Schaltung angelötet und möchte sie auch so benutzen. Die Lösung mit dem ADC Pin fällt also wegen Assembler aus.


    gruß nase

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Die Lösung mit dem ADC Pin fällt also wegen Assembler aus.
    Häää? Was hat denn der ADC mit Assembler zu tun? Es wird gezeigt, wie man eine 3x4-Tastenmatrix beschalten muss damit jeder Tastendruck eine eindeutige Spannung generiert. Diese Spannung wird mit dem ADC gemessen. Das geht in C, Basic und natürlich auch Assembler (was letzlich ja auch bei den "Hochsprachen" erzeugt wird).

    Ich hab's selbst noch nicht versucht, aber diese Lösung erscheint mir günstig, weil eben nur ein Pin verwendet wird. Geringer Resourcenverbrauch und geringer Schaltungsaufwand bei ausreichender Funktion. Ich werde berichten, wenn ich's umgesetzt habe.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    4x4-Tastatur am AVR

    Hallo radbruch,
    Ich hab's selbst noch nicht versucht, aber diese Lösung erscheint mir günstig, weil eben nur ein Pin verwendet wird.
    Das fand ich auch und habe meinem M32 eine 4x4-Tastatur an einem A/D-Wandler spendiert. Funktioniert wunderbar.

    Hier meine Schaltung (1%-Metallfilm Widerstände sind zu empfehlen!).

    Gruß Dirk
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken adc-tastatur_123.jpg  

  10. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    [offtopic]
    Ich komm da nicht weg. Warum lernt man denn Assembler? Damit man vollen Zugriff auf alle Funktionen des Mikrokontrollers hat. "Ich kann den ADC nicht nutzen, weil ich ja in Assembler programmieren will" ist dann doch echt ein Brüller.
    [/offtopic]

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •