• Tin mới

    [PIC TUTORIAL] BÀI 7 Chương trình đọc dữ liệu tín hiệu analog từ chân AN0 và gửi về cổng nối tiếp có tốc độ Baud là 9600

    SƠ ĐỒ MẠCH ĐIỆN





    CHƯƠNG TRÌNH MẪU
    #include "16f887.h"
    #include "def_16f887.h"
    
    #device  *=16 ADC = 10 
    #fuses   HS,PUT,NOWDT,NOPROTECT,NOLVP 
    #use     delay(Clock = 4000000)                                           //Thach anh 4MHz
    #use     rs232(baud = 9600, parity = N , Xmit = Pin_c6,rcv = pin_c7)      //khoi tao usart
    #include <stdio.h>
    int16 data;
    void main() 
    { 
       setup_spi(SPI_SS_DISABLED); 
       setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
       setup_timer_2(T2_DISABLED,0,1); 
       setup_comparator(NC_NC_NC_NC); 
       setup_vref(FALSE);     
       setup_timer_1(T1_INTERNAL);  
       setup_adc_ports(sAN0|VREF_VREF);  //kenh A0 nhan tin hieu, A2 = 0V; A3 = 5V; 
       setup_adc(ADC_CLOCK_INTERNAL);    //Thoi gian lay mau bang clock he thong. 
       delay_ms(5);                      //Cho thiet lap xong ADC.
       // TODO: USER CODE!! 
        
       trisa = 0xff;                     //PORTA nhan du lieu.
       trisc = 0x10;                    
       set_adc_channel(0);               //Chon kenh 0.
       delay_us(10);                     //cho chon kenh xong. 
       printf("Blog.datmcu.com\r\n");  
       while(1) 
       {  
          data = read_adc();            //doc gia tri analog da chuyen doi sang so.
          //data = data/10.24;            //stepsize = 50mV. Neu giao tiep LM35 thi chia 2.048 (stepsize = 10mv)
          printf("Gia tri anlog: %lu\r\n",data);
          delay_ms(500);
       } 
           
    }
    



    DOWNLOAD FILE MÔ PHỎNG + CODE
    (Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download) 




    No comments