Saturday, 8 December 2012

Sistem Minimum AT89S52

Sistem Minimum AT89S52

mikro
Walaupun dikatakan sebagai sebuah komponen lengkap dan kompak, mikrokontroler tetap saja membutuhkan rangkaian pendukung agar mikrokontroler dapat bekerja. Rangakaian minimun yang dibutuhkan oleh mikrokontroler ini kemudian dikenal sebagai sistem minimum (sismin) mikrokontroler.

Sismin mikrokontroler dirancang untuk memenuhi kebutuhan karakteristik mikrokontroler. Kebutuhan karakteristik ini ditentukan oleh pabrikan mikrokontroler tersebut dan dapat kita baca pada datasheet, oleh karena itu sismin mikrokontroler berbeda beda tergantung merk dan jenis dari mikrokontroler tersebut, walaupun biasanya perbedaan anatara satu tipe dengan tipe lainnya tidak terlalu jauh. Dalam tulisan ini akan dibahas tentang sistem minimum mikrokontroler keluaran atmel tipe AT89S52.
Ada beberapa blok dasar yang harus ada pada sismin mikrokontroler AT89S52 yaitu :
  1. Blok mikrokontroler
  2. Blok catu daya
  3. Blok clock
  4. Blok reset
Blok mikrokontroler adalah blok untuk memasang mikrokontroler itu sendiri. Pada seri AT89S52 di port 0 harus dipasang resistor pullup sebesar 10 K ohm.
Sebagai sebuah komponen elektronika maka mikrokontroler pasti memerlukan blok catu daya sebagai rangakaian penyuplai energi. Rangkaian blok catu daya sendiri tidak bersifat baku, melainkan tergantung dari sumber catuan yang tersedia.
Mikrokontroler AT89s52 membutuhkan catuan arus searah (DC) sebesar 4.0Volt sampai 5.5 Volt. Maka rangkaian catu daya yang di hubungkan pada mikrokontroler harus dapat memenuhi kriteria tersebut.
catu daya
Blok clock sendiri menentukan kecepatan akses dari mikrokontroler, semakin besar frekuensi clock yang digunakan, amaka semakin cepat mikrokontroler mengeksekusi intruksi-instruksi yang dijalankan.
clock
Blok reset sendiri berfungsi untuk mereset mikrokontroler.
reset
Sumber : datasheet mikrokontroler AT89S52

Sunday, 21 October 2012

Menampilkan BMP menggunakan Turbo Pascal

Uses graph,crt;
{$f+}
function detectvga256:integer;
var vid:integer;
begin
  vid:=2;
  detectvga256:=vid;
  if vid=0 then
end;
{$f-}
procedure vklop(mode:integer);
var autodetect:pointer;gd,gm:integer;
begin
  autodetect:=@detectvga256;
  gd:=installuserdriver('svga256',autodetect);
  gd:=detect;gm:=mode;
  initgraph(gd,gm,'');
  putpixel(0,200,0);
end;
Procedure Pal(Col,R,G,B : Byte); assembler;
  { This sets the Red, Green and Blue values of a certain color }
asm
   mov    dx,3c8h
   mov    al,[col]
   out    dx,al
   inc    dx
   mov    al,[r]
   out    dx,al
   mov    al,[g]
   out    dx,al
   mov    al,[b]
   out    dx,al
