• Tidak ada hasil yang ditemukan

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius"

Copied!
6
0
0

Teks penuh

(1)

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt

Jongguran Sondang DN (132 05 110)/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

Abstrak – pada praktikum kali ini, praktikan diharapkan mampu membuat program menggunakan timer pada mikrokontroler 8051 dalam berbagai variasi mode timer dan jenis timer seta mampu membuat program dengan memanfaatkan fasilitas interupsi yang tersedia pada mikrokontroler.

Pada praktikum kali ini kami menggunakan DT-51 MinSys yang merupakan sebuah sistem minimum berbasis mikrokontroler 89C51 dan DT-51 Trainer Board yang merupakan board pendukung yang digunakan untuk memberikan masukan dan melihat respon keluaran dari program yang kita download ke dalam DT-51 MinSys.

I. Data Percobaan A. Alat dan Komponen yang Digunakan

1. DT-51 MinSys 2. DT-51 Trainer Board 3. Komputer

4. Power supply 5. Kabel serial DB-9 pin 6. Kabel tipe-x dan tipe-y

7. Kabel untuk power DT-51 MinSys

B. Isi Data Percobaan

Gambar 1 DT-51 MinSys

Keterangan gambar DT-51 MinSys 1. Mikrokontroler AT89C51 2. EEPROM

3. Programmable Peripheral Interface (PPI) 4. Memori eksternal sebesar 8 MB

5. Port 1, Port A, Port B, dan Port C 6. Port Control

7. Kristal sebagai clock generator yang memiliki frekuensi 11,0592 MHz. Maka periode osilatornya adalah 0,090422453 µs

8. Port kabel serial PC

Pemrograman mikrokontroler ini menggunakan bahasa assembly. Pada percobaan, digunakan beragam instruksi lompatan, logika, dan aritmatika, di antaranya

Tabel 1 Set instruksi Assembly yang digunakan Mnemonik Fungsi Operasi

MOV Pemindahan data antar lokasi dalam RAM internal atau lokasi-lokasi SFR tanpa melalui akumulator

MOVX Membaca RAM eksternal

SJMP Mengodekan alamat tujuan sebagai sebuah offset relatif LJMP Mengodekan alamat tujuan sebagai konstanta 16-bit,

panjang instruksinya 3 bit SETB Mengeset nilai bit dengan nilai 1 CLR Mengeset nilai bit dengan nilai 0 JB Meloncat jika nilai bitnya sama dengan 1 JNB Meloncat jika nilai bitnya tidak sama dengan 1 JC Meloncat jika ada nilai bit carry di PSW JNC Meloncat jika tidak ada nilai bit carry di PSW CJNE Meloncat jika dua nilai yang dibandingkan tidak sama ACALL Memanggil program sub rutin dalam daerah

memori-program 2 kb yang setara RET Mengakhiri program sub rutin

DJNZ Mengurangi isi di register dan loncat jika tidak sama dengan 0

RETI Mengakhiri sub rutin program layanan interupsi PUSH Menambah stack pointer

POP Mengurangi stack pointer RL Memutar register ke kiri 1 bit RR Memutar register ke kanan 1 bit

INC Menaikkan suatu nilai (1 byte) pada register DEC Menurunkan suatu nilai (1 byte) pada register

Langkah-langkah yang kami lakukan dalam percobaan ini adalah mengetikkan listing program dalam ekstensi *.asm, meng-assemble listing program ke dalam bentuk *.hex, dan men-download-nya ke dalam DT-51 MinSys menggunakan kabel serial.

Percobaan-percobaan yang kami lakukan antara lain

1. Percobaan I : Timer/Counter 0 sebagai Timer Mode 0/1

2. Percobaan II : Timer/Counter 0 sebagai Counter

Mode 2 (8-bit AutoReload)

3. Percobaan III : Penggunaan INT0 dengan Interrupt Enable

4. Percobaan IV : Penggunaan INT0 dan INT1 dengan Interrupt Priority

II. Analisis Hasil Percobaan

