Timer
Timer
1. Tujuan [kembali]
- Mengetahu prinsip kerja Timer
- Mengetahui Prinsip Kerja Lm35
- Mengetahui karakteristik LCD
- Bagaimana cara kerja sensor agar bisa berfungsi
2. Alat dan Bahan [kembali]
- PIC 18F45J10
- Button
- Crystal
- Seven Segment
- Resistor (potensiometer)
- Switch
- Jumper
- Kapasitor
- LM35
- LCD 16*2
- dll.
3. Dasar Teori [kembali]
1. PIC18F45J10 adalah salah satu produk terbaru dari Microchip . Ini menampilkan semua komponen yang biasanya dimiliki mikrokontroler modern. Untuk harga murah, beragam aplikasi, kualitas tinggi dan ketersediaan yang mudah, ini adalah solusi ideal untuk aplikasi seperti: pengendalian berbagai proses di industri, perangkat kontrol mesin, pengukuran nilai yang berbeda, dll. Beberapa fitur utamanya adalah tercantum di bawah ini.
1. PIC18F45J10 adalah salah satu produk terbaru dari Microchip . Ini menampilkan semua komponen yang biasanya dimiliki mikrokontroler modern. Untuk harga murah, beragam aplikasi, kualitas tinggi dan ketersediaan yang mudah, ini adalah solusi ideal untuk aplikasi seperti: pengendalian berbagai proses di industri, perangkat kontrol mesin, pengukuran nilai yang berbeda, dll. Beberapa fitur utamanya adalah tercantum di bawah ini.
- Arsitektur RISC
- Hanya 35 petunjuk untuk belajar
- Semua instruksi siklus tunggal kecuali cabang
- Frekuensi operasi 0-20 MHz
- Osilator internal presisi
- Pabrik dikalibrasi
- Rentang frekuensi perangkat lunak yang dipilih 8MHz sampai 31KHz
- Power supply voltage 2.0-5.5V
- Konsumsi: 220uA (2.0V, 4MHz), 11uA (2,0 V, 32 KHz) 50nA (mode siaga)
- Hemat Daya Mode Tidur
- Brown-out Reset (BOR) dengan pilihan kontrol perangkat lunak
- 35 pin input / output
- Sumber arus tinggi / sink untuk penggerak LED langsung
- perangkat lunak dan resistor pull-up yang dapat diprogram secara individual
- Pin Interrupt-on-Change
- Memori ROM 8K dalam teknologi FLASH
- Chip bisa diprogram ulang hingga 100.000 kali
- Opsi Pemrograman Serial-Circuit
- Chip yang bisa diprogram bahkan tertanam di perangkat target
- Memori EEPROM 256 byte
- Data bisa ditulis lebih dari 1.000.000 kali
- 368 byte memori RAM
- A / D converter:
- 14 saluran
- Resolusi 10 bit
- 3 timer / counter independen
- Pengatur waktu menonton anjing
- Modul komparator analog dengan
- Dua komparator analog
- Referensi tegangan tetap (0.6V)
- Referensi tegangan on-chip yang dapat diprogram
- Kontrol kemudi output PWM
- Modul USART yang disempurnakan
- Mendukung RS-485, RS-232 dan LIN2.0
- Auto-Baud Detect
- Master Synchronous Serial Port (MSSP)
- mendukung mode SPI dan I2C
2. Kapasitor
Kapasitor adalah suatu komponen elektronika yang berfungsi untuk menyimpan arus listrik sementara dalam bentuk muatan, selain itu kapasitor juga dapat digunakan sebagai penyaring frekuensi.
Kapasitas untuk menyimpan kemampuan kapasitor dalam muatan listrik disebut Farad (F) sedangkan simbol dari kapasitor adalah C (kapasitor).
sebuah kapasitor pada dasarnya terbuat dari dua buah lempengan logam yang saling sejajar satu sama lain dan diantara kedua logam tersebut terdapat bahan isolator yang sering disebut dielektrik.
3. Crystal
Kristal digunakan pada rangkaian elektronika yang berhubungan dengan pembangkitan frekuensi baik itu frekuensi tinggi, frekuensi suara, maupun frekuensi rendah.
4. button
Push Button adalah saklar tekan yang berfungsi sebagai pemutus atau penyambung arus listrik dari sumber arus ke beban listrik. Suatu sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan saklar tekan untuk emergency.
5. LM35
5. LM35
Sensor suhu IC LM 35 merupkan chip IC produksi Natioanal Semiconductor yang berfungsi untuk mengetahui temperature suatu objek atau ruangan dalam bentuk besaran elektrik, atau dapat juga di definisikan sebagai komponen elektronika yang berfungsi untuk mengubah perubahan temperature yang diterima dalam perubahan besaran elektrik. Sensor suhu IC LM35 dapat mengubah perubahan temperature menjadi perubahan tegangan pada bagian outputnya. Sensor suhu IC LM35 membutuhkan sumber tegangan DC +5 volt dan konsumsi arus DC sebesar 60 µA dalam beroperasi. Bentuk fisik sensor suhu LM 35 merupakan chip IC dengan kemasan yang berfariasi, pada umumnya kemasan sensor suhu LM35 adalah kemasan TO-92.
4. Simulasi [kembali]
5. Program [kembali]
Program [Download]
sbit LCD_RS at RD0_bit;
sbit LCD_RW at RC4_bit;
sbit LCD_EN at RD1_bit;
sbit LCD_D4 at RD2_bit;
sbit LCD_D5 at RD3_bit;
sbit LCD_D6 at RD4_bit;
sbit LCD_D7 at RD5_bit; //Pendeklarasian pin untuk LCD
sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_RW_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD4_bit;
sbit LCD_D7_Direction at TRISD5_bit;
sbit LCD_RW at RC4_bit;
sbit LCD_EN at RD1_bit;
sbit LCD_D4 at RD2_bit;
sbit LCD_D5 at RD3_bit;
sbit LCD_D6 at RD4_bit;
sbit LCD_D7 at RD5_bit; //Pendeklarasian pin untuk LCD
sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_RW_Direction at TRISC4_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD4_bit;
sbit LCD_D7_Direction at TRISD5_bit;
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
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
}
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
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(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
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
}
}
}
}
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
}
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
}
6. Video [kembali]
7. Link Download [kembali]
Rangkaian [Download]Program [Download]



Tidak ada komentar:
Posting Komentar