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

          Đang tải...
          X