Tuesday, January 25, 2011

Tutorial 4.3: LED.c - Penerangan

Assalamualaikum semua,

Pada kali ini, saya akan menerangkan secara ringkas tentang isi kandungan file LED.c.

Kepada sesiapa yang tidak jelas, sila emailkan kepada saya di allpicproject@gmail.com atau letakkan message anda di CBOX di sebelah kiri blog.






1. #include
  • Mesti ada dalam setiap file.c (hitech.c) dan mesti berada di baris paling atas.
  • Kegunaanya adalah untuk memuatkan/mendapatkan maklumat-maklumat penting bagi microcontroller seperti alamat pin, alamat port, pin naming dan lain-lain.
  • Untuk pengetahuan lanjut, sila rujuk file pic.h di tempat hitech.c di install.

2. /*
3. * LED Demo program
4. * Running LEDs on Port D
5. */
  • Ini adalah komen-komen pengenalan dan info. Setiap komen mestilah di dahulukan dengan ‘/*’ dan di tamatkan dengan ‘*/’. Komen jenis ini boleh berada dalam beberapa baris seperti contoh di atas.
  • Tanda komen ‘//’ dalam ‘// Set varible I n J sebagai unsign int (nilai 0 - 65k)’ adalah tanda komen untuk satu baris sahaja. Jika komen tersebut perlukan 2 baris maka setiap baris mestilah dimulakan dengan ‘//’

6. main(void){
17 }
  • Rujuk no. 6, ini adalah function utama ( function ini mesti nama ‘main(void)’. Setiap file.c yang utama mesti ada function ini. Di function inilah setiap program c akan bermula.
  • Rujuk no. 17, ‘}’ ini adalah tanda penutup bagi function ‘main(void).
  • Arahan-arahan bahasa C yang berada di dalam ‘{‘ dan ‘}’ akan di jalankan / run.


7. unsigned int I, J; // Set varible I n J sebagai unsign int (nilai 0 - 65k)
  • Int adalah singkatan bagi integer
  • Baris ini menetapkan pembolehubah I dan J sebagai pembolehubah unsigned integer
  • Nilai unsigned integer adalah 0 à 65,535
  • Nilai integer (bukan unsigned) adalah -32,768 à 32,765
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’

8. TRISD = 0; /* Set semua Pin Port D sebagai output */
  • PIC16F887 mempunyai lima jenis port iaitu PORTA, PORTB,PORTC, PORTD dan PORTE (sila rujuk datasheet untuk maklumat terperinci)
  • Bilangan pin dalam setiap PORT tak sama (rujuk datasheet)
  • PORTD terdiri dari 8 bit iaitu RD0 à RD7 dan RD7 adalah nilai bit yang terbesar (MSB)
  • Nilai PORTD dari 0 à 255 atau 0b00000000 à 0b11111111 (format binary) atau 0x00 à0xFF (format hexadecimal)
  • TRISD adalah gabungan TRIS dan PORTD
  • TRIS adalah arahan untuk set sesuatu port sebagai masukan/keluaran (input/output)
  • TRISD = 0 adalah sama dengan TRISD = 0b00000000 (0bxxxxxxxx adalah format binary)
  • TRISD = 255 çè TRISD = 0b11111111 çè TRISD = 0xFF (format hexadecimal)
  • TRISD = 0 = 0b00000000 bermaksud semua bit/pin PORTD di set sebagai keluaran/output. 0 à Output / keluaran , 1 à Input / masukan
  • Jika TRISD = 0b10000000, bermaksud hanya bit RD7 / bit D7 di set sebagai Input dan selainnya adalah sebagai Output.
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’

9. J = 1; // Set nilai default/awal J = 0
  • Set nilai J bersamaan 1.
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’


10 while(1){ // Loop selama-lamanya
16 } // Penutup untuk 'while' syntax.
  • Arahan ‘while(1){ ……} ‘ melaksana semua arahan-arahan yang berada di dalam ‘{ … }’ tanpa henti / selama-lamanya.

11 PORTD = J; // Set portD dengan nilai J
  • Setkan nilai PORTD bersamaan dengan nilai J
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’

12 for(I = 65000 ; --I ;) continue; // Sebagai delay
13 for(I = 65000 ; --I ;) continue; // Sebagai delay - satu lagi delay
  • Ini adalah arahan ‘for … next’ atau ‘for … buat sesuatu … ulang sehingga no 0 atau no tertentu.
  • Dalam kes ini, hanya di set sebagai masa lengah / delay sahaja.


14 J = J * 2; // Nilai J di darab dengan 2.
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’


15 if(J > 128) J = 1; // Set nilai J = 1 jika nilai J > 128.
  • Setiap baris arahan mesti di akhiri dengan tanda ‘;’

Bersambung ....

0 comments:

Post a Comment