You are on page 1of 3

Abstrak:

Termometer digital ini berdasar pada sensor suhu LM35. Nilai suhu yang dibaca oleh sensor
ditampilkan pada 4 digit 7-Segment dengan nilai ketelitian 2 digit di belakang koma dengan
satuan oC. Kemudian mikrokontroler ATMEGA8535 digunakan sebagai pengendali sistem
dengan perangkat lunak penulis skrip program-nya adalah BASCOM (Basic Compiler). Selain
itu, ada pula tambahan buzzer sebagai indikator suhu panas yang luar biasa / kebakaran yang
akan berbunyi pada suhu 55oC.

Modul-Modul Depok Instruments yang Mendukung:

 DI-Smart AVR System (DI-Sistem Minimum Mikrokontroler AVR ATMEGA8535)


 DI-Smart Extension Board
 DI-D7s (DI-Dual 7-Segment Display)
 DI-WLM35TS (DI-Waterproof LM35 Temperature Sensor)
 DI-Low Cost USB AVR ISP (USB AVR Downloader)

Blok Diagram:

Flowchart:
Instalasi:

1. Hubungkan data keluaran modul sensor DI-WLM35TS (DI-Waterproof LM35


Temperature Sensor) pada terminal D7 DI-Smart Extension Board.
2. Hubungkan Buzzer pada terminal D0 DI-Smart Extension Board.
3. Hubungkan dua buah modul DI-D7s secara cascade.
4. Hubungkan pin enable modul DI-D7s pada terminal D1 dan D2 DI-Smart Extension
Board.
5. Hubungkan port data modul DI-D7s pada Port-C DI-Smart AVR System.
6. Hubungkan modul DI-Smart Extension Board pada Port-A DI-Smart AVR System
(PORTA.0 = Buzzer, PORTA.1 = enable DI-D7s [pecahan], PORTA.2 = enable DI-D7s
[bulat], dan PORTA.7 = Data Sensor).
7. Hubungkan sumber tegangan 9-12 VDC pada terminal power DI-Smart AVR System.
8. Unduh skrip program di bawah ini.
9. Selamat mencoba.

Skrip Program:

$regfile = “m8535.dat”  ‘Mikrokontroler yang digunakan = ATMEGA8535


$crystal = 8000000      ‘Kristal Oscilator yang digunakan = 8 MHz

‘Inisialisasi RAM yang akan digunakan sebagai register:


Dim Data7 As Byte
Dim Koma7 As Byte
Dim Dataadc As Word
Dim Suhu As Single
Dim S10 As String * 10
Dim S2a As String * 2
Dim S2b As String * 2
Dim Panjang As Byte

‘Inisialisasi ADC:
Config Adc = Single , Prescaler = Auto
Start Adc

‘Inisialisasi PORT I/O:


Config Porta.0 = Output ‘Inisialisasi PORTA.0 sebagi output
Config Porta.5 = Output
Config Porta.6 = Output
Buzzer Alias Porta.0    ‘PORTA.0 = Buzzer
Enlo Alias Porta.5       ‘PORTA.5 = Pengendali 7-Segment (bilangan pecahan)
Enhi Alias Porta.6       ‘PORTA.6 = Pengendali 7-Segment (bilangan bulat)
Config Portc = Output   ‘Inisialisasi PORTC sebagai output
Buzzer = 1                ‘Buzzer = OFF (Buzzer = active-low)
Enlo = 1                   ‘7-Segment pecahan = di-latch (tidak menerima data)
Enhi = 1                   ‘7-Segment bulat = di-latch

Do
Dataadc = Getadc(7)  ‘Ambil data ADC kanal 7 (PORTA.7)

‘Proses kalibrasi data suhu:


Suhu = Dataadc / 10.23
Suhu = Suhu * 5.03
S10 = Fusing(suhu , “#.##”)
Panjang = Len(s10)
Panjang = Panjang – 3
S2a = Left(s10 , Panjang)
S2b = Right(s10 , 2)
Data7 = Val(s2a)
Koma7 = Val(s2b)

‘Proses menampilkan data bilangan pecahan ke 7-Segment:


Portc = Makebcd(koma7)
Enlo = 0                ‘7-Segment pecahan diaktifkan (siap menerima data)
nop
nop
Enlo = 1                ‘7-Segment bulat di-latch

‘Proses menampilkan data bilangan bulat ke 7-Segment:


Portc = Makebcd(data7)
Enhi = 0
nop
nop
Enhi = 1

Waitms 200             ‘Tunda 200ms


Loop

You might also like