1. Percobaan I : Timer/Counter 0 sebagai Timer Mode 0/1 $MOD51 ORG 4000H LJMP START ORG 4100H

(2)

START: MOV R0,#00H MOV R1,#00H MOV SP,#30H MOV P1,#0FFH CLR P1.4 MOV TMOD,#01H MOV TH0,0D8H MOV TL0,#0EFH SETB TR0 MOV A,#0FFH CHECK: JNB TF0,CHECK LCALL RELOAD LJMP PENGALI1 PENGALI1: INC R0 CJNE R0,#32H,CHECK MOV R0,#00H LJMP LED

LED: CJNE A,#00H,NYALA

LJMP MATI MATI: CLR P1.4 MOV A,#0FFH LJMP CHECK NYALA: SETB P1.4 MOV A,#00H LJMP CHECK RELOAD: CLR TR0 MOV TH0,#0D8H MOV TL0,#0EFH CLR TF0 SETB TR0 RET END

$mod51 adalah file header perintah yang digunakan pada DT-51 MinSys. CSEG merupakan perintah untuk menentukan program memory space. Instruksi LJMP memerintahkan lompat ke sub program START. Kita memindahkan stack pointer ke alamat 30h. Stack pointer dipindahkan ke alamat 30h karena alamat-alamat sebenarnya masih dipakai. Stack pointer berada pada alamat 81h.

Pada sub program start kita melakukan proses pemindahan data immediate ke register R0 dan R1. Kemudian kita juga melakukan pemindahan data immediate #0FFh ke port satu. Perintah ini akan membuat seluruh bit pada port satu mendapat harga logika satu. Pada baris selanjutnya terdapat perintah CLR yang berfungsi membuat logika port 1.4 menjadi nol. Pada baris selanjutnya terdapat perintah MOV yang akan memasukkan harga data immediate ke dalam register TMOD. Harga yang dimasukkan ini akan berfungsi menentukan mode timer yang digunakan. Jika kita memasukkan nilai #01h sebagaimana dalam program, maka kita akan membuat mode timer yang berfungsi menjadi mode 01. Hal ini dapat dilihat dalam penjelasan mode TMOD dan tabelnya seperti berikut

Langkah selanjutnya kami memindahkan nilai direct byte ke register TH0 dan memindahkan immediate data ke register TL0. Kemudian dengan perintah SETB kami mengaktifkan bit TR0. Setelah itu kami memindahkan nilai immediate FF ke accumulator A.

Setelah itu program akan memasuki subrutin CHECK. Pada subrutin CHECK didapatkan instruksi JNB. Instruksi ini menyatakan bahwa program akan melompat ke subrutin CHECK jika harga TF0 sama dengan nol. Jika harga TF0 adalah satu, maka program akan melanjutkan ke instruksi LCALL. Instruksi LCALL (Long Subroutine Call) ini akan memanggil subrutin RELOAD. Setelah memanggil subrutin RELOAD, maka program akan langsung melompat ke subrutin PENGALI1.

Pada subrutin RELOAD, pertama-tama nilai register TR0 akan diset menjadi nol. Kemudian instruksi MOV akan memindahkan nilai immediate DBh ke register TH0 dan nilai immediate EFh ke register TL0. Setelah melakukan ini, maka program pun akan mengeset nilai TF0 ke nilai nol dan TR0 ke nilai satu. Setelah ini program akan kembali ke instruksi LJMP untuk langsung memasuki subrutin PENGALI1.

Pada subrutin PENGALI1, program dilanjutkan dengan instruksi INC yang menaikkan (increment) register R0. Setelah itu program dilanjutkan dengan instruksi CJNE yang menyatakan bahwa program akan melompat ke subrutin CHECK kembali apabila nilai R0 tidak sama dengan 32h. Selama nilai register ini belum mencapai 32h, maka program akan terus berputar di sini. Setelah nilai register sama dengan 32h, maka program akan dilanjutkan dengan mengeset nilai register R0 ke nilai nol kembali dan setelah itu program pun akan melompat ke subrutin LED.

