update to local git repo

This commit is contained in:
fzzinchemical
2025-07-02 13:08:03 +02:00
commit 269b8a31ba
136 changed files with 12257 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
C51 COMPILER V9.60.7.0 SERIO 05/22/2024 11:53:01 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE SERIO
OBJECT MODULE PLACED IN .\Objects\serIO.obj
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE serIO.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\ser
-IO.lst) TABS(2) OBJECT(.\Objects\serIO.obj)
line level source
1 /*
2 * serIO.c:
3 * Eingabe und Ausgabe ueber die serielle Schnittstelle.
4 *
5 * Jan Bredereke, 2019, 2024
6 */
7
8 /* Die eigene Header-Datei: */
9 #include "serIO.h"
10
11 /* Die Definitionen von Special-Funktion-Registern fuer den
12 * Mikrocontroller C515C: */
13 #include <REG515C.H>
14
15
16 /* Die oeffentlichen Methoden: */
17 /* --------------------------- */
18
19 /* Holt ein einzelnes Zeichen von der seriellen Schnittstelle, ohne
20 * darauf zu warten. */
21 /* Falls kein Zeichen da ist, wird Null zurueckgegeben. */
22 char serIn(void) {
23 1 /* Pruefe, ob ein Zeichen gelesen worden ist.
24 1 * (Dann wird das Receiver-Interrupt-Flag gesetzt.) */
25 1 if (RI) {
26 2 /* Loesche das Receiver-Interrupt-Flag wieder. */
27 2 RI = 0;
28 2 /* Hole das Zeichen und gib es zurueck. */
29 2 return SBUF;
30 2 } else {
31 2 /* Sonst gib Null zurueck. */
32 2 return '\0';
33 2 }
34 1 }
35
36 /* Holt ein einzelnes Zeichen von der seriellen Schnittstelle und
37 * wartet ggf., bis eines da ist. */
38 char serWaitIn(void) {
39 1 /* Warte, bis ein Zeichen empfangen wurde. (Dann wird das
40 1 * Receiver-Interrupt-Flag gesetzt.) */
41 1 while (!RI);
42 1 /* Loesche das Receiver-Interrupt-Flag wieder. */
43 1 RI = 0;
44 1 /* Hole das empfangene Zeichen und gib es zurueck. */
45 1 return SBUF;
46 1 }
47
48 /* Gibt ein Zeichen ueber die serielle Schnittstelle aus. */
49 /* Wartet nur, falls zur Zeit eine fruehrere solche Ausgabeoperation
50 * noch nicht abgeschlossen ist. */
51 void serCharOut(char zeichen) {
52 1 /* Warte ggf., bis das vorige Zeichen fertig ausgegeben ist.
53 1 * (Dann wird das Transmitter-Interrupt-Flag gesetzt.) */
54 1 while (!TI);
C51 COMPILER V9.60.7.0 SERIO 05/22/2024 11:53:01 PAGE 2
55 1 /* Loesche das Transmitter-Interrupt-Flag wieder. */
56 1 TI = 0;
57 1 /* Lege das Zeichen in Sendepuffer und beginne die Uebertragung, ohne
58 1 * auf deren Ende zu Warten. */
59 1 SBUF = zeichen;
60 1 }
61
62 /* Gibt einen String ueber die serielle Schnittstelle aus. */
63 void serStringOut(char *string) {
64 1 char z; /* Das naechste zu druckende Zeichen */
65 1
66 1 while (z = *string++) {
67 2 serCharOut(z);
68 2 }
69 1 }
70
71 /* Initialisiert die Eingabe+Ausgabe ueber die serielle Schnittstelle. */
72 void serInit(void) {
73 1 /* Initialisiert die serielle Schnittstelle des C515C
74 1 * auf 9600 Baud, 1 Stoppbit, kein Paritybit.
75 1 * Ein Aufruf ist bei der echten Mikrocontrollerkarte im Labor
76 1 * nicht noetig (aber auch nicht schaedlich), da fuer das Laden des
77 1 * Programms schon eine Initialisierung durch uVision erfolgt.
78 1 * Siehe auch das C515C-User-Manual, Seite 6-48ff.
79 1 */
80 1
81 1 /* Laedt Baud-Rate-Zaehler, oberer Teil
82 1 * (Formel im User-Manual auf S. 6-54).
83 1 */
84 1 SRELH = 0x03;
85 1 /* Laedt Baud-Rate-Zaehler, unterer Teil, und setze Zaehler zurueck. */
86 1 SRELL = 0xbf;
87 1 /* Setzt SMOD-Bit im Register PCON (verdoppelt Baud-Rate). */
88 1 PCON |= 0x80;
89 1 /* Setzt BD-Bit im Register ADCON0 (Baud rate generator enable). */
90 1 BD = 1;
91 1 /* Setzt Bits im Register SCON (von links nach rechts):
92 1 * SM0=0, SM1=1, SM2=0:
93 1 * serial mode 1, also 8-Bit-UART
94 1 * mit variabler Baud-Rate,
95 1 * einem Stoppbit und keinem
96 1 * Paritybit.
97 1 * REN=1: Receiver enable.
98 1 * TB8=0: unbenutzt (9. Sendebit).
99 1 * RB8=0: unbenutzt (9. Empfangsbit).
100 1 * TI=1: Transmitter-Interrupt-Flag.
101 1 * RI=0: Receiver-Interrupt-Flag.
102 1 */
103 1 SCON = 0x52;
104 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 75 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)