Advertisement  

Friday, 24 November 2017
     
 
Main Menu
Home Home
Shop Shop
News News
BASCOM-AVR BASCOM-AVR
BASCOM-8051 BASCOM-8051
Products Products
Application Notes Application Notes
Publications Publications
Links Links
Support Center Support Center
Downloads Downloads
Forum Forum
Resellers Resellers
Contact Us Contact Us
Updates Updates
MCS Wiki MCS Wiki
Online Help
BASCOM-AVR Help BASCOM-AVR Help
BASCOM-8051 Help BASCOM-8051 Help
Contents in Cart
Show Cart
Your Cart is currently empty.
Search the Shop

Products Search

User Login
Username

Password

If you have problem after log in with disappeared login data, please press F5 in your browser

RSS News
 
     
 

 
   
     
 
AN #07 - Big Digit ThermoMeter Print
Big Digit ThermoMeter

This example was written by RETI from Belgium.
Big digit thermometer using DALLAS DS1820 1WIRE sensor.
LCD-Display shows temparature with a resolution from 1/10 C
up to 5 digits can be used ont the display. Ideal for clocks,etc...

Download source code in Bas file


' BIG DIGIT THERMOMETER USING DALLAS DS1820 1WIRE SENSOR
' LCD-DISPLAY SHOWS TEMPERATURE WITH A RESOLUTION FROM 1/10 C
' UP TO 5 DIGITS CAN BE USED ON THE DISPLAY. IDEAL FOR CLOCKS,ETC...
'
' 1WIRE : P1.0 ...4K7 to VCC
'
' CODE BY RETI/BELGIUM : CONTACT ME ... rETi@nettaxi.com

$crystal = 11059200
$iramstart = &H60
$ramstart = 0
$ramsize = &H7FFF
$default Xram
$large

Config 1wire = P1.0
1wreset
Config Lcd = 20 * 4
Config Lcdbus = 4

Cursor Off
Display On
Cls

Deflcdchar 1 , 224 , 224 , 224 , 240 , 248 , 252 , 254 , 255 ' B
Deflcdchar 2 , 224 , 224 , 224 , 255 , 255 , 255 , 255 , 255 ' = O
Deflcdchar 3 , 255 , 255 , 255 , 255 , 254 , 252 , 248 , 240 ' !/ O
Deflcdchar 4 , 255 , 255 , 255 , 255 , 239 , 231 , 227 , 225 ' ! O
Deflcdchar 5 , 224 , 224 , 224 , 225 , 227 , 231 , 239 , 255 ' / B
Deflcdchar 6 , 255 , 255 , 255 , 255 , 255 , 255 , 255 , 255 ' ! N

' SYMBOL ARRAYS : INCLUDE DATA TO DISPLAY BIG DIGITS USING 6 CUSTOM LCD SYMBOLS

Dim L1(17) As String * 4 , L2(17) As String * 4 , L3(17) As String * 4 , L4(17) As String * 4

' EACH DIGIT EXISTS OF 12 BYTES DISPLAYING EACH ONE OF THE ABOVE DEFLCDCHAR'S

' NUMBER 1
L1
(1) = " " + Chr(5) + Chr(2) + " "
L2
(1) = " " + " " + Chr(7) + " "
L3
(1) = " " + " " + Chr(7) + " "
L4
(1) = " " + " " + Chr(7) + " "
' NUMBER 2
L1
(2) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(2) = Chr(5) + Chr(2) + Chr(3) + " "
L3
(2) = Chr(6) + " " + " " + " "
L4
(2) = Chr(6) + Chr(2) + Chr(2) + " "
' NUMBER 3
L1
(3) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(3) = " " + Chr(2) + Chr(6) + " "
L3
(3) = Chr(2) + " " + Chr(6) + " "
L4
(3) = Chr(4) + Chr(2) + Chr(3) + " "
' NUMBER 4
L1
(4) = Chr(5) + " " + Chr(2) + " "
L2
(4) = Chr(6) + Chr(2) + Chr(6) + " "
L3
(4) = " " + " " + Chr(6) + " "
L4
(4) = " " + " " + Chr(6) + " "
' NUMBER 5
L1
(5) = Chr(2) + Chr(2) + Chr(2) + " "
L2
(5) = Chr(6) + Chr(2) + Chr(1) + " "
L3
(5) = Chr(2) + " " + Chr(6) + " "
L4
(5) = Chr(4) + Chr(2) + Chr(3) + " "
' NUMBER 6
L1
(6) = Chr(5) + Chr(2) + Chr(2) + " "
L2
(6) = Chr(6) + Chr(2) + Chr(1) + " "
L3
(6) = Chr(6) + " " + Chr(6) + " "
L4
(6) = Chr(4) + Chr(2) + Chr(3) + " "
' NUMBER 7
L1
(7) = Chr(2) + Chr(2) + Chr(2) + " "
L2
(7) = " " + Chr(5) + Chr(3) + " "
L3
(7) = " " + Chr(6) + " " + " "
L4
(7) = " " + Chr(6) + " " + " "
' NUMBER 8
L1
(8) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(8) = Chr(4) + Chr(2) + Chr(3) + " "
L3
(8) = Chr(6) + " " + Chr(6) + " "
L4
(8) = Chr(4) + Chr(2) + Chr(3) + " "
' NUMBER 9
L1
(9) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(9) = Chr(4) + Chr(2) + Chr(6) + " "
L3
(9) = " " + " " + Chr(6) + " "
L4
(9) = Chr(4) + Chr(2) + Chr(3) + " "
' NUMBER 0
L1
(10) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(10) = Chr(6) + " " + Chr(6) + " "
L3
(10) = Chr(6) + " " + Chr(6) + " "
L4
(10) = Chr(4) + Chr(2) + Chr(3) + " "
' DEGREE SYMBOL
L1
(11) = Chr(5) + Chr(2) + Chr(1) + " "
L2
(11) = Chr(4) + Chr(2) + Chr(3) + " "
L3
(11) = " " + " " + " " + " "
L4
(11) = " " + " " + " " + " "
' LETTER C
L1
(12) = Chr(5) + Chr(2) + Chr(2) + " "
L2
(12) = Chr(6) + " " + " " + " "
L3
(12) = Chr(6) + " " + " " + " "
L4
(12) = Chr(4) + Chr(2) + Chr(2) + " "
' LETTER F
L1
(13) = Chr(5) + Chr(2) + Chr(2) + " "
L2
(13) = Chr(6) + Chr(2) + Chr(2) + " "
L3
(13) = Chr(6) + " " + " " + " "
L4
(13) = Chr(6) + " " + " " + " "
' LETTER H
L1
(14) = Chr(2) + " " + " " + " "
L2
(14) = Chr(6) + Chr(5) + Chr(2) + " "
L3
(14) = Chr(6) + " " + Chr(6) + " "
L4
(14) = Chr(6) + " " + Chr(6) + " "
' SYMBOL :
L1
(15) = " " + " " + " " + " "
L2
(15) = " " + Chr(2) + " " + " "
L3
(15) = " " + Chr(2) + " " + " "
L4
(15) = " " + " " + " " + " "
' SYMBOL .
L1
(16) = " " + " "
L2
(16) = " " + " "
L3
(16) = " " + " "
L4
(16) = Chr(3) + " "
' UNKNOW
L1
(17) = "?" + " "
L2
(17) = "?" + " "
L3
(17) = "?" + " "
L4
(17) = "?" + " "

