nedjelja, 17. studenoga 2013.

Putujuči tekst

Šetajuči po mom bogatom podrumu, pronašao sam jedan stari projekt, koji je bio realiziran sa malim atmelom (89c4051). Nakon što sam prešao na malo moderniji čip (atmega8), mogu napisati veče programe. Metoda pisanja mojih programa je kopiranje različitih drugih projekata, uz uzimanje pojedinačnih dijelova i od svakoga i prepravljanje po mojim željama. Imam jednog  prijatelja (upoznali smo se preko elektroničkog foruma) koji je softverski jako dobro potkovan; i razumije svaku tu naredbu. Mene u ovim mojim malim projektima ne zanima uvijek kako to radi i zašto; važno je da dođem do zadovoljavajučeg rezultata.







 Displej je napravljen od 8 pločica. Na svakoj se nalazi 16 LED, 16 otpora i 2 komada mojih omiljenih 74HC595.



Ovdje se nalazi samo osnovni dio programa; ostatak je na stranicama literature i softvera; Bascom programi , pod imenom: trk_r6. Još treba  promijeniti ASCII tablicu u naša slova....To za koji dan....Tekst se još za sada ukucava u kontroler, ali za koji dan će da se uspostavi i veza sa računalom, pa će se tekst ukucati preko njega.


'                         (c) Boris Felc 2000
'       putujuči tekst
'                Prikaz  serijski na 2x74595  i tako 8 puta
' Zadnja revizija 16.11.2013.
'-------------------------------------------------------------------------------
   $regfile = "m8def.dat"
  ' $crystal = 8000000
   $hwstack = 40
   $swstack = 16
   $framesize = 32

   Config Portb = Output
   Config Portc = Output
   Zapamti Alias Portc.1
   Klok Alias Portc.2
'-------------------------------------------------------------------------------
  Dim Poruka As String * 150
Dim Polja(500) As Byte
Dim Kolona As Byte
Dim Jedan_znak As String * 1
Dim Znak As Byte
Dim Mjesto_znaka As Byte
Dim Temp As Byte
Dim Polja_ptr As Byte
Dim Citanje_table As Integer
Dim Duzina_poruke As Word
Dim Duzina_polja As Word
'-------------------------------------------------------------------------------
Poruka = "Danas je cijeli dan bilo lijepo vrijeme."
Duzina_poruke = Len(poruka)
Duzina_polja = Duzina_poruke * 6
Duzina_polja = Duzina_polja + 8

For Mjesto_znaka = 1 To Duzina_poruke

Jedan_znak = Mid(poruka , Mjesto_znaka , 1)
Citanje_table = Asc(jedan_znak)
Citanje_table = Citanje_table - 32
Citanje_table = Citanje_table * 6

For Kolona = 0 To 5
Temp = Lookup(citanje_table , Table)
Polja(polja_ptr) = Temp
Incr Citanje_table
Incr Polja_ptr
Next

Next

Polja_ptr = 1
'------------------------------------------------------------------------------
 Do

   Reset Zapamti : Waitms 1
   Set Klok : Waitms 1

   Portb = Polja(polja_ptr)
   Polja_ptr = Polja_ptr + 1
   If Polja_ptr > Duzina_polja Then Polja_ptr = 0
   Reset Klok : Waitms 1

   Set Zapamti : Waitms 1

Waitms 200

Loop
'-------------------------------------------------------------------------------
Table:



Data 0 , 0 , 0 , 0 , 0 , 0                                  'space

.......i tako dalje