{"id":932,"date":"2011-03-24T11:28:42","date_gmt":"2011-03-24T04:28:42","guid":{"rendered":"http:\/\/www.payitforward.edu.vn\/wordpress\/?page_id=932"},"modified":"2012-08-04T11:25:02","modified_gmt":"2012-08-04T04:25:02","slug":"bai-5-adc","status":"publish","type":"page","link":"https:\/\/payitforward.edu.vn\/wordpress\/tutorials\/hitech-pic\/bai-5-adc\/","title":{"rendered":"B\u00e0i 5 ADC"},"content":{"rendered":"<p>T\u00e0i li\u1ec7u n\u00e0y \u0111\u01b0\u1ee3c bi\u00ean so\u1ea1n kh\u00f4ng nh\u1eb1m v\u00e0o b\u1ea5t k\u1ef3 m\u1ee5c \u0111\u00edch n\u00e0o mang     t\u00ednh th\u01b0\u01a1ng m\u1ea1i. B\u1ea1n c\u00f3 quy\u1ec1n sao ch\u00e9p, s\u1eeda ch\u1eefa v\u00e0 ph\u00e2n ph\u00e1t b\u1eb1ng b\u1ea5t     k\u1ef3 h\u00ecnh th\u1ee9c n\u00e0o. H\u00e3y s\u1eed d\u1ee5ng t\u00e0i li\u1ec7u n\u00e0y, s\u1eeda ch\u1eefa, b\u1ed5 sung v\u00e0 g\u1eedi   cho   nh\u1eefng ai c\u1ea7n n\u00f3. Ch\u00fang t\u00f4i kh\u00f4ng \u0111\u1ec1 t\u00ean t\u00e1c gi\u1ea3 bi\u00ean so\u1ea1n. T\u00e0i   li\u1ec7u  n\u00e0y  thu\u1ed9c quy\u1ec1n s\u1edf h\u1eefu nh\u1eefng ai \u0111ang d\u00f9ng n\u00f3.<\/p>\n<p>Pay it forward\u2026<\/p>\n<h2 style=\"text-align: center;\"><span style=\"text-decoration: underline;\">B\u00e0i 5:<\/span><\/h2>\n<h1 style=\"text-align: center;\">ADC<\/h1>\n<p><span style=\"color: #333399;\"><strong>1. Chu\u1ea9n b\u1ecb ph\u1ea7n c\u1ee9ng:<\/strong><\/span><br \/>\nTrong b\u00e0i n\u00e0y ch\u00fang ta s\u1eed d\u1ee5ng bi\u1ebfn tr\u1edf k\u1ebft n\u1ed1i v\u1edbi 1 ch\u00e2n ADC c\u1ee7a PIC16F887.<br \/>\nKhi v\u1eb7n bi\u1ebfn tr\u1edf th\u00ec m\u1ee9c \u0111i\u1ec7n \u00e1p v\u00e0o ch\u00e2n ADC s\u1ebd thay \u0111\u1ed5i t\u1eeb 0-5V.<\/p>\n<p><strong>S\u01a1 \u0111\u1ed3 nguy\u00ean l\u00fd (schematic):<\/strong><\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"ADC schematic\" src=\"http:\/\/i653.photobucket.com\/albums\/uu259\/rockc4\/CLB%2013112010\/PIC%20course\/ADCschematic.jpg\" alt=\"\" width=\"454\" height=\"243\" \/><br \/>\n<\/strong><\/p>\n<p>&#8211;\tC\u00e1c b\u1ea1n c\u00f3 th\u1ec3 g\u1eafn tr\u00ean breadboard, h\u00e0n tr\u00ean m\u1ea1ch l\u1ed7, ho\u1eb7c l\u00e0m m\u1ea1ch in.<br \/>\n&#8211;\tBi\u1ebfn tr\u1edf c\u00f3 gi\u00e1 tr\u1ecb 10k (103), n\u00ean mua lo\u1ea1i volume cho d\u1ec5 v\u1eb7n (t\u1ea5t nhi\u00ean l\u00e0 c\u00e1c loai n\u00e0o kh\u00e1c c\u0169ng \u0111\u01b0\u1ee3c)<\/p>\n<p>&#8211;\tCh\u00e2n \u1edf gi\u1eefa c\u1ee7a bi\u1ebfn tr\u1edf l\u00e0 \u201cch\u00e2n ch\u1ea1y\u201d th\u00ec c\u00e1c b\u1ea1n h\u00e0n v\u1edbi tr\u1edf 1k r\u1ed3i n\u1ed1i v\u00e0o 1 header \u0111\u1ec3 g\u1eafn v\u00e0o ch\u00e2n ADC c\u1ee7a PIC.<\/p>\n<p><strong>K\u1ebft n\u1ed1i<\/strong>:<br \/>\n+ Header source in: c\u1ea5p ngu\u1ed3n 5VDC.<br \/>\n+ Header 1: K\u1ebft n\u1ed1i v\u1edbi 1 ch\u00e2n ADC b\u1ea5t k\u00ec c\u1ee7a PIC (ANx).<br \/>\n&#8211;\tKhi v\u1eb7n bi\u1ebfn tr\u1edf xu\u1ed1ng v\u1ecb tr\u00ed<strong> (3)<\/strong> th\u00ec \u00e1p \u0111\u1ecdc v\u00e0o l\u00e0 0V.<br \/>\n&#8211;\tKhi v\u1eb7n bi\u1ebfn tr\u1edf l\u00ean v\u1ecb tr\u00ed <strong>(1) <\/strong>&#8211;&gt; \u0110\u1ecdc v\u1ec1 5V, n\u1ebfu kh\u00f4ng c\u00f3 \u0111i\u1ec7n tr\u1edf R5 1kOhm h\u1ea1n d\u00f2ng th\u00ec ch\u00e2n I\/O c\u1ee7a PIC c\u00f3 kh\u1ea3 n\u0103ng s\u1ebd ch\u1ebft.<\/p>\n<p><span style=\"color: #333399;\"><strong>2. Slide b\u00e0i gi\u1ea3ng<\/strong><\/span>: <a href=\"http:\/\/www.mediafire.com\/?1tz24959dq6skb3\">ADC.pdf<\/a><\/p>\n<p><span style=\"color: #333399;\"><strong>3. Clip b\u00e0i gi\u1ea3ng:<\/strong><\/span><\/p>\n<p>Ph\u1ea7n 1:<\/p>\n<p>(n\u1ebfu clip kh\u00f4ng hi\u1ec3n th\u1ecb \u0111\u01b0\u1ee3c m\u1eddi b\u1ea1n xem t\u1ea1i <a href=\"http:\/\/www.youtube.com\/watch?v=26VZ_Q2mD2Y\">link n\u00e0y<\/a>)<\/p>\n<p>Ph\u1ea7n 2:<\/p>\n<p>(n\u1ebfu clip kh\u00f4ng hi\u1ec3n th\u1ecb \u0111\u01b0\u1ee3c, m\u1eddi b\u1ea1n xem t\u1ea1i <a href=\"http:\/\/www.youtube.com\/watch?v=_5pJH0gvGfA\">link n\u00e0y<\/a>)<\/p>\n<p><span style=\"color: #333399;\"><strong>4. Sample code:<\/strong><\/span><br \/>\nCh\u01b0\u01a1ng tr\u00ecnh sau \u0111\u00e2y c\u00f3 nhi\u1ec7m v\u1ee5:<br \/>\n&#8211; Ch\u1ecdn k\u00eanh ADC l\u00e0 AN3.<br \/>\n&#8211; C\u1ea5u h\u00ecnh cho module ADC (xem ph\u1ea7n ch\u00fa th\u00edch trong code)<br \/>\n&#8211; \u0110\u1ecdc k\u1ebft qu\u1ea3 chuy\u1ec3n \u0111\u1ed5i ADC v\u00e0 ki\u1ec3m tra n\u1ebfu \u00e1p ng\u00f5 v\u00e0o analog &gt; 2.5V th\u00ec b\u1eadt c\u00e1c LEDs g\u1eafn \u1edf PORTB l\u00ean.<\/p>\n<p><span style=\"color: #333399;\"><em>C\u00e1c ph\u1ea7n c\u1ea5u h\u00ecnh, kh\u1edfi t\u1ea1o, \u0111\u1ecdc k\u1ebft qu\u1ea3 ADC, &#8230; \u0111\u1ec1u \u0111\u01b0\u1ee3c vi\u1ebft th\u00e0nh c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh con.<br \/>\nC\u00e1c ch\u00fa th\u00edch c\u1ea7n thi\u1ebft \u0111\u01b0\u1ee3c vi\u1ebft \u0111\u1ea7y \u0111\u1ee7 \u0111\u1ec3 c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng ch\u1ec9nh s\u1eeda c\u1ea5u h\u00ecnh khi c\u1ea7n.<\/em><\/span><\/p>\n<pre>\/****************************************************************<\/pre>\n<pre>*<\/pre>\n<pre>* www.payitforward.edu.vn<\/pre>\n<pre>*<\/pre>\n<pre>****************************************************************\/<\/pre>\n<pre>\/****************************************************************<\/pre>\n<pre>*<\/pre>\n<pre>* PIC Training Course<\/pre>\n<pre>*<\/pre>\n<pre>****************************************************************\/<\/pre>\n<pre>\/****************************************************************\r\n*\r\n*    Module        : adc_main.c\r\n*    Description  : Read ADC from AN3 channel\r\n*                         If ADC_result &gt; 2.5V then Turn On LEDs\r\n*    Tool            : HI-TECH PIC\r\n*    Chip            : 16F887\r\n*     History       : 05\/03\/2011\r\n*\r\n*    Author        : Nguyen Tien Manh, CLB NCKH\r\n*    Notes          :\r\n*\r\n*\r\n****************************************************************\/<\/pre>\n<pre>\/****************************************************************\r\n* IMPORT\r\n****************************************************************\/<\/pre>\n<pre>#include\r\n__CONFIG(XT &amp; WDTDIS &amp; PWRTEN &amp; MCLREN &amp; UNPROTECT &amp; SWBOREN &amp;\r\nIESODIS &amp; FCMDIS &amp; LVPDIS &amp; DEBUGDIS); \/\/1st config. Word<\/pre>\n<pre>__CONFIG(BORV21); \/\/2st config. Word<\/pre>\n<pre>#define _XTAL_FREQ     4000000<\/pre>\n<pre>\/****************************************************************\r\n* EXTERN\r\n****************************************************************\/\r\n\/*none...*\/<\/pre>\n<pre>\/*****************************************************************\r\nGLOBAL VARIABLE\r\n******************************************************************\/\r\n\/*none...*\/<\/pre>\n<pre>\/*****************************************************************\r\n* ROUTINES\r\n******************************************************************\/\r\nvoid port_init()\r\n{\r\nANSEL = 0x08;   \/\/ Chon kenh ADC AN3\r\nANSELH = 0;\r\nTRISA3 = 1;      \/\/RA3 phai la Input de doc ADC\r\nTRISB = 0;        \/\/PortB de xuat LED nen la OutPut\r\nPORTB = 0xFF   \/\/ Tat het LED o portB\r\n}<\/pre>\n<pre>\/\/----------------------------------------------------------------\r\nvoid adc_init()\r\n{\r\n\/\/ ADC conversion clock: = Fosc\/8\r\n\/\/            ADCS &lt;1:0&gt; = 00    Fosc\/2\r\n\/\/            ADCS &lt;1:0&gt; = 01    Fosc\/8\r\n\/\/            ADCS &lt;1:0&gt; = 10    Fosc\/32\r\n\/\/            ADCS &lt;1:0&gt; = 11    F_RC\r\nADCS1 = 0;\r\nADCS0 = 1;<\/pre>\n<pre>\/\/ Voltage reference: Internal Vref\r\n\/\/            VCFG &lt;1:0&gt; = 00    Internal Vref\r\n\/\/            VCFG &lt;1:0&gt; = 11    External Vref\r\nVCFG1 = 0;\r\nVCFG0 = 0;<\/pre>\n<pre>\/\/ Select Input chanel: AN3\r\n\/\/            CHS &lt;3:0&gt; = 0000    Select AN0\r\n\/\/            CHS &lt;3:0&gt; = 0001    Select AN1\r\n\/\/            CHS &lt;3:0&gt; = 0010    Select AN2\r\n\/\/             ...\r\n\/\/            CHS &lt;3:0&gt; = 1101    Select AN13\r\nCHS3 = 0;\r\nCHS2 = 0;\r\nCHS1 = 1;\r\nCHS0 = 1;<\/pre>\n<pre>\/\/ Result format: Right\r\n\/\/                ADFM = 1 Right justified\r\n\/\/                ADFM = 0 Left justified\r\nADFM = 1;<\/pre>\n<pre>\/\/ Turn on ADC Module\r\nADON = 1;<\/pre>\n<pre>\/\/delay to wait for adc module init.\r\n__delay_ms (1);\r\n}<\/pre>\n<pre>\/\/----------------------------------------------------------------\r\n\/\/interrupt initialization\r\nvoid int_init()\r\n{\r\nGIE = 1;    \/\/Global Interrupt Enable\r\nPEIE = 1;    \/\/Peripheral Interrupt Enable\r\nADIE = 1;    \/\/ADC Interrupt Enable\r\nADIF = 0;    \/\/Clear ADC Interrupt Flag\r\n}<\/pre>\n<pre>\/\/----------------------------------------------------------------\r\n\/\/Interrupt service rountine\r\nvoid interrupt isr()\r\n{\r\nint ADC_result;\r\nif (PEIE &amp;&amp; ADIE &amp;&amp; ADIF)\r\n{\r\nADIF = 0;    \/\/Clear ADC Interrupt Flag<\/pre>\n<pre>\/\/Read ADC result\r\nADC_result = (ADRESH&lt;&lt;8)|ADRESL;\r\n\/\/V_in &gt; 2.5V &lt;=&gt; ADC_result &gt; 512\r\nif (ADC_result&gt; 512)\r\n{\r\nPORTB = 0;    \/\/Turn LEDs ON\r\n}\r\nelse\r\n{\r\nPORTB = 0xFF;\r\n}\r\n}\r\n}<\/pre>\n<pre>\/****************************************************************\r\n* MAIN\r\n****************************************************************\/<\/pre>\n<pre>\/* -- void main (void)    -----------------------------------------\r\n*\r\n* Description    : Configure port, adc module and enable interrupt\r\n*                    then wait for ADC interrupt\r\n* Parameters    : none\r\n* Return        : don't care\r\n* Notes        :\r\n*\/<\/pre>\n<pre>void main(void)\r\n{\r\nport_init();\r\nadc_init();\r\nint_init();\r\nwhile(1)\r\n{\r\n__delay_us(50);    \/\/delay between 2 AD conversions\r\nGODONE = 1;        \/\/Set GODONE bit to start conversion\r\n};\r\n}<\/pre>\n<pre>\/****************************************************************\r\n* END OF adc_main.c\r\n****************************************************************\/<\/pre>\n<p><span style=\"color: #333399;\"><strong>5. B\u00e0i t\u1eadp:<\/strong><\/span><\/p>\n<p>\u0110\u1ecdc gi\u00e1 tr\u1ecb \u0111i\u1ec7n \u00e1p (0-5V) t\u1eeb 1 ch\u00e2n ADC c\u1ee7a PIC v\u00e0 hi\u1ec3n th\u1ecb k\u1ebft qu\u1ea3 l\u00ean LCD, v\u1edbi &#8211; \u0110\u1ecdc gi\u00e1 tr\u1ecb ADC t\u1eeb ch\u00e2n AN3 (gi\u00e1 tr\u1ecb n\u00e0y n\u1eb1m trong ph\u1ea1m vi 0-1023)<br \/>\n&#8211; T\u00ednh to\u00e1n ra gi\u00e1 tr\u1ecb \u0111i\u1ec7n \u00e1p (Volt) th\u1ef1c t\u1ebf?<br \/>\n&#8211; Gi\u00e1 tr\u1ecb \u0111i\u1ec7n \u00e1p n\u00e0y y\u00eau c\u1ea7u l\u1ea5y t\u1edbi 3 ch\u1eef s\u1ed1 th\u1eadp ph\u00e2n: 0.000<br \/>\n&#8211; Hi\u1ec3n th\u1ecb k\u1ebft qu\u1ea3 l\u00ean LCD.<br \/>\n<strong>V\u00ed d\u1ee5: <\/strong>&#8220;V_in = 1.352 V&#8221;<\/p>\n<p>(<a href=\"http:\/\/www.payitforward.edu.vn\/forum\/forums\/23\/\">Tham kh\u1ea3o th\u00eam ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc tr\u00ean forum<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e0i li\u1ec7u n\u00e0y \u0111\u01b0\u1ee3c bi\u00ean so\u1ea1n kh\u00f4ng nh\u1eb1m v\u00e0o b\u1ea5t k\u1ef3 m\u1ee5c \u0111\u00edch n\u00e0o mang t\u00ednh th\u01b0\u01a1ng m\u1ea1i. B\u1ea1n c\u00f3 quy\u1ec1n sao ch\u00e9p, s\u1eeda ch\u1eefa v\u00e0 ph\u00e2n ph\u00e1t b\u1eb1ng b\u1ea5t k\u1ef3 h\u00ecnh th\u1ee9c n\u00e0o. H\u00e3y s\u1eed d\u1ee5ng t\u00e0i li\u1ec7u n\u00e0y, s\u1eeda ch\u1eefa, b\u1ed5 sung v\u00e0 g\u1eedi cho nh\u1eefng ai c\u1ea7n n\u00f3. Ch\u00fang t\u00f4i kh\u00f4ng \u0111\u1ec1 t\u00ean t\u00e1c gi\u1ea3 bi\u00ean so\u1ea1n. T\u00e0i li\u1ec7u n\u00e0y thu\u1ed9c quy\u1ec1n s\u1edf h\u1eefu nh\u1eefng ai \u0111ang d\u00f9ng n\u00f3. Pay it forward\u2026 B\u00e0i 5: ADC 1. Chu\u1ea9n b\u1ecb ph\u1ea7n c\u1ee9ng: Trong b\u00e0i n\u00e0y ch\u00fang ta s\u1eed d\u1ee5ng bi\u1ebfn tr\u1edf k\u1ebft n\u1ed1i v\u1edbi 1 ch\u00e2n ADC c\u1ee7a PIC16F887. \u2026<\/p>\n<p class=\"continue-reading-button\"> <a class=\"continue-reading-link\" href=\"https:\/\/payitforward.edu.vn\/wordpress\/tutorials\/hitech-pic\/bai-5-adc\/\">Continue reading<i class=\"crycon-right-dir\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":485,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-932","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/pages\/932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/comments?post=932"}],"version-history":[{"count":9,"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/pages\/932\/revisions"}],"predecessor-version":[{"id":1247,"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/pages\/932\/revisions\/1247"}],"up":[{"embeddable":true,"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/pages\/485"}],"wp:attachment":[{"href":"https:\/\/payitforward.edu.vn\/wordpress\/wp-json\/wp\/v2\/media?parent=932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}