makalah mikroprosesor_jam digital
DESCRIPTION
Jam digital merupakan salah satu aplikasi dari mikrokontroler AT89S51, hal ini sangat masukakal karena harga dari mirokontroler cukup ekonomis apabila dijadikan sebuah jam digital,masalah utama dalam pembuatannya adalah pada penyingkronan waktu dan bagaimanamengendalikan display yang dalam hal ini digunakan seven segmen melalui port serial yangterdapat pada mikrokontroler, disini juga digunakan Shif Register untuk mengeser data padaSeven Segment, adapun pemogramannya disini digunakan bahasa pemograman assemblyyang sesuai dengan mata kuliah yang diajarkan.TRANSCRIPT
1
MAKALAH MIKROPROSESOR
JAM DIGITAL 7 SEGMENT
SHERLY MELISA SEMBIRING 131421086
YOHANA BR. SITEPU 131421087
LELY DAHLYANA 131421090
ABNER SORITUA SIDAURUK 131421096
KOM C EKSTENSI
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS
SUMATERA UTARA
MEDAN
2014
2
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Jam digital merupakan salah satu aplikasi dari mikrokontroler AT89S51, hal ini sangat masuk
akal karena harga dari mirokontroler cukup ekonomis apabila dijadikan sebuah jam digital,
masalah utama dalam pembuatannya adalah pada penyingkronan waktu dan bagaimana
mengendalikan display yang dalam hal ini digunakan seven segmen melalui port serial yang
terdapat pada mikrokontroler, disini juga digunakan Shif Register untuk mengeser data pada
Seven Segment, adapun pemogramannya disini digunakan bahasa pemograman assembly
yang sesuai dengan mata kuliah yang diajarkan.
1.2 Batasan Masalah
Pembuatan jam digital ini hanya sebatas menampilkan jam, menit dan detik.
1.3 Tujuan
Tujuan dari pembuatan makalah ini adalah untuk memenuhi tugas microprosesor serta untuk
menambah pengetahuan tentang microcontroler.
3
BAB 2
TINJAUAN PUSTAKA
2.1 Definisi Mikrokontroler
Mikrokontroler adalah suatu chip yang digunakan untuk mengontrol alat-alat elektronik
secara digital dan analog. Selain itu mikrokontroler juga dapat digunakan untuk mengontrol
suatu proses yang dipengaruhi oleh lingkungan dan dieksekusi oleh mikrokontroler secara
otomatis.
2.2 Fungsi Mikrokontroler
Mikrokontroler secara umum berfungsi menekankan biaya produksi. Mikrokontroler adalah
“pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan
komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan
akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Jadi intinya adalah menekan
penggunaan komponen yang terlalu banyak menjadi sedikit.
2.3 Jenis- Jenis Mikrokontroler
Secara teknis hanya ada 2 jenis mikrokontroler yaitu RISC dan CISC dan masing-masing
mempunyai keturunan/keluarga sendiri-sendiri. RISC kepanjangan dari Reduced Instruction
Set Computer : instruksi terbatas tapi memiliki fasilitas yang lebih banyak. Sedangkan CISC
kepanjangan dari Complex Instruction Set Computer : instruksi bisa dikatakan lebih lengkap
tapi dengan fasilitas secukupnya.
4
Tentang jenisnya banyak sekali ada keluarga Motorola dengan seri 68xx, keluarga
MCS51 yang diproduksi Atmel, Philip, Dallas, keluarga PIC dari Microchip, Renesas, Zilog.
Masing-masing keluarga juga masih terbagi lagi dalam beberapa tipe. Jadi sulit sekali untuk
menghitung jumlah mikrokontroler
2.4 Prinsip Kerja Mikrokontroler
Prinsip kerja sebuah mikrokontroler dapat dijelaskan sebagai berikut:
1. Berdasarkan data yang ada pada register Program Counter. Mikrokontroler
mengambil data dari ROM dengan alamat sebagaimana ditunjukkan dalam Program
Counter. Selanjutnya Program Counter ditambah nilainya dengan 1 (increment) secara
otomatis. Data yang diambil tersebut merupakan urutan instruksi program pengendali
mikrokontroler yang sebelumnya telah dituliskan oleh pembuatnya.
2. Instruksi tersebut diolah dan dijalankan. Proses pengerjaan bergantung pada jenis
instruksi; bisa membaca, mengubah nilai-nilai dalam register, RAM, isi port atau
melakukan pembacaan dan dilanjutkan dengan pengubahan data.
3. Program Counter telah berubah nilainya (baik karena penambahan secara otomatris
sebagaimana dijelaskan pada langkah 1 di atas atau karena pengubahan data pada
langkah 2). Selanjutnya yang dilakukan mikrokontroler adalah mengulang kembali
siklus ini pada langkah 1. Demikian seterusnya hingga catu daya dimatikan.
2.5 Seven Segment
Seven Segment merupakan Kombinasi dari beberapa ruas Led yang disusun sedemikian
rupa sehingga membentuk suatu karakter angka yang biasa dikenal dalam kehidupan sehari-
hari. Seven Segmen terbagi atas dua jenis yaitu: Comon anoda dan comon katoda, disini yang
kita pakai adalah comon anoda, yang merupakan seven segmen aktif low. Dimana seven
segment ini akan aktif apabila inputnya diberi logika low.
2.6 Mikrokontroler AVR Atmega8
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam
fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah
pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat
internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power
tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka
secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beb
fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.
AVR ATmega8 adalah mikrokontroler CMOS 8
memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi daya
rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada
frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada
besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini
dapat bekerja dengan tegangan antara 2,7
bekerja pada tegangan antara 4,5
Mikrokontroler AVR Atmega8
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam
fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah
pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat
internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power
tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka
secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beb
fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.
AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC yang
System Programmable Flash. Mikrokontroler dengan konsumsi daya
mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada
frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada
besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini
tegangan antara 2,7 - 5,5 V sedangkan untuk ATmega8 hanya dapat
bekerja pada tegangan antara 4,5 – 5,5 V.
5
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam
fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah
pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat
internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu
tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka
secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa
fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.
bit berarsitektur AVR RISC yang
System Programmable Flash. Mikrokontroler dengan konsumsi daya
mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada
frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada
besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini
5,5 V sedangkan untuk ATmega8 hanya dapat
6
2.6.1 Konfigurasi Pin Atmega8
Gambar 2.1. Konfigurasi Pin Atmega8
ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi yang berbeda-beda
baik sebagai port maupun fungsi yang lainnya. Berikut akan dijelaskan fungsi dari masing-
masing kaki ATmega8 :
1. VCC
Merupakan supply tegangan digital.
2. GND
Merupakan ground untuk semua komponen yang membutuhkan grounding.
3. Port B (PB7...PB0)
Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port B adalah 8
buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat digunakan sebagai
input maupun output. Port B merupakan sebuah 8-bit bi-directional I/O dengan
internal pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang secara
eksternal diturunkan, maka akan mengeluarkan arus jika pull-up resistor diaktifkan.
Khusus PB6 dapat digunakan sebagai input Kristal (inverting oscillator amplifier) dan
input ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang
digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat digunakan
sebagai output Kristal (output oscillator amplifier) bergantung pada pengaturan Fuse
7
bit yang digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih dari
oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan
Asyncronous Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan
untuk saluran input
timer.
4. Port C (PC5…PC0)
Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam masing-masing
pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah mulai dari pin C.0 sampai
dengan pin C.6. Sebagai keluaran/output port C memiliki karakteristik yang sama
dalam hal menyerap arus (sink) ataupun mengeluarkan arus (source).
5. RESET/PC6
Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin I/O. Pin ini
memiliki karakteristik yang berbeda dengan pin-pin yang terdapat pada port C
lainnya. Namun jika RSTDISBL Fuse tidak diprogram, maka pin ini akan berfungsi
sebagai input reset. Dan jika level tegangan yang masuk ke pin ini rendah dan pulsa
yang ada lebih pendek dari pulsa minimum, maka akan menghasilkan suatu kondisi
reset meskipun clock-nya tidak bekerja.
6. Port D (PD7…PD0)
Port D merupakan 8-bit bi-directional I/O dengan internal pull-up resistor. Fungsi dari
port ini sama dengan port-port yang lain. Hanya saja pada port ini tidak terdapat
kegunaan-kegunaan yang lain. Pada port ini hanya berfungsi sebagai masukan dan
keluaran saja atau biasa disebut dengan I/O.
7. Avcc
Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus
dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk analog saja.
Bahkan jika ADC pada AVR tidak digunakan tetap saja disarankan untuk
menghubungkannya secara terpisah dengan VCC. Jika ADC digunakan, maka AVcc
harus dihubungkan ke VCC melalui low pass filter.
8
8. AREF
Merupakan pin referensi jika menggunakan ADC.
Gambar 2.2 Blok Diagram ATmega8
Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan
hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering arus program
sebagai kegunaan untuk meningkatkan performa pengoperasian. Register ini di-update
setelah operasi ALU (Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam
datasheet khususnya pada bagian Instruction Set Reference. Dalam hal ini untuk beberapa
kasus dapat membuang 10 penggunaan kebutuhan instrukasi perbandingan yang telah
didedikasikan serta
dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan
singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi
dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal
tersebut harus dilakukan melalui software. Berikut adalah gambar status register.
9. Bit 7(I)
Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua perintah
interupsi dapat dijalankan. Untuk perintah interupsi individual akan di jelaskan pada
bagian yang lain. Jika bit ini di-reset, maka semua perintah interupsi baik yang
individual maupun yang secara umum akan di abaikan. Bit ini akan dibersihkan atau
cleared oleh hardware setelah sebuah interupsi di jalankan dan akan di-set kembali
oleh perintah RETI. Bit ini juga dapat diset dan di-reset melalui aplikasi dan intruksi
SEI dan CLL.
9
10. Bit 6(T)
Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit Load) and
BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan untuk bit yang telah
dioperasikan. Sebuah bit dari sebuah register dalam Register File dapat disalin ke
dalam bit ini dengan menggunakan instruksi BST, dan sebuah bit di dalam bit ini
dapat disalin ke dalam bit di dalam register pada Register File dengan menggunakan
perintah BLD.
11. Bit 5(H)
Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry dalam
beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika BCD.
12. Bit 4(S)
Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara Negative Flag
(N) dan two’s Complement Overflow Flag (V).
13. Bit 3(V)
Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan fungsi
aritmatika dua komplemen.
14. Bit 2(N)
Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil negative di dalam
sebuah fungsi logika atai aritmatika.
15. Bit 1(Z)
Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0” dalan sebuah
fungsi aritmatika atau logika.
16. Bit 0(C)
Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa dalam
sebuah aritmatika atau logika.
10
BAB 3
PERANCANGAN JAM DIGITAL 7 SEGMENT
3.1 Komponen rangkaian jam digital 7 segment
1. r 10K ohm 1 Buah
2. r 330 ohm 6 Buah
3. r 100 ohm 8 Buah
4. r 4K7 ohm 2 Buah
5. c 100uf/ 16 volt 2 Buah
6. c 22pf non polar 2 Buah
7. Transistor NPN C9013 6 Buah
8. xtall 12Mhz 1 Buah
9. Xtall 32,XXX Mhz 1 Buah
10. Soket baterai kancing 1 Buah
11. RTC DS1307+socket 1 Buah
12. ATmega8 + socket 1 Buah
13. Push button (tombol) 5 Buah
14. IC ULN 2803 + socket 1 Buah
15. 7 Segmen (Anoda) 6 Buah
16. IC ATmega8 1 Buah
17. Crystal 12Mhz 1 Buah
18. Capasitor 22pf 2 Buah
19. Transistor NPN C9013 6 Buah
20. Resistor 330 ohm 14 Buah
21. Resistor 10 Kohm 1 Buah
22. Resistor 4K7 2 Buah
23. Crystal 32Mhz 1 Buah
24. Soket baterai kancing 1 Buah
25. Baterai kancing CR2032 1 Buah
26. Push button untuk reset 1 Buah
13
BAB 4
PENUTUP
4.1 Kesimpulan
Mikrokontroler AT89S51 dapat dirancang menjadi sebuah jam digital, Dengan rangkaian
sederhana dalam membuat sebuah rangkaian kita tentunya dituntut untuk paham dari dari
sebuah microcontroler yang kita gunakan. Pada program, waktu pertama dimulai jam
00.00.00, maka dalam awal pengoperasiannya perlu menunggu waktu tengah malam supaya
jam ini sesuai dengan waktu yang sebenarnya. Hai ni merupakan salah satu kelemahan jam
ini, namun jika kita tidak ingin menunggu waktu sampai tengah malam maka perlu ada
sedikit modifikasi pada awal program
14
LISTING PROGRAM
1. Jam.c
/*****************************************************
Chip type : ATmega8
Program type : Application
Clock frequency : 12.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
#define satu PORTD=0b00011000
#define dua PORTD=0b11010110
#define tiga PORTD=0b11011100
#define empat PORTD=0b01111000
#define lima PORTD=0b11101100
#define enam PORTD=0b11101110
#define tujuh PORTD=0b10011000
#define delapan PORTD=0b11111110
#define sembilan PORTD=0b11111100
#define nol PORTD=0b10111110
#define padam PORTD=0b00000000
#define dot PORTD=0b00000001
#define angka PORTD
#define dig1 PORTB=0b00000010; delay_ms(1);
#define dig3 PORTB=0b00000100; delay_ms(1);
#define dig4 PORTB=0b00001000; delay_ms(1);
#define dig5 PORTB=0b00010000; delay_ms(1);
#define dig6 PORTB=0b00100000; delay_ms(1);
#define dig2 PORTB=0b00000001; delay_ms(1);
15
#define hmin PINC.1
#define hplus PINC.2
#define mmin PINC.3
#define mplus PINC.0
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Declare your global variables here
#include "kalkulasi.c"
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=T State6=T State5=0 State4=0 State3=0 State2=0
State1=0 State0=0
PORTB=0x00;
DDRB=0x3F;
16
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTC=0xFF;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0
State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
17
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
18
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
if(hmin==0)
{
delay_ms(2000);
while(1)
{
if(hmin==0){haur--;delay_ms(100);}
if(hplus==0){haur++;delay_ms(100);}
if(haur==24){haur=0;delay_ms(100);}
if(mmin==0){minut--;delay_ms(100);}
if(mplus==0){minut++;delay_ms(100);}
if(minut==60){minut=0;delay_ms(100);}
h10=haur/10;
h1=haur%10;
m10=minut/10;
m1=minut%10;
s10=0;
s1=0;
jam(h10,h1,m10,m1,s10,s1);
rtc_set_time(haur,minut,0); //untuk menset jam 09:10:26
//rtc_set_date(8,11,87); //untuk menset tanggal: 8 nov 1987
19
}
}
while (1)
{
// Place your code here
rtc_get_time(&h,&m,&s); //mendapatkan nilai jam,
menit dan detik
//rtc_get_date(&d,&mo,&y); //mendapatkan nilai
tanggal, bulan dan tahun
//lcd_gotoxy(0,0);
//sprintf(temp,"Time %d:%d:%d",h,m,s);
//lcd_puts(temp);//tampilkan jam di LCD baris pertama
//lcd_gotoxy(0,1);
//sprintf(temp,"Date %d-%d-%d",d,mo,y);
//lcd_puts(temp);//tampilkan tanggal di LCD baris
kedua
h10=h/10;
h1=h%10;
m10=m/10;
m1=m%10;
s10=s/10;
s1=s%10;
jam(h10,h1,m10,m1,s10,s1);
};
}
20
2. Kalkulasi.c
unsigned char h, m, s, d, mo, y;
//unsigned
nol,padam,satu,dua,tiga,empat,lima,enam,tujuh,delapan,sembilan
,angka;
unsigned char haur,minut;
//unsigned dot,dig1,dig2,dig3,dig4,dig5,dig6;
unsigned char digit1,digit2,digit3,digit4,digit5,digit6;
unsigned char h10,h1,m10,m1,s10,s1;
void jam(unsigned char angka1,unsigned char angka2,unsigned
char angka3,unsigned char angka4,unsigned char angka5,unsigned
char angka6)
{
if(angka1==0){digit1=padam;}
if(angka1==1){digit1=satu;}
if(angka1==2){digit1=dua;}
if(angka1==3){digit1=tiga;}
if(angka1==4){digit1=empat;}
if(angka1==5){digit1=lima;}
if(angka1==6){digit1=enam;}
if(angka1==7){digit1=tujuh;}
if(angka1==8){digit1=delapan;}
if(angka1==9){digit1=sembilan;}
if(angka2==0){digit2=nol;}
if(angka2==1){digit2=satu;}
if(angka2==2){digit2=dua;}
if(angka2==3){digit2=tiga;}
if(angka2==4){digit2=empat;}
if(angka2==5){digit2=lima;}
if(angka2==6){digit2=enam;}
21
if(angka2==7){digit2=tujuh;}
if(angka2==8){digit2=delapan;}
if(angka2==9){digit2=sembilan;}
if(angka3==0){digit3=padam;}
if(angka3==1){digit3=satu;}
if(angka3==2){digit3=dua;}
if(angka3==3){digit3=tiga;}
if(angka3==4){digit3=empat;}
if(angka3==5){digit3=lima;}
if(angka3==6){digit3=enam;}
if(angka3==7){digit3=tujuh;}
if(angka3==8){digit3=delapan;}
if(angka3==9){digit3=sembilan;}
if(angka4==0){digit4=nol;}
if(angka4==1){digit4=satu;}
if(angka4==2){digit4=dua;}
if(angka4==3){digit4=tiga;}
if(angka4==4){digit4=empat;}
if(angka4==5){digit4=lima;}
if(angka4==6){digit4=enam;}
if(angka4==7){digit4=tujuh;}
if(angka4==8){digit4=delapan;}
if(angka4==9){digit4=sembilan;}
if(angka5==0){digit5=padam;}
if(angka5==1){digit5=satu;}
if(angka5==2){digit5=dua;}
if(angka5==3){digit5=tiga;}
if(angka5==4){digit5=empat;}
if(angka5==5){digit5=lima;}
if(angka5==6){digit5=enam;}
if(angka5==7){digit5=tujuh;}
22
if(angka5==8){digit5=delapan;}
if(angka5==9){digit5=sembilan;}
if(angka6==0){digit6=nol;}
if(angka6==1){digit6=satu;}
if(angka6==2){digit6=dua;}
if(angka6==3){digit6=tiga;}
if(angka6==4){digit6=empat;}
if(angka6==5){digit6=lima;}
if(angka6==6){digit6=enam;}
if(angka6==7){digit6=tujuh;}
if(angka6==8){digit6=delapan;}
if(angka6==9){digit6=sembilan;}
angka=digit1;dig1;
angka=digit2;
angka|=dot;dig2;
angka=digit3;dig3;
angka=digit4;
angka|=dot;dig4;
angka=digit5;dig5;
angka=digit6;dig6;
}