Digital I/O Port PIC18F4550

November 17, 2014

Digital I/O merupakan ciri yang paling asas yang terdapat di dalam Microcontroller Unit (MCU). Manakala, ciri-ciri lain seperti Analog-to-Digital Converter (ADC), Pulse Width Modulation (PWM), Serial Communication dan lain-lainĀ adalah features tambahan.

Post pada kali ini hanya membincangkan digital Input/Output Port PIC18F4550. Untuk membaca kupasan lanjut, sila rujuk post yang telah saya tulis dengan klik pada pautan iniĀ 


Sambungan Asas bagi Litar PIC

Jun 29, 2009

Sejajar dengan memahami cara penulisan programming, anda juga perlu tahu sambung litar bagi PIC. Ia tidaklah susah dan boleh dilakukan oleh anda. Antara component yang wajib anda ada adalah seperti:

  1. PIC16F877A x 1
  2. Crystal Oscillator 20MHz x 1
  3. Ceramic Capacitor 22pF x 2
  4. Ceramic Capacitor 0.1uF x 2
  5. E_Capacitor 220uF x 1
  6. Push Button x 1
  7. LED x 1
  8. Resistor 1/4 watt-330,10k
  9. VR 7805
  10. Bateri 9V

sambungan litar adalah seperti Rajah dibawah. Perlu diingatkan bahawa kaki VDD dan VSS perlu disambungkan ke +5V dan GND bagi membolehkan PIC berfungsi.

basic_connection


Perkakasan yang diperlukan semasa menulis program

Jun 28, 2009

Sepertimana yang diterangkan sebelum ini, sebelum mula menulis program anda digalakkan untuk membuat flow chart terlebih dahulu. Selepas itu baru anda berikan tumpuan untuk menulis programming anda tadi. Disini terdapat beberapa perkakasan yang bakal anda gunakan semasa menulis program, antaranya ialah DATASHEET PIC yang berkaitan.

Oleh yang demikian, amat bagus kalau anda ada hardcopy datasheet pic yang anda sedang explore itu. Ini akan memudahkan lagi anda untuk membuat rujukan disamping dapat meningkatkan pemahaman anda. Justeru itu, datasheet merupakan kunci kepada anda untuk memahami PIC.

Sekian.


USB ICSP Programmer

Jun 24, 2009

Salam kepada pembaca,

Bagi anda yang berminat untuk membuat projek yang menggunakan PIC, terdapat beberapa perkara yang anda beri perhatian selain daripada tahu menulis program. Perkara yang saya maksudkan tadi ialah PIC downloader/PIC programmer. Perkakasan ini secara amnya digunakan untuk load program yang anda siap tulis ke dalam PIC, seterusnya anda boleh lihat hasilnya pada PIC.

Disini saya ingin mencadangkan untuk anda menggunakan USB ICSP programmer (seperti dalam gambar)UIC00ABagi saya, produk ini sangat berguna disamping ia senang digunakan. Untuk mengetahui ciri-ciri perkakasan ini sila klik. Justeru itu, sekiranya anda betul-betul berminat untuk membuat projek menggunakan PIC, cepat-cepatlah anda dapatkan alat ini, tidak rugi anda memilikinya.


Setup External Interrupt RB0

Jun 24, 2009

/*Author :King Diaw

Project : Setup External Interrupt

Project description : RB0 is Interrupt Input, RB7 is output connect to LED, Every time push button pressed LED will invert condition 1-0,0-1. */

// include

//==========================================================================

#include <pic.h>

// configuration

//==========================================================================

__CONFIG ( 0x3F32 );

// define

//==========================================================================

#define led RB7 //led indicator

#define sw1 RB0 //sw1 (active low)

// function prototype

//==========================================================================

void delay(unsigned long data);

void init_io(void);

void blink(void);

void setup_int(void);

void prog1(void);

// main function

//==========================================================================

void main(void)

{

init_io();

setup_int();

blink();

while(1);

}

//=========================FUNCTIONS======================================

void init_io(void)

{

//set I/O input output

TRISB = 0b00000001; //configure PORTB I/O direction

TRISC = 0b00000000; //configure PORTC I/O direction

TRISA = 0b00000000; //configure PORTA I/O direction

TRISD = 0b00000000; //configure PORTA I/O direction

PORTA=0;PORTB=0;PORTC=0;PORTD=0; //clear all port

//setup ADC

ADCON1 = 0b00000110; //set ADx pin to digital I/O

}

void blink(void)

{

unsigned char i;

for(i=0;i<5;i++)

{

led=!led;

delay(30000);

}

led=1;

}

//========================================================================

void delay(unsigned long data) //delay function, the delay time

{

for( ;data>0;data–); //depend on the given value

}

void setup_int(void)

{

OPTION=0x40;

INTCON=0x90;

}

//interrupt vector

static void interrupt ISR_ssp(void) @0x0004

{

if(INTF==1)

led=!led;

INTF=0;

}


Langkah Pertama Dalam Assembly Language

Jun 24, 2009

Setiap programmer mesti mempunyai teknik untuk menulis program masing-masing. Jadi, apakah teknik yang terbaik untuk menulis program?? Disini saya senaraikan beberapa teknik yang boleh digunakan oleh anda:

Amalkan menggunakan komen.

  • bagaimana caranya? Senang saja, dengan meletak simbol (;) semicolon huruf berikutnya akan diabaikan oleh compiler.
  • Kenapa ia penting? Ia sangat berguna bagi membolehkan orang lain memahami apa yang anda sedang lakukan. Selain daripada itu, ia juga berguna kepada anda sendiri, mungkin pada hari ini anda faham sepenuhnya progarm yang anda tulis, tetapi 2 minggu kemudian mungkin anda sendiri menjadi keliru apa yang telah anda lakukan dahulu.

Menggunakan Label yang umum serta bererti.

  • Contohnya COUNT dimana ia digunakan dalam subroutine untuk counting sesuatu bilangan.

Meletakkan Pengenalan Program dengan menggunakan semicolon seperti ditunjukkan di bawah:

;===============================================;

;Autor:

;Date:

;Title:

;Description:

;===============================================;

Membuat flow chart sebelum menulis program

  • Sekiranya berlaku kesalahan pada program yang anda tulis, ia akan membolehkan anda mengesan kesalahan pada program tadi. Jadi, ikutlah step-by-step seperti mana yang anda lukis dalam flow chart; percayalah ia akan memudahkan kerja menulis program anda nanti.



Selamat Datang!!

Jun 24, 2009

Selamat Datang!! kepada pelajar-pelajar sesi 2009, harap boleh manfaatkan maklumat daripada blog ini.

sekian,

salam maju&jaya