Sabtu, 12 September 2015

Termometer menggunakan 89S51

Artikel ini membahas tentang termometer digital sederhana 0-100 °C dengan 1 resolusi °C menggunakan 89S51. Rangkaian ini didasarkan pada sensor suhu LM35 analog, ADC0804 dan mikrokontroler AT89S51. LM35 adalah IC sensor suhu analog yang dapat mengukur suhu antara -55 sampai 150 °C.Tegangan output bervariasi 10mV per perubahan suhu °C .
Misalnya, jika suhu 32 °C, tegangan outputnya adalah 32 x 10mV = 320mV. ADC 0804 digunakan untuk mengkonversi tegangan output analog dari LM35 ke nilai 8 bit digital yang proporsional dan sangat sesuai dengan mikrokontroler. Mikrokontroler menerima output dari ADC, melakukan manipulasi diperlukan dan menampilkannya 2 digit numerik pada LED display seven segment.
Output LM35 dihubungkan ke + Vin (pin 6) dari ADC0804 tersebut. Resistor R12 dan R13 yang telah ditetapkan digunakan untuk memberikan tegangan referensi eksternal dari 1.28V ke Vref / 2 pin (pin 9) dari ADC0804 dan dengan tegangan referensi ini, ukuran langkah dari ADC akan 10mV dan rentang akan 0- 1 V. Ini berarti bahwa untuk input 10mV akan keluar digital dari ADC akan menjadi 1 (1 dalam desimal juga), untuk 20mV itu akan menjadi 10 (2 dalam desimal), untuk 30mV akan 11 (3 dalam desimal) dan sebagainya pada. Mikrokontroler menerima data ini dan menempatkan pada layar tujuh segmen.
Gambar Skematik sensor sugu menggunakan AT89S51, LM35 dan ADC0804
Digital dari ADC (D0 untuk D7) yang terhubung ke P1 (P1.0 ke P1.7) dari mikrokontroler. Ini adalah garis melalui mana mikrokontroler menerima data dari ADC. Pin kontrol CS, RD, WR dan INTR yang terhubung ke P3.7, P3.6, P3.5 dan P3.4 dari mikrokontroler. Ini adalah jalur data melalui mikrokontroler mengirimkan (RD) write (WR) sinyal ke ADC chip pilih (CS), membaca dan menerima sinyal INTR dari ADC. Jalur data (untuk h) dari multiplexing tampilan tujuh segmen yang dihubungkan ke P0 (P0.0 ke P0.7) dari mikrokontroler. Sinyal aktivasi untuk transistor driver segmen Q1 dan Q1 tersedia dari P3.1 dan P3.0 pin dari mikrokontroler.

Program.

ORG 00H
MOV P1,#11111111B   // initializes P1 as input port
MOV P0,#00000000B   // initializes P0 as output port
MOV P3,#00000000B   // initializes P3 as output port
MOV DPTR,#LABEL     // loads the address of "LABEL" to DPTR
MAIN: MOV R4,#250D  // loads register R4 with 250D
      CLR P3.7      // makes Cs=0
      SETB P3.6     // makes RD high
      CLR P3.5      // makes WR low
      SETB P3.5     // low to high pulse to WR for starting conversion
WAIT: JB P3.4,WAIT  // polls until INTR=0
      CLR P3.7      // ensures CS=0
      CLR P3.6      // high to low pulse to RD for reading the data from ADC
      MOV A,P1      // moves the digital output of ADC to accumulator A
      MOV B,#10D    // load B with 10D
      DIV AB        // divides the content of A with that in B
      MOV R6,A      // moves the quotient to R6
      MOV R7,B      // moves the remainder to R7
DLOOP:SETB P3.1     // sets P3.1 which activates LED segment 1
      MOV A,R6      // moves the quotient to A
      ACALL DISPLAY // calls DISPLAY subroutine
      MOV P0,A      // moves the content of A to P0
      ACALL DELAY   // calls the DELAY subroutine
      CLR A         // clears A
      MOV A,R7      // moves the remainder to A
      CLR P3.1      // deactivates LED segment 1
      SETB P3.0     // activates LED segment 2
      ACALL DISPLAY
      MOV P0,A      
      ACALL DELAY
      CLR A 
      CLR P3.0      // deactivates LED segment 2
      DJNZ R4,DLOOP // repeats the loop "DLOOP" until R4=0
      SJMP MAIN     // jumps back to the main loop
DELAY: MOV R3,#255D // produces around 0.8mS delay
LABEL1: DJNZ R3,LABEL1          
        RET
DISPLAY: MOVC A,@A+DPTR // converts A's content to corresponding digit drive pattern 
         RET
LABEL: DB 3FH       // LUT (look up table) starts here
       DB 06H
       DB 5BH
       DB 4FH
       DB 66H
       DB 6DH
       DB 7DH
       DB 07H
       DB 7FH
       DB 6FH
END 
Referensi
http://www.circuitstoday.com/thermometer-using-8051

Komponen yang diperlukan adalah :
IC 
LM35
ADC0804
AT89S51 atau AT89S52

Display 
7Segment Common anoda 2x

Resistor:
R1-8  = 330 ohm 8x
R9-10 = 100 ohm 2x
R11   = 8k2 1x
R12,14= 10k 2x

Trimport
R13   = 10K

Capasitor
C1    = 10uF/10v
C2    = 150pF
C3,4  = 10pF 2x

Cristal
12MHz 1x

Regulator LM7805 = 1x
LED merah = 1x
Dioda bridge 1 Amp = 1x
Resistor 470 = 1x
Jack DC Female = 1x
Timah 3 meter.
PCB Lubang 2,5mm 1 lembar ukuran +- (10 x 20 cm)
Soket IC DIP 40 pin (untuk AT89s51)
Soket IC DIP 20 pin (untuk ADC)


1 komentar: