Blog Presentasi.
Presentasi Praktikum mengenai modul 1 percobaan motor stepper kondisi nomor 12

Aplikasi Timer PIC




TIMER PIC
Prosedur Percobaan:
1. Pastikan semua supply dalam keadaan off
2. Hubungkan jumper seperti rangkaian dibawah
3. Buatlah listing program yang telah ada pada modul
4. periksakan rangkaian kepada asisten yang mengawas
5. Hidupkan semua supply
6. Upload program dari laptop ke modul
7. Tekan tombol Reset
8. Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
9. Jika sesuai, maka selesai dan demokan pada asisten yang mengawas
10.Jelaskan prinsip kerja + program dan hubungan keduanya kepada asisten
11.Demokan ke pembimbing praktikum
12.Matikan supply


1. Rangkaian Simulasi [kembali]
Rangkaian di atas merupakan rangkaian sederhana dari penggunaan Fungsi timer dari PIC 16F877a. pada rangkaian terdapat LCD yang akan menampilkan penambahan waktu. yang ditampilkan pada LCD adalah Waktu jam, menit dan detik yang akan berjalan jika simulasi dihidupkan.

2. Listing Program [kembali]
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

char a=0, jam=0, menit=0, detik=0;         // deklarasi dan isi variabel
char detikpul, detiksat, menitpul, menitsat, jampul, jamsat;     // deklarasi variabel
void PrintToDisplay(){                     // fungsi mencetak ke layar

jampul=jam/10;                             // mendapatkan nilai puluhan jam
jamsat=jam%10;                             // mendapatkan nilai satuan jam
menitpul=menit/10;                         // mendapatkan nilai puluhan menit
menitsat=menit%10;                         // mendapatkan nilai satuan menit
detikpul=detik/10;                         // mendapatkan nilai puluhan detik
detiksat=detik%10;                         // mendapatkan nilai satuan menit
Lcd_out(1,1,"Waktu: : : ");                // cetak ke layar
Lcd_Chr(1,7,jampul+48);                    // cetak nilai puluhan jam ke LCD
Lcd_Chr_Cp(jamsat+48);                     // cetak nilai satuan jam ke LCD
Lcd_Chr_Cp(':');                           // cetak ke LCD
Lcd_Chr_Cp(menitpul+48);                   // cetak nilai puluhan menit ke LCD
Lcd_Chr_Cp(menitsat+48);                   // cetak nilai satuan menit ke LCD
Lcd_Chr_Cp(':');                           // cetak ke LCD
Lcd_Chr_Cp(detikpul+48);                   // cetak nilai puluhan detik ke LCD
Lcd_Chr_Cp(detiksat+48);                   // cetak nilai satuan detik ke LCD
delay_ms(10);                              // delay 10 ms
}

void interrupt(){                             // aktifkan interrupt
if(a<125){                                    // jika a<125, maka
a++;INTCON=0xa0;TMR0=131;}                    //  tambah a, aktifkan TMR0, isi TMR0
else{                                         // jika tidak, maka
a=0;                                          // a diisi 0
if(detik<59){                                 // jika detik<59, maka
detik++;INTCON=0xa0;TMR0=131;}                // detik+1, aktifkan TMR0, isi TMR0

else {detik=0;                                // jika detik = 0, maka
if(menit<59)                                  // jika menit<59, maka
{menit++; INTCON=0xa0; TMR0=131;}             // menit+1, aktifkan TMR0, isi TMR0
else{menit=0;                                 // jika jika tidak,menit=0

if (jam<11){                                  // jika jam<59, maka
jam++; INTCON=0xa0; TMR0=131;}                // jam+1, aktifkan TMR0, isi TMR0

else{                                         // jika tidak
jam=0; INTCON=0xa0; TMR0=131;}                // jam=0 , aktifkan TMR0, isi TMR0
}
}
}
}

void main(){
Lcd_init();                                   // Inisialisasi LCD
Lcd_Cmd(_LCD_CLEAR);                          // bersihkan layar LCD
Lcd_Cmd(_LCD_CURSOR_OFF);                     // matikan cursor LCD
TRISB=0x00;                                   // PORTB sebagai output
OPTION_REG=0x86;                              // Input clock internal 8Mhz, Prescalar 1:128
TMR0=131;                                     // isi nilai TMR0
INTCON=0xa0;                                  // aktifkan TMR0;
do{
PrintToDisplay();                             // panggil fungsi
}
while(1);                                     // loop

}

3. Video [kembali]

4. Link Download [kembali]
File HTML - Download
File Proteus - Download
File Program - Download
File Video - Download
Abdian Abdian Author

About



Selamat datang di catatan kecilku.


Nama saya Abdian Hadi Pasmai - Saya berasal dari Bengkulu. Saat ini saya melanjutkan pendidikan sebagai mahasiswa Teknik Elektro di perguruan tinggi Universitas Andalas. Blog ini adalah tempat saya bercerita mengenai apa yang saya alami. enjoy it!