update to local git repo
This commit is contained in:
253
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/STARTUP.lst
Executable file
253
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/STARTUP.lst
Executable file
@@ -0,0 +1,253 @@
|
||||
A51 MACRO ASSEMBLER STARTUP 05/22/2024 11:36:34 PAGE 1
|
||||
|
||||
|
||||
MACRO ASSEMBLER A51 V8.2.7.0
|
||||
OBJECT MODULE PLACED IN .\Objects\STARTUP.obj
|
||||
ASSEMBLER INVOKED BY: C:\Keil_v5\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Obj
|
||||
ects\STARTUP.obj) EP
|
||||
|
||||
LOC OBJ LINE SOURCE
|
||||
|
||||
1 $nomod51
|
||||
2 ;------------------------------------------------------------------------------
|
||||
3 ; This file is part of the C51 Compiler package
|
||||
4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||
5 ; Version 8.01
|
||||
6 ;
|
||||
7 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||
8 ;------------------------------------------------------------------------------
|
||||
9 ; STARTUP.A51: This code is executed after processor reset.
|
||||
10 ;
|
||||
11 ; To translate this file use A51 with the following invocation:
|
||||
12 ;
|
||||
13 ; A51 STARTUP.A51
|
||||
14 ;
|
||||
15 ; To link the modified STARTUP.OBJ file to your application use the following
|
||||
16 ; Lx51 invocation:
|
||||
17 ;
|
||||
18 ; Lx51 your object file list, STARTUP.OBJ controls
|
||||
19 ;
|
||||
20 ;------------------------------------------------------------------------------
|
||||
21 ;
|
||||
22 ; User-defined <h> Power-On Initialization of Memory
|
||||
23 ;
|
||||
24 ; With the following EQU statements the initialization of memory
|
||||
25 ; at processor reset can be defined:
|
||||
26 ;
|
||||
27 ; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||
28 ; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||
29 ; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||
0080 30 IDATALEN EQU 80H
|
||||
31 ;
|
||||
32 ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||
33 ; <i> The absolute start address of XDATA memory
|
||||
0000 34 XDATASTART EQU 0
|
||||
35 ;
|
||||
36 ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||
37 ; <i> The length of XDATA memory in bytes.
|
||||
0000 38 XDATALEN EQU 0
|
||||
39 ;
|
||||
40 ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||
41 ; <i> The absolute start address of PDATA memory
|
||||
0000 42 PDATASTART EQU 0H
|
||||
43 ;
|
||||
44 ; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||
45 ; <i> The length of PDATA memory in bytes.
|
||||
0000 46 PDATALEN EQU 0H
|
||||
47 ;
|
||||
48 ;</h>
|
||||
49 ;------------------------------------------------------------------------------
|
||||
50 ;
|
||||
51 ;<h> Reentrant Stack Initialization
|
||||
52 ;
|
||||
53 ; The following EQU statements define the stack pointer for reentrant
|
||||
54 ; functions and initialized it:
|
||||
55 ;
|
||||
56 ; <h> Stack Space for reentrant functions in the SMALL model.
|
||||
57 ; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||
A51 MACRO ASSEMBLER STARTUP 05/22/2024 11:36:34 PAGE 2
|
||||
|
||||
58 ; <i> Stack space for reentrant functions in the SMALL model.
|
||||
0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||
60 ; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||
61 ; <i> Set the top of the stack to the highest location.
|
||||
0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||
63 ; </h>
|
||||
64 ;
|
||||
65 ; <h> Stack Space for reentrant functions in the LARGE model.
|
||||
66 ; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||
67 ; <i> Stack space for reentrant functions in the LARGE model.
|
||||
0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||
69 ; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||
70 ; <i> Set the top of the stack to the highest location.
|
||||
0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||
72 ; </h>
|
||||
73 ;
|
||||
74 ; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||
75 ; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||
76 ; <i> Stack space for reentrant functions in the COMPACT model.
|
||||
0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||
78 ;
|
||||
79 ; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||
80 ; <i> Set the top of the stack to the highest location.
|
||||
0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||
82 ; </h>
|
||||
83 ;</h>
|
||||
84 ;------------------------------------------------------------------------------
|
||||
85 ;
|
||||
86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||
87 ; <e>Compact Model Page Definition
|
||||
88 ;
|
||||
89 ; <i>Define the XDATA page used for PDATA variables.
|
||||
90 ; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||
91 ;
|
||||
92 ; Enable pdata memory page initalization
|
||||
0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||
94 ;
|
||||
95 ; <o> PPAGE number <0x0-0xFF>
|
||||
96 ; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||
0000 97 PPAGE EQU 0
|
||||
98 ;
|
||||
99 ; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||
100 ; <i> most 8051 variants use P2 as uppermost address byte
|
||||
00A0 101 PPAGE_SFR DATA 0A0H
|
||||
102 ;
|
||||
103 ; </e>
|
||||
104 ;------------------------------------------------------------------------------
|
||||
105
|
||||
106 ; Standard SFR Symbols
|
||||
00E0 107 ACC DATA 0E0H
|
||||
00F0 108 B DATA 0F0H
|
||||
0081 109 SP DATA 81H
|
||||
0082 110 DPL DATA 82H
|
||||
0083 111 DPH DATA 83H
|
||||
112
|
||||
113 NAME ?C_STARTUP
|
||||
114
|
||||
115
|
||||
116 ?C_C51STARTUP SEGMENT CODE
|
||||
117 ?STACK SEGMENT IDATA
|
||||
118
|
||||
---- 119 RSEG ?STACK
|
||||
0000 120 DS 1
|
||||
121
|
||||
122 EXTRN CODE (?C_START)
|
||||
123 PUBLIC ?C_STARTUP
|
||||
A51 MACRO ASSEMBLER STARTUP 05/22/2024 11:36:34 PAGE 3
|
||||
|
||||
124
|
||||
---- 125 CSEG AT 0
|
||||
0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1
|
||||
127
|
||||
---- 128 RSEG ?C_C51STARTUP
|
||||
129
|
||||
0000 130 STARTUP1:
|
||||
131
|
||||
132 IF IDATALEN <> 0
|
||||
0000 787F 133 MOV R0,#IDATALEN - 1
|
||||
0002 E4 134 CLR A
|
||||
0003 F6 135 IDATALOOP: MOV @R0,A
|
||||
0004 D8FD 136 DJNZ R0,IDATALOOP
|
||||
137 ENDIF
|
||||
138
|
||||
139 IF XDATALEN <> 0
|
||||
MOV DPTR,#XDATASTART
|
||||
MOV R7,#LOW (XDATALEN)
|
||||
IF (LOW (XDATALEN)) <> 0
|
||||
MOV R6,#(HIGH (XDATALEN)) +1
|
||||
ELSE
|
||||
MOV R6,#HIGH (XDATALEN)
|
||||
ENDIF
|
||||
CLR A
|
||||
XDATALOOP: MOVX @DPTR,A
|
||||
INC DPTR
|
||||
DJNZ R7,XDATALOOP
|
||||
DJNZ R6,XDATALOOP
|
||||
ENDIF
|
||||
153
|
||||
154 IF PPAGEENABLE <> 0
|
||||
MOV PPAGE_SFR,#PPAGE
|
||||
ENDIF
|
||||
157
|
||||
158 IF PDATALEN <> 0
|
||||
MOV R0,#LOW (PDATASTART)
|
||||
MOV R7,#LOW (PDATALEN)
|
||||
CLR A
|
||||
PDATALOOP: MOVX @R0,A
|
||||
INC R0
|
||||
DJNZ R7,PDATALOOP
|
||||
ENDIF
|
||||
166
|
||||
167 IF IBPSTACK <> 0
|
||||
EXTRN DATA (?C_IBP)
|
||||
|
||||
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||
ENDIF
|
||||
172
|
||||
173 IF XBPSTACK <> 0
|
||||
EXTRN DATA (?C_XBP)
|
||||
|
||||
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||
ENDIF
|
||||
179
|
||||
180 IF PBPSTACK <> 0
|
||||
EXTRN DATA (?C_PBP)
|
||||
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||
ENDIF
|
||||
184
|
||||
0006 758100 F 185 MOV SP,#?STACK-1
|
||||
186
|
||||
187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||
188 ;<h> Code Banking
|
||||
189 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||
A51 MACRO ASSEMBLER STARTUP 05/22/2024 11:36:34 PAGE 4
|
||||
|
||||
190
|
||||
|
||||
|
||||
|
||||
|
||||
195 ;</h>
|
||||
0009 020000 F 196 LJMP ?C_START
|
||||
197
|
||||
198 END
|
||||
A51 MACRO ASSEMBLER STARTUP 05/22/2024 11:36:34 PAGE 5
|
||||
|
||||
SYMBOL TABLE LISTING
|
||||
------ ----- -------
|
||||
|
||||
|
||||
N A M E T Y P E V A L U E ATTRIBUTES
|
||||
|
||||
?C_C51STARTUP. . . C SEG 000CH REL=UNIT
|
||||
?C_START . . . . . C ADDR ----- EXT
|
||||
?C_STARTUP . . . . C ADDR 0000H A
|
||||
?STACK . . . . . . I SEG 0001H REL=UNIT
|
||||
ACC. . . . . . . . D ADDR 00E0H A
|
||||
B. . . . . . . . . D ADDR 00F0H A
|
||||
DPH. . . . . . . . D ADDR 0083H A
|
||||
DPL. . . . . . . . D ADDR 0082H A
|
||||
IBPSTACK . . . . . N NUMB 0000H A
|
||||
IBPSTACKTOP. . . . N NUMB 0100H A
|
||||
IDATALEN . . . . . N NUMB 0080H A
|
||||
IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP
|
||||
PBPSTACK . . . . . N NUMB 0000H A
|
||||
PBPSTACKTOP. . . . N NUMB 0100H A
|
||||
PDATALEN . . . . . N NUMB 0000H A
|
||||
PDATASTART . . . . N NUMB 0000H A
|
||||
PPAGE. . . . . . . N NUMB 0000H A
|
||||
PPAGEENABLE. . . . N NUMB 0000H A
|
||||
PPAGE_SFR. . . . . D ADDR 00A0H A
|
||||
SP . . . . . . . . D ADDR 0081H A
|
||||
STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
|
||||
XBPSTACK . . . . . N NUMB 0000H A
|
||||
XBPSTACKTOP. . . . N NUMB 0000H A
|
||||
XDATALEN . . . . . N NUMB 0000H A
|
||||
XDATASTART . . . . N NUMB 0000H A
|
||||
|
||||
|
||||
REGISTER BANK(S) USED: 0
|
||||
|
||||
|
||||
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
263
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/ZickZack.m51
Executable file
263
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/ZickZack.m51
Executable file
@@ -0,0 +1,263 @@
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0 05/22/2024 13:57:42 PAGE 1
|
||||
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0, INVOKED BY:
|
||||
C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\STARTUP.obj, .\Objects\main.obj, .\Objects\serIO.obj TO .\Objects\ZickZack PRINT (
|
||||
>> .\Listings\ZickZack.m51) RAMSIZE (256)
|
||||
|
||||
|
||||
MEMORY MODEL: SMALL
|
||||
|
||||
|
||||
INPUT MODULES INCLUDED:
|
||||
.\Objects\STARTUP.obj (?C_STARTUP)
|
||||
.\Objects\main.obj (MAIN)
|
||||
.\Objects\serIO.obj (SERIO)
|
||||
C:\KEIL_V5\C51\LIB\C51S.LIB (?C?CLDPTR)
|
||||
|
||||
|
||||
LINK MAP OF MODULE: .\Objects\ZickZack (?C_STARTUP)
|
||||
|
||||
|
||||
TYPE BASE LENGTH RELOCATION SEGMENT NAME
|
||||
-----------------------------------------------------
|
||||
|
||||
* * * * * * * D A T A M E M O R Y * * * * * * *
|
||||
REG 0000H 0008H ABSOLUTE "REG BANK 0"
|
||||
DATA 0008H 000CH UNIT _DATA_GROUP_
|
||||
DATA 0014H 0003H UNIT ?DT?_SERSTRINGOUT?SERIO
|
||||
DATA 0017H 0001H UNIT ?DT?MAIN
|
||||
IDATA 0018H 0001H UNIT ?STACK
|
||||
|
||||
* * * * * * * C O D E M E M O R Y * * * * * * *
|
||||
CODE 0000H 0003H ABSOLUTE
|
||||
0003H 07FDH *** GAP ***
|
||||
CODE 0800H 0088H UNIT ?PR?_DRAWCHRISTMASTREE?MAIN
|
||||
CODE 0888H 002AH UNIT ?PR?_INDENTWITHSPACE?MAIN
|
||||
CODE 08B2H 0028H UNIT ?PR?MAIN?MAIN
|
||||
CODE 08DAH 0021H UNIT ?PR?_SERSTRINGOUT?SERIO
|
||||
CODE 08FBH 0019H UNIT ?C?LIB_CODE
|
||||
CODE 0914H 000FH UNIT ?PR?SERINIT?SERIO
|
||||
CODE 0923H 000CH UNIT ?C_C51STARTUP
|
||||
CODE 092FH 000BH UNIT ?PR?SERIN?SERIO
|
||||
CODE 093AH 0008H UNIT ?PR?SERWAITIN?SERIO
|
||||
CODE 0942H 0008H UNIT ?PR?_SERCHAROUT?SERIO
|
||||
|
||||
|
||||
|
||||
OVERLAY MAP OF MODULE: .\Objects\ZickZack (?C_STARTUP)
|
||||
|
||||
|
||||
SEGMENT DATA_GROUP
|
||||
+--> CALLED SEGMENT START LENGTH
|
||||
---------------------------------------------------
|
||||
?C_C51STARTUP ----- -----
|
||||
+--> ?PR?MAIN?MAIN
|
||||
|
||||
?PR?MAIN?MAIN 0008H 0002H
|
||||
+--> ?PR?SERINIT?SERIO
|
||||
+--> ?PR?SERIN?SERIO
|
||||
+--> ?PR?_DRAWCHRISTMASTREE?MAIN
|
||||
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0 05/22/2024 13:57:42 PAGE 2
|
||||
|
||||
|
||||
?PR?_DRAWCHRISTMASTREE?MAIN 000AH 0006H
|
||||
+--> ?PR?_INDENTWITHSPACE?MAIN
|
||||
+--> ?PR?_SERCHAROUT?SERIO
|
||||
|
||||
?PR?_INDENTWITHSPACE?MAIN 0010H 0004H
|
||||
+--> ?PR?_SERCHAROUT?SERIO
|
||||
|
||||
|
||||
|
||||
SYMBOL TABLE OF MODULE: .\Objects\ZickZack (?C_STARTUP)
|
||||
|
||||
VALUE TYPE NAME
|
||||
----------------------------------
|
||||
|
||||
------- MODULE ?C_STARTUP
|
||||
C:0923H SEGMENT ?C_C51STARTUP
|
||||
I:0018H SEGMENT ?STACK
|
||||
C:0000H PUBLIC ?C_STARTUP
|
||||
D:00E0H SYMBOL ACC
|
||||
D:00F0H SYMBOL B
|
||||
D:0083H SYMBOL DPH
|
||||
D:0082H SYMBOL DPL
|
||||
N:0000H SYMBOL IBPSTACK
|
||||
N:0100H SYMBOL IBPSTACKTOP
|
||||
N:0080H SYMBOL IDATALEN
|
||||
C:0926H SYMBOL IDATALOOP
|
||||
N:0000H SYMBOL PBPSTACK
|
||||
N:0100H SYMBOL PBPSTACKTOP
|
||||
N:0000H SYMBOL PDATALEN
|
||||
N:0000H SYMBOL PDATASTART
|
||||
N:0000H SYMBOL PPAGE
|
||||
N:0000H SYMBOL PPAGEENABLE
|
||||
D:00A0H SYMBOL PPAGE_SFR
|
||||
D:0081H SYMBOL SP
|
||||
C:0923H SYMBOL STARTUP1
|
||||
N:0000H SYMBOL XBPSTACK
|
||||
N:0000H SYMBOL XBPSTACKTOP
|
||||
N:0000H SYMBOL XDATALEN
|
||||
N:0000H SYMBOL XDATASTART
|
||||
C:0000H LINE# 126
|
||||
C:0923H LINE# 133
|
||||
C:0925H LINE# 134
|
||||
C:0926H LINE# 135
|
||||
C:0927H LINE# 136
|
||||
C:0929H LINE# 185
|
||||
C:092CH LINE# 196
|
||||
------- ENDMOD ?C_STARTUP
|
||||
|
||||
------- MODULE MAIN
|
||||
C:0000H SYMBOL _ICE_DUMMY_
|
||||
C:0888H PUBLIC _indentWithSpace
|
||||
C:0800H PUBLIC _drawChristmastree
|
||||
D:0017H PUBLIC taste
|
||||
C:08B2H PUBLIC main
|
||||
------- PROC _INDENTWITHSPACE
|
||||
D:0010H SYMBOL amount
|
||||
------- DO
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0 05/22/2024 13:57:42 PAGE 3
|
||||
|
||||
|
||||
D:0012H SYMBOL g
|
||||
------- ENDDO
|
||||
C:0888H LINE# 8
|
||||
C:088CH LINE# 10
|
||||
C:08A2H LINE# 11
|
||||
C:08B1H LINE# 13
|
||||
------- ENDPROC _INDENTWITHSPACE
|
||||
------- PROC _DRAWCHRISTMASTREE
|
||||
D:000AH SYMBOL width
|
||||
------- DO
|
||||
D:000CH SYMBOL i
|
||||
D:000EH SYMBOL j
|
||||
------- ENDDO
|
||||
C:0800H LINE# 14
|
||||
C:0804H LINE# 17
|
||||
C:081AH LINE# 18
|
||||
C:0828H LINE# 20
|
||||
C:084CH LINE# 21
|
||||
C:085DH LINE# 22
|
||||
C:0867H LINE# 23
|
||||
C:086CH LINE# 24
|
||||
C:0873H LINE# 25
|
||||
C:0878H LINE# 26
|
||||
C:087DH LINE# 27
|
||||
C:0887H LINE# 28
|
||||
------- ENDPROC _DRAWCHRISTMASTREE
|
||||
------- PROC MAIN
|
||||
------- DO
|
||||
D:0008H SYMBOL hasChar
|
||||
------- ENDDO
|
||||
C:08B2H LINE# 30
|
||||
C:08B2H LINE# 33
|
||||
C:08B7H LINE# 35
|
||||
C:08BAH LINE# 36
|
||||
C:08C0H LINE# 37
|
||||
C:08C5H LINE# 38
|
||||
C:08C9H LINE# 39
|
||||
C:08CFH LINE# 40
|
||||
C:08D0H LINE# 41
|
||||
C:08D0H LINE# 42
|
||||
C:08D7H LINE# 43
|
||||
C:08D9H LINE# 45
|
||||
------- ENDPROC MAIN
|
||||
------- ENDMOD MAIN
|
||||
|
||||
------- MODULE SERIO
|
||||
C:0000H SYMBOL _ICE_DUMMY_
|
||||
D:00BAH PUBLIC SRELH
|
||||
D:0090H PUBLIC P1
|
||||
C:08DAH PUBLIC _serStringOut
|
||||
D:00B0H PUBLIC P3
|
||||
D:00AAH PUBLIC SRELL
|
||||
D:00E8H PUBLIC P4
|
||||
C:092FH PUBLIC serIn
|
||||
B:00D8H.7 PUBLIC BD
|
||||
C:0942H PUBLIC _serCharOut
|
||||
D:00A8H PUBLIC IEN0
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0 05/22/2024 13:57:42 PAGE 4
|
||||
|
||||
|
||||
D:00B8H PUBLIC IEN1
|
||||
D:00D8H PUBLIC ADCON0
|
||||
B:0098H.0 PUBLIC RI
|
||||
C:093AH PUBLIC serWaitIn
|
||||
B:0098H.1 PUBLIC TI
|
||||
D:0087H PUBLIC PCON
|
||||
D:0099H PUBLIC SBUF
|
||||
D:0098H PUBLIC SCON
|
||||
D:0088H PUBLIC TCON
|
||||
C:0914H PUBLIC serInit
|
||||
D:00C8H PUBLIC T2CON
|
||||
D:00D0H PUBLIC PSW
|
||||
D:00C0H PUBLIC IRCON
|
||||
------- PROC SERIN
|
||||
C:092FH LINE# 22
|
||||
C:092FH LINE# 25
|
||||
C:0932H LINE# 27
|
||||
C:0934H LINE# 29
|
||||
C:0937H LINE# 30
|
||||
C:0937H LINE# 32
|
||||
C:0939H LINE# 33
|
||||
C:0939H LINE# 34
|
||||
------- ENDPROC SERIN
|
||||
------- PROC SERWAITIN
|
||||
C:093AH LINE# 38
|
||||
C:093AH LINE# 41
|
||||
C:093DH LINE# 43
|
||||
C:093FH LINE# 45
|
||||
C:0941H LINE# 46
|
||||
------- ENDPROC SERWAITIN
|
||||
------- PROC _SERCHAROUT
|
||||
D:0007H SYMBOL zeichen
|
||||
C:0942H LINE# 51
|
||||
C:0942H LINE# 54
|
||||
C:0945H LINE# 56
|
||||
C:0947H LINE# 59
|
||||
C:0949H LINE# 60
|
||||
------- ENDPROC _SERCHAROUT
|
||||
------- PROC _SERSTRINGOUT
|
||||
D:0014H SYMBOL string
|
||||
------- DO
|
||||
D:0006H SYMBOL z
|
||||
------- ENDDO
|
||||
C:08DAH LINE# 63
|
||||
C:08E0H LINE# 66
|
||||
C:08F4H LINE# 67
|
||||
C:08F8H LINE# 68
|
||||
C:08FAH LINE# 69
|
||||
------- ENDPROC _SERSTRINGOUT
|
||||
------- PROC SERINIT
|
||||
C:0914H LINE# 72
|
||||
C:0914H LINE# 84
|
||||
C:0917H LINE# 86
|
||||
C:091AH LINE# 88
|
||||
C:091DH LINE# 90
|
||||
C:091FH LINE# 103
|
||||
C:0922H LINE# 104
|
||||
BL51 BANKED LINKER/LOCATER V6.22.4.0 05/22/2024 13:57:42 PAGE 5
|
||||
|
||||
|
||||
------- ENDPROC SERINIT
|
||||
------- ENDMOD SERIO
|
||||
|
||||
------- MODULE ?C?CLDPTR
|
||||
C:08FBH PUBLIC ?C?CLDPTR
|
||||
------- ENDMOD ?C?CLDPTR
|
||||
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?SERWAITIN?SERIO
|
||||
|
||||
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||
SEGMENT: ?PR?_SERSTRINGOUT?SERIO
|
||||
|
||||
******************************************************************************
|
||||
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0134H BYTE (15%) *
|
||||
******************************************************************************
|
||||
|
||||
Program Size: data=25.0 xdata=0 code=333
|
||||
LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 0 ERROR(S)
|
||||
77
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/main.lst
Executable file
77
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/main.lst
Executable file
@@ -0,0 +1,77 @@
|
||||
C51 COMPILER V9.60.7.0 MAIN 05/22/2024 13:57:29 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE MAIN
|
||||
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main
|
||||
-.lst) TABS(2) OBJECT(.\Objects\main.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 // Clear screen and set cursor home
|
||||
2 #include <stdio.h>
|
||||
3 #include <serIO.h>
|
||||
4
|
||||
5
|
||||
6 unsigned char taste;
|
||||
7
|
||||
8 void indentWithSpace(int amount) {
|
||||
9 1 int g;
|
||||
10 1 for (g = 0; g < (amount); g++)
|
||||
11 1 serCharOut(' '); // indenting
|
||||
12 1 return;
|
||||
13 1 }
|
||||
14 void drawChristmastree(int width) {
|
||||
15 1 int i;
|
||||
16 1 int j;
|
||||
17 1 for (i = 0; i < width; i++) {
|
||||
18 2 indentWithSpace((width-i));
|
||||
19 2
|
||||
20 2 for (j = 0; j < ((2 * i) + 1); j++) { // draws '='
|
||||
21 3 if (i > 0) serCharOut('=');
|
||||
22 3 }
|
||||
23 2 serCharOut('\n');
|
||||
24 2 indentWithSpace(width);
|
||||
25 2 serCharOut('='); // Stamm
|
||||
26 2 serCharOut('\n');
|
||||
27 2 }
|
||||
28 1 }
|
||||
29
|
||||
30 void main() {
|
||||
31 1
|
||||
32 1
|
||||
33 1 int hasChar = 0;
|
||||
34 1
|
||||
35 1 serInit();
|
||||
36 1 while(hasChar == 0) {
|
||||
37 2 taste = serIn();
|
||||
38 2 if (taste != '\0') {
|
||||
39 3 hasChar = 1;
|
||||
40 3 break;
|
||||
41 3 }
|
||||
42 2 drawChristmastree(40);
|
||||
43 2 }
|
||||
44 1 return;
|
||||
45 1 }
|
||||
46
|
||||
47 /* Gedanken zur Funktionalen Aufteilung und Erweiterung
|
||||
48 - eigenst<73>ndige Funktion zum indenten ; Parameter: (int Anzahl ' ' (LEERZEICHEN))
|
||||
49 - recursivit<69>t hier besonders interessant zum Zeichnen der Charakterketten Parameter: (int Schleifendurc
|
||||
-hl<68>ufe)
|
||||
50 */
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
C51 COMPILER V9.60.7.0 MAIN 05/22/2024 13:57:29 PAGE 2
|
||||
|
||||
CODE SIZE = 218 ----
|
||||
CONSTANT SIZE = ---- ----
|
||||
XDATA SIZE = ---- ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 1 12
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
130
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/serIO.lst
Executable file
130
Semester 4/MICONT/Aufgabenblätter/ZickZack/Listings/serIO.lst
Executable 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)
|
||||
Reference in New Issue
Block a user