Pada subrutin LED terdapat instruksi CJNE yang menginstruksikan program untuk membandingkan harga kedua data, yaitu harga accumulator dan data immediate 00h. Jika keduanya memiliki harga yang berbeda, maka program akan melompat ke subrutin NYALA. Jika harga pada accumulator adalah nol, maka program akan langsung melompat ke subrutin MATI.

Karena pada awalnya nilai accumulator telah diset menjadi satu, maka program pun akan melompat ke subrutin NYALA. Pada subrutin NYALA, harga port output yang telah dihubungkan dengan port satu bit keempat diberi instruksi SETB. Dengan instruksi ini, maka port output pun akan menyala. Setelah instruksi SETB yang mengeset port output bit keempat, maka program dilanjutkan dengan instruksi MOV yang memindahkan data immediate 00h ke accumulator A.

(3)

Setelah itu program akan memanggil subrutin CHECK (kembali ke CHECK).

Kembali ke subrutin CHECK, maka program akan melalui alur yang sama dengan sebelumnya. Tetapi program pun akan sampai ke subrutin MATI karena pada saat program ada di subrutin NYALA, nilai accumulator A telah diset ke nilai nol.

Pada subrutin MATI, port output bit keempat pun diset ke nilai nol. Sehingga pada saat ini LED pun akan padam. Setelah itu nilai accumulator pun akan diset menjadi nilai satu. Setelah ini program pun akan melanjutkan ke subrutin CHECK dan begitu seterusnya.

Untuk program modifikasinya, kami membuat antara empat bit LSB dengan empat bit MSB berkedip secara bergantian dengan waktu periode kedip LED berkisar pada x detik. Dimana x didefinisikan sebagai berikut

X = (modulus 9 dari no grup) + 1

Karena nomor grup kami adalah 48. Maka modulus-9 nya adalah tiga. Sehingga x adalah 4 detik.

Jika pada program sebelumnya, port output yang berkedip hanyalah bit empat saja, maka kini port output yang aktif adalah 8 buah. Untuk itu maka kami melakukan inisialisasi harga port output dahulu pada subrutin START. Karena keempat bit output menyala bergantian, maka nilai awal yang harus dimasukkan haruslah berkelompok empat empat dengan nilai yang berbeda. Kemudian karena pada program sebelumnya delay yang dihasilkan adalah satu detik, maka untuk program kali ini kami hanya perlu membuat delay tersebut dikali dengan empat. Hal ini membuat batas nilai R0 yang di-increment diubah menjadi 4 kali 32h, yaitu B2h.

Sehingga program modifikasinya adalah

$MOD51 ORG 4000H LJMP START START: MOV R0,#00H MOV R1,#00H MOV SP,#30H MOV P1,#0FFH SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 MOV TMOD,#01H MOV TH0,0D8H MOV TL0,#0EFH SETB TR0 MOV A,#0FFH CHECK: JNB TF0,CHECK LCALL RELOAD LJMP PENGALI1 PENGALI1: INC R0 CJNE R0,#0B2H,CHECK MOV R0,#00H LJMP LED

LED: CJNE A,#00H,NYALA

LJMP MATI MATI: SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 MOV A,#0FFH LJMP CHECK NYALA: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 MOV A,#00H LJMP CHECK RELOAD: CLR TR0 MOV TH0,#0D8H MOV TL0,#0EFH CLR TF0 SETB TR0 RET END

2. Percobaan II : Timer/Counter 0 sebagai Counter Mode 2 (8-bit AutoReload)

$MOD51 CSEG ORG 4000H LJMP START START: MOV P1,#00H MOV TMOD,#06H MOV TH0,#0FBH MOV TL0,#0FBH CLR TF0 MOV A,#00H SETB TR0

LED1: MOV A,TL0

SUBB A,#0FBH JB TF0,LED2 MOV P1,A LJMP LED1 LED2: MOV P1,#0FFH ACALL DELAY LJMP START DELAY: MOV R7,#04H LUP1: MOV R6,#0FFH LUP2: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUP2 DJNZ R7,LUP1 RET END

