PIC 512-es tablazat mukodik, koszi!

Kis Norbert norbi at kzs.hu
Mon Oct 25 09:24:11 CEST 1999


Sziasztok!

Eloszor halas koszonetem Miko Imrenek a hasznos tanacsaiert. Mostmar szepen
mukodik a hosszu tablazat kezelese a PIC-nel.
Gondoltam tartozom annyival, hogy leirjam, hogyan oldottam meg a problemat.
Parallax utasitaskeszletet hasznaltam, igy a most kovetkezo sorok is
ugy olvasandok. Szerintem ez a megoldas egyszerubb, mint az Imre altal
ismertetett reszlet, s az eredeti utasitaskeszletre is egyszeruen
adaptalhato.
Raadasul nem kell ket rutin, illetve tablazatcimke a kezeleshez, a kovetkezo
pelda a teljes tablat egyben latja:

Ez a resz barhol lehet az also 512-es memoriaban:

kar_c mov PCLATH,#2    ; Ha chr B5-bitje 0.
      snb chr.5        ; Kovetkezo sort atugorja, ha '0'
      mov PCLATH,#3    ; Ha chr B5-bitje 1.
      mov w,ofszet     ; Meghijva a rutint.
      call CHAR_1      ; 64*8-elemu tablazat beolvasva.
      .....

;chr'-regiszterben termeszetesen a tablazat elemenek cime van. (0...63)
'ofszet'-ben pedig chr-harom bittel felfele rotalva. Ez azert jo, mert
igy egy kulso ciklusban inkrementalva ofszet-et egyszeruen megkapjuk mind a
8-elemet a tablazatban. Ez a resz ertelemszeruen valtaztathato igeny
szerint.
Lathato, hogy a PCLATH-ot fix ertekkel toltottem elo. Szerintem ez a legegy-
szerubb. A felso 512 szo also/felso 256 bitje kozott a 'chr' regiszter 5-os
bitje hivatott valtani. '0' eseten PCLATH-ba #2, egyebkent #3 fog kerulni.
Mas dolgunk nincs, a visszateres korrekt. Megneztem minden elemre
szimulatorral,
de vagy 4-napja stabilan fut a forgo kijelzomben is. ;-))

A program legvegere kell includolni (vagy direktbe beiirni.) a tablazatot.
Termeszetesen en is programmal generaltam a PC karakterkeszlete alapjan.
Ennek elonye, hogy a karakterek csereje utan ujabb karakterek tehetok a
PIC-be.
(Van pl. mar rovasirasom is hozza...)
Tehat a tablazat:

 org 1FFh
CHAR_1         jmp pc+w                                  ;512-elemu tablazat
               RETW     0,0,0,0,0,0,0,0                  ;SPACE
               RETW     124,126,19,19,126,124,0,0        ;A
               RETW     65,127,127,73,73,127,54,0        ;B
               RETW     28,62,99,65,65,99,34,0           ;C
               ....     S igy tovabb mind az 512-elem.

Az eredeti program ezenkivul meg tartalmaz egy 256-elemu tablat is. Ebben a
megjeleno DEMO-szoveg van letarolva. Ezenkivul az EEPROM-bol is olvas a
progi,
igy a program valtoztatasa nelkul is modosithato a felhasznalo altal defini-
alt szoveg. Ez is mukodik szepen. A szovegtabla termeszetesen 0FFh-nel
kezdodik.

A karakterkodok felso ket bitjet inverz, illetve alahuzott megjelenitesre
hasz-
nalom, igy osszesen 256-fele karaktert tudok kiiratni. Ez mar eleg... :-))

Koszi megegyszer a segitseget, remelem en is tudtam segiteni valamit
azoknak,
akik ezek utan talalkoznak ezzel a problemaval.

Udvozlettel:
              Norbi.




More information about the Elektro mailing list