5.6 PWM (Pulse Width Modulation) 23 5 Inhaltsverzeichnis 1 Die CD-ROM zum Buch..................................... 11 1.1 Inhalt der CD-ROM......................................... 11 1.2 GPL (General Public License)................................ 11 1.3 Systemvoraussetzung...................................... 11 1.4 Updates und Support...................................... 11 2 Mikrocontroller Grundlagen................................. 12 2.1 Aufbau und Funktionsweise................................. 13 2.2 Die CPU................................................. 13 2.3 Arbeits- und Programmspeicher.............................. 13 2.4 Peripherie............................................... 15 2.5 Technologievergleich: RISC und CISC.......................... 15 2.6 CISC-Technologie.......................................... 15 2.7 RISC-Technologie.......................................... 15 2.8 Vergleich................................................ 16 3 Mikrocontroller-Programmierung............................ 17 3.1 Was ist ein Programm?..................................... 17 3.2 Programmierung in Basic................................... 17 3.3 Konzept von Basic......................................... 18 3.4 Vorteile von Basic......................................... 18 3.5 Programmierung in Assembler............................... 18 4 Übersicht über die ATMEL AVR-Controller...................... 19 4.1 AT90Sxxx................................................ 19 4.2 ATmega.................................................. 19 4.3 ATTiny................................................... 20 4.4 ATxmega................................................. 20 5 Der ATmega88 des Lernpakets.............................. 21 5.1 Die interessantesten Pins des ATmega88 auf einen Blick......... 22 5.2 Taktfrequenz............................................. 22 5.3 Speicher................................................ 22 5.4 I/O-Ports................................................ 23 5.5 ADC (Analog Digital Converter).............................. 23 5.6 PWM (Pulse Width Modulation).............................. 23
6 Inhaltsverzeichnis 5.7 UART (Universal Asynchronous Receiver Transmitter)............ 23 5.8 IRQ (Interrupt)............................................ 23 5.9 Bootloader............................................... 24 5.10 Stromversorgung des ATmega88............................. 24 6 ISP-Grundbeschaltung des ATmega88........................ 25 6.1 Programmiergeräte........................................ 26 7 Unser Bascom-Lernsystem................................. 29 7.1 Bauteileliste.............................................. 29 7.2 Das Experimentier-Board ATmega88.......................... 29 7.3 Sicherheitshinweise....................................... 32 8 Die Bauteile des Lernpakets................................ 33 8.1 Leuchtdioden............................................. 33 8.2 Widerstände............................................. 33 8.3 Kondensatoren........................................... 34 8.4 Transistoren.............................................. 35 8.5 Diode................................................... 36 8.6 Piezo-Schallwandler (Buzzer)................................ 36 8.7 Schaltdraht.............................................. 37 9 Die ersten Vorbereitungen (Inbetriebnahme)................... 38 9.1 Treiberinstallation......................................... 38 9.2 Das Tool MProg für den FT232RL............................. 39 9.3 FT232R mit MProg programmieren............................ 43 10 Bascom installieren....................................... 45 11 Der Basic-Compiler Bascom............................... 50 11.1 Landessprache auswählen.................................. 51 11.2 Die Bascom IDE........................................... 51 11.3 Bascom-Hilfe............................................. 52 11.4 Bascom-Einstellungen..................................... 53 12 Der erste Test: Es Blinkt.................................. 56 12.1 Was haben wir getan?...................................... 57 13 Grundlagen des Programmierens............................ 59 13.1 Bits und Bytes............................................ 59 13.2 Grundsätzlicher Aufbau eines Programms..................... 60 13.3 Sequenzieller Programmablauf.............................. 60
14.10 String und String-Bearbeitung 79 7 13.4 Interruptgesteuerter Programmablauf....................... 61 13.5 Der Aufbau eines Bascom-Programms....................... 61 14 Bascom AVR Basic Grundlagen............................ 65 14.1 Kommentare im Quelltext............................... 65 14.2 Datentypen und Variablen.............................. 65 14.3 Variablen-Namen...................................... 66 14.4 Lokale und globale Variablen............................ 66 14.5 Variablen-Zuweisung................................... 66 14.5.1 Arrays............................................... 67 14.6 Operatoren........................................... 67 14.7 Kontrollstrukturen (If Then Else, Select Case und Goto)....... 68 14.7.1 If Then End if........................................ 68 14.7.2 If Then Else End if................................... 69 14.7.3 If und ElseIf.......................................... 69 14.7.4 Select Case........................................... 70 14.8 Schleifen (For Next, Do Loop, Do Until, While Wend)......... 71 14.8.1 For Next............................................. 72 14.8.2 Do Loop und Do Loop Until.............................. 73 14.8.3 While Wend.......................................... 74 14.9 Funktionen, Prozeduren und Labels....................... 75 14.9.1 Subroutinen.......................................... 75 14.9.2 Funktionen........................................... 76 14.9.3 Gosub............................................... 76 14.9.4 Goto................................................ 77 14.9.5 On.................................................. 78 14.10 String und String-Bearbeitung........................... 79 14.10.1 Strings.............................................. 79 14.10.2 Ucase............................................... 79 14.10.3 Lcase............................................... 80 14.10.4 Bin................................................. 80 14.10.5 Hex................................................. 81 14.10.6 Hexval............................................... 81 14.10.7 Val.................................................. 81 14.10.8 Str.................................................. 82 14.10.9 String............................................... 82 14.10.10 Space............................................... 82 14.10.11 Fusing............................................... 83 14.10.12 Format.............................................. 83 14.10.13 Len................................................. 84 14.10.14 Instr................................................ 84 14.10.15 Mid................................................. 85
8 Inhaltsverzeichnis 14.10.16 Split................................................ 85 14.10.17 Left................................................. 86 14.10.18 Right................................................ 86 14.10.19 Ltrim................................................ 87 14.10.20 Rtrim................................................ 87 14.10.21 Trim................................................. 87 14.11 Input-/Output-Konfiguration und Portsetzen................ 88 14.12 Interne Pull-up-Widerstände benutzen.................... 91 14.13 Der Bascom-Simulator.................................. 92 14.14 Timer als Timer verwenden.............................. 94 14.15 Timer als Counter verwenden............................ 98 14.16 Der Analog-Digital-Wandler (ADC)....................... 100 14.17 Externe Interrupts.................................... 103 14.18 Die UART-Schnittstelle................................ 105 14.19 Input.............................................. 107 14.20 Software-UART....................................... 109 14.21 Sleep-Mode......................................... 109 15 Weitere Experimente..................................... 113 15.1 Tasten entprellen...................................... 113 15.2 Einschaltverzögerung................................... 116 15.3 Ausschaltverzögerung.................................. 117 15.4 LEDs am ATmega88..................................... 118 15.5 Größere Verbraucher schalten............................ 120 15.6 Tonerzeugung mit dem Befehl Sound...................... 122 15.7 Töne über Timer0 erzeugen.............................. 124 15.8 Morsecode-Generator.................................. 125 15.9 Impulszähler mit Timer0................................. 129 15.10 Impulslängenmessung................................. 131 15.11 PWM (Pulse Width Modulation).......................... 132 15.11.1 Die PWM-Parameter.................................... 135 15.12 DAC mit PWM-Ports.................................... 136 15.13 Transistor-LED-Dimmer.................................. 139 15.14 LED-Dimmer mit Timer0................................. 141 15.15 Softer Blinker......................................... 142 15.16 Zufallszahlen mit Bascom............................... 144 15.17 Zahlenraten mit Bascom................................. 146 15.18 Romantisches Mikrocontroller-Kerzenlicht.................. 147 15.19 Überwachung des Personalausgangs...................... 148 15.20 RTC (Real Time Clock)................................... 149 15.21 Schuluhrprogramm..................................... 151 15.22 Lüftersteuerung........................................ 154
21 Literaturverweis 222 9 15.23 Dämmerungsschalter................................... 158 15.24 Alarmanlage.......................................... 160 15.25 Komfort-Treppenlichtautomat............................ 162 15.26 Codeschloss.......................................... 164 15.27 Kapazitätsmesser mit Autorange.......................... 167 15.28 Potenziometer professionell auslesen..................... 169 15.29 Sensortaster.......................................... 170 15.30 State-Maschine........................................ 172 15.31 8-Kanal-Voltmeter..................................... 174 15.32 Spannungs-Plotter selbst programmiert.................... 176 15.33 Das ATmega88-Speicheroszilloskop....................... 178 15.34 StampPlot der Profi-Datenlogger zum Nulltarif............... 180 15.35 Steuern über VB.NET.................................... 185 15.36 Leuchtdiodentester..................................... 186 15.37 GPS-Mouse auslesen................................... 188 15.38 Temperaturschalter..................................... 194 15.39 Temperaturmessung mit dem LM335...................... 196 15.40 MIN/MAX-Thermometer................................. 198 15.41 Temperatur-Logger..................................... 200 15.42 Aquariumsteuerung mit Überwachung..................... 205 16 Programm über ISP-Programmer auf den AVR übertragen...... 210 17 Escape-Sequenzen...................................... 211 18 ASCII-Tabelle........................................... 213 19 Reservierte Worte in Bascom.............................. 217 20 Bezugsquellen.......................................... 221 21 Literaturverweis......................................... 222