Anda di halaman 1dari 8

Feri Nugroho/07507131026/B4.

REGISTER-REGISTER dalam MICROKONTROLER

USART Data Register (UDR)


Bit
7
6
5

0
UDR (read)
UDR (write)

RXB ( 7:0 )
TXB ( 7:0 )

Read/write
Initial value

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

Digunakan sebagai buffer untuk menyimpan data baik yang akan dikirimkan maupun yang
diterima dalam komunikasi USART. UDR memiliki 2 register I/O yaitu RXb sebagai buffer
untuk menyimpan data yang diterima dan TXB sebagai buffer untuk menyimpan data yang
akan dikirim.

USART Control and Status Register A (UCSRA)


Bit

RXC TXC UDRE


Read/write
R
R/W R
Initial value 0
0
1
-

FE
R
0

DOR
R
0

PE U2X MPCM
R R/W R/W
0
0
0

UCSRA

Bit 7 RXC : USART Receive Complete.


Digunakan untuk mengetahui proses penerima data.

Bit 6 TXC : USART Transmit Complete


Digunakan untuk mengetahui proses penerim pengiriman data.

Bit 5 UDRE : USART Data Register Empty


Digunakan untuk mengetahui isi register UDR.

Bit 4 FE : Frame Error


Digunakan untuk mengetahui terjadinya frame error pada penerimaan data. Apabila
format data yang diterimanya yaitu strart bit, panjang data, stop bit, dan sinkronisasi.
Jika terjadi frame error maka FE bernilai 1 dan sebaliknya.

Bit 3 DOR : Data OverRun


Digunakan untuk mengetahui kondisi data overrun. Terjadi jika buffer terima RXB
penuh, yaitu data baru menunggu di shift register (belum terbaca) sementara data
yang lain sudah datang lagi, maka akan bernilai 1.

Bit 2 PE : Parity Error


Digunakan untuk mengetahui terjadinya parity error. Merupakan salah satu bit yang
ada dalam satu frame data yang diterima, digunakan untuk menunjukan beberapa
banyak bit yang bernilai 1 dalam satu frame data, jika tidak sesuai dengan data dan bit
paritas maka hal ini terjadi. Dan PE bernilai 1.

Bit 1 U2X : Double the USART Traqnsmission Speed


Digunakan untuk membuat kecepatan transfer data menjadi 2 kali lebih cepat, jika
U2X diset 1maka kecepatan transfernya menjadi 2 kali baudrate yang telah diatur.

Bit 0 MPCM : Multi-processor Communication Mode


Digunakan pada mode komunikasi multi-prosesor. Pengaturan bit ini hanya
berpengaruh pada penerimaan data saja. Format frame data yang diterima harus
memiliki informasi alamat sebagai identitas pengirimannya, jika tidak maka akan
diabaikan. Untuk mengaktifkan mode ini dilakukan dengan mengeset bit MPCM = 1.

USART Control and Status Register B (UCSRB)


Bit

RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8


Read/write
R/W
R/W R/W
R/W R/W
R/W
R
R/W
Initial value 0
0
1
0
0
0
0
0
-

UCSRB

Bit 7 RXCIE : RX Complete Interrupt Enable. Digunakan untuk mengaktifkan dan


menonaktifkan interupsi receive complete interrupt, aktif jika bernilai 1.

Bit 6 TXCIE : TX complete interrupt enable. Digunakan untuk mengaktifkan dan


menonaktifkan interupsi transmit complete interrupt, aktif jika bernilai 1.

Bit 5 UDRIE : USART data register empty interrupt enable. Digunakan untuk
mengaktifkan dan menonaktifkan interupsi UDR Empty interrupt, aktif jika bernilai 1.

Bit 4 RXEN : receiver enable. Digunakan untuk mengaktifkan dan menonaktifkan


USART receiver, aktif jika bernilai 1 sehingga data serial yang diterima pin RXD
akan diijinkan masuk ke shift register dan buffer terima RXB.

Bit 3 TXEN : transmitter enable. Digunakan untuk mengaktifkan dan


