Thông báo

Collapse
No announcement yet.

Giúp e lỗi lập trình PIC16F877 với!!!

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

  • Giúp e lỗi lập trình PIC16F877 với!!!

    Tình hình là e mới bước vào PIC lập trình C nhưng e include vào cái thư viện LCD_lib_4bit.c lại ko được các bác xem giúp e với !!


    Click image for larger version

Name:	pic.jpg
Views:	1
Size:	93.7 KB
ID:	1412593

    #include <stddef.h>

    #define LCD_RS PIN_D0
    #define LCD_RW PIN_D1
    #define LCD_EN PIN_D2
    #define LCD_D4 PIN_D4
    #define LCD_D5 PIN_D5
    #define LCD_D6 PIN_D6
    #define LCD_D7 PIN_D7

    // misc display defines-
    #define Line_1 0x80
    #define Line_2 0xC0
    #define Clear_Scr 0x01
    #separate void LCD_Init ();// ham khoi tao LCD
    #separate void LCD_SetPosition ( unsigned int cX );//Thiet lap vi tri con tro
    #separate void LCD_PutChar ( unsigned int cX );// Ham viet1kitu/1chuoi len LCD
    #separate void LCD_PutCmd ( unsigned int cX) ;// Ham gui lenh len LCD
    #separate void LCD_PulseEnable ( void );// Xung kich hoat
    #separate void LCD_SetData ( unsigned int cX );// Dat du lieu len chan Data


    // prototype statements

    // D/n Cong
    #use standard_io (D)
    //#use standard_io (D)

    //khoi tao LCD**********************************************
    #separate void LCD_Init ()
    {
    LCD_SetData ( 0x00 );
    delay_ms(20); /* wait enough time after Vdd rise >> 15ms */
    output_low ( LCD_RS );// che do gui lenh
    LCD_SetData ( 0x03 ); /* init with specific nibbles to start 4-bit mode */
    LCD_PulseEnable();
    LCD_PulseEnable();
    LCD_PulseEnable();
    LCD_SetData ( 0x02 ); /* set 4-bit interface */
    LCD_PulseEnable(); /* send dual nibbles hereafter, MSN first */
    LCD_PutCmd ( 0x2C ); /* function set (all lines, 5x7 characters) */
    LCD_PutCmd ( 0x0C ); /* display ON, cursor off, no blink */
    LCD_PutCmd ( 0x06 ); /* entry mode set, increment & scroll left */
    LCD_PutCmd ( 0x01 ); /* clear display */

    // Init for BarGraph

    }

    #separate void LCD_SetPosition ( unsigned int cX )
    {
    /* this subroutine works specifically for 4-bit Port A */
    LCD_SetData ( swap ( cX ) | 0x08 );
    LCD_PulseEnable();
    LCD_SetData ( swap ( cX ) );
    LCD_PulseEnable();
    }

    #separate void LCD_PutChar ( unsigned int cX )
    {
    /* this subroutine works specifically for 4-bit Port A */
    output_high ( LCD_RS );
    LCD_PutCmd( cX );
    output_low ( LCD_RS );
    }

    #separate void LCD_PutCmd ( unsigned int cX )
    {
    /* this subroutine works specifically for 4-bit Port A */
    LCD_SetData ( swap ( cX ) ); /* send high nibble */
    LCD_PulseEnable();
    LCD_SetData ( swap ( cX ) ); /* send low nibble */
    LCD_PulseEnable();
    }
    #separate void LCD_PulseEnable ( void )
    {
    output_high ( LCD_EN );
    delay_us ( 3 ); // was 10
    output_low ( LCD_EN );
    delay_ms ( 3 ); // was 5
    }

    #separate void LCD_SetData ( unsigned int cX )
    {
    output_bit ( LCD_D4, cX & 0x01 );
    output_bit ( LCD_D5, cX & 0x02 );
    output_bit ( LCD_D6, cX & 0x04 );
    output_bit ( LCD_D7, cX & 0x08 );
    }
    email
    nick: bangbigboy_bigboy
    sdt :01203380789

  • #2
    Lí do là thư viện lcd có sử dụng lệnh delay_ms().
    Lệnh delay_ms chỉ được phép dùng sau khi đã khai báo chế độ dao động và tần số dao động. Nên khi khai báo thư viện lcd bạn phải đặt dòng "#include <lcd...> dưới 2 dòng "#fuses HS" và " #use delay(clock...)".

    Comment


    • #3
      anh nói rõ hơn được không ?

      Comment


      • #4
        Nguyên văn bởi minhcaothang Xem bài viết
        anh nói rõ hơn được không ?
        người ta chỉ quá rõ ràng rồi còn gì."#include <lcd...> dưới 2 dòng "#fuses HS" và " #use delay(clock...)".
        chúc vui!
        Cửa hàng LINH KIỆN ĐIỆN TỬ BIÊN HÒA
        Ngã tư Amata -đối diện Bệnh Viện Nhi Đồng Nai đi tiếp 100m
        ĐC: 547/7 tổ 4 kp1 Long bình - Biên Hòa. Tell: 099509.79.68

        Comment


        • #5
          2 năm rồi mà cũng đào mộ lên !
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          • 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
          • nick22
            Trả lời cho Máy điện châm ?
            bởi nick22
            Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
            01-12-2025, 13:23
          Đang tải...
          X