PIC Lesson: ADC

ADC bermaksud Analog To Digital Converter. ADC Module adalah fungsi dalam PIC yang membolehkan PIC membaca analog input. Oleh itu, sistem design tidak memerlukan chip tambahan untuk menukarkan analog voltage kepada digital. ADC Module di dalam PIC akan menukarkan analog voltage tersebut kepada digital dan disimpan didalam addressnya.

Analog input hanya terdapat di beberapa pin PIC sahaja. Untuk PIC 28pin, mempunyai 5 analog input dan PIC 40/44pin mempunyai 8 analog input. Antara address-address yang terlibat untuk ADC Module adalah A/D Result High Register (ADRESH), A/D Result Low Register (ADRESL), A/D Control Register 0 (ADCON0) dan A/D Control Register 1 (ADCON1).

ADC Module mempunyai high-voltage reference (VREF+) dan low-voltage reference (VREF-). Nilainya boleh dipilih daripada VDD, VSS, RA2 atau RA3. ADC Module akan membaca voltage pada salah satu antara Channel 0-7 (AN0-AN7).

Selepas ADC Module menukarkan analog voltage, ia akan menyimpan 10bit data di address ADRESH dan ADRESL dalam bentuk 10bit. Hasilnya bergantung kepada justification sama ada disimpan di bahagian kanan atau kiri.

Dibawah adalah videonya.

PIC Source Code

44 Replies to “PIC Lesson: ADC”

  1. salam..

    En.Shahrul..saya nak tnye..saya telah cuba 2 programming En.Shahrul 1) programming di atas dan 2) programming scrolling text..

    saya try burn programming tu ke dlm PIC saya..tetapi ada error..walaupun saya dapat build success utk k’dua pragramming..saya guna PICKIT2 V2.61 utk burn programming..

    error yg keluar ialah
    programming failed at program memory address 0x000002

    boleh En.Shahrul bagi p’dapat

  2. salam..

    saya dah dapat build programming d’atas dgn success..saya tak perasaan ..programming tu sudah d’up date..
    terima kasih En.Shahrul

  3. salam..

    saya masih tak dapat build dgn success programming di atas walaupun saya pakai V9.83..dia tulis..

    HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode) V9.83
    Copyright (C) 2011 Microchip Technology Inc.
    Licensed for evaluation purposes only.
    This licence will expire on Sun, 24 Jun 2012.
    Error [1346] ; 0. can’t find 0x2 words for psect “config” in class “CONFIG” (largest unused contiguous range 0x1)

    ********** Build failed! **********

    En.Shahrul tahu tak error ni d’sbbkan ape??

  4. salam..

    saya dah puas cari compiler v9.83…masih x jmpa..
    boleh tak En.Shahrul kasi link dekat saya di mane nak download compiler V9.83

  5. salam…

    saya nak tnye..knpe bile saya built programming di ats ..dia keluar

    (1273) Omniscient Code Generation not available in Lite mode (warning)
    HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.70
    Copyright (C) 2009 Microchip Technology Inc.
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 25. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 26. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 27. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 28. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 30. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 31. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 32. constant operand to || or &&
    Warning [750] C:\PIC Hands-on\Darimi\trial\LibraryHD44780.h; 33. constant operand to || or &&
    Warning [1355] C:\PIC Hands-on\Darimi\trial\sharulcoding1.c; 47. inline delay argument too large
    Error [800] sharulcoding.as; 45. undefined symbol “LVP_OFF”
    Error [800] sharulcoding.as; 45. undefined symbol “BOREN_OFF”
    Error [800] sharulcoding.as; 45. undefined symbol “PWRTE_ON”
    Error [800] sharulcoding.as; 45. undefined symbol “WDTE_OFF”
    Error [800] sharulcoding.as; 45. undefined symbol “FOSC_HS”
    Error [800] sharulcoding.as; 1437. undefined symbol “__delay”

    ********** Build failed! **********

    knpe?? adakah d’sbbkan b’lainan versi compiler?? boleh saudara shahrul beri p’dapat

  6. habis tu mcm mana plak nak dispay baki 255 utk 1000%235 kat lcd…ade cara lain ke ?sbb x bleh guna % utk no ni…boleh ajar x?

  7. salam saudara, knp wat 5235%1000(ans=0.235) boleh dpt 235 tp klau sy wat 1000%235(ans=4.255) x dpt pun output value 255 tersebut kat display lcd…sy check kat lam address memory pic pun dpat value bukan 255…knp eh?

  8. salam..

    saya ada soalan…

    1)boleh tak saya dapatkan “LibraryPIC40pin.h”,”LibraryHD44780.h” dan “LibraryADC.h” kerana project yg d’tjkkan lebih kurang sama dgn task yg saya terima…dan saya masih baru dalam programming.

    2)utk task saya..saya guna lcd 16×2..boleh ke saya guna libraryHD4470.h utk lcd saya??

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.