You are on page 1of 2

' *************************************************************************** ' * ' * Title : LCD Thermometer LM35.bas ' * Version : 1.0 ' * Last Updated : 17.04.

2006 ' * Target : AT Mega8 ' * Author : www.avrprojects.net ' * Program code : BASCOM AVR ' * Hardware req. : LM35 ' * Description : read analog value from LM 35 temperature sensor, show the re sult on a LCD ' * display with bar-graph ' *************************************************************************** $regfile = "M8def.dat" ' use the Mega8 $crystal = 10000000 Deflcdchar ber (0-7)' Deflcdchar ber (0-7) Deflcdchar ber (0-7) Deflcdchar ber (0-7) Deflcdchar ber (0-7) Deflcdchar ber (0-7) 0 , 32 , 32 , 31 , 31 , 31 , 31 , 32 , 32 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 2 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 3 , 16 , 16 , 31 , 31 , 31 , 31 , 16 , 16 4 , 1 , 1 , 31 , 31 , 31 , 31 , 1 , 1 5 , 32 , 32 , 28 , 28 , 28 , 28 , 32 , 32 ' replace ? with num ' replace ? with num ' replace ? with num ' replace ? with num ' replace ? with num ' replace ? with num

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Port d.0 , E = Portd.6 , Rs = Portd.7 Config Lcd = 20 * 4 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Dim W As Word , Perc As Word , Volt As Word , Volt_d As Byte , Channel As Byte , I As Byte , Cols As Byte , Cols_d As Byte Cls Cursor Off Locate 3 , 1 Lcd "0" Locate 3 , 5 Lcd "10" Locate 3 , 10 Lcd "20" Locate 3 , 15 Lcd "30" Locate 3 , 19 Lcd Chr(223) ; "C" Do W = Getadc(0) Volt = W * 5 Volt_d = Volt Mod 10 Volt = Volt / 10 'config ADC

Locate 1 , 1 Lcd Volt ; "," ; Volt_d Cols = Volt / 2 Locate 2 , 1 For I = 1 To Cols Select Case I Case 1 : Lcd Chr(3) Case 5 : Lcd Chr(4) Case 10 : Lcd Chr(4) Case 15 : Lcd Chr(4) Case 20 : Lcd Chr(4) Case Else : Lcd Chr(0) End Select Next I Cols_d = Cols If Cols_d > 0 Lcd Chr(5) Cols = Cols + Else Cols = Cols + End If Mod 2 Then 2 1

For I = Cols To 20 Select Case I Case 1 : Lcd Chr(2) Case 5 : Lcd Chr(1) Case 10 : Lcd Chr(1) Case 15 : Lcd Chr(1) Case 20 : Lcd Chr(1) Case Else : Lcd Chr(32) End Select Next I Waitms 1000 Loop End

You might also like