Declare Sub Showstring(stri As String * 5)
Dim Stri As String * 5

Declare Sub Rd1820(valu As Single)
Dim Valu As Single

Dim E1 As String * 5
Dim E2 As String * 5
Dim E3 As String * 5

' /**** MAIN LOOP ****/
Do

Call Rd1820(valu)
E1
= Str(valu)
E2
= Left(e1 , 4)
Print E2
E3
= E2 + ""
Call Showstring(e3)

Loop
' /**** END LOOP ****/

Sub Rd1820(valu As Single)
 
Dim T1 As Byte , T11 As Single , T2 As Single , T3 As Single , T4 As Single , T7 As Single , T8 As Single
 
Dim Ar(9) As Byte , I As Byte
 
Dim X1 As Const 0.25
 1wreset
 1wwrite
&HCC ' Skip ROM command , only one DS1820
 1wwrite
&H44 ' Convert Temp
 1wreset
 1wwrite
&HCC ' Skip ROM Command
 1wwrite
&HBE  ' Read Scratchpad command
 
For I = 1 To 9
 Ar
(i) = 1wread ' Read out 9 registers (Bytes)
 
Next I
 T1
= Ar(1) / 2
 T11
= T1 ' Conversion of Byte to Single
 T7
= Ar(7) ' Count Remain
 T8
= Ar(8) ' Counts per C
 T2
= T8 - T7  ' Calculate High resolution
 T3
= T2 / T8
 T4
= T11 - X1
 Valu
= T4 + T3 ' Return Value to the Main Program
 1wreset
End Sub

Sub Showstring(stri As String * 5)
 
If Len(stri) > 5 Then Stri = Left(stri , 5)
 
Dim A1 As Byte
 
Dim A2 As String * 1
 
Dim A3 As Byte
 
Dim A4 As Byte
 
Dim B1 As String * 20
 
Dim B2 As String * 20
 
Dim B3 As String * 20
 
Dim B4 As String * 20

 B1
= "" : B2 = "" : B3 = "" : B4 = ""
 A4
= Len(stri)
 
For A1 = 1 To A4
 A2
= Mid(stri , A1 , 1)

 
Select Case A2
 
Case Is = "1" : A3 = 1
 
Case Is = "2" : A3 = 2
 
Case Is = "3" : A3 = 3
 
Case Is = "4" : A3 = 4
 
Case Is = "5" : A3 = 5
 
Case Is = "6" : A3 = 6
 
Case Is = "7" : A3 = 7
 
Case Is = "8" : A3 = 8
 
Case Is = "9" : A3 = 9
 
Case Is = "0" : A3 = 10
 
Case Is = "" : A3 = 11
 
Case Is = "C" : A3 = 12
 
Case Is = "c" : A3 = 12
 
Case Is = "F" : A3 = 13
 
Case Is = "f" : A3 = 13
 
Case Is = "H" : A3 = 14
 
Case Is = "h" : A3 = 14
 
Case Is = "X" : A3 = 15
 
Case Is = "." : A3 = 16
 
Case Else : A3 = 17
 
End Select

 B1
= B1 + L1(a3)
 B2
= B2 + L2(a3)
 B3
= B3 + L3(a3)
 B4
= B4 + L4(a3)

 
Next A1

Upperline
Lcd B1
Lowerline
Lcd B2
Thirdline
Lcd B3
Fourthline
Lcd B4

End Sub