menonaktifkan USART transmitter , aktif jika bernilai 1 sehingga data serial yang
dituliskan ke buffer transmit TXB akan dimasukkan ke shift register yang kemudian
dikeluarkan secara serial melalui pin TXD.

Bit 2 UCSZ2 : character size. Bersama dengan UCSZ1 dan UCSZ0 yang berada
pada register UCSRC digunakan untuk menentukan ukuran data/karakter dalam satu
frame.

Bit 1 RXB8 : receive data bit 8. RXB8 adalah bit ke-9 dari data/karakter yang
diterima jika menggunakan ukuran 9 bit.

Bit 0 TXB8 : transmit data bit 8. TXB8 adalah bit ke-9 dari data/karakter yang
dikirim jika menggunakan ukuran 9 bit.

USART Control and Status Register C (UCSRC)


Bit

7
URSEL

Read/write
Initial value
-

R/W
1

6
UMSEL

R/W
0

UPM1

UPM0

USBS

UCSZ1

UCSZ0

UCPOL

R/W
0

R/W R/W
0
1

R/W
1

R/W
0

R/W
0

0
UCSRC

Bit 7 URSEL : Register Select. Register UCSRC dan register UBRRH menempati
lokasi register I/O yang sama sehingga untuk menentukan apakah register UCSRC
atau register UBRRH yang akan mengakses ditentukan dengan bit URSEL.

Bit 6 UMSEL : USART Mode. Digunakan untuk menentukan mode komunikasi


USART. Jika bernilai 0 berarti mode komunikasi asynchronous dan jika bernilai 1
berarti mode komunikasi synchronous.

Bit 5 & 4 UMP1 & UMP0 : Parity mode. UMP1 dan UMP0 digunakan untuk
menentukan mode paritas.

Bit 3 USBS : Stop Bit Select. Digunakan untuk menentukan jumlah stop bit dalam
setiap frame. Jika bernilai 0 berarti panjang stop bit adalah 1-bit dan jika bernilai 1
berarti panjang stop bit adalah 2-bit.

Bit 2 & 1 UCSZ1 & UCSZ0 : Character Size. UCSZ1 & UCSZ0 bersama dengan
UCSZ2 yang berada pada register UCSRB digunakan untuk menentukan ukuran
data/karekter dalam satu frame.

Bit 0 UCPOL : Clock Polarity. Digunakan untuk mengatur mode transisi clock pada
pengambilan data yang diterima dan pengubahan data yang dikirimkan.

TWI Bit Rate Register (TWBR).


Bit

7
TWBR7

Read/write
Initial value

R/W
0

6
TWBR6

TWBR5

TWBR4

TWBR3

TWBR2

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

1
TWBR1

R/W
0

0
TWBR0

TWBR

R/W
0

Digunakan untuk menentukan bit rate pada komunikasi TWI. Isi register TWBR merupakan
factor pembagi frekuensi osilator yang hasilnya akan menjadi frekuensi clock SCL.

TWI Control Register (TWCR)


Bit

Read/write
Initial value
-

3
TWWC

TWINT

TWEA

TWSTA

TWSTO

R/W
0

R/W
0

R/W
0

R/W
0

R
0

2
TWEN

R/W
0

1
-

R
0

0
TWIE

TWCR

R/W
0

Bit 7 TWINT : TWI Interrupt Flag. Akan bernilai 1 jika TWI telah selesai
mengerjakan tugasnya saat itu yaitu mengirimkan data 1 frame. Pasa saat TWINT
bernilai 1 jika bit-1 pada register SREG dan TWIE pada register TWCR diset 1 maka
akan menyebabkan terjadinya interupsi TWI sehingga program akan melompat
kealamat vector interupsi yang sesuai yaitu 0x011. Bit TWINT ini secara otomatis
akan reset menjadi 0 jika subrutin interupsi pada alamat vector interupsi dijalankan.

Bit 6 TWEA : TWI Enable Acknowledge Bit. Digunakan untuk mengatur