Pada percobaan ini kami menggunakan port 1 sebagai output. Kami juga memasang kabel penghubung antara IS3 dengan T0.

(4)

Yang dikerjakan dengan listing program di atas pertama-tama adalah memindahkan memori aktif ke alamat 4000H yang merupakan alamat pada EEPROM. Hal ini dilakukan dengan menuliskan perintah CSEG. Tujuannya adalah untuk menjaga apabila terjadi hal yang tidak diinginkan maka perintah masih tersimpan pada EEPROM dan tidak hilang. Kemudian program akan melanjutkan ke subrutin START dengan perintah LJMP.

Di subrutin START pertama-tama kita akan memindahkan nilai immediate 00h ke port P1. Sehingga pada saat ini port 1 yang terhubung ke output akan bernilai nol untuk semua bit. Selanjutnya kita melanjutkan ke instruksi MOV yang memindahkan nilai immediate 06h ke register TMOD. Hal ini dilakukan untuk mengeset mode timer yang akan digunakan. Dengan memasukkan nilai heksadesimal sebesar 06h, maka yang diset adalah bit C/~T(0) dan bit M1(0). Hal ini berarti bahwa fungsi yang dijalankan adalah counter, yaitu timer yang bersangkutan akan di-increment setiap transisi dari 1 ke 0 pada pin TX.

Instruksi selanjutnya menyatakan pemidahan data immediate FBh ke TH0 dan TL0. Setelah itu program akan mengeset nilai TF0 menjadi nol dengan instruksi CLEAR dilanjutkan pemindahan data immediate 00h ke accumulator A. Kemudian TR0 pun akan diset ke nilai satu.

Kemudian program akan melanjutkan ke subrutin LED1. Pada subrutin LED1 ini kita memindahkan harga TL0 ke accumulator A. Kemudian kami mengurangi immediate data FBh dari accumulator. Setelah itu instruksi JB akan membuat program melompat ke subrutin LED2 apabila TF0 memiliki nilai satu. Kemudian nilai accumulator dipindahkan ke port satu. Instruksi terakhir dalam subrutin ini adalah LJMP LED1 yang mengindikasikan bahwa program akan melompat kembali ke subrutin LED1.

Pada subrutin LED2, nilai immediate FFh akan dipindahkan ke port satu. Kemudian program pun akan memanggil subrutin DELAY. Setelah kembali, maka program akan melompat kembali ke subrutin START.

Sementara di subrutin DELAY, pertama-tama nilai immediate 04h akan dipindahkan ke register R7. Program akan melanjutkan ke subrutin LUP1 dengan instruksi yang memindahkan nilai FFh ke register R6 dan pada subrutin LUP2 yang memindahkan nilai FFh ke register R5. Setelah itu program akan melanjutkan ke instruksi DJNZ yang akan mengurangi register R5 dan akan jump ke awal selama nilai register tidak sama

dengan nol. Di bawahnya terdapat instruksi yang sama untuk register R6 dan R7. Selama register R6 tidak nol, maka register tersebut akan dikurangi dan program akan melompat ke subrutin LUP2. Hal yang sama dilakukan untuk register R7. Program akan melompat ke subrutin LUP1 selama nilainya tidak sama dengan nol.

Kami juga memodifikasi listing program tersebut sehingga momen LED menyala semua sejenak setelha tombol ditekan sejumlah x kali dengan x didefinisikan dengan

X = (modulus 9 dari no grup) + 1

Untuk itu kami membuat program sebagai berikut

$MOD51 CSEG ORG 4000H LJMP START START: MOV P1,#00H MOV TMOD,#06H MOV TH0,#0FBH MOV TL0,#0FBH CLR TF0 MOV A,#00H SETB TR0

LED1: MOV A,TL0

SUBB A,#0FBH JB TF0,LED2 MOV P1,A LJMP LED1 LED2: MOV P1,#0FFH ACALL DELAY LJMP START DELAY: MOV R7,#0FFH LUP1: MOV R6,#0FFH LUP2: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUP2 DJNZ R7,LUP1 RET END

