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

          • Andrea14
            Vấn đề về tốc độ quay
            bởi Andrea14
            Chào mọi người,

            Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
            Hôm qua, 12:42
          • bqviet
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi bqviet
            Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
            06-12-2025, 17:17
          • nguyendinhvan
            Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
            bởi nguyendinhvan
            Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
            05-12-2025, 19:59
          • afrendly
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi afrendly
            Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
            04-12-2025, 01:27
          Đang tải...
          X