$regfile = "m16def.dat" ' we use the M16
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 'default use 10 for the SW stack
$framesize = 40 'default use 40 for the frame space
$crystal = 16000000
'$crystal = 20000000
Dim Char As Byte , C As Byte , Digit As Byte , L As Byte , I As Byte , Temp(2) As Byte , Temp2 As Byte
Dim X As Word
Config 1wire = Portc.0 ' konfiguracja portu PD.5 jako wej?cia magistrali 1-wire
Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Temperatura As String * 5
Dim Str_temp As String * 1 , Reeks(250) As Byte , Str_text As String * 40 , Str_len As Byte , Col_len As Byte , R As Byte
Dim Tempmsb As Byte , Templsb As Byte , Tempstr As String * 2
Dim Scroll_speed As Byte
Declare Sub Input_text
Declare Sub Show_text
Declare Sub Set_volt
Declare Sub Set_text
Declare Sub Test_display
Declare Sub Read_volt
Declare Sub Read_temp
Declare Sub Tempe
Config Portb = Output
Config Porta = Output
Enable Interrupts
Config Clock = Soft 'This command inits the clock
Config Date = Dmy , Separator = / ' ANSI-Format
Goto Main
'Sub Input_text
'Input "Give text (50 chars max):" , Str_text
'End Sub Input_text
'read temperature
Sub Read_temp
'initialise TCN75
I2cstart
I2cwbyte &H90
I2cwbyte &H00
I2cstop
'read temp
I2cstart
I2cwbyte &H91
I2crbyte Tempmsb , Ack
I2crbyte Templsb , Nack
I2cstop
End Sub Readtemp
'****************
'set text
Sub Set_text
C = 1
For Digit = 1 To Str_len
Str_temp = Mid(str_text , Digit , 1)
Char = Asc(str_temp)
X = Char * 5
For I = 1 To 5
Reeks(c) = Lookup(x , Text_data)
X = X + 1
C = C + 1
Next I
Reeks(c) = 0
C = C + 1
Next Digit
End Sub Set_string
'show text
Sub Show_text
If Str_len > 4 Then
For L = 0 To Col_len
C = 1
For R = 1 To Scroll_speed 'scrolling speed
Set Portb.0 'lees "1" in voor de 595
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Char = C + L
Porta = Reeks(char)
Waitus 100
C = C + 1
Reset Portb.0
For X = 1 To 119
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Char = C + L
Porta = Reeks(char)
Waitus 100
C = C + 1
Next X
C = 1
Next R
Next L
Else
For L = 0 To Col_len
C = 1
For R = 1 To Scroll_speed 'scrolling speed
Set Portb.0 'lees "1" in voor de 595
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Porta = Reeks(c)
Waitus 100
C = C + 1
Reset Portb.0
For X = 1 To 119
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Porta = Reeks(c)
Waitus 100
C = C + 1
Next X
C = 1
Next R
Next L
End If
End Sub Show_text
Sub Test_display
Porta = 255
For X = 1 To 120
Set Portb.0
Toggle Portb.1
Toggle Portb.1
Toggle Portb.2
Toggle Portb.2
Next X
End Sub Test_display
'---------------------
Main:
Call Test_display
Waitms 100
Time$ = "12:35:00"
Date$ = "12-04-08"
Scroll_speed = 6 'adjust the scroll speed
Call Set_text
Do
Call Tempe
Str_text = " Tablica LED...Temp. " + Temperatura
Str_len = Len(str_text)
Col_len = Str_len * 6
Call Set_text
Call Show_text
Loop
End 'end program 'end program
Sub Tempe
1wreset 'reset
1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
1wwrite &H44 'dokonaj konwersji
Waitms 750 'przeczekaj czas konwersji
1wreset 'reset
1wwrite &HCC 'rozkaz adresowy SKIP ROM
1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt
T1 = T * 0.0625 'wyra?w stopniach Celsjusza, wynik wpisz do zmiennej Single
Temperatura = Fusing(t1 , "#.#")
Temperatura = Temperatura + Chr(1) + "C"
End Sub Tempe
Text_data:
Data 0 , 6 , 9 , 9 , 6 '
Data 6 , 9 , 9 , 6 , 0 '
Data 62 , 65 , 65 , 65 , 34 ' hart
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 '
Data 0 , 0 , 0 , 0 , 0 'space
Data 0 , 0 , 95 , 0 , 0 '!
Data 0 , 7 , 0 , 7 , 0 '''
Data 20 , 127 , 20 , 127 , 20 '#
Data 36 , 42 , 127 , 42 , 18 '$
Data 39 , 21 , 107 , 84 , 114 '%
Data 54 , 73 , 86 , 32 , 80 '&
Data 0 , 0 , 11 , 7 , 0 ''
Data 0 , 28 , 34 , 65 , 0 ' (
Data 0 , 65 , 34 , 28 , 0 ')
Data 42 , 28 , 127 , 28 , 42 '*
Data 8 , 8 , 62 , 8 , 8 '+
Data 0 , 88 , 56 , 0 , 0 ',
Data 8 , 8 , 8 , 8 , 8 '-
Data 0 , 96 , 96 , 0 , 0 '.
Data 32 , 16 , 8 , 4 , 2 '/
Data 62 , 81 , 73 , 69 , 62 '0
Data 0 , 66 , 127 , 64 , 0 '1
Data 114 , 73 , 73 , 73 , 70 '2
Data 34 , 65 , 73 , 73 , 54 '3
Data 24 , 20 , 18 , 127 , 16 '4
Data 39 , 69 , 69 , 69 , 57 '5
Data 60 , 74 , 73 , 73 , 48 '6
Data 1 , 113 , 9 , 5 , 3 '7
Data 54 , 73 , 73 , 73 , 54 '8
Data 6 , 73 , 73 , 41 , 30 '9
Data 0 , 54 , 54 , 0 , 0 ':
Data 0 , 91 , 59 , 0 , 0 ';
Data 8 , 20 , 34 , 65 , 0 '<
Data 20 , 20 , 20 , 20 , 20 '=
Data 0 , 65 , 34 , 20 , 8 '>
Data 2 , 1 , 81 , 9 , 6 '?
Data 50 , 73 , 121 , 65 , 62 '@
Data 124 , 18 , 17 , 18 , 124 'A
Data 65 , 127 , 73 , 73 , 62 'B
Data 62 , 65 , 65 , 65 , 34 'C
Data 65 , 127 , 65 , 65 , 62 'D
Data 127 , 73 , 73 , 65 , 65 'E
Data 127 , 9 , 9 , 1 , 1 'F
Data 62 , 65 , 73 , 73 , 58 'G
Data 127 , 8 , 8 , 8 , 127 'H
Data 0 , 65 , 127 , 65 , 0 'I
Data 32 , 64 , 65 , 63 , 1 'J
Data 127 , 8 , 20 , 34 , 65 'K
Data 127 , 64 , 64 , 64 , 64 'L
Data 127 , 2 , 12 , 2 , 127 'M
Data 127 , 2 , 4 , 8 , 127 'N
Data 62 , 65 , 65 , 65 , 62 'O
Data 127 , 9 , 9 , 9 , 6 'P
Data 62 , 65 , 65 , 33 , 94 'Q
Data 127 , 9 , 25 , 41 , 70 'R
Data 38 , 73 , 73 , 73 , 50 'S
Data 1 , 1 , 127 , 1 , 1 'T
Data 63 , 64 , 64 , 64 , 63 'U
Data 7 , 24 , 96 , 24 , 7 'V
Data 127 , 32 , 24 , 32 , 127 'W
Data 99 , 20 , 8 , 20 , 99 'X
Data 3 , 4 , 120 , 4 , 3 'Y
Data 97 , 81 , 73 , 69 , 67 'Z
Data 0 , 127 , 65 , 65 , 0 '[
Data 2 , 4 , 8 , 16 , 32 '\
Data 0 , 65 , 65 , 127 , 0 ']
Data 4 , 2 , 1 , 2 , 4 '^
Data 64 , 64 , 64 , 64 , 64 '_
Data 0 , 0 , 7 , 11 , 0 ''
Data 32 , 84 , 84 , 84 , 56 'a
Data 127 , 40 , 68 , 68 , 56 'b
Data 0 , 56 , 68 , 68 , 68 'c
Data 56 , 68 , 68 , 40 , 127 'd
Data 56 , 84 , 84 , 84 , 24 'e
Data 8 , 126 , 9 , 9 , 2 'f
Data 8 , 84 , 84 , 84 , 60 'g
Data 127 , 16 , 8 , 8 , 112 'h
Data 0 , 68 , 125 , 0 , 0 'i
Data 32 , 64 , 68 , 61 , 0 'j
Data 0 , 127 , 16 , 40 , 68 'k
Data 0 , 65 , 127 , 64 , 0 'l
Data 124 , 4 , 120 , 4 , 120 'm
Data 124 , 8 , 4 , 4 , 120 'n
Data 56 , 68 , 68 , 68 , 56 'o
Data 124 , 20 , 20 , 20 , 8 'p
Data 8 , 20 , 20 , 20 , 124 'q
Data 124 , 8 , 4 , 4 , 8 'r
Data 72 , 84 , 84 , 84 , 36 's
Data 0 , 4 , 63 , 68 , 68 't
Data 60 , 64 , 64 , 32 , 124 'u
Data 28 , 32 , 64 , 32 , 28 'v
Data 60 , 64 , 60 , 64 , 60 'w
Data 68 , 40 , 16 , 40 , 68 'x
Data 12 , 80 , 80 , 80 , 60 'y
Data 68 , 100 , 84 , 76 , 68 'z
Data 0 , 8 , 54 , 65 , 0 '{
Data 0 , 0 , 119 , 0 , 0 '|
Data 0 , 65 , 54 , 8 , 0 '}
Data 2 , 1 , 2 , 4 , 2 '~
Data 42 , 85 , 42 , 85 , 42 '