dem AVR etwas schalten kann.
Da die serielle Schnittstelle des PC und die UART des AVR unterschiedliche Spannungspegel haben
brauchen wir einen RS232 - TTL Pegelwandler, wie z.b. den Max232.
Die Schaltung kann man selber zusammen löten oder fertig kaufen.
Hier ein Modul von Pollin:
Hier der Anschluß des MAX232 an den ATmega8:
Hier das Programm.
An Portb.1 und Portb.2 ist jeweils eine LED mit Vorwiderstand angeschlossen.
$regfile = "m8def.dat" 'Verwender AVR
$crystal = 1000000 'Taktfrequenz des AVR
$hwstack = 40 'Stackwerte
$swstack = 16
$framesize = 32
$baud = 2400 'Baudrate der UART
Config Portb.1 = Output ' LED1
Config Portb.2 = Output 'LED2
Dim Rs232 As String * 20 'Stringvariable für empfangene Zeichen von der RS232
Do
Rs232 = "" 'Variable löschen
Input Rs232 'Empfange Daten von der RS232 einlesen
Select Case Rs232 'Variable RS232 auswerten
Case "0" 'Ist die Variable RS232 = "0" ?
Portb.1 = 0 'dann Portb.1=0
Print "LED1 ist aus" 'und über die UART ausgeben "LED1 ist aus"
Case "1"
Portb.1 = 1
Print "LED1 ist ein"
Case "2"
Portb.2 = 0
Print "LED2 ist aus"
Case "3"
Portb.2 = 1
Print "LED2 ist ein"
End Select 'Ende Auswertung
Loop
End
$crystal = 1000000 'Taktfrequenz des AVR
$hwstack = 40 'Stackwerte
$swstack = 16
$framesize = 32
$baud = 2400 'Baudrate der UART
Config Portb.1 = Output ' LED1
Config Portb.2 = Output 'LED2
Dim Rs232 As String * 20 'Stringvariable für empfangene Zeichen von der RS232
Do
Rs232 = "" 'Variable löschen
Input Rs232 'Empfange Daten von der RS232 einlesen
Select Case Rs232 'Variable RS232 auswerten
Case "0" 'Ist die Variable RS232 = "0" ?
Portb.1 = 0 'dann Portb.1=0
Print "LED1 ist aus" 'und über die UART ausgeben "LED1 ist aus"
Case "1"
Portb.1 = 1
Print "LED1 ist ein"
Case "2"
Portb.2 = 0
Print "LED2 ist aus"
Case "3"
Portb.2 = 1
Print "LED2 ist ein"
End Select 'Ende Auswertung
Loop
End
Nach der Übertragung des Programms schließen wir den Pegelwandler an
RX und TX (Pin2 und 3) des AVR an und starten das Terminal-Programm das einem
am besten liegt.
Wir müssen dort natürlich noch die richtige COM Adresse und Baudrate auswählen.
Jetzt kann man über die Tastartur 0,1,2 oder 3 mit Return eingeben und der AVR schaltet die
Eingänge ein und aus.