Pada program modifikasi di atas, kami mengganti nilai pada port A di subrutin DISPLAY dengan 1816 yang

merupakan representasi heksadesimal dari 4810. Kami juga

mengganti switch input yang harus aktif pada bagian instruksi JB dengan switch input bit ke nol.

3. Percobaan III : Penggunaan INT0 dengan Interrupt Enable $MOD51 CSEG ORG 4000H LJMP START ORG 4003H RL A MOV P1,A MOV R7,#04H LUPA: MOV R6,#FFH LUPB: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUPB DJNZ R7,LUPA RETI ORG 4200H START: MOV SP,#30H MOV TCON,#01H MOV A,#01H

(5)

MOV P1,#01H

MOV IE,#81H

SJMP START

END

Pada percobaan kali ini kami menggunakan port 1 pada DT-51 MinSys sebagai port output dan menghubungkan IS1 dengan INT0.

Program kali dimulai dengan memindahkan memori aktif ke alamat 4000H yang merupakan alamat pada EEPROM. Hal ini dilakukan dengan menuliskan perintah CSEG. Kemudian program akan melompat ke subrutin START. Kemudian program melanjutkan merotasi accumulator ke kiri. Setelah itu program akan memindahkan accumulator ke port satu dan memindahkan data immediate 04h ke register R7.

Pada subrutin START nilai 30h akan dipindahkan ke stack pointer dan nilai 01h akan dipakai untuk menentukan TCON. Pada keadaan ini bit pada register TCON yang aktif adalah bit IT(x). Jika bit ini diaktifkan maka interupsi eksternal akan terjadi saat terjadi transisi dari nilai 1 ke nilai 0. Mode ini disebut juga dengan falling edge trigger.

Setelah menentukan mode pada register TCON, sekarang program beralih memindahkan nilai 01h ke accumulator dan ke port satu. Instruksi MOV di bawahnya pun menyatakan pemindahan data immediate 81h ke register IE. Hal ini akan menentukan bit mana dalam register yang akan aktif. Jika nilai 81h dimasukkan, maka interrupt pun akan aktif.

Kemudian untuk program modifikasi, kami diminta untuk membuat LED bit 0, bit 1, bit 6, dan bit 7 agar menyala. Ketika terjadi interrupt, maka bit ke 2, bit 3, bit 4, dan bit 5 yang akan menyala. Dan setelah interrupt selesai, maka LED pun akan kembali ke kondisi awal. Listing program yang baru adalah sebagai berikut $MOD51 CSEG ORG 4000H LJMP START ORG 4033H MOV A,#3CH MOV P1,A MOV R7,#04H LUPA: MOV R6,#5FH LUPB: MOV R5,#FFH DJNZ R5,$ DJNZ R6,LUPB DJNZ R7,LUPA RETI ORG 4200H START: MOV SP,#30H MOV TCON,#01H MOV A,#0C3H MOV P1,#0C3H MOV IE,#81H SJMP START END

4. Percobaan IV : Penggunaan INT0 dan INT1 dengan Interrupt Priority $MOD51 CSEG ORG 4000H LJMP START ORG 4003H LJMP INTER0 ORG 4013H LJMP INTER1 ORG 4100H INTER0: MOV P1,#0H SETB P1.0 LCALL LDELAY CLR P1.0 RETI INTER1: MOV P1,#0H SETB P1.7 LCALL LDELAY MOV P1.7 RETI ORG 4200H LDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7,#24H LUPA: MOV R6,#0FFH LUPB: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUPB DJNZ R7,LUPA POP 5 POP 6 POP 7 RET SDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7,#24H LUP1: MOV R6,#0FFH LUP2: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUP2 DJNZ R7,LUP1 POP 5 POP 6 POP 7 RET START: MOV SP,#30H MOV TCON,#05H MOV IP,#04H MOV IE,#85H LOOP1: MOV P1,#01010101B ACALL SDELAY MOV P1,#10101010B ACALL SDELAY SJMP LOOP1 END

(6)

