A. Gambar Rangkaian [kembali]
B. Prinsip Kerja [kembali]
Program ini memerlukan deklarasi
register untuk mikrokontroler jenis AT89x51. Setelah mendeklarasi register,
program akan masuk ke dalam perogram utama. Pada program utama terdapat
pendeklarasian variabel data1. Data1 berfungsi untuk mengambil nilai dari ADC0804.
Selanjutnya, mode timer diaktifkan dan memanggil prosedur menyalakan LCD. LCD
akan mengeluarkan data tulisan, lalu mikrokontroler membaca nilai ADC dan
ditampilkan ke mikrokontroler.
#include <at89x51.h>
#include "lcd.h"
idata at 0x50 unsigned int i;
idata at 0x51 unsigned int k;
void PowerOn()
{
unsigned char inner, outer;
for (outer = 0x00; outer < 0x10; outer++)
{
for (inner = 0x00; inner < 0xFF; inner++);
}
LCD_init();
for (inner = 0; inner < 10; inner++)
LCD_delay(2);
}
void send2lcd(unsigned char value)
{
unsigned char buf = 0;
buf = value & 0xF0; /* Filter for high byte */
buf = (buf>>4)|(0x30); /* Convert to ascii code */
LCD_putc(buf); /* Show on LCD */
buf = value & 0x0F; /* Filter for low byte */
buf = buf | 0x30; /* Convert to ascii code */
LCD_putc(buf); /* Show on LCD */
}
void tunda(unsigned int j)
{
while(j)
{
TH0=0xfc;
TL0=0x65;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
j--;
}
}
void main()
{
int data1;
TMOD=0x11;
PowerOn();
LCD_row1(); LCD_puts(" HALO ");
LCD_row2(); LCD_puts(" TEKNIK ");
LCD_delay(2);
LCD_row1(); LCD_puts(" TEKNIK ELEKTRO");
LCD_row2(); LCD_puts(" UNAND ");
while(1)
{
LCD_clear();
LCD_row1(); LCD_puts("NILAI ADC");
P3 = 0x00;
data1 = P0;
P3 = 0x0F;
LCD_command(0xC6); /* Set LCD cursor at (2,6) */
send2lcd(data1); /* Show month on LCD */
tunda (1000);
}
}
#include "lcd.h"
idata at 0x50 unsigned int i;
idata at 0x51 unsigned int k;
void PowerOn()
{
unsigned char inner, outer;
for (outer = 0x00; outer < 0x10; outer++)
{
for (inner = 0x00; inner < 0xFF; inner++);
}
LCD_init();
for (inner = 0; inner < 10; inner++)
LCD_delay(2);
}
void send2lcd(unsigned char value)
{
unsigned char buf = 0;
buf = value & 0xF0; /* Filter for high byte */
buf = (buf>>4)|(0x30); /* Convert to ascii code */
LCD_putc(buf); /* Show on LCD */
buf = value & 0x0F; /* Filter for low byte */
buf = buf | 0x30; /* Convert to ascii code */
LCD_putc(buf); /* Show on LCD */
}
void tunda(unsigned int j)
{
while(j)
{
TH0=0xfc;
TL0=0x65;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
j--;
}
}
void main()
{
int data1;
TMOD=0x11;
PowerOn();
LCD_row1(); LCD_puts(" HALO ");
LCD_row2(); LCD_puts(" TEKNIK ");
LCD_delay(2);
LCD_row1(); LCD_puts(" TEKNIK ELEKTRO");
LCD_row2(); LCD_puts(" UNAND ");
while(1)
{
LCD_clear();
LCD_row1(); LCD_puts("NILAI ADC");
P3 = 0x00;
data1 = P0;
P3 = 0x0F;
LCD_command(0xC6); /* Set LCD cursor at (2,6) */
send2lcd(data1); /* Show month on LCD */
tunda (1000);
}
}
D. Flowchart [kembali]
E. Link Download [kembali]
File Program silahkan download disini
File Rangkaian silahkan download disini
HTML silahkan download disini


No comments:
Post a Comment