mc Mikrocomputertechnik - Kapitel 5 Herzlich Willkommen Prof. Jürgen Walter Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 1 mc Tabelle 5.1 Verwendete Einheiten - Projekte Projekt verwendete Einheiten 1. Blinklicht mit vorgegebener Blinkfrequenz Timer 0,1 Interrupt 2. A/D-Wandlung A/D-Wandler 3. Serielle Schnittstelle Serielle Schnittstelle 4. Effektivwertmessung Timer, A/D-Wandler, Serielle Schnittstelle Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 2 mc 3 Goldene Regeln für 8051 Programme Prof. J. WALTER Nur dokumentierte Hard- und Software ist existent. Durchgänge Verwendung von Registern mit Herstellung des Ausgangszustandes. Zuordnung von Tasks (Aufgaben – Prozesse) zu Registerbänken. Bei umfangreicher Software unbedingt Hochsprache C verwenden. Kurstitel Stand: Oktober 2001 Seite 3 mc Standardkopf für Programme Prof. J. WALTER Assembler Anweisungen Programmbeschreibung Initialisierungsteil für allgemeine Konstanten Initialisierungsteil für On-Chip Peripherie Kurstitel Stand: Oktober 2001 Seite 4 Assembler-Anweisungen mc $nomod51 ;der Modus fuer 8051 wird abgeschaltet $debug $nolist ;es wird kein Listing fuer reg535 erstellt $include(reg535.pdf) ;die 80535-spezifischen Daten $list ;es wird ein Listing erstellt $ title () Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 5 Programmbeschreibung mc ;-----------------------------------------------------------------------;Programmbeschreibung ;-----------------------------------------------------------------------;Programm: ;Datum: ;Programmiert: J. Walter ;Verwendete Einspruenge: keine ;Verwendete Unterprogramme: keine ;Verwendete Register und Variable: ;Registerbank(0) ;R2 ;Kommentar: ; ;Aenderungen: ;Datum: ; ; Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 6 mc Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 7 mc Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 8 mc Tabelle 5.11. Codierung Spannung 0V <=U <= 2 V 2V< U <=3 V 3V< U <=4 V 4V< U <= 5 V Prof. J. WALTER Kurstitel Stand: Oktober 2001 Leuchte 2 AUS AUS EIN EIN Leuchte 3 AUS EIN AUS EIN Seite 9 mc Bild 5.11. Blockbild A/D-Wandler P6 (0DBH) ACMOS Port 6 ADCON (0D8H) 7 6 5 4 3 2 1 0 ADDAT (0D9H) AN7/P 6.7 AN6/P 6.6 AN5/P 6.5 AN4/P 6.4 AN3/P 6.3 AN2/P 6.2 AN1/P 6.1 AN0/P 6.0 Multiplexer Sample & Hold 7 6 5 4 3 2 1 0 A/D-Wandler V AREF Internal Reference Voltages V AGND DAPR (0DAH) 7 6 5 4 Programmierung V intAREF Prof. J. WALTER Kurstitel Stand: Oktober 2001 3 2 1 0 Programmierung V intAGND interner Bus Seite 10 mc Bild 5.12. Anschluß eines Potentiometers an EURO_535 Anschluß EURO_535 VCC 1 K +5V VAREF VGA Pin 26 AN0 VGA Pin 27 VAGND VGA Pin 31 VGA Pin 21 GND 0V Prof. J. WALTER Kurstitel Stand: Oktober 2001 VGA Pin 4 Seite 11 mc Prof. J. WALTER Tabelle 5.12. Wert - Spannung Kurstitel Stand: Oktober 2001 Zahl Spannung / V 0 0 1 0,01960784 ...... ...... 50 0,98039216 51 1 52 1,01960784 ...... ...... 101 1,98039216 102 2 103 2,01960784 ...... ...... ...... ...... 254 4,98039216 255 5 Seite 12 mc Bild 5.13. Schaltbild ADDA535-Karte VCC J3 P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7 1 2 3 4 5 6 7 8 IC1 DB0 V OUT DB1 V OUT SENSE DB2 V OUT SELECT DB3 GND DB4 GND DB5 +VCC DB6 CS DB7 CE AD558 R11 16 15 14 13 12 11 10 9 B1 1 1K R9 ANALOG OUT1 B13 VCC 1 1K lin JUMPER DA1 GND BNC1 R2 P4.1 AN0 P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7 1 2 3 4 5 6 7 8 IC2 DB0 V OUT DB1 V OUT SENSE DB2 V OUT SELECT DB3 GND DB4 GND DB5 +VCC DB6 CS DB7 CE AD558 R10 16 15 14 13 12 11 10 9 B2 1 1K BNC 2 ANALOG OUT2 VCC PIN1 DA0 B14 100 D2 ZD 5V6 1 GND 1 BNC2 R3 AN1 BNC 2 P4.0 100 D3 ZD 5V6 PIN3 1 +5V VCC VSS X4 VCC R1 AN2 PIN5 2 P4.0 P5.0 P5.2 P5.4 P5.6 VCC AN0 AN2 AN4 AN6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 VG1 A1 C1 A2 C2 A3 C3 A4 C4 A5 C5 A6 C6 A7 C7 A8 C8 A9 C9 A10 C10 A11 C11 A12 C12 A13 C13 A14 C14 A15 C15 A16 C16 A17 C17 A18 C18 A19 C19 A20 C20 A21 C21 A22 C22 A23 C23 A24 C24 A25 C25 A26 C26 A27 C27 A28 C28 A29 C29 A30 C30 A31 C31 A32 C32 VG_535Z 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 100 D1 ZD 5V6 1 R4 AN3 VDD X3 PIN6 2 100 D4 ZD 5V6 P4.1 P5.1 P5.3 P5.5 P5.7 1 R5 AN4 PIN7 2 100 PIN3 D5 ZD 5V6 1 R6 AD/DA Zusatzkarte f uer 80535-Board AN5 PIN8 8 Analogeingaenge VCC 2 100 D6 ZD 5V6 2 Analogausgaenge PIN1 PIN5 PIN6 PIN7 PIN8 PIN9 PIN10 1 2 3 4 5 6 7 8 9 10 PL1 PIN1 PIN2 PIN3 PIN4 PIN5 PIN6 PIN7 PIN8 PIN9 PIN10 PINLEISTE_10 Joachim Juengst, Januar 1994 AN1 AN3 AN5 AN7 1 R7 Fachhochschule Karlsruhe, FB F AN6 PIN9 2 100 D7 ZD 5V6 1 R8 AN7 PIN10 2 100 D8 ZD 5V6 1 Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 13 mc Tabelle 5.13. ADCON REGISTER 0DFH 0D9H BD 0DEH CLK - 0DCH BSY 0DB ADM 0DAH MX2 Bit Funktion MX2 MX1 MX0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 MYMOS ACMOS Anlog Eingang 0 AN0 P6.0 Anlog Eingang 1 AN1 P6.1 Anlog Eingang 2 AN2 P6.2 Anlog Eingang 3 AN3 P6.3 Anlog Eingang 4 AN4 P6.4 Anlog Eingang 5 AN5 P6.5 Anlog Eingang 6 AN6 P6.6 Anlog Eingang 7 AN7 P6.7 ADM "1" Kontinuierliche Wandlung. "0" Stop nach jeder Wandlung BSY "1" Busy Flag / Wandlung findet statt. "0" Wandlung beendet - Prof. J. WALTER 0DDH MX1 0D8H MX0 ADCON frei CLK CLK - Wird nicht für A/D-Wandler verwendet BD Baudrate - Wird nicht für A/D-Wandler verwendet Kurstitel Stand: Oktober 2001 0D9H Seite 14 mc Tabelle 5.14. Erhöhung der Auflösung durch Einschränkung des Meßbereiches DAPR .3 - .0 DAPR .4 - .7 VintAGND 0. - 3. Bit VintAREF 4. - 7. Bit 0000 0,0 5,0 0001 0,3125 - 0010 0,625 - 0011 0,9375 - 0100 1,25 1,25 0101 1,5625 1,5625 0110 1,875 1,875 0111 2,1875 2,1875 1000 2,5 2,5 1001 2,8125 2,8125 1010 3,125 3,125 1011 3,4375 3,4375 1100 3,75 3,75 1101 - 4,0625 1110 - 4,375 1111 - 4,68754 Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 15 mc Prof. J. WALTER Bild 5.14. Anzeige des ADDAT-Inhalts im Debug-Programm Kurstitel Stand: Oktober 2001 Seite 16 Bild 5.15. Umsetzung von parallel in seriell mc 0 1 1 1 0 1 0 0 0 0 Sender 0 1 0 0 0 1 0 0 0 1 1 1 zeitlich nacheinander 1 0 Stop Bit Kurstitel Stand: Oktober 2001 0 Empfänger 0 1 1 1 Prof. J. WALTER 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 Start Bit 0 1 0 0 Seite 17 mc Prof. J. WALTER Bild 5.16. Einstellungen der seriellen Schnittstelle Kurstitel Stand: Oktober 2001 Seite 18 mc Prof. J. WALTER Bild 5.17. Einstellungen im Terminalprogramm Windows 98 Kurstitel Stand: Oktober 2001 Seite 19 Bild 5.18. Wechselspiel zwischen PC und Controller mc PC t Controller Remote-Debug-Programm Hitop.exe lädt Seriel_1.HTX Seriel_1.HTX steht im Programmspeicher Start des Programmes Seriel_1.HTX Programm wartet auf Taster 1="0" Hitop.exe wird beendet Start von Terminalprogramm Einstellungen vornehmen Taster 1 betätigt, Programm wird fortgesetzt. Testzeichen "A" erscheint B wird gesendet b empfangen Prof. J. WALTER Kurstitel Stand: Oktober 2001 B+20H ergibt b - Rückgabe an Terminalprogramm Seite 20 mc Tabelle 5.15. SCON Bits 09FH 98H SM0 Bit SM1 09DH SM2 09CH REN 09B TB8 09AH RB8 099H TI 098H RI SCON Symbol SM0 SM1 0 0 1 1 0 1 0 1 Prof. J. WALTER 09EH Mode 0: Mode 1: Mode 2: Mode 3: Synchroner Modus, feste Baudrate fosc/12 8-Bit UART, variable Baudrate 9-Bit UART, feste Baudrate fosc/64 oder fosc/32 9-Bit UART, variable Baudrate SM2 Ermöglicht Multiprozessor-Kommunikation in Mode 2 und 3 Empfänger-Interrupt wird nicht ausgelöst, falls das neunte Datenbit "0" ist. In Mode 1 und SM2="1" wird der Interrupt ebenfalls nicht aktiviert falls kein gültiges Stopbit empfangen wird. In Mode 0 muß SM2="0" sein. REN Receiver enable. "1" Gibt den seriellen Empfang durch Software frei. "0" sperrt den Empfang. TB8 Übertragungsbit 8. Das neunte Bit für Mode 2 und 3. Wird durch Software gesetzt und rückgesetzt. RB8 Empfangsbit 8. Neunte Bit für Empfang in Mode 2 und 3 TI Übertragungsinterrupt. Wird durch die Hardware am Ende des achten Bits in Mode 0 gesetzt, oder am Beginn des Stop-Bits in den anderen Moden. Muß durch Software zurückgesezt werden. RI Empfängerinterrupt. Ist das empfangene Interrupt-Flag. Wird am Ende des achten Bits in Mode 0 gesetzt, oder am Beginn des Stop-Bits in den anderen Modi. Muß durch Software zurückgesetzt werden. Kurstitel Stand: Oktober 2001 Seite 21 mc Bild 5.19. Erzeugen der Baudrate Timer 1 fosc/2 Overflow ADCON.7 (BD) SM0 SM1 SMOD *1/39 *1/2 Baud Rate Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 22 mc Baudraten im ADCON REGISTER A/D-Wandler Steuerung Bitadressierbar 0DFH 0D9H Prof. J. WALTER BD 0DEH CLK 0DDH 0DCH 0DB 0DAH 0D9H - ADCON Bit Funktion BD Baudrate - Wird nicht für A/D-Wandler verwendet CLK "1" Der Takt wird nach P1.6/CLKOUT weitergeleitet Kurstitel Stand: Oktober 2001 0D8H außen an Pin Seite 23 mc Tabelle 5.17. Allgemein verwendete Baudraten Baud Rate Mode 1,3 fosc(MHz) SMOD C/(/T) TIMER 1 Reload Mode Value 62,5 Kbaud 12,0 1 0 2 0FFH 19,5 Kbaud 11,059 1 0 2 0FDH 9,6 Kbaud 11,059 0 0 2 0FDH 4,8 Kbaud 11,059 0 0 2 0FAH 2,4 Kbaud 11,059 0 0 2 0F4H 1,2 Kbaud 11,059 0 0 2 0E8H 110 Baud 6,0 0 0 2 72H 110 Baud 12,0 0 0 1 0FEEBH Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 24 mc Bild 5.20. Blockschaltbild für Effektivwertmesser µ-Controller Signalgenerator A/D-Wandler Uef f t Zeitgeber Serielle Schnittstelle Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 25 mc Bild 5.21. Abgetasteter Sinus Sinus mit 100 Hz; abgetastet mit 1000 Hz 3 2,5 Ue 2 1,5 1 0,5 0 0 5 10 15 20 25 30 35 40 45 t in ms Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 26 Bild 5.22. Blockschaltbild Zeitgeber 2 mc P1.5/T2EX Fosc/12(24) Gegattertes Fosc/12(24) Fallende Flanke an P1.7/T2 Timer 2 16 Bit Tim e r 2 Inte rrupt Inte rrupts 16 Bit 16 Bit Komparator Komparator 16 Bit Komparator 16 Bit Komparator P1.0/CC0 E/ASteuerung 8 CCH3 CCL3 CCH2 CCL2 CCH1 CCL1 CRCH CRCL P1.1/CC1 P1.2/CC2 P1.3/CC3 Inte rne r Bus 8 Bit Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 27 mc Tabelle 5.18. Verwendete Abkürzungen Abkürzung Bedeutung CRCH, CRCL Compare Reload Capture High/Low Register CCH1, CCL1 Compare Capture High / Low Register 1 CCH2, CCL2 Compare Capture High / Low Register 2 CCH3, CCL3 Compare Capture High / Low Register 3 Prof. J. WALTER Kurstitel Stand: Oktober 2001 Seite 28