end;
Procedure LoadBMP256(x,y:Integer;ime:String);
  Var f:file;
      bmp_x, bmp_y: Word;
      bmp_p: Pointer;ph,pl:Word;
      i,x1,y1:integer;
      r,g,b,n:Byte;
  Begin
    Assign(f, ime);
    Reset(f,1);
      seek(f,18);blockread(f,bmp_x,2);
      seek(f,22);blockread(f,bmp_y,2);
      GetMem(bmp_p,bmp_x+40);ph:=seg(bmp_p^);pl:=ofs(bmp_p^);
      mem[ph:pl]:=(bmp_x-2) mod $ff;mem[ph:pl+1]:=(bmp_x-2) div $ff;mem[ph:pl+2]:=0;mem[ph:pl+3]:=0;
      seek(f,54);
      for i:=0 to 255 do
      begin
        blockread(f,b,1);blockread(f,g,1);blockread(f,r,1);blockread(f,n,1);
        pal(i,r div 4,g div 4,b div 4);
      end;
      seek(f,1078);
      for i:=1 To bmp_y Do
      Begin
        blockread(f,mem[ph:pl+4],bmp_x+2);
        {for x1:=0 to bmp_x-1 do putpixel(x+x1,y+bmp_y-i,mem[ph:pl+4+x1]);}
        putimage(x,y+bmp_y-i,bmp_p^,normalput);
      End;
      FreeMem(bmp_p,bmp_x+40);
    Close(f);
  End;
Var i:integer;
Begin
  vklop(2);
  setcolor(14);
  for i:=0 to 255 do begin setcolor(i);line(i,0,i,10);end;
  setcolor(30);outtextxy(0,15,'256 barv');
  LoadBMP256(100,30,'img256.bmp');
  readkey;
  closegraph;
End.


PROGRAM HYPERTERMINAL TURBO C BY ADRI FD

PROGRAM HYPERTERMINAL MENGGUNAKAN TURBO C BY ADRI FAKHRI D

#include <dos.h>
#include <conio.h>
#include <stdio.h>

#define PORT1 0X3F8

/*
KETERANGAN:
COM1 0X3F8
COM2 OX2F8
COM3 0X3E8
COM4 0X2E8
*/

void main(void)
{

int c;
int ch;
outportb(PORT1+1,0); //matikan interupt port 1
outportb(PORT1+3,0X80); //set dlab on
outportb(PORT1+0,0X0C);
/* SETTING BAUDRATE PORT1+0
0X01=115,200 BPS
0X02=57,600 BPS
0X06=19,200 BPS
0X0C=9,600 BPS
0X18=4,800 BPS
0X30=2,400 BPS
*/

outportb(PORT1+1,0X00); //Set baudrate -divisor latch high byte
outportb(PORT1+3,0X03); //8 Bit , No Paritiy, 1 Stop Bit
outportb(PORT1+2,0XC7); //FIFO control register
outportb(PORT1+4,0X0B); //Turn on DTR,RTS dan Out2

clrscr();
gotoxy(25,1); printf("PROGRAM CHECK KOMUNIKASI SERIAL \n");
gotoxy(38,2); printf("RS232 \n");
gotoxy(30,3); printf("ADRI FAKHRI DHAIFULLAH \n");
gotoxy(31,4); printf("PRESS ESC TO QUIT \n\n");
gotoxy(38,5); printf("COM1\n\n\n");

do
{
c=inportb(PORT1+5);

if (c&1)
{
ch=inportb(PORT1);
printf("%c",ch);
}

if (kbhit())
{
ch=getch();
outportb(PORT1,ch);
}

}

while(ch!=27);

}

CARA MENGGUNAKAN VSPE


CARA MENGGUNAKAN VSPE SEBAGAI SOFTWARE YANG DIGUNAKAN UNTUK MEMBUAT VIRTUAL SERIAL PORT
BY ADRI FAKHRI DHAIFULLAH


1. Buka VSPE (Virtual Serial Port Emulator)
2. Jika sudah terbuka,tampilan awal VSPE akan tampak seperti gambar dibawah ini

3. Klik Tombol Create New Device , atau Klik mebu bar  Device >Create


4. Pilih Device Type : Pair , Kemudian Klik Next Untuk Melanjutkan


5.Pilih Alamat serial port yang akan dijadikan sebagi PORT Virtual , Jika sudah Klik Finish


6. Berikut ini merupakan tampilan jika sudah beres di seting



Thursday, 18 October 2012