Program penampil LCD dengan LCD 16X2 HD44780 based controller. Program ini akan menampilkan tulisan berjalan kekiri. Dibuat dengan CodeVision AVR V.2.03.9. Program juga dilengkapi dengan simulasi menggunakan Proteus ISIS Simulation. Buka file *.DSN dengan proteus V7.4 SP 3 atau yang lebih baru. Silahkan dimanfaatkan untuk belajar :D dan bila ada pertanyaan, kritik atau saran post aja di kolom komentar. Atau bisa dengan mengirimkan email ke herlambang@nubielab.com Semoga bermanfaat.

Ini listing programnya:

/*__ ___        __  __ ___  ___ ___  ___ _  _
|_ _|   \  ___ |  \/  |_ _|/ __| _ \/ _ \ \| | - eMBEDDED Design &
 | || |) ||___|| |\/| || |  (__|   / (_)| .` | - System Development
|___|___/      |_|  |_|___|\___|_|_\\___/_|\_|______________________+
 
;Homepage   : http://www.nubielab.com
;Programmer : Herlambang Aribowo.
;Email      : herlambang@nubielab.com
;Mobile     : +6285883289911
;------------------------------------
*/
//Simple running text on 2X16 HD44780 LCD.. for AVR (Codevision AVR)
//you can modify this source code for your specific needs.
//You should recompile this code using CodeVision AVR V2.03.9 or later.
//This code is distributed under GNU license. 
//For question and suggestion you should contact me on the address above.
//Happy programming :D
/*************************************************************************
this file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
 
Copyright 2009, 2010 Herlambang Aribowo
************************************************************************/
 
#include <mega8535.h>
 
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x1B ;PORTA
   //.equ __lcd_port=0x15 ;PORTC
#endasm
 
// Standard Input/Output functions
#include <lcd.h>
#include <delay.h>  
#include <string.h>
 
// Global variables
// Silahkan ganti text yang mau ditampilin di array buffer_lcd
char buffer_lcd[]="RUNNING TEXT ON 2X16 HD44780 LCD.. Coded by: "
"Herlambang Aribowo :D http://www.nubielab.com               ";//space required
// belakang sendiri kasih karakter "spasi"/0x20 biar keliatan fadingnya.
 
char lcd_number = 16; //diganti sesuai kebutuhan misal pake yg 4x20 
                      //lcd_number = 20
// Function prototype
void sett_regs(void);
void tampilan(void);
 
// Main routine (super loop)
void main(void){
sett_regs();  
lcd_init(16);
_lcd_ready();
lcd_clear();
for(;;){// Endless loop, podo karo "while(1)"                                            
    tampilan(); 
    }
}
 
// Setting register
void sett_regs(void){
//Define I/O 
DDRA  = 0xff;PORTA = 0x00;
DDRB  = 0x00;PORTB = 0x00;
DDRC  = 0x00;PORTC = 0x00;
} 
 
// Display routine :D
void tampilan(void){
unsigned int i,j,k;
unsigned int data_len  = strlen(buffer_lcd);
_lcd_ready();
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("  RUNNING TEXT  ");
for (i=lcd_number; i>=0; --i){
    if (i > lcd_number)break;
    lcd_gotoxy(i,1); 
    for (j=0; j<(lcd_number-i); j++){
        lcd_putchar(buffer_lcd[j]);
        } 
    delay_ms(100); //ubah untuk kecepatan pergeseran text
    };  
k=0;      
for (i=0; i<=data_len; i++){
    k++; 
    lcd_gotoxy(0,1);  
    for (j=0; j<16; j++){
        if (buffer_lcd[j+k] == NULL){
            return;
            }
        lcd_putchar(buffer_lcd[j+k]); 
        }
    delay_ms(100); //ubah untuk kecepatan pergeseran text (samakan sama yang diatas)
    };     
}

Dan ini adalah screenshot dari simulasi proteus..

Yang perlu diingat.. kode ini ane bikin dengan compiler CVAVR 2.03.9. kalau diganti versi kompiler… apalagi downgrade, ane gak menjamin kode ini bisa berjalan dengan semestinya.
Thanks..

Silahkan download file lengkapnya disini: AVR RUNNING TEXT ON HD44780 LCD

Jangan lupa dikomeng gan :shakehand2
File sudah didownload ribuan kali tapi yang komeng cuman sedikit :bingung:
yang gak komeng :mahos

