Thông báo

Collapse
No announcement yet.

Nhờ các pro giúp phần code timer/counter của mạch đo điện dung dùng 8051

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

  • Nhờ các pro giúp phần code timer/counter của mạch đo điện dung dùng 8051

    Tình hình là e mới học vđk, e muốn làm một cái mạch đo điện dung của tụ.
    cái mạch của e như sau:
    Click image for larger version

Name:	aaaaaaa.PNG
Views:	1
Size:	33.1 KB
ID:	1412325
    em định đếm số xung vào trong 1s => f, sau đó tính toán ngược lại tụ C
    các bác chỉ dùng em phần code để làm sao sau khi đếm được số xung làm sao hiển thị trên LCD. phần này e dốt quá , trong sách viết cũng sơ sài nữa, đọc mãi ko hiểu.

  • #2
    nghĩa là bạn chỉ thắc mắc cách hiển thị lên LCD thôi hả, vs LCD loại thông dụng là 16x2, nó có 3 chân dk và 1 buss 8line dữ liệu
    3 chân dk bao gồm:
    LCD_RW: read/write cho phép ghi lên hoặc đọc dữ liệu từ lcd ra, ghi =0, đọc =1
    LCD_RS: đk chế độ ghi, LCD có 2 chế độ đó là ghi lệnh và ghi kí tự,ghi lệnh thực hiện các lệnh do nhà sản xuất quy định:vd xóa màn hình, bật tắt con trỏ, ghi kí tự là làm hiển thị các kí tự lên màn hình LCD
    LCD_EN: enable cho phép đọc thực hiện các lệnh vs LCD mà ta đã khai báo cho RW vs RS, khi chân này chuyển trạng thái từ mức cao 1 xuống thấp 0 thì nó sẽ thực hiện công việc ta đã khai báo qua RW vs RS và nhận data qua bus 8 line
    vậy từ đó suy ra bạn cần ghi kí tự lên LCD ta sẽ khai báo, RW=0; RS=1; sau đó tạo xung từ 1->0 cho EN. nhưng trước khi ghi kí tự bạn cần 1 số hàm khởi tạo cho LCD trước đã nhé
    Website chính thức đổi địa chỉ website thành
    Mời các bạn ghé thăm !!!

    Comment


    • #3
      cái phần đấy trong sách cũng có ghi nh em loay hoay mãi vẫn ko viết đc code
      chẳng hạn như sau khi đếm đc tần số xung vào f = 1khz, làm sao để lập trình phần tính toán C = 1/{ln2.(R1+2R2).c} rồi hiển thị ra LCD. ( e đang học asm)
      mấy tiền bối có thể cho e 1 vài code ví dụ đc ko? code C cũng đc ạ.
      tks các tiền bối

      Comment


      • #4
        dùng một cái timer để tạo ra thời gian chính xác 1s hoặc 1 phút. đưa cái tần số đó vào ngắt ngoài. đếm số sự kiện có được đó rồi đưa lên máy tính hoặc LCD
        code:
        void initTimer1()
        {
        /* ensure Timer 1 is in reset state */
        T1CON = 0x0020;
        //Prescale = 64, Fosc = 7.373.800Hz => Fin = Fosc/64 = 115.200HZ
        TMR1 = 0;
        /* reset Timer 1 interrupt flag */
        IFS0bits.T1IF = 0;

        /* set Timer1 interrupt priority level to 7 */
        // IPC0bits.T1IP = 4;

        /* enable Timer 1 interrupt */
        IEC0bits.T1IE = 0;

        /* set Timer 1 period register */
        PR1 = 0xffff; // 10ms : 1152
        T1CONbits.TON = 1;
        }
        // ngắt
        void __attribute__((__interrupt__)) _INT0Interrupt(void)
        {
        if(ch1==1)
        {
        _INT0EP = 1; //-
        T1CONbits.TON = 1;
        ch1 = 0;
        }
        else
        {
        T1CONbits.TON = 0;
        _INT0EP = 0; //+
        ch1 = 1;
        if(i<5)
        {
        P1[i] = TMR1;
        TMR1 = 0;
        i++;
        }
        else
        {
        temp1 = (P1[0]+P1[1]+P1[2]+P1[3]+P1[4])/5;
        temp1 = temp1*0.131;
        if(t1<3) t1++;
        else
        {
        if(temp1<181) pulse1= temp1;delay(40);
        t1 = 0;
        }
        P1[0] = P1[1] =P1[2] = P1[3] = P1[4] = 0;
        temp1 = 0;
        i = 0;
        }
        }
        _INT0IF=0;
        }
        //CH3
        code trên được viết cho DSPIC30f2010. code đo xung về từ đó tính toán góc mở thyristor. một đoạn code để bạn có thể hình dung

        Comment


        • #5
          mạch này có sai số nhìu lém........
          có hiệu chỉnh j không đấy

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Vì sản phẩm của họ dân mình có dùng, và có lẽ cũng không phải là không phổ biến, nên ĐT quyết định gởi thư điện tử tiếng Anh cho họ như sau, ( đã sửa vài từ như được góp ý, vì nếu lịch sự thì dù vòng vo cũng nên phản hồi, vì...
            Hôm qua, 16:36
          • tuyennhan
            Trả lời cho Tiếng Anh cho người Việt
            bởi tuyennhan
            Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
            Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
            23-02-2025, 07:44
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Cám ơn những lời chúc tốt đẹp của em.

            Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

            Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
            23-02-2025, 02:00
          • nhathung1101
            Trả lời cho Tiếng Anh cho người Việt
            bởi nhathung1101
            Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

            Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

            Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
            22-02-2025, 22:18
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

            Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
            22-02-2025, 14:51
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

            Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
            22-02-2025, 14:39
          • dinhthuong80
            Trả lời cho Tiếng Anh cho người Việt
            bởi dinhthuong80
            Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

            Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
            22-02-2025, 14:28
          • bqviet
            Trả lời cho Tiếng Anh cho người Việt
            bởi bqviet
            Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
            21-02-2025, 20:26
          • mèomướp
            Trả lời cho Tiếng Anh cho người Việt
            bởi mèomướp
            Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
            21-02-2025, 12:32
          • vi van pham
            Trả lời cho Tiếng Anh cho người Việt
            bởi vi van pham
            Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

            Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
            20-02-2025, 21:31
          Đang tải...
          X