Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 8

POST TEST

PRAKTIKUM MIKROPROSESOR
Modul 1
1. Buat program untuk menyalakan LED menggunakan push button dengan ketentuan sebagai
berikut :
NPM Ganjil :
- LED active high, push button active low
- Pola LED adalah sebagai berikut :

NPM Genap :
- LED active low, push button active high
- Pola LED adalah sebagai berikut :

Jawab:
#include <mega8535.h>
#include <delay.h>
void main(void)

{
DDRB = 0x00;
PORTB = 0xff;
DDRA = 0xff;
PORTA = 0xff;
while (1)
{
if (PINB.0 == 0)
if (PINB.1 == 0)
if (PINB.2 == 0)
if (PINB.3 == 0)
if (PINB.4 == 0)
if (PINB.5 == 0)
if (PINB.6 == 0)
if (PINB.7 == 0)
}
}

PORTA =0x00;
PORTA =0x81;
PORTA =0xc3;
PORTA =0xe7;
PORTA =0xe7;
PORTA =0xc3;
PORTA =0x81;
PORTA =0x00;

2. Buat program dengan tampilan pada seven segment dengan ketentuan sebagai berikut :
NPM Ganjil : hitung mundur dari 20-0 kemudian mati (tidak berulang).
NPM Genap : hitung naik dari 0-20 kemudian mati (tidak berulang).
jawab:

1. Program untuk NPM Genap


#include <mega8535.h>
#include <delay.h>
void main(void)
{
DDRA = 0xff;
PORTA = 0x00;
DDRB = 0xff;
PORTB = 0x00;
while (1)
{
(PORTA = 0x3f; PORTB = 0x3f; delay_ms(100);
PORTA = 0x06; PORTB = 0x3f; delay_ms(100);
PORTA = 0x5b; PORTB = 0x3f; delay_ms(100);
PORTA = 0x4f; PORTB = 0x3f; delay_ms(100);
PORTA = 0x66; PORTB = 0x3f; delay_ms(100);
PORTA = 0x6d; PORTB = 0x3f; delay_ms(100);
PORTA = 0x7d; PORTB = 0x3f; delay_ms(100);
PORTA = 0x07; PORTB = 0x3f; delay_ms(100);
PORTA = 0x7f;
PORTB = 0x3f; delay_ms(100);
PORTA = 0x6f;
PORTB = 0x3f; delay_ms(100);
PORTA = 0x3f;
PORTB = 0x06; delay_ms(100);
PORTA = 0x06;
PORTB = 0x06; delay_ms(100);
PORTA = 0x5b;
PORTB = 0x06; delay_ms(100);
PORTA = 0x4f;
PORTB = 0x06; delay_ms(100);
PORTA = 0x66;
PORTB = 0x06; delay_ms(100);
PORTA = 0x6d;
PORTB = 0x06; delay_ms(100);
PORTA = 0x7d;
PORTB = 0x06; delay_ms(100);
PORTA = 0x07;
PORTB = 0x06; delay_ms(100);
PORTA = 0x7f;
PORTB = 0x06; delay_ms(100);
PORTA = 0x6f;
PORTB = 0x06; delay_ms(100);
PORTA = 0x3f;
PORTB = 0x5b; delay_ms(100);
}

}
Modul 2
1. Buatlah program untuk menampilkan tulisan TE-UNRIKA pada LCD dimana tulisan tersebut
akan bergerak hingga menempati posisi yang sama namun pada baris ke-2.
Ilustrasi :
T

T
K

Jawab :

Program :
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0x15 ; // PORTC sebagai output LCD
#endasm
#include <lcd.h>
void main(void)
{
lcd_init(16);
{
lcd_gotoxy(0,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(1,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(2,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(3,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(4,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(5,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(6,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(7,0);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(8,0);
lcd_putsf("TE-UNRIK");
lcd_gotoxy(0,1);
lcd_putsf("A");

delay_ms(100);
lcd_clear();
lcd_gotoxy(9,0);
lcd_putsf("TE-UNRI");
lcd_gotoxy(0,1);
lcd_putsf("KA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(10,0);
lcd_putsf("TE-UNR");
lcd_gotoxy(0,1);
lcd_putsf("IKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(11,0);
lcd_putsf("TE-UN");
lcd_gotoxy(0,1);
lcd_putsf("RIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(12,0);
lcd_putsf("TE-U");
lcd_gotoxy(0,1);
lcd_putsf("NRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(13,0);
lcd_putsf("TE-");
lcd_gotoxy(0,1);
lcd_putsf("UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(14,0);
lcd_putsf("TE");
lcd_gotoxy(0,1);
lcd_putsf("-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(15,0);
lcd_putsf("T");
lcd_gotoxy(0,1);
lcd_putsf("E-UNRIKA");
delay_ms(100);
lcd_clear();
lcd_gotoxy(1,1);
lcd_putsf("TE-UNRIKA");
delay_ms(100);
}
}

2. Buat program menampilkan 2 buah karakter yang diinputkan melalui keypad pada LCD
dengan tampilan sebagai berikut :
Contoh :
K

Jawab:

Program :
#include <mega8535.h>
#include <delay.h>
void main(void)
{
DDRB = 0x00;
PORTB = 0xff;
DDRA = 0xff;
PORTA = 0xff;
while (1)
{
if (PINB.0 == 0) PORTA =0x00;
if (PINB.1 == 0) PORTA =0x81;
if (PINB.2 == 0) PORTA =0xc3;
if (PINB.3 == 0) PORTA =0xe7;
if (PINB.4 == 0) PORTA =0xe7;
if (PINB.5 == 0) PORTA =0xc3;
if (PINB.6 == 0)
PORTA =0x81;
if (PINB.7 == 0)
PORTA =0x00;
}
}

Modul 3

1. Modifikasi program 3.2 pada modul praktikum sehingga dapat membaca 2 sumber input
analog dan ditampilkan pada LCD. Baris 1 LCD menampilkan data digital Analog1 dan baris 2
LCD menampilkan data digital Analog2 !
2. Buat program untuk menampilkan data analog dan data digital dari analog input dengan
memanfaatkan fasilitas ADC dengan resolusi 10 bit (pin ADC yang digunakan terserah) !

Modul 4
1. Buat program untuk menyalakan LED selama delay 300 mili detik dimana program delay
memanfaatkan fasilitas timer 0 pada ATMega 8535 dengan pola LED 11110000 kemudian
00001111 (definisikan asumsi-asumsi yang anda gunakan) !
2. Buat program menggunakan interupsi eksternal 0 dan 1 dengan ketentuan sebagai
berikut :
Program utama :
Menampilkan nyala LED yang terhubung dengan port C dengan pola 00110011
ISR INT0 :
Menampilkan LED berjalan ke kiri (rotate left) dimana LED terhubung dengan port D.
ISR INT1 :
Menampilkan nyala LED yang terhubung dengan port D dengan pola 00001111 selama
300 mili detik kemudian pola 01010101 dengan delay yang sama.

You might also like