displaytest2313.asm
1 | .include "2313def.inc"
| 2 |
| 3 | .def temp1 = r16
| 4 | .def temp2 = r17
| 5 | .def temp3 = r18
| 6 | .def text = r0
| 7 |
| 8 | ; Display 1.Zeile=$80
| 9 | ; Display 2.Zeile=$C0
| 10 | ; Display 3.Zeile=$94
| 11 | ; Display 4.Zeile=$D4
| 12 |
| 13 | rjmp reset ; Reset-Vector
| 14 | reti ; Ext Int 0, nicht benutzt
| 15 | reti ; Ext Int 1, nicht benutzt
| 16 | reti ; Timer 1 Capture Event, nicht benutzt
| 17 | reti ; Time@wee2423423r 1 Compare Match
| 18 | reti ; Timer 1 Overflow, nicht benutzt
| 19 | reti ; Timer 0 Overflow, nicht benutzt
| 20 | reti ; UART Rx Complete
| 21 | reti ; UART Tx data register empty, nicht benutzt
| 22 | reti ; UART Tx All sent, nicht benutzt
| 23 |
| 24 |
| 25 | reset:
| 26 | ldi temp1,RAMEND ; Init stack pointer im SRAM
| 27 | out SPL,temp1 ; nur 8-Bit-Pointer bei 2313
| 28 | ldi temp1, 0b00001111 ; Port D = Ausgang
| 29 | out DDRB, temp1 ;Port B ist jetzt Ausgang
| 30 | ldi temp1, 0b11110000
| 31 | out portb,temp1
| 32 | ldi r16, $ff ;Port D durch Ausgabe von 0x00 ins
| 33 | out DDRD, r16 ;Richtungsregister DDRD als Eingang konfigurieren
| 34 | ldi r22,0
| 35 |
| 36 | rcall lcd_init
| 37 | rcall lcd_clear
| 38 |
| 39 |
| 40 | ldi ZH,high(2*txtstart1) ; Sende Text
| 41 | ldi ZL,low (2*txtstart1)
| 42 | rcall lctext
| 43 | ldi temp1, $C0 ; 2. Zeile
| 44 | rcall lcd_command
| 45 | ldi ZH,high(2*txtstart2) ; Sende Text
| 46 | ldi ZL,low (2*txtstart2)
| 47 | rcall lctext
| 48 |
| 49 | rcall zeit
| 50 | rcall lcd_clear
| 51 |
| 52 | ldi ZH,high(2*txtstart3) ; Sende Text
| 53 | ldi ZL,low (2*txtstart3)
| 54 | rcall lctext
| 55 | ldi temp1, $C0 ; 2. Zeile
| 56 | rcall lcd_command
| 57 | ldi ZH,high(2*txtstart4) ; Sende Text
| 58 | ldi ZL,low (2*txtstart4)
| 59 | rcall lctext
| 60 |
| 61 | rcall zeit
| 62 | rcall lcd_clear
| 63 |
| 64 | ldi ZH,high(2*initiate) ; Sende Text
| 65 | ldi ZL,low (2*initiate)
| 66 | rcall lctext
| 67 | rcall zeit
| 68 | rcall lcd_clear
| 69 | rjmp ja1
| 70 |
| 71 | zeit2: ldi r19, 100 ; Zeitschleife
| 72 | time6: ldi r20, 50
| 73 | time5: ldi r21, 50
| 74 | time4: dec r21
| 75 | brne time4
| 76 | dec r20
| 77 | brne time5
| 78 | dec r19
| 79 | brne time6
| 80 | ret
| 81 |
| 82 | ; ------- Hier läuft das Hauptprogramm ---------------------------------------------
| 83 |
| 84 | Start: rjmp taster
| 85 | rjmp start
| 86 |
| 87 | ; --------- Hier wird meine Taster und Eingange abgefragt -------------
| 88 |
| 89 | taster: sbis PINB, 4
| 90 | rjmp vorlauf
| 91 | sbis PINB, 5
| 92 | rjmp ruecklauf
| 93 | rjmp Start
| 94 |
| 95 | ja1: rcall lcd_clear
| 96 | rcall clean
| 97 | ldi ZH,high(2*scart1) ; Sende Text
| 98 | ldi ZL,low (2*scart1)
| 99 | rcall lctext
| 100 | ldi temp1, $c0
| 101 | rcall lcd_command
| 102 | ldi ZH,high(2*scart11) ; Sende Text 2.Zeile
| 103 | ldi ZL,low (2*scart11)
| 104 | rcall lctext
| 105 | rcall zeit2
| 106 | rjmp Start
| 107 |
| 108 | ja2: rcall lcd_clear
| 109 | rcall clean
| 110 | sbi PORTB, 0
| 111 | ldi ZH,high(2*scart1) ; Sende Text
| 112 | ldi ZL,low (2*scart1)
| 113 | rcall lctext
| 114 | ldi temp1, $c0
| 115 | rcall lcd_command
| 116 | ldi ZH,high(2*scart22) ; Sende Text 2.Zeile
| 117 | ldi ZL,low (2*scart22)
| 118 | rcall lctext
| 119 | ;rcall zeit2
| 120 | rjmp Start
| 121 |
| 122 | ja3: rcall lcd_clear
| 123 | rcall clean
| 124 | sbi PORTB, 0
| 125 | sbi PORTB, 1
| 126 | ldi ZH,high(2*scart3) ; Sende Text
| 127 | ldi ZL,low (2*scart3)
| 128 | rcall lctext
| 129 | ldi temp1, $c0
| 130 | rcall lcd_command
| 131 | ldi ZH,high(2*scart11) ; Sende Text 2.Zeile
| 132 | ldi ZL,low (2*scart11)
| 133 | rcall lctext
| 134 | rjmp Start
| 135 |
| 136 | ja4: rcall lcd_clear
| 137 | rcall clean
| 138 | sbi PORTB, 2
| 139 | ldi ZH,high(2*scart3) ; Sende Text
| 140 | ldi ZL,low (2*scart3)
| 141 | rcall lctext
| 142 | ldi temp1, $c0
| 143 | rcall lcd_command
| 144 | ldi ZH,high(2*scart22) ; Sende Text 2.Zeile
| 145 | ldi ZL,low (2*scart22)
| 146 | rcall lctext
| 147 | rjmp Start
| 148 |
| 149 | vorlauf: inc r22
| 150 | cpi r22, 0
| 151 | breq ja1
| 152 | cpi r22, 1
| 153 | breq ja2
| 154 | cpi r22, 2
| 155 | breq ja3
| 156 | cpi r22, 3
| 157 | breq ja4
| 158 | cpi r22, 4
| 159 | breq ueberlauf
| 160 | rjmp Start
| 161 |
| 162 | ruecklauf: dec r22
| 163 | cpi r22, 0
| 164 | breq ja1
| 165 | cpi r22, 1
| 166 | breq ja2
| 167 | cpi r22, 2
| 168 | breq ja3
| 169 | cpi r22, 3
| 170 | breq ja4
| 171 | cpi r22, 255
| 172 | breq ueberlauf2
| 173 | rjmp Start
| 174 |
| 175 | ueberlauf: ldi r22, 3
| 176 | rjmp Start
| 177 |
| 178 | ueberlauf2: ldi r22, 0
| 179 | rjmp Start
| 180 |
| 181 | clean: cbi PORTB, 0
| 182 | cbi PORTB, 1
| 183 | cbi PORTB, 2
| 184 | cbi PORTB, 3
| 185 | ret
| 186 |
| 187 | warte1: sbis PINB, 4
| 188 | rjmp warte1
| 189 | ret
| 190 | warte2: sbis PINB, 5
| 191 | rjmp warte2
| 192 | ret
| 193 | ; -------- Zeitschleife Eingänge und Taster ----------------------
| 194 |
| 195 | zeit: ldi r19, 255 ; Zeitschleife
| 196 | time3: ldi r20, 200
| 197 | time2: ldi r21, 150
| 198 | time1: dec r21
| 199 | brne time1
| 200 | dec r20
| 201 | brne time2
| 202 | dec r19
| 203 | brne time3
| 204 | ret
| 205 |
| 206 |
| 207 |
| 208 | ; -------- Hier wird mein Text für LCD aus der Datenbank geholt ----------
| 209 |
| 210 | lctext: lpm ; Lese Zeichen
| 211 | lcnext: mov temp1,r0 ; Kopiere Zeichen in Senderegister
| 212 | rcall lcd_data ; Unterprogramm aufrufen,Text ausgeben
| 213 | adiw ZL, 1 ; Zeiger auf nächstes Zeichen
| 214 | lpm ; Lese Zeichen
| 215 | tst r0 ; Ergebnis im Register R0 hat Null erreicht?
| 216 | brne lcnext ; Nächstes Zeichen
| 217 | ret ; Zurück zum Sender
| 218 |
| 219 | ; --------- Hier stehen meine Texte --------------------------------------
| 220 | .include "lcd-routines.asm"
| 221 |
| 222 | txtstart1:
| 223 | .DB "Cordula Esser`s",0
| 224 |
| 225 | txtstart2:
| 226 | .DB "Scart Umschalter",0
| 227 |
| 228 | txtstart3:
| 229 | .DB " Copyright by ",0
| 230 |
| 231 | txtstart4:
| 232 | .DB " Denk Andreas ",0
| 233 |
| 234 | scart1:
| 235 | .DB " Sat Receiver",0
| 236 |
| 237 | scart11:
| 238 | .DB " Signal RGB",0
| 239 |
| 240 | scart22:
| 241 | .DB "Signal Composite",0
| 242 |
| 243 | initiate:
| 244 | .DB ">Initialisierung",0
| 245 |
| 246 | scart3:
| 247 | .DB " DVD Player",0
|
|