pembangkitan pulsa Acknowledge pada mode slave. Jika diset 1 maka pulsa ACK
akan dibangkitkan pada posisi bit seperti pada format data frame yaitu setelah
menerima bit-bit alamat+RW atau setelah menerima data 8-bit (1 byte).

Bit 5 TWSTA : TWI START Condition Bit. Digunakan untuk mengirimkan bit
START pada mode master. Jika diset 1 maka akan dikirimkan bit START.

Bit 4 TWSTO : TWI STOP Condition Bit. Digunakan untuk mengirimkan bit STOP
pada mode master. Jika diset 1 maka akan dikirimkan bit STOP.

Bit 3 TWWC : TWI Write Collision Flag. Jika register TWDR sedang dalam proses
ditulis maka bit TWWC akan bernilai 1.

Bit 2 TWEN : TWI Enable bit. Digunakan untuk mengaktifkan dan menonaktifkan
komunikasi TWI. Jika bernilai 1 maka pin I/O TWI terhubung ke pin SCL dan SDA
yang berarti TWI aktif/siap digunakan.

Bit 1 tidak digunakan

Bit 0 TWIE : TWI Interrupt Enable. Digunakan untuk mengaktifkan dan


menonaktifkan interupsi TWI. Interupsi TWI akan aktif jika bit TWIE bernilai 1 dan
akan terpicu pada saat bit TWINT bernilai 1.

TWI Status Register (TWSR)


Bit

7
TWS7

Read/write
Initial value
-

TWS6

TWS5

TWS4

TWS3

TWPS1

TWPS0

R
1

R
1

R
1

R
1

R
1

R
0

R/W
0

TWSR

R/W
0

Bit 7 & 3 TWS7TWS3 : TWI Status. Bit-bit TWS menunjukkan status dari TWI
yang dapat digunakan untuk mengecek sinyal start, stop atau ackhowdge.

Bit 2 : tidak digunakan.

Bit 1 & 0 TWPS : TWI Prescale Bit. Digunakan untuk menentukan skala dan akan
mempengaruhi kecepatan bit rate.

TWI Data Register (TWDR)


Bit
Read/write
Initial value

TWS7

TWS6

TWS5

TWS4

TWS3

TWS2

TWPS1

TWPS0

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

R/W
0

R/W
0

R/W
0

TWDR

Merupakan register 8-bit yang digunakan untuk menyimpan data yang akan dikirimkan atau
menyimpan data terakhir yang diterima.

TWI (slave) Address Register (TWAR)


Bit

TWA1

TWA0

TWGCE

R/W
1

R/W
0

TWA6

TWA5

TWA4

TWA3

TWA2

R/W
1

R/W
1

R/W
1

R/W
1

R/W
1

Read/write
Initial value

R/W
1

0
TWAR

Register ini hanya digunakan pada mode slave, menyimpan data 7-bit alamat sebagai alamat
slave dan 1-bit untuk mengaktifkan respon sebagai slave.
-

Bit 7-1 TWA : TWI (slave) Address Register. 7-bit ini digunakan
untukmenyimpan alamat sebagai slave.

Bit 0 TWGCE : TWI general call recognition enable bit. Digunakan untuk
mengaktifkan respon sebagai slave. Jika bit ini diset 1 maka mikrokontroler akan
berlaku sebagai slave dan akan merespon perintah-perintah dari master jika alamat
yang dikirimkan adalah sesuai dengan alamat slave-nya.

MCU-Control Register (MCUCR). Digunakan untuk mengatur pemicu interupsi dan fungsi
MCU secara umum.
Bit

Read/write
Initial value
-

ISC10

ISC01

ISC00

R/W
0

R/W
0

SM2

SE

SM1

SM0

ISC11

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

R/W
0

0
MCUCR

Bit3:2 ISC11:0 : interrupt Sense Control INT 1. ISC11 dan ISC10 digunakan untuk
mengatur pemicu interupsi pada INT1. Pemicu interupsi dapat berupa sinyal rendah,
adanya transisi, transisi naik, transisi turun.

