Thông báo

Collapse
No announcement yet.

[help]MẠCH ĐO ĐIỆN ÁP DÙNG 89S52

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [help]MẠCH ĐO ĐIỆN ÁP DÙNG 89S52

    Click image for larger version

Name:	IMG_20131210_120345937.jpg
Views:	1
Size:	66.2 KB
ID:	1419894sodomach-nguyenly.pdf
    Chào anh chị !
    Em đang làm mạch đo điện áp DC 0v - 50v. em vẽ và ráp mạch xong hết rồi, chạy mô phỏng thì nó hiện thị đùng, nhưng khi làm mạch thật thì cáp nguồn vào nó hiện ra 45.2v mặc dù chưa cắm que đo vào cái gì cả (như hình vẽ). Lỗi đó là lỗi gì vậy ạ !
    #include<AT89x52.h>
    #define LCD P0
    #define RS P2_0
    #define RW P2_1
    #define E P2_2


    #define KA P1_0
    #define KB P1_1
    #define KC P1_2
    #define ALE P1_3
    #define START P1_4
    unsigned int ADC;
    unsigned char j,tr,ch,dv;
    unsigned char code hang1[16]={"DONG HO DIEN TU"};
    unsigned char code hang2[16]={"V(DC): ."};

    void delay(unsigned int x)
    {
    unsigned int y;
    for(y=0;y<x;y++){};
    }

    void mdk()
    {
    RS=0; RW=0; E=1; E=0; delay(200);
    }

    void mkt()
    {
    RS=1; RW=0; E=1; E=0; delay(200);
    }

    void khoitao_lcd()
    {
    LCD=0x38; mdk();
    LCD=0x38; mdk(); delay(200);
    LCD=0x06; mdk(); delay(200);
    LCD=0x0c; mdk(); delay(200);
    LCD=0x01; mdk();
    }

    void giaima_lcd()
    {
    dv= ADC%10; ADC = ADC/10;
    ch= ADC%10; tr = ADC/10;
    dv= dv +0x30; ch= ch +0x30; tr= tr +0x30;
    }

    void hienthi_lcd()
    {
    unsigned char i;
    LCD=0x80; mdk();
    for(i=0;i<16;i++)
    {
    LCD=hang1[i]; mkt();
    }

    LCD=0xc0; mdk();
    for(i=0;i<16;i++)
    {
    LCD=hang2[i]; mkt();
    }
    for(i=0;i<16;i++)
    {
    LCD=0xC7; mdk();
    LCD= tr; mkt();
    LCD= ch; mkt();
    LCD=0xCA; mdk();
    LCD= dv; mkt();
    }
    }

    /*void hienthi_dienap()
    {
    LCD=0xC7; mdk();
    LCD= tr; mkt();
    LCD= ch; mkt();
    // LCD=0xC7; mdk();
    LCD= dv; mkt();
    }
    */
    void chuyedoi_adc()
    {
    START=1; ALE=1; delay(200); START=0; ALE=0;
    }

    void main()
    {
    unsigned char i;
    khoitao_lcd();
    KA=1; KB=1; KC=1;
    ADC=0;
    while(1)
    {

    for(i=0;i<100;i++)
    {
    chuyedoi_adc();
    delay(200);
    ADC=ADC+P1;
    }
    ADC = ADC/100;
    ADC =(ADC*196)/100;
    giaima_lcd();
    hienthi_lcd();
    // hienthi_dienap();
    }
    }


    Last edited by mctrjnh; 10-12-2013, 13:33.

Về tác giả

Collapse

mctrjnh Tìm hiểu thêm về mctrjnh

Bài viết mới nhất

Collapse

Đang tải...
X