Forum: Mikrocontroller und Digitale Elektronik PIC-Programm assembler


von Pic-Beginner (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

wer kann mir dieses Programm genau erklären? Ich habe absolut keine 
Ahnung von Assembler.
Es handelt sich um einen PIC 12C508A in einem Aktor, der mit 6 bzw. 12 
Ausgangen bestückt werden kann.
IMHO empfängt der PIC Daten und schiebt sie dann in 1 bzw. 2 
Schieberegister (74HC4094), bei denen jeweils die Ausgänge 1-6 verwendet 
werden.
Insbesondere würde mich interessieren, ab damit nur ein Schieberegister 
angesprochen wird (6Ausgänge) oder auch die Ansteuerung von 2 
Kaskadierten 4094 (Eingang 2. 4097 hängt an QS2 des 1. 4097, damit 12 
Ausgänge) möglich ist?

mfg
1
      org     
2
3
      goto 251                                       ;0AFB
4
      movlw 255                 ;B'11111111'         ;0CFF
5
      movwf 8                                        ;0028
6
0003  clrwdt                                         ;0004
7
      call 25                                        ;0919
8
      bcf STATUS,C              ;B'00000000'         ;0403
9
      btfss GPIO,GP2            ;B'00000010'         ;0746
10
      bsf STATUS,C              ;B'00000000'         ;0503
11
      rlf 8,F                                        ;0368
12
      movf 8,F                                       ;0228
13
      btfss STATUS,Z            ;B'00000010'         ;0743
14
      goto 3                                         ;0A03
15
      retlw 0                   ;B'00000000'         ;0800
16
    
17
      movlw 255                 ;B'11111111'         ;0CFF
18
      movwf 8                                        ;0028
19
0015  clrwdt                                         ;0004
20
      call 25                                        ;0919
21
      bcf STATUS,C              ;B'00000000'         ;0403
22
      btfsc GPIO,GP2            ;B'00000010'         ;0646
23
      bsf STATUS,C              ;B'00000000'         ;0503
24
      rlf 8,F                                        ;0368
25
      movf 8,F                                       ;0228
26
      btfss STATUS,Z            ;B'00000010'         ;0743
27
      goto 15                                        ;0A0F
28
      retlw 0                   ;B'00000000'         ;0800
29
    
30
31
; Sous-routine
32
0025  btfsc GPIO,GP5            ;B'00000101'         ;06A6
33
      goto 31                                        ;0A1F
34
      decfsz 23,F                                    ;02F7
35
      retlw 0                   ;B'00000000'         ;0800
36
    
37
      clrf 19                                        ;0073
38
      clrf 20                                        ;0074
39
0031  movlw 2                   ;B'00000010'         ;0C02
40
      movwf 23                                       ;0037
41
      retlw 0                   ;B'00000000'         ;0800
42
    
43
      decfsz 9,F                                     ;02E9
44
      goto 53                                        ;0A35
45
      movlw 50                  ;B'00110010'         ;0C32
46
      movwf 9                                        ;0029
47
      decfsz 16,F                                    ;02F0
48
      goto 53                                        ;0A35
49
      movlw 60                  ;B'00111100'         ;0C3C
50
      movwf 16                                       ;0030
51
      bsf 19,7                  ;B'00000111'         ;05F3
52
      decfsz 18,F                                    ;02F2
53
      goto 48                                        ;0A30
54
      movlw 8                   ;B'00001000'         ;0C08
55
      movwf 18                                       ;0032
56
      bsf 19,2                  ;B'00000010'         ;0553
57
0048  decfsz 17,F                                    ;02F1
58
      goto 53                                        ;0A35
59
      movlw 5                   ;B'00000101'         ;0C05
60
      movwf 17                                       ;0031
61
      bsf 19,1                  ;B'00000001'         ;0533
62
0053  retlw 0                   ;B'00000000'         ;0800
63
    
64
      movlw 50                  ;B'00110010'         ;0C32
65
      movwf 9                                        ;0029
66
      movlw 60                  ;B'00111100'         ;0C3C
67
      movwf 16                                       ;0030
68
      movlw 5                   ;B'00000101'         ;0C05
69
      movwf 17                                       ;0031
70
      movlw 8                   ;B'00001000'         ;0C08
71
      movwf 18                                       ;0032
72
      movlw 2                   ;B'00000010'         ;0C02
73
      movwf 23                                       ;0037
74
      nop                                            ;0000
75
      nop                                            ;0000
76
      nop                                            ;0000
77
      nop                                            ;0000
78
      nop                                            ;0000
79
      nop                                            ;0000
80
      nop                                            ;0000
81
      nop                                            ;0000
82
      nop                                            ;0000
83
      nop                                            ;0000
84
      nop                                            ;0000
85
      nop                                            ;0000
86
      nop                                            ;0000
87
      nop                                            ;0000
88
      nop                                            ;0000
89
      nop                                            ;0000
90
      nop                                            ;0000
91
      nop                                            ;0000
92
      nop                                            ;0000
93
      nop                                            ;0000
94
      nop                                            ;0000
95
      nop                                            ;0000
96
      nop                                            ;0000
97
      nop                                            ;0000
98
      nop                                            ;0000
99
      nop                                            ;0000
100
      nop                                            ;0000
101
      nop                                            ;0000
102
      nop                                            ;0000
103
      nop                                            ;0000
104
      nop                                            ;0000
105
      nop                                            ;0000
106
      nop                                            ;0000
107
      nop                                            ;0000
108
      nop                                            ;0000
109
      nop                                            ;0000
110
      nop                                            ;0000
111
      nop                                            ;0000
112
      nop                                            ;0000
113
      nop                                            ;0000
114
      nop                                            ;0000
115
      nop                                            ;0000
116
      nop                                            ;0000
117
      nop                                            ;0000
118
      nop                                            ;0000
119
      nop                                            ;0000
120
      nop                                            ;0000
121
      nop                                            ;0000
122
      nop                                            ;0000
123
      nop                                            ;0000
124
      nop                                            ;0000
125
      nop                                            ;0000
126
      nop                                            ;0000
127
      nop                                            ;0000
128
      nop                                            ;0000
129
      nop                                            ;0000
130
      nop                                            ;0000
131
      nop                                            ;0000
132
      nop                                            ;0000
133
      nop                                            ;0000
134
      nop                                            ;0000
135
      nop                                            ;0000
136
      nop                                            ;0000
137
      nop                                            ;0000
138
      nop                                            ;0000
139
      nop                                            ;0000
140
      nop                                            ;0000
141
      nop                                            ;0000
142
      nop                                            ;0000
143
      nop                                            ;0000
144
      nop                                            ;0000
145
      nop                                            ;0000
146
      nop                                            ;0000
147
      nop                                            ;0000
148
      nop                                            ;0000
149
      nop                                            ;0000
150
      nop                                            ;0000
151
      nop                                            ;0000
152
      nop                                            ;0000
153
      nop                                            ;0000
154
      nop                                            ;0000
155
      nop                                            ;0000
156
      nop                                            ;0000
157
      nop                                            ;0000
158
      nop                                            ;0000
159
      nop                                            ;0000
160
      nop                                            ;0000
161
      nop                                            ;0000
162
      nop                                            ;0000
163
      nop                                            ;0000
164
      nop                                            ;0000
165
      nop                                            ;0000
166
      nop                                            ;0000
167
      nop                                            ;0000
168
      nop                                            ;0000
169
      nop                                            ;0000
170
      nop                                            ;0000
171
      nop                                            ;0000
172
      nop                                            ;0000
173
      nop                                            ;0000
174
      nop                                            ;0000
175
      nop                                            ;0000
176
      nop                                            ;0000
177
      nop                                            ;0000
178
      nop                                            ;0000
179
      nop                                            ;0000
180
      nop                                            ;0000
181
      nop                                            ;0000
182
      nop                                            ;0000
183
      nop                                            ;0000
184
      nop                                            ;0000
185
      nop                                            ;0000
186
      nop                                            ;0000
187
      nop                                            ;0000
188
      nop                                            ;0000
189
      nop                                            ;0000
190
      nop                                            ;0000
191
      nop                                            ;0000
192
      nop                                            ;0000
193
      nop                                            ;0000
194
      nop                                            ;0000
195
      nop                                            ;0000
196
      nop                                            ;0000
197
      nop                                            ;0000
198
      nop                                            ;0000
199
      nop                                            ;0000
200
      nop                                            ;0000
201
      nop                                            ;0000
202
      nop                                            ;0000
203
      nop                                            ;0000
204
      nop                                            ;0000
205
      nop                                            ;0000
206
      nop                                            ;0000
207
      nop                                            ;0000
208
      nop                                            ;0000
209
      nop                                            ;0000
210
      nop                                            ;0000
211
      nop                                            ;0000
212
      nop                                            ;0000
213
      nop                                            ;0000
214
      nop                                            ;0000
215
      nop                                            ;0000
216
      nop                                            ;0000
217
      nop                                            ;0000
218
      nop                                            ;0000
219
      nop                                            ;0000
220
      nop                                            ;0000
221
      nop                                            ;0000
222
      nop                                            ;0000
223
      nop                                            ;0000
224
      nop                                            ;0000
225
      nop                                            ;0000
226
      nop                                            ;0000
227
      nop                                            ;0000
228
      nop                                            ;0000
229
      nop                                            ;0000
230
      nop                                            ;0000
231
      nop                                            ;0000
232
      nop                                            ;0000
233
      nop                                            ;0000
234
      nop                                            ;0000
235
      nop                                            ;0000
236
      nop                                            ;0000
237
      nop                                            ;0000
238
      nop                                            ;0000
239
      nop                                            ;0000
240
      nop                                            ;0000
241
      nop                                            ;0000
242
      nop                                            ;0000
243
      nop                                            ;0000
244
      nop                                            ;0000
245
      nop                                            ;0000
246
      nop                                            ;0000
247
      nop                                            ;0000
248
      nop                                            ;0000
249
      nop                                            ;0000
250
      nop                                            ;0000
251
      nop                                            ;0000
252
      nop                                            ;0000
253
      nop                                            ;0000
254
      nop                                            ;0000
255
      nop                                            ;0000
256
      nop                                            ;0000
257
      nop                                            ;0000
258
      nop                                            ;0000
259
      nop                                            ;0000
260
      nop                                            ;0000
261
0251  nop                                            ;0000
262
      nop                                            ;0000
263
      nop                                            ;0000
264
      nop                                            ;0000
265
      nop                                            ;0000
266
      nop                                            ;0000
267
      nop                                            ;0000
268
      nop                                            ;0000
269
      nop                                            ;0000
270
      nop                                            ;0000
271
      nop                                            ;0000
272
      nop                                            ;0000
273
      nop                                            ;0000
274
      nop                                            ;0000
275
      nop                                            ;0000
276
      nop                                            ;0000
277
      nop                                            ;0000
278
      nop                                            ;0000
279
      nop                                            ;0000
280
      nop                                            ;0000
281
      nop                                            ;0000
282
      nop                                            ;0000
283
      nop                                            ;0000
284
      nop                                            ;0000
285
      nop                                            ;0000
286
      nop                                            ;0000
287
      nop                                            ;0000
288
      nop                                            ;0000
289
      nop                                            ;0000
290
      nop                                            ;0000
291
      nop                                            ;0000
292
      nop                                            ;0000
293
      nop                                            ;0000
294
      nop                                            ;0000
295
      nop                                            ;0000
296
      nop                                            ;0000
297
      nop                                            ;0000
298
      nop                                            ;0000
299
      nop                                            ;0000
300
      nop                                            ;0000
301
      nop                                            ;0000
302
      nop                                            ;0000
303
      nop                                            ;0000
304
      nop                                            ;0000
305
      nop                                            ;0000
306
      nop                                            ;0000
307
      nop                                            ;0000
308
      nop                                            ;0000
309
      nop                                            ;0000
310
      nop                                            ;0000
311
      nop                                            ;0000
312
      nop                                            ;0000
313
      nop                                            ;0000
314
      nop                                            ;0000
315
      nop                                            ;0000
316
      nop                                            ;0000
317
      nop                                            ;0000
318
      nop                                            ;0000
319
      nop                                            ;0000
320
      nop                                            ;0000
321
      nop                                            ;0000
322
      nop                                            ;0000
323
      nop                                            ;0000
324
      nop                                            ;0000
325
      nop                                            ;0000
326
      nop                                            ;0000
327
      nop                                            ;0000
328
      nop                                            ;0000
329
      nop                                            ;0000
330
      nop                                            ;0000
331
      nop                                            ;0000
332
      nop                                            ;0000
333
      nop                                            ;0000
334
      nop                                            ;0000
335
      nop                                            ;0000
336
      nop                                            ;0000
337
      nop                                            ;0000
338
      nop                                            ;0000
339
      nop                                            ;0000
340
      nop                                            ;0000
341
      nop                                            ;0000
342
      nop                                            ;0000
343
      nop                                            ;0000
344
      nop                                            ;0000
345
      nop                                            ;0000
346
      nop                                            ;0000
347
      nop                                            ;0000
348
      nop                                            ;0000
349
      nop                                            ;0000
350
      nop                                            ;0000
351
      nop                                            ;0000
352
      nop                                            ;0000
353
      nop                                            ;0000
354
      nop                                            ;0000
355
      nop                                            ;0000
356
      nop                                            ;0000
357
      nop                                            ;0000
358
      nop                                            ;0000
359
      nop                                            ;0000
360
      nop                                            ;0000
361
      nop                                            ;0000
362
      nop                                            ;0000
363
      nop                                            ;0000
364
      nop                                            ;0000
365
      nop                                            ;0000
366
      nop                                            ;0000
367
      nop                                            ;0000
368
      nop                                            ;0000
369
      nop                                            ;0000
370
      nop                                            ;0000
371
      nop                                            ;0000
372
      nop                                            ;0000
373
      nop                                            ;0000
374
      nop                                            ;0000
375
      nop                                            ;0000
376
      nop                                            ;0000
377
      nop                                            ;0000
378
      nop                                            ;0000
379
      nop                                            ;0000
380
      nop                                            ;0000
381
      nop                                            ;0000
382
      nop                                            ;0000
383
      nop                                            ;0000
384
      nop                                            ;0000
385
      nop                                            ;0000
386
      nop                                            ;0000
387
      nop                                            ;0000
388
      nop                                            ;0000
389
      nop                                            ;0000
390
      nop                                            ;0000
391
      nop                                            ;0000
392
      nop                                            ;0000
393
      nop                                            ;0000
394
      nop                                            ;0000
395
      nop                                            ;0000
396
      nop                                            ;0000
397
      nop                                            ;0000
398
      nop                                            ;0000
399
      nop                                            ;0000
400
      nop                                            ;0000
401
      nop                                            ;0000
402
      nop                                            ;0000
403
      nop                                            ;0000
404
      nop                                            ;0000
405
      nop                                            ;0000
406
      nop                                            ;0000
407
      nop                                            ;0000
408
      nop                                            ;0000
409
      nop                                            ;0000
410
      nop                                            ;0000
411
      nop                                            ;0000
412
      nop                                            ;0000
413
      nop                                            ;0000
414
      nop                                            ;0000
415
      nop                                            ;0000
416
      nop                                            ;0000
417
      nop                                            ;0000
418
      nop                                            ;0000
419
      nop                                            ;0000
420
      nop                                            ;0000
421
      nop                                            ;0000
422
      nop                                            ;0000
423
      nop                                            ;0000
424
      nop                                            ;0000
425
      nop                                            ;0000
426
      nop                                            ;0000
427
      nop                                            ;0000
428
      nop                                            ;0000
429
      nop                                            ;0000
430
      nop                                            ;0000
431
      nop                                            ;0000
432
      nop                                            ;0000
433
      nop                                            ;0000
434
      nop                                            ;0000
435
      nop                                            ;0000
436
      nop                                            ;0000
437
      nop                                            ;0000
438
      nop                                            ;0000
439
      nop                                            ;0000
440
      nop                                            ;0000
441
      nop                                            ;0000
442
      nop                                            ;0000
443
      nop                                            ;0000
444
      nop                                            ;0000
445
      nop                                            ;0000
446
      nop                                            ;0000
447
      nop                                            ;0000
448
      nop                                            ;0000
449
      nop                                            ;0000
450
      nop                                            ;0000
451
      nop                                            ;0000
452
      nop                                            ;0000
453
      nop                                            ;0000
454
      nop                                            ;0000
455
      nop                                            ;0000
456
      nop                                            ;0000
457
      nop                                            ;0000
458
      nop                                            ;0000
459
      nop                                            ;0000
460
      nop                                            ;0000
461
      nop                                            ;0000
462
      nop                                            ;0000
463
      nop                                            ;0000
464
      nop                                            ;0000
465
      nop                                            ;0000
466
      nop                                            ;0000
467
      nop                                            ;0000
468
      nop                                            ;0000
469
      nop                                            ;0000
470
      nop                                            ;0000
471
      nop                                            ;0000
472
      nop                                            ;0000
473
      nop                                            ;0000
474
      nop                                            ;0000
475
      nop                                            ;0000
476
      nop                                            ;0000
477
      nop                                            ;0000
478
      nop                                            ;0000
479
      nop                                            ;0000
480
      nop                                            ;0000
481
      nop                                            ;0000
482
      nop                                            ;0000
483
      nop                                            ;0000
484
      nop                                            ;0000
485
      nop                                            ;0000
486
      nop                                            ;0000
487
      nop                                            ;0000
488
      nop                                            ;0000
489
      nop                                            ;0000
490
      nop                                            ;0000
491
      nop                                            ;0000
492
      nop                                            ;0000
493
      nop                                            ;0000
494
      nop                                            ;0000
495
      nop                                            ;0000
496
      nop                                            ;0000
497
      nop                                            ;0000
498
      nop                                            ;0000
499
      nop                                            ;0000
500
      nop                                            ;0000
501
      nop                                            ;0000
502
      nop                                            ;0000
503
      nop                                            ;0000
504
      nop                                            ;0000
505
      nop                                            ;0000
506
      nop                                            ;0000
507
      nop                                            ;0000
508
      nop                                            ;0000
509
      nop                                            ;0000
510
      nop                                            ;0000
511
      nop                                            ;0000
512
      nop                                            ;0000
513
      nop                                            ;0000
514
      nop                                            ;0000
515
      nop                                            ;0000
516
      nop                                            ;0000
517
      nop                                            ;0000
518
      nop                                            ;0000
519
      nop                                            ;0000
520
      nop                                            ;0000
521
      movlw 116                 ;B'01110100'         ;0C74

von stepp64 (Gast)


Lesenswert?

Ist doch nicht schwer. Das Programm springt auf die Marke 251, führt 
dann etliche NOPs aus und lädt zum Schluß den Wert 116 ins 
Arbeitsregister. Danach hängt es sich dann vermutlich auf.

Du glaubst doch nicht im ernst, dass sich hier jemand die Arbeit macht, 
ein dissassembliertes Programm nachzuvollziehen. Das wirst du wohl 
selber machen müssen.

Gruß
S.

von Pic-Beginner (Gast)


Lesenswert?

Hallo,

wenn ich das selber könnte, würde ich das ja machen, aber mein 
Assemblerwissen geht gegen 0.
Den Sprung auf 251 und die NOPs bis ans ende hab ich selbst gesehen.

Allerdings ist das Prog. aus einer funkt. Baugruppe ausgelesen, sollt 
also noch mehr können.

Kann es evtl. sein, das per Interrupt ins Programm gesprungen wird?
Allerdings kann ICH weder eine Interruptroutine noch eine 
Initialisierung der Ausgänge erkennen, obwohl ich inzwischen einig 
PIC-Tutorials gelesen habe.

Die Baugruppe mit dem Pic hängt an einer EIB-BCU. Die Platine ist mit 6 
Ausgängen bestückt, läßt sich aber auch mit 12 Ausgängen bestücken. Da 
ich davon mehrere habe, wollte ich aus 2 6ern eine 12er machen. Einzige 
Schwierigkeit könnt evtl. der PIC sein (unterschiedliche Programme für 6 
oder 12 Ausgänge).
Bevor ich nun anfange, eine Platine zu schlachten und bei einer 2. die 
restliche 6 Ausgänge bestücke, wollt ich nur wissen, ob in dem Programm 
eine Begrenzung auf 6 Ausgange (Ausgabe von 6 Bits in das 
Schieberegister) vorhanden ist.

Sorry das sich ein PIC-Anfänger getraut hat, so eine Frage zu stellen.

mfg

von Meister E. (edson)


Lesenswert?

>Ist doch nicht schwer. Das Programm springt auf die Marke 251, führt
>dann etliche NOPs aus und lädt zum Schluß den Wert 116 ins
>Arbeitsregister. Danach hängt es sich dann vermutlich auf.

Bei den PIC12 liegt am Ende des Programm-Flash ein Kalibrierwert für den 
internen Oszillator. Das Programm wird also nicht abstürzen.

>Du glaubst doch nicht im ernst, dass sich hier jemand die Arbeit macht,
>ein dissassembliertes Programm nachzuvollziehen. Das wirst du wohl
>selber machen müssen.

Seh ich auch so. Wenn es aber eine dringende Sache ist und Jemand die 
Zeit bezahlt kann man darüber reden.

von stepp64 (Gast)


Lesenswert?

So, hab mir das noch einmal angeschaut. Bei deinem PIC ist vermutlich 
das Code-Protection Bit gesetzt. Damit lassen sich von dem Programm nur 
die ersten 64 Bytes auslesen. Der Rest wird vom Brenner als NOP gelesen. 
Und nur um der Frage gleich vorzubeugen: Es gibt keine Möglichkeit den 
geschützten Programmspeicherbereich doch irgendwie auszulesen. Somit 
erklärt sich auch das Programm. Es springt halt erst einmal in den 
geschützten Bereich. Was es dort macht weiss nur der Entwickler des 
Programms. Einfacher wird es wohl sein, das Programm neu zu entwickeln 
und an deine Schieberegister Steuerung anzupassen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.