Akhirnya saya dapat mengupdate ini blog saya cuma nambahin ini contoh program untuk yg pengen make sensor pink maaf klo ad email yg ngak bisa saya jawab soalnya kadang sibuk
$regfile = "m8535.dat"
$lib "lcd4busy.Lbx"
$crystal = 8000000
Config Lcd = 16 * 2
Const _lcdport = Portd
Const _lcdddr = Ddrd
Const _lcdin = Pind
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Cursor Off
Config Portb.2 = Output
Dim Waktu As Word
Dim Jarak As Single
Dim Karakter As String * 6
Const Kecepatan = 34.4
Const Satuan_waktu = 1.0875
Ping Alias Portb.2
Wait 1
Cursor Off
Cls
Locate 1 , 1 : Lcd "="
Locate 2 , 1 : Lcd "jarak ="
Do
Counter0 = 0
Set Ping
nop
nop
nop
Reset Ping
Delay
Delay
Delay
Delay
Delay
Delay
Delay
Set Ping
nop
nop
nop
Bitwait Ping , Set
Start Timer0
Bitwait Ping , Reset
Stop Timer0
Reset Ping
Waktu = Counter0
Jarak = Satuan_waktu * Waktu
Jarak = Jarak / 2000
Karakter = Fusing(jarak , "##.##")
Locate 1 , 8 : Lcd " "
Locate 1 , 8 : Lcd Karakter ; "ms"
Jarak = Jarak * Kecepatan
Karakter = Fusing(jarak , "###.##")
Locate 2 , 8 : Lcd " "
Locate 2 , 8 : Lcd Karakter ; "cm"
Waitms 250
Print Jarak
Loop
End
Entri Populer
-
MIKROKONTROLLER ATMEGA 8535 Mikrokontroler adalah IC y a ng dapat diprogram berulang kali, baik ditulis atau dihapus ...
-
$regfile = "m8535.dat" $crystal = 8000000 $baud = 9600 Config Pina.2 = Input 'inisialisai port yang dig...
-
Pada saat ini mungkin telah banyak orang-orang yang lebih pintar dari saya dalam bhs pemograman namun saya cuma mau share aja contoh program...
Minggu, 15 Mei 2011
Minggu, 13 Maret 2011
Contoh Program bascom untuk menyalakan motor
$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600
Config Pina.2 = Input 'inisialisai port yang digunakan sebagai input/ masukkan
Config Pina.3 = Input
Config Pina.4 = Input
Config Porta.0 = Output
Config Porta.1 = Output
Motor_a Alias Porta.0 'inisialisasi port yang digunakan sebagai motor
Motor_b Alias Porta.1
Interrupt Alias Pina.7
Switch_open Alias Pina.2
Switch_close Alias Pina.3
Reset Motor_a
Reset Motor_b
Motor_a = 1 'motor_a berputar
Bitwait Switch_open , Set 'berputar sampai dengan limitswich tertekan
Motor_a = 0 'motor_a mati setelah limitswich ditekan
Bitwait Interrupt , Set
Cls
Locate 1 , 6
Lcd "WELCOME"
Do
Loop Until Interrupt = 0
Motor_b = 1
Bitwait Switch_close , Set
Motor_b = 0
end
initinya program diatas adalah menggerakkan motor dc dengan dua arah dimana motor_a adalah untuk searah jarum jam sedangkan motor_b sebaliknya. diamana ditambahkan pula limitswich sebagai pembatas pintu maklum aplikasi program ini untuk buka tutup pintu otomatis klo ngak ganti pake push button bisa juga kok sedangkan interrupt digunakan untuk optocoupler yang berguna untuk mendeteksi orang lewat. jadi secara keseluruhan program ini yaitu pertama motor berputar sampai limitswich tertekan lalu berhenti kemudian menunggu perintah dari optocoupler yaitu pina.7 setelah itu motor berputar sampai mendapatkan masukkan dari limitswich kedua setelah itu motor berhenti selesai deh program nya
mohon maaf klo ada yang salah /kurang jelas Terimakasih
$crystal = 8000000
$baud = 9600
Config Pina.2 = Input 'inisialisai port yang digunakan sebagai input/ masukkan
Config Pina.3 = Input
Config Pina.4 = Input
Config Porta.0 = Output
Config Porta.1 = Output
Motor_a Alias Porta.0 'inisialisasi port yang digunakan sebagai motor
Motor_b Alias Porta.1
Interrupt Alias Pina.7
Switch_open Alias Pina.2
Switch_close Alias Pina.3
Reset Motor_a
Reset Motor_b
Motor_a = 1 'motor_a berputar
Bitwait Switch_open , Set 'berputar sampai dengan limitswich tertekan
Motor_a = 0 'motor_a mati setelah limitswich ditekan
Bitwait Interrupt , Set
Cls
Locate 1 , 6
Lcd "WELCOME"
Do
Loop Until Interrupt = 0
Motor_b = 1
Bitwait Switch_close , Set
Motor_b = 0
end
initinya program diatas adalah menggerakkan motor dc dengan dua arah dimana motor_a adalah untuk searah jarum jam sedangkan motor_b sebaliknya. diamana ditambahkan pula limitswich sebagai pembatas pintu maklum aplikasi program ini untuk buka tutup pintu otomatis klo ngak ganti pake push button bisa juga kok sedangkan interrupt digunakan untuk optocoupler yang berguna untuk mendeteksi orang lewat. jadi secara keseluruhan program ini yaitu pertama motor berputar sampai limitswich tertekan lalu berhenti kemudian menunggu perintah dari optocoupler yaitu pina.7 setelah itu motor berputar sampai mendapatkan masukkan dari limitswich kedua setelah itu motor berhenti selesai deh program nya
mohon maaf klo ada yang salah /kurang jelas Terimakasih
Jumat, 11 Februari 2011
Program Bascom AVR untuk cek serial
nah sekarang gw postingin program cek serial, klo kita punya Minsys (minimum system) yang pake AVR nih programnya gampang kok tinggal hubungin mikro kekomputer dengAN menggunakan db9 jgn lupa buka dikomputer pake hyperterminal jg lupa programnya didownload kemikro klo ada pertanyaan Tulis di Comment or email ke argit_wanto@yahoo.co.id
$regfile = "m8535.dat" ' we use the M48
$crystal = 8000000
$baud = 9600
Open "comd.3:19200,8,n,1" For Output As #1 'open port for tx and rx external
Open "comd.2:19200,8,n,1" For Input As #2
Do
Print "bismillah"
Print #1 , "Bismillah"
Loop
Open "comd.3:19200,8,n,1" For Output As #1 digunakan untuk mengubuka port mikro ke komputer agar mau ngirimim data berupa tulisan bismillah klo suskes
ini program cuma untuk mengetahui apakah komunikasi serial mikro dapat digunakan atau tidak
Terima kasih
$regfile = "m8535.dat" ' we use the M48
$crystal = 8000000
$baud = 9600
Open "comd.3:19200,8,n,1" For Output As #1 'open port for tx and rx external
Open "comd.2:19200,8,n,1" For Input As #2
Do
Print "bismillah"
Print #1 , "Bismillah"
Loop
Open "comd.3:19200,8,n,1" For Output As #1 digunakan untuk mengubuka port mikro ke komputer agar mau ngirimim data berupa tulisan bismillah klo suskes
ini program cuma untuk mengetahui apakah komunikasi serial mikro dapat digunakan atau tidak
Terima kasih
Selasa, 08 Februari 2011
Belajar program Smart card (contactless Smart card)
smart card atau kartu pintar, (kartu aja bisa pintar masa manusia ngak bisa pintar) Hehheh
disini saya akan berbagi ilmu tentang cara memprogram smart card, smartcard yg saya gunakan adalah jenis mifare dengan kapasitas 1kb, dan tag acr 120s dan sebuah program yang dapat mengirimkan nilai -heksa
seperti Advance Serial Port, Hercules, Dlll dapat dicari di google
pertama program untuk mendapatkan Station ID
station id penting karena untuk select card, login dibutuhkan id untuk mengaksesnya
disini saya akan berbagi ilmu tentang cara memprogram smart card, smartcard yg saya gunakan adalah jenis mifare dengan kapasitas 1kb, dan tag acr 120s dan sebuah program yang dapat mengirimkan nilai -heksa
seperti Advance Serial Port, Hercules, Dlll dapat dicari di google
pertama program untuk mendapatkan Station ID
Hex | 02 FF 01 67 99 03 |
Answer | Station ID (1 byte) |
Get Serial Number / Select Instruksi ini digunakan untuk mengetahui ID dari tiap – tiap MIFARE, instruksi ini harus dilakukan sebelum melakukan login pada kartu MIFARE. Kartu harus berada dalam jangkauan reader agar mendapatkan balasan dari reader.
Tabel 3.11 Data Select Card
Hex | 02 01 01 73 73 03 |
Answer | 02 00 04 nn nn nn nn cc 03 |
| 02 00 01 46 47 03(Fail) |
| 02 00 01 4e 4f 03 (No card) |
Login Untuk melakukan proses read, write atau lainnya pada blok harus dilakukan login terlebih dahulu ke sektor di mana blok tersebut berada. Jika telah melakukan login ke sebuah sektor tersebut dapat diproses dengan instruksi berbeda beberapa kali tanpa perlu login lagi selama kartu masih dalam jarak baca reader. Jika kartu telah keluar dari jangkauan reader maka harus dilakukan select dan login kembali ke sektor tersebut. Begitu pula jika ingin melakukan proses di sektor lain maka harus dilakukan kembali instruksi select dan login.
Berikut adalah contoh untuk login pada sektor 1 dari kartu MIFARE :
Tabel 3.12 Data Login Card
Hex | 02 01 04 6C 01 FF 0D 9a 03 |
Answer | 02 01 01 4c 4d 03 (Success) |
| 02 01 01 4e 4f 03 (No Card) |
| 02 01 01 46 47 (fail / Error) |
Write Blok Instruksi write dilakukan pada blok tertentu dan harus sesuai pada sektornya. Sebagai contoh untuk write pada blok 04H sektor 1 data 00112233 dapat dilakukan seperti berikut:
Tabel 3.13 Data Write Block
Hex | 02 01 06 77 04 00 11 22 33 74 03 |
Answer | 02 00 10 (16 bytes of data) cc 03 |
Read blok Sama seperi istruksi write, instruksi read juga dilakukan pada blok yang diinginkan sesuai dengan login sektornya.
Tabel 3.14 Data Read Blok
Hex | 02 01 02 72 04 75 03 |
Answer | 02 00 10 (16 bytes of data) cc 03 |
Cukup sekian dulu saya juga masih belajar mudah mudahan bermanfaat
Rabu, 02 Februari 2011
ATMEGA 8535 dan Fungsi-fungsinya
MIKROKONTROLLER ATMEGA 8535
Mikrokontroler adalah IC yang dapat diprogram berulang kali, baik ditulis atau dihapus (Agus Bejo, 2007). Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.
Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR (Alf and Vegard’s Risc processor) ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Mikrokontroler AVR ATmega8535 memiliki fitur yang cukup lengkap. Mikrokontroler AVR ATmega8535 telah dilengkapi dengan ADC internal, EEPROM internal, Timer/Counter, PWM, analog comparator, dll (M.Ary Heryanto, 2008). Sehingga dengan fasilitas yang lengkap ini memungkinkan kita belajar mikrokontroler keluarga AVR dengan lebih mudah dan efisien, serta dapat mengembangkan kreativitas penggunaan mikrokontroler ATmega8535.
Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai berikut:
1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.
2. ADC internal sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. SRAM sebesar 512 byte.
6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
7. Port antarmuka SPI
8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
9. Antarmuka komparator analog.
10. Port USART untuk komunikasi serial.
11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
12. Dan lain-lainnya.
2.6.1 Konstruksi ATmega8535
Mikrokontroler ATmega8535 memiliki 3 jenis memori, yaitu memori program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.
a. Memori program
ATmega8535 memiliki kapasitas memori progam sebesar 8 Kbyte yang terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi.
b. Memori data
ATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi 3 bagian yaitu register serba guna, register I/O dan SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register I/O yang dapat diakses sebagai bagian dari memori RAM (menggunakan instuksi LD atau ST) atau dapat juga diakses sebagai I/O (menggunakan instruksi IN atau OUT), dan 512 byte digunakan untuk memori data SRAM.
c. Memori EEPROM
ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM Address, register EEPROM Data, dan register EEPROM Control. Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data eksternal, sehingga waktu eksekusinya relatif lebih lama bila dibandingkan dengan mengakses data dari SRAM.
ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat dikonfigurasi, baik secara single ended input maupun differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel, sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.
ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 1 buah timer/counter 16 bit. Ketiga modul timer/counter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu, semua timer/counter juga dapat difungsikan sebagai sumber interupsi. Masing-masing timer/counter ini memiliki register tertentu yang digunakan untuk mengatur mode dan cara kerjanya.
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial syncrhronous kecepatan tinggi yang dimiliki oleh ATmega8535. Universal Syncrhronous and Asyncrhronous Serial Receiver and Transmitter (USART) juga merupakan salah satu mode komunikasi serial yang dimiliki oleh ATmega8535. USART merupakan komunikasi yang memiliki fleksibilitas tinggi, yang dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART.
USART memungkinkan transmisi data baik secara syncrhronous maupun asyncrhronous, sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada ATmega8535, secara umum pengaturan mode syncrhronous maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada mode asyncrhronous masing-masing peripheral memiliki sumber clock sendiri, maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama-sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya membutuhkan 2 pin yaitu TXD dan RXD, sedangkan untuk mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK.