Bit 1:0 ISC01:0 : interrupt Sense Control INT 0. ISC01 dan ISC00 digunakan untuk
mengatur pemicu interupsi pada INT 0. Pemicu interupsi dapat berupa sinyal rendah,
adanya transisi, transisi naik, transisi turun.
Table Pemicu Interupsi INT1/INT0

ISCx1

ISCx0

Pemicu interupsi

Level rendah pada pin INT0 atau INT1

Perubahan level pada pin INT0 atau INT1

Transisi turun pada pin INT0 atau INT1

Transisi naik pada pin INT0 atau INT1

MCU - Control and Status Register (MCUCSR).


Bit

6
-

Read/write
Initial value
-

R/W
0

ISC2

R/W
0

WDRF

BORF

R/W
0

R/W
0

R
0

R/W
0

EXTRF

R/W
0

PORF

MCUCSR

R/W
0

Bit 6 ISC 2 : Interrupt Sense Control INT 2. Untuk interupsi INT 2 hanya memiliki
1 bit ISC, sehingga hanya memiliki 2 kondisi pemicu interupsi yaitu :
0 : interupsi terjadi jika terjadi transisi turun pada pin INT 2
1 : interupsi terjadi jika terjadi transisi naik pada pin INT 2
Untuk sumber interupsi INT2, perubahan/transisi sinyal yang dapat membangkitkan
interupsi harus memiliki lebar pulsa minimal sekitar 50 ns.

General

Interupt

Control

Register (GICR).

Digunakan untuk

mengaktifkan dan

menonaktifkan interupsi INT0, INT1 dan INT2.


Bit

7
INT1

Read/write
Initial value
-

R/W
0

INT0

INT2

R/W
0

R/W
0

IVSEL

IVCE

R/W
0

R/W
0

R
0

R
0

R
0

0
GICR

Bit 7 INT1 : External Interrupt Request 1 Enable. Jika diset 1 maka interupsi
eksternal INT1 aktif, dan sebaliknya.

Bit 6 INT0 : External Interrupt Request 0 Enable. Jika diset 1 maka interupsi
eksternal INT0 aktif dan sebaliknya.

Bit 5 INT2 : External Interrupt Request 2 Enable. Jika diset 1 maka interupsi
eksternal INT0 aktif dan sebaliknya.

General Interrupt Flag Register (GIFR). Merupakan register bendera yang digunakan untuk
menandai apakah terjadi permintaan interupsi eksternal atau tidak.
Bit

Read/write
Initial value
-

INTF1

INTF0

INTF2

R/W
0

R/W
0

R/W
0

R
0

R
0

R
0

R
0

0
-

GIFR

R
0

Bit 7 INTF1 : External Interrupt Flag 1. Akan berniali 1 jika terjadi permintaan
interupsi sesuai dengan mode pemicunya pada pin INT1. Jika bit 1 pada SREG diset 1
dan bit INT1 pada GICR diset 1 maka program akan melompat ke alamat vector
interupsi yang sesuai dengan INT1 yaitu 0x002. Bendera INTF1 otomatis diset
menjadi 0 pada saat rutin interupsi INT1 dijalankan.

Bit 6 INTF0 : External Interrupt Flag 0. Akan berniali 1 jika terjadi permintaan
interupsi sesuai dengan mode pemicunya pada pin INT0. Jika bit 1 pada SREG diset 1
dan bit INT0 pada GICR diset 1 maka program akan melompat ke alamat vector
interupsi yang sesuai dengan INT0 yaitu 0x001. Bendera INTF0 otomatis diset
menjadi 0 pada saat rutin interupsi INT0 dijalankan.

Bit 5 INTF2 : External Interrupt Flag 2. Akan berniali 1 jika terjadi permintaan
interupsi sesuai dengan mode pemicunya pada pin INT2. Jika bit 1 pada SREG diset 1
dan bit INT2 pada GICR diset 1 maka program akan melompat ke alamat vector
interupsi yang sesuai dengan INT2 yaitu 0x012. Bendera INTF1 otomatis diset
menjadi 0 pada saat rutin interupsi INT2 dijalankan.