UPDATE!
Bila ingin mencoba menggunakan LCD library untuk CodeVisionAVR yang support running text dan progressbar, agan bisa download Nubielab LCD Library.. masih dalam versi beta, silahkan dicoba dolo OK langsung menuju TKP aja..
:ngacir:
>>>>>>Nubielab LCD library V1.0beta<<<<<<

-Herlambang Aribowo

Tagged with:  

85 Responses to AVR RUNNING TEXT ON 16X2 HD44780 LCD – (CodeVision AVR)

  1. ryq says:

    akhirnya ketemu jg….ta coba pa…

  2. Herlambang says:

    @ryq: Ya silahkan dicoba.. kalo ada kesulitan silahkan post aja disini :D

  3. ilham says:

    mas mantabbbbbb!!!
    “ijin download yaaaaachhhhh”
    sukses mas

  4. Herlambang says:

    @ilham: terimakasih gan… monggo silahkan di download dan dipelajari codenya.. dan coba diubah-ubah dan disempurnakan bwt latihan. Kalo ada pertanyaan, kritik ato saran.. silahkan mampir kesini lagi ya :D

  5. ipul says:

    unsigned int data_len = strlen((buffer_lcd));
    saya dapat error di coding ini pak,
    bunyi errornya spt ini “must be constant expression”
    piye ki pak??

  6. Herlambang says:

    bukan unsigned int data_len = strlen((buffer_lcd));

    tapi:

    unsigned int data_len = (strlen(buffer_lcd));

    kalo error silahkan dicoba jadi :

    unsigned int data_len = strlen(buffer_lcd);

    hehe.. lupa ngapus, tanda kurungnya kebanyakan .. kalo di CVAVR 2.03.9 tidak ada warning ato error.. silahkan dicoba seperti cara yang diatas.

    NB: Saia masih muda… jadi jangan panggil pak ya…. :D

  7. ipul says:

    wahahaha..maaf aku panggil masnya aja yah…

    gini mas…saya juga sudah utak-atik misalnya minghilangkan kurung tersebut.. tapi masi error warning juga..
    saya pake codevision juga mas…
    apa karena gak updet CVnya??tapi masa sih…warnig errornya masalah versi codevisionnya….
    ada ide lain gak mas?

  8. ipul says:

    setelah saya utak-atik ternyata sya sudah dapat error tadi mas…
    perintah ini saya matikan //unsigned int data_len = strlen(buffer_lcd);
    saya pikir code nya itu tidak perlu ada karena buffer_lcd bisa berdiri sendiri tanpa mengubahnya ke bentuk int.
    jadi perintah selanjutnya yang terdapat data_len saya ganti menjadi buffer_lcd… cuma sekedar share aja mas…
    thanks atas source codenya yah mas…

    • Herlambang says:

      unsigned int data_len = strlen(buffer_lcd);

      buffer_lcd memang bisa berdiri sendiri…walopun gak punya kaki :D nah, tapi apa yang dimaksud ipul dengan “berdiri sendiri”? apa maksudnya variable data_len langsung diganti buffer_lcd tanpa haru ada data_len = strlen(buffer_lcd). Dan selanjutnya kalo ada data_len di replace dengan buffer_lcd…. nah kalo gini jadinya berantakan deh. ntar kalo di download ke mikro beneran (bukan simulasi) dan ditampilin di LCD beneran… akan muncul karakter-karakter aneh dibelakang tulisan…. atow malah tulisannya kepotong :D….

      Okey… doesn’t matter, yang penting mohon dipahami dulu konsepnya…

      data_len adalah variable untuk mengetahui panjang dari data pada buffer_lcd dan fungsinya untuk perhitungan panjang kolom pada LCD yang akan ditulisi.. kalo memang jumlah karakter di array buffer_lcd sudah fixed… gak usah pake strlen(buffer_lcd) langsung aja tulis nilainya…. misal :

      unsigned int data_len = 500; <—- untuk karakter di buffer lcd sejumlah limaratus :D

      fungsi : strlen() adalah mengambil nilai panjang karakter yang terisi dari suatu array string yang hasilnya berupa nilai unsigned int. Baca CVAVR 2.03.9 user manual. (strlen() masuk dalam perintah standar ANSI C).

      nah variable data_len saia buat dengan tipe lokal variable.. dengan tipe unsigned int. maka jadinya : unsigned int data_len.

      dan saya isi nilai awal sekalian: jadinya…

      unsigned int data_len = strlen(buffer_lcd);

      jadi kalo data_len langsung diganti buffer_lcd, nanti tampilannya pasti suatu saat akan berantakan … apalagi kalo program sudah dimodifikasi dengan isi karakter pada buffer_lcd yang variable (tidak tetap) dan tidak pasti jumlahnya… pasti akan muncul karakter2 aneh pada lcd :D

      tapi mungkin masih ketolong dengan yang dibawah ini koq mas…
      hehe… gimana kalo tidak ada syntax ini :

       if (buffer_lcd[j+k] == NULL){
                  return;
                  }

      pasti… tampilan lcd akan berjalan terus sampai tulisan2 aneh keluar dan tulisan aslinya gak muncul2 … kenapa?? karena itu adalah salah satu rutin syntax untuk null terminated. Atau jika data pada array[?] berisi null… maka running akan diselesaikan dan memulai dari awal…

      BTW,
      coba pake CVAVR V2.. pasti dijamin bisa.. dan bagaimanapun juga CVAVR versi lebih tinggi memungkinkan support dengan jenis mikro terbaru dan pembenahan bugs disana sini..
      Ato kalo masih ingin menggunakan versi lama, silahkan baca user manualnya … dan setiap versi pasti berbeda…

      Yang perlu diingat.. kode ini saia buat dengan CVAVR 2.03.9. kalau diganti versi kompiler… apalagi downgrade, saia tidak menjamin kode ini bisa berjalan dengan semestinya. Thanks..

      ya… monggo silahkan ada lagi yang ingin membagi pengalamannya menggunakan kode saia diatas.

  9. ajie says:

    gan kalo pengen menghapus satu karakter aja bisa ga ya gan?misalnya pengen menghapus karakter lokasi (0,2).kalo pake lcd_clear() kehapus semua karakternya. gmn ya???

    oya gan, tanya donk soal seting timer pake codevision?….

    kalo ada yg punya artikel bisa tlg shared g ke uranium_weee@ymail.com

    • Herlambang says:

      memang bro kalo perintah lcd_clear untuk menghapus semua row maupun column. (0,2) berarti kolom 0 baris 2 kan… (baris dimulai dari 0) pake LCD lebih dari 2X.. ya? gapapa sama aja bro. Kalo pingin ngapusnya biar gak kelihatan karakter sebelumnya pada kolom dan garis yang dituju bisa menggunakan karakter spasi..

      lcd_gotoxy(0,2);
      lcd_putchar(0x20);

      perintah diatas akan mengganti karakter pada kolom 0 baris ke 2 (baris dimulai dari 0 berarti baris ke2 = baris ke3) yang sebelumnya tersimpan pada CGRAM LCD dengan nilai 0X20 atau karakter spasi… jadi ntar keliatannya kosong (karakter sebelumnya diganti dengan spasi).

      untuk artikel setting timer di CVAVR saia belum sempat menulisnya… :D

  10. HIKMAH says:

    kalo untk nampilin nama di lcd gimana programnya? dengan menggunakan bahasa C di codevision AVR.. tolong ya,,, kasi tau. terimakasih

  11. ismail says:

    mas, kalo mo nampilkan data nomor di keypad ke lcd secara secara menggeser pke CVAVR gmana ? mksh

  12. fadil says:

    mas kalomau ngerubah textnya, bagian mana yang harus dirubah?

  13. saiful says:

    mas mo tnya. kalo mo ngasih inputannya gmn mas?
    mis: jika d tekan PIND, maka LCD akan tampil dengan pesan berjalan.
    sya sdh coba yg program di atas, berhasil mas, tp sya cba ngsih inputan kok blm bisa, tlg mas. mksh sblumnya

    • Herlambang says:

      pertama seting dulu DDR dan PORTnya..
      untuk inputan misal PIND.1

      DDRD=0xFE; // hanya satu bit yaitu pind.0 yang jadi masukan
      PORTD=0x01; // kasih logika high pada port input jadi aktif low (dihubungkan ke ground)

      terus codenya seperti ini:

      if (!PIND.0){ // jika PIND.0 low atau dihubungkan ke ground
      tampilan(); //jalankan fungsi tampilan (text berjalan)
      }

      nah gitu boss.. udeh jelas belon??

  14. jono says:

    tks atas ilmu yg dibagi

  15. andar says:

    Om Herlambang, Aku boleh gk kursus privat sama om…?

  16. fahmi says:

    pa, saya mau nanya ni soal program pencacah 1 -255 pada LCD !!

    • Herlambang says:

      @fahmi
      Apa yang mau ditanyakan fahmi? hehe program pencacah dengan tampilah hasil cacah pada LCD sangatlah mudah, apalagi menggunakan bahasa C. kesulitannya dimanananya bro???

  17. angga says:

    mas,maw nanya, bisa dksi penjelasan ttg Proteus ISIS Simulation itu ky apa gag?prinsip kerjanya gimna?
    makasii

    • Herlambang says:

      @angga
      Proteus ISIS itu adalah program yang bisa mensimulasikan rangkaian elektronika analog, digital maupun mikrokontroler.
      jadi fungsi Proteus diatas cuman buat simulasi aja.. :D

  18. omni says:

    maap nulis programnya pake aplikasi/program apa? n pake os apa? trims

    • Herlambang says:

      @Omni
      Program diatas ditulis dengan aplikasi bernama CodeVisionAVR. Untuk OS pake windows.
      program diatas adalah program C untuk aplikasi microcontroller dan bukan untuk aplikasi PC.

      • Irene says:

        What’s it take to become a sublime exondpuer of prose like yourself?

      • Muchas gracias Eric por este audio, es impresionante saber todo lo que he avanzado en este ultimo tiempo, muchas de las cosas que dices es lo que antes me sucedia pero por suerte he podido romper varias barreras que me lo impedian y ahora estoy muy entusiasmado y encaminado a lograr mis objetivos y metas.Estos audio hacen realmente bien y espero que mucha gente lo pueda oir, gracias de nuevo!!

  19. eddy says:

    master, aye mw tnya ad coding buat tampilkan angka G???
    misal ; aplikasi menghitung jumlah kendaraan yang msuk & keluap pd tmpat parkir…
    contoh : jumlah kapasitas ruang parkir 100..

    – jika SWITCH 1 ditekan satu X akan berkurang 1 angaka,dari 100 mnjdi 99,dst nya smpi 0 jika SWITCH1 ditekan brulangX…
    – dan jika SWITCH2 ditekan satu X akan brtambah 1 angka,misal dari 98 mnjdi 99..

    tpi Tanpa CodeWizardAVR, pke AVR…
    tolong krim email eddy_kurnianto@yahoo.com…mohon bantuannya…

    • Herlambang says:

      angka G gimane??

      untuk aplikasi parkir :D sangat mudah. coba eddy buat dulu ntar baru bisa ane bantu..
      lha kalo ane yang buat semuanya kan kamu jadi gk belajar dah ..

      oke bwt dulu terus kalo gagal ntar kirim ke email ane di herlambang [at] nubielab.com
      hehe.. ane juga gak nganggur, banyak kerjaan jadi sesempatnya ya…

  20. Aku Dewe says:

    gan, gmana caranya update Library Proteus, padahal ane udah pake Proteus 7.5 SP3 lho. tp pas Pick Package/Symbol diketik AVR malah gk keluar list-nya… download dii Labcenter jg susah…. kali pnya link yg free…
    :D sukses selalu…

  21. huda says:

    Lam kenal,mas aq mau buat running text dgn dot matrik ,punya listing programnya ,BOS

  22. adi says:

    Mas, coba lihat :

    for (i=lcd_number; i>=0; –i){
    if (i > lcd_number)break;
    …..
    }
    maksudnya i>lcd_number gimana ya?
    kan lcd_number udah didefinisikan 16, sedangkan “format” for-nya decrement. Jadi ga mungkin i > 16 dong?thx mas.

    • adi says:

      Oh, setelah hasil decrementnya saya tampilin di LCD, TERNYATA hasilnya : 16,15,…,2,1,0,255,254,…
      Hehe..

    • Herlambang says:

      udeh dicoba belon programnya??
      haha…
      owh, yang kamu tanyakan i>lcd_number terus kok dibawahnya if i > 16 kok bisa?? padahal lcd_number udeh didefinisikan?? hayooo… kenapa coba?? haha.. :D

      coba baca dan pelajari lagi programnya… bila suatu nilai variable unsigned misal 8bit dikurangi dan sampai nilai 0 masih dikurangi, maka nilai variable akan kembali ke 255 karena variable bertipe unsigned. jadi >lcd_number itu mendeteksi bahwa nilai variable dibawah 0. karena jika nilai perbandingannya if = 0 maka program akan keluar dari loop “for” dan even pada hitungan 0 tidak dilaksanakan… mengerti bro :D
      ngopi dulu.. :coffee:

  23. eriec says:

    :razz: ..oke siap di coba

  24. ipooeng says:

    mas tlg dong dibantuin sy sedang coba2 / latihan buat pemrogramn traffic light untuk pergantian waktu dari program normal ke program flashing/kedip serta sy buat tuk darim normal ke kedip/flashing sbb;
    if (jam==05 && menit>=22);
    {
    lampu_satu_merah=1;
    lampu_satu_kuning=0;
    lampu_satu_hijau=0;
    lampu_dua_merah=0;
    lampu_dua_kuning=1;
    lampu_dua_hijau=0;
    }
    else
    lampu_satu_kuning=~lampu_satu_kuning;

    tapi belum bs mas tolong dong dibantuin tuk perpindahan waktu program normal ke program kedip/flashing. pada waktu malam hari gtl lho mas.

    terima kasih banyaj bs di emailkan budi_p_s@yahoo.co.id pa bs contact2 sy di 0351 7737355 biar tambah akrab

    • Herlambang says:

      Hehe yang ngerti maksud dari program ente kan ente sendiri yang buat, jadi kalo mo dibantu buat dulu program utuh, terus jelaskan keinginannya dan apa yang belum bisa. kalo cuman potongan2 ane kagak ngarti kamsudnya :hammer:

      • ipooeng says:

        okay bang,abng pernah liat traffic light waktu dimalam hari kan skit tar jam 22.00. traffic light kan mati ganti lampu kedip yang nyala/warning, sy kbingungan buat perpindahan program, program satu ke program dua
        (jam==05 && menit>=00);
        {
        lampu_satu_merah=1;
        lampu_satu_kuning=0;
        lampu_satu_hijau=0;
        lampu_dua_merah=0;
        lampu_dua_kuning=1;
        lampu_dua_hijau=0;
        lampu_satu_merah=1;
        lampu_satu_kuning=0;
        lampu_satu_hijau=0;
        lampu_dua_merah=0;
        lampu_dua_kuning=1;
        lampu_dua_hijau=0;

        }
        else(jam==22 && menit>=00)
        {
        lampu_satu_kuning=~lampu_satu_kuning;
        }

        maksud program ogut diatas jam 5 pagi lampu nyala normal, lampu merah,kuning, hijau nyala, dan jam 10 malam lampu ganti kedip/flashing. ogut pakkek code vision avr mega 16

        • Herlambang says:

          Hehe :D

          Ane ngerti cara kerja traffic lights soalnya ane pernah buat yang bener2 dipasang dijalan dan bukan sekedar latihan, tapi yang ane maksud itu metode program ente seperti apa?

          udeh dibilang jangan potongan2, kalo potongan2 baris program ya gak bisa nentuin metode apa yang harus dipake. ente harus kasih program source komplit metode seperti apa yang digunakan. Kalo dalam aplikasi traffic lights real, waktu kuning kedap kedip itu banyak cara dan teknik yang bisa digunakan.

          OK dah, coba ane bantu dari potongan program diatas.. waktu jam 22.00 (lampu kuning kedip) buat loop pada salah satu fungsi program agan sampai jam 05.00. misal :

          /*   
          gak ngerti dah ente pake metode apa untuk timernya.. interrupt atau scheduler atau cuman 
          delay biasa.. 
          nih contoh untuk delay biasa
          */
           
          //Fungsi waktu loop bisa dibuat seperti dibawah ini..
          //program akan mulai loop pada 22.00 dan akan keluar dari loop jam 05.00
          //kemudian lampu akan menyala seperti biasa bergantian
           
           
          void fungsi_kedip_kuning (void){
          	if (jam == 22 && menit >= 00){
          		while(1){
          			if (jam == 05 && menit >= 00){
          				break;
          			}
          			else{
           
          				lampu_satu_kuning=~lampu_satu_kuning;
          				delay_ms(1000); //misal untuk delay 1 detik
          			}
           
          		}	
           
          	}
           
          }
           
           
          void fungsi_normal (void){
           
          //bla... bla... bla...
           
          }
           
           
          //dari fungsi main tinggal panggil aja
           
          void main (void){
          	while(1){
          	fungsi_kedip_kuning();
          	fungsi_normal();
          	}
           
          }

          Program ane tulis gak pake compiler cuman ilustrasi aja, jadi mungkin ada salah ketik ato gak jalan haha.. :ngacir:

  25. FATUR says:

    permisi mas mau nanya, bisa di jelaskan tentang listing yng ini:
    for (i=0; i<=data_len; i++){
    k++;
    lcd_gotoxy(0,1);
    for (j=0; j<16; j++){
    if (buffer_lcd[j+k] == NULL){
    return;
    }
    lcd_putchar(buffer_lcd[j+k]);
    }
    delay_ms(100); //ubah untuk kecepatan pergeseran text (samakan sama yang diatas)
    };
    }

  26. cripton says:

    mas mau tanya,,,,
    kalu misal mau buat progam kita punya 8 tombol
    tombol 1 ditekan muncul angka1,,,tombol 2 angka 2 dst mpe 8

    nah pengenya di lcdnya munculnya berurutan g hilang sesuai urutan tombol ditekan

    klu urutan tombol ditekn itu 4,5,6
    maka di lcd muncul 4,5,6 jadi bergeser gtu gmn ya,,
    aku nyoba kok g pernah bisaa,,,cmn muncul sekali ajah,,numpuk gtu,,
    dicontohin 2 tombol aja mas
    mksh

  27. smith says:

    kalo untuk ATMega8 gimana mas????

  28. smith says:

    kalo untuk ATMega8 gimana mas????
    udah saya coba n utak atik listing program diatas, tapi tetep kagak bisa…
    mohon bantuannya…:)

  29. sogi says:

    aku ada problem ni mas,,, tolong dipecahin yah mas,, sebelumyna terima kasih…

    aku mau buat tugas ni mas, mendeteksi orang di pintu pake “satu laserldr”,

    “satu laserldr” ini nanti akan mendeteksi keberadaan orang di depan pintu,,

    begini ceritanya mas…

    pas ada 2 orang yag lewat pintu dhitung sama si ldr trus disimpan hasilnya,
    kemudian ada 3 orang lagi yang lewat pada ldr yang sama dan hasilnya disimpan juga,,
    kemudian kedua hasil itu dibandingkan,jumlah orang yang lebih banyak akan lebih ditumakan untuk membuka pintu terlebih dahulu
    aku bingungnya pas nyimpan hasilnya itu mas dan membandingkan jumlah orangnya.,,

    gimana ya mas??

  30. abenk says:

    mantap gan.
    kalo ane mo ganti ke port C mesti gmn gan?
    *maklum newbie

  31. Rizalite says:

    mas saya mau tanya, kalau running text nya mau diubah jadi geser kiri ke kanan, apa yg harus diubah ya mas? mohon pencerahannya.. thanks..

  32. mus nurma says:

    mas ijin aku mo copas n donlod ya…
    buat tugas
    ane lom paham… nanti tak coba juga

  33. billy says:

    om cara nyambungin cv avr ama isisnya gmana ?? lupa,hhe… mohon bantuannya ^_^

  34. billy says:

    om saya mau skripsi bikin alat pendeteksi telur,, bisa di bantu cv avr a??hhe…. pusing saya,, pake sensor cahaya LDR,, outputnya LCD ama LED merah dan hijau,, makasih ^_^,, klo bantuin saya doain masuk surga,, panjang umur,, sehat selalu,, amin

  35. astrajingga says:

    Maturnuwun sanget Gan….tak kasih cendol deh…..mudah-mudahan manfaat n bisa dipake buat skripsi nih…..

  36. fajar says:

    om saya mau nanyain sourcecode dong,,saya ada tugas mikro…
    pake lcd, keypad, atmega8535…
    disuruh input dari keypad 0-255, trus di lcd nampilin 0-100%…jadi klo kita input 255 berarti yang tampil di lcd 100%,…saya dah nyoba2 tp g berhasil2…saya baru bisa input 1 digit aja lewat keypadnya, jd g bisa input 3 digit…mohon bantuannya…..

    makasih om….

  37. wwn says:

    kalau mau nampilin mirror karakter bisa gak? udah cari2 referensi tapi blm ketemu,Thx

  38. yusuf says:

    mas mau tanya …
    kalo kirim karakter dari keyboard pc ke lcd bagaimana list program untuk ATmega8535 nya gan?
    yang kaya gini gan,,,,
    http://www.youtube.com/watch?feature=player_embedded&v=Z095mVqi1Yw
    trimakasih

  39. febrisia says:

    mas mau tanya,,,,
    Buat tombol button dan muncul angka d lcd sesuai urutan button. Min button 5
    tlong bgt d bls mlalui gmail y mas “febrisiaswastika@gmail.com”

  40. Herlambang says:

    @all
    Kalo ingin dibantu bikin program, tolong agan2 atau sista buat dulu programnya.. nanti kalo ada kesulitan bisa dikirim ke email ane di herlambang[at]nubielab.com.
    Jangan lupa program yang gak jalan di attach juga ya :)
    Sebisa dan sesempatnya ane bantu gan hehe :shakehand2

  41. aziz says:

    mas,,mau nanya..misalkan mau bikin listinng program dengan 2 input dan 3 output untuk settingan port nya contohnya kayak apa mas?makasih..rencana input keypad ama sensor infra red.ddan outputnya LCD,MOTOR DC ama buzzr

    • Herlambang says:

      Langkah pertama buat konsep dulu gan.. 2 input dan 3 output tersebut akan diperlakukan bagaiamana?

      Misal:
      1.Infrared sensor berfungsi untuk mendeteksi obyek yang melewatinya
      2.keypad berfungsi untuk menseting berapa batas obyek yang boleh lewat
      3.LCD berfungsi untuk antarmuka antara sistem dan manusia
      4.Motor DC berfungsi untuk menutup palang pintu
      5.sebagai indikator bila obyek yang lewat sudah melampaui batas

      nah dari konsep diatas agan buat masing masing pecahan fungsi dari routin programnya.. yaitu scanning keypad, input sensor, display LCD, PWM dan buzzer..
      setelah agan buat masing masing routine maka gabungkanlah routine2 tersebut pada main routine..

      so be it gan :cendols

  42. Taufik Anwar says:

    mantaaap kang berhasil ..

    terima kasih buat pelajaran berharganya (y)

    “salam dari anak2 SMKN4 BANDUNG “

  43. Ambar says:

    mas carana gimana ya supaya running textnya posisinya di atas bukan dibawah saya coba kok malah acak-acakan karakternya,dan bisa nggak mas di tambahkan habis running text langsung keluar perhitungan waktu mundur misal waktunya 00:01:00 alias satu menit menuju 00;00;00 mungkin mas bisa bantu

  44. goblok says:

    aku ra mudeng pak de…

  45. adit says:

    ikut minta bantuan mas… kalo runing texnya diisi sama data dari sensor gmn ya mas??
    ane make sensornya 3,, definisi sensornya diprogramku begini

    int temp, co, ch;
    char suhu[8], metana[8], monoksida[8];
    float suhu_c, metan, mono;

    temp=read_adc(0);
    ch=read_adc(1);
    co=read_adc(2);
    suhu_c = (float)temp*500/1023;
    ftoa(suhu_c,1,suhu);
    metan=(float)ch/1024*100+20;
    ftoa(metan,1,metana);
    mono=(float)co/1024*100+20;
    ftoa(mono,1,monoksida);

    jadi runing texnya pengen tak buat begini
    (suhu= 35 C, Gas metana= 50ppm, Gas Carbon Monoksida=50ppm)

    kalo dijawab di email juga ya mas..
    trimakasih sebelumnya..

    • Herlambang says:

      bisa gan, tinggal masukkan nilai yang akan ditampilkan ke buffer running text, bisa dengan cara manual perkomponen array atau bisa dengan perintah sprintf,, dengan formating yang agan inginkan..

      • adit says:

        q udh nyoba gini gan
        deklarasinya tak jadiin gini:
        char buffer_lcd[60];

        trus sprintfnya gini “tak taroh di while(1)”:
        sprintf(buffer_lcd,”Suhu: %d C Metana: %d ppm Monoksida: %d ppm”,suhu_c,metan,mono);

        trus tak panggil gini:
        lcd_puts(buffer_lcd);

        tapi gak nongol opo2 di lcd,, mohon bantuan mas…

  46. HUDA says:

    Mas nuwun sewu,
    ane mau tanya kalau pake chip atmega 16 itu apa harus mengganti programnya semua….

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[+] kaskus emoticons