Percobaan ini menggabungkan dua buah percobaan sebelumnya sehingga port PPI digunakan sebagai input dan output. Diatur pula alamat kedua port yang digunakan (Port A dan Port B).

Program kali inipun menggunakan delay dengan cara membuat loop-loop pada sub rutin DELAY1, LUP2, dan LUP1. Lamanya delay dapat dihitung dengan cara menghitung jumlah siklus lalu dikalikan dengan lamanya satu siklus mesin, yaitu 12 periode osilator. Karena frekuensi kristal 11,0595 MHz maka satu siklus mesin 12 x 1/f = 0,09042 µs.

$MOD51 CSEG ORG 4000H LJMP START ORG 4003H LJMP INTER0 ORG 4013H LJMP INTER1 ORG 4100H INTER0: MOV P1,#0H MOV P1,#99H LCALL LDELAY MOV P1,#66H RETI INTER1: MOV P1,#0H MOV P1,#0AAH LCALL LDELAY MOV P1,#55H RETI ORG 4200H LDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7,#24H LUPA: MOV R6,#0FFH LUPB: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUPB DJNZ R7,LUPA POP 5 POP 6 POP 7 RET SDELAY: PUSH 7 PUSH 6 PUSH 5 MOV R7,#24H LUP1: MOV R6,#0FFH LUP2: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,LUP2 DJNZ R7,LUP1 POP 5 POP 6 POP 7 RET START: MOV SP,#30H MOV TCON,#05H MOV IP,#01H MOV IE,#85H LOOP1: MOV P1,#11111111B ACALL SDELAY MOV P1,#00000000B ACALL SDELAY SJMP LOOP1 END III. Kesimpulan

1. DT-51 MinSys dapat digunakan untuk membuat program yang memanfaatkan kontrol timer dan counter.

2. Register yang dapat digunakan untuk menentukan mode timer dan kontrol timer antara lain TMOD, TCON, TH, dan TL.

3. Register TMOD dan TCON merupakan register 8 bit. Register TMOD tidak dapat diakses per bit, sedangkan TCON dapat diakses per bit.

4. Timer/Counter memiliki berbagai mode yang dapat digunakan sesuai kebutuhan, di antaranya mode 0, 1, dan 2.

5. Register-register yang dapat digunakan untuk kontrol counter antara lain IE dan IP.

Daftar Pustaka

[1] Modul Percobaan 1 Praktikum Sistem Mikrokontroler dan Lab

[2] Putra, Agfianto Eko. 2003. Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi). Yogyakarta : Penerbit Gaya Media.

Gambar

Gambar 1 DT-51 MinSys

Referensi

Dokumen terkait

Membuat rencana bisnisSeperti diketahui untuk memulai sebuah usaha diperlukan sebuah rencana bisnis yang matang, anda harus meluangkan waktu untuk

Pelayanan prima adalah kepedulian kepada masyarakat dengan memberikan layanan terbaik untuk memfasilitasi kemudahan pemenuhan kebutuhan dan mewujudkan kepuasannya, agar

Telah diserahkan perkara penagihannya kepada Pengadilan Negeri atau instansi pemerintah yang menangani piutang negara; atau adanya perjanjian tertulis mengenai

1.2.3 Bagaimana hasil penelitian tentang pengaruh penambahan jus tomat pada media Vacin & Went (VW) terhadap pertumbuhan planlet anggrek Dendrobium

Data kemudian diuji dengan The Structural Equation Modelling (SEM) dari paket software statistik AMOS akan digunakan dalam model dan pengujian hipotesis. Temuan

Berdasarkan hasil perhitungan yang dilakukan dengan menggunakan teknik analisis korelasi sederhana Product Moment dari Pearson antara konsep diri positif (variabel

Sebuah perusahaan rekaman biasanya memiliki kontrak rekaman eksklusif dengan seorang artis atau kelompok musik untuk merekam musik mereka dengan imbalan royalti dari harga

Sebuah keluarga apabila dibentuk menjadi suatu bisnis maka akan tercipta situasi mendidik, seluruh anggota keluarga dapat bekerja memperoleh pengalaman serta bekal kepribadian