Gambar 2.5 Konfigurasi Pin Atmega 8535
Konfigurasi pin ATmega8535 dengan kemasan 40 pin DIP (Dual Inline Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merukan pin Ground.
3. Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.
4. Port B (PortB0…PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus, seperti dapat dilihat pada tabel di bawah ini.
Tabel 2.6 Fungsi Khusus Port B
Pin | Fungsi Khusus |
PB7 | SCK (SPI Bus Serial Clock) |
PB6 | MISO (SPI Bus Master Input/ Slave Output) |
PB5 | MOSI (SPI Bus Master Output/ Slave Input) |
PB4 | SS (SPI Slave Select Input) |
PB3 | AIN1 (Analog Comparator Negative Input) OC0 (Timer/Counter0 Output Compare Match Output) |
PB2 | AIN0 (Analog Comparator Positive Input) INT2 (External Interrupt 2 Input) |
PB1 | T1 (Timer/ Counter1 External Counter Input) |
PB0 | T0 T1 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output) |
2. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.7 Fungsi Khusus Port C
Pin | Fungsi khusus |
PC7 | TOSC2 ( Timer Oscillator Pin2) |
PC6 | TOSC1 ( Timer Oscillator Pin1) |
PC5 | Input/Output |
PC4 | Input/Output |
PC3 | Input/Output |
PC2 | Input/Output |
PC1 | SDA ( Two-wire Serial Buas Data Input/Output Line) |
PC0 | SCL ( Two-wire Serial Buas Clock Line) |
6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti yang terlihat pada tabel dibawah ini.
Tabel 2.8 Fungsi Khusus Port D
Pin | Fungsi khusus |
PD7 | OC2 (Timer/Counter Output Compare Match Output) |
PD6 | ICP (Timer/Counter1 Input Capture Pin) |
PD5 | OC1A (Timer/Counter1 Output Compare A Match Output) |
PD4 | OC1B (Timer/Counter1 Output Compare B Match Output) |
PD3 | INT1 (External Interrupt 1 Input) |
PD2 | INT0 (External Interrupt 0 Input) |
PD1 | TXD (USART Output Pin) |
PD0 | RXD (USART Input Pin) |
Langganan:
Postingan (Atom)