RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

giúp mình về LCD va PIC 16f877

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • pdkxlily
    Đệ tử 2 túi
    • Mar 2011
    • 27

    #61
    bạn sent cho mình bài mô phỏng của bạn như trên hình đi . mình tham khảo phát

    Comment

    • lambaotrung
      Đệ tử 5 túi
      • Jan 2010
      • 96

      #62
      Nguyên văn bởi caovanhuong View Post
      có thể sử dụng LCD 16x4, giao tiếp 8bit hoạc 4bit
      đây là cái thư viện mình viết giao tiếp 8 bit
      BT1: xuất "PIC VIET NAM" ra màn hình LCD
      Code:
      #include <16F877A.h>
      #include <def_877A.h>
      #fuses NOWDT,NOLVP,NOPROTECT,HS,PUT
      #use delay(clock=20000000)
      #include <lcd_lib.c>
      void main()
      {
      trisb=0x00;
      trisd=0x00;
      lcd_init();
      while(1)
      {
      lcd_putcmd(0x01);
      lcd_putcmd(0x0c);
      lcd_putchar("PIC VIET NAM");
      delay_ms(500);
      }
      }
      BT2: đọc giá trị thanh ghi porta

      Code:
      #include <16F877A.h>
      #include <def_877A.h>
      #fuses NOWDT,NOLVP,NOPROTECT,HS,PUT
      #use delay(clock=20000000)
      #include <lcd_lib.c>
      int8 a;
      void main()
      {
      trisb=0x00;
      trisd=0x00;
      trisa=0x00;
      lcd_init();
      while(1)
      {
      //porta=10;
      lcd_putcmd(0x01);
      lcd_putcmd(0x0c);
      a=portd;// gan gia tri thanh ghi portd vào a
      printf(lcd_putchar,"%d",a);// doc gia tri thanh ghi portd lên man hinh LCD
      delay_ms(500);
      }
      }
      BT3: đọc giá trị ADC của AN0 lên LCD
      Code:
      #include <16F877A.h>
      #include <def_877A.h>
      #fuses NOWDT,NOLVP,NOPROTECT,HS,PUT
      #device *=16 adc=8
      #use delay(clock=20000000)
      #include <lcd_lib.c>
      int8 data;
      void main()
      {
      trisb=0x00;
      trisd=0x00;
      trisa=0x00;
      lcd_init();
      setup_ADC_ports(AN0_AN1_AN3);
      setup_ADC(adc_clock_internal);
      set_ADC_channel(0);
      delay_us(10);
      while(1)
      {
      data=read_adc();
      lcd_putcmd(0x01);
      lcd_putcmd(0x0c);
      printf(lcd_putchar,"%u",data);
      delay_ms(500);
      }
      }
      đa một năm trôi qua rồi khi đọc lại bài viết này vẫn còn muốn cảm ơn anh 1 lần nửa.

      anh Hưởng này anh có thể giúp em về tập lệnh dịch hiển thị trên LCD dc ko. em đọc datasheet thì nó là lệnh 0x05 và 0x07, nhưng ko hiểu sao khi dùng lệnh này thì nó ko hiển thi.

      void main()
      {
      lcd_init();
      lcd_putcmd(0x80);
      printf(lcd_putchar,"PICVIETNAM");
      while(true)
      {
      lcd_putcmd(0x05)
      delay_ms(500);
      }
      }

      ko biết có phải lệnh 0x05 và 0x07 ko bác giúp em.

      Comment

      • onlybad123
        Nhập môn đệ tử
        • Nov 2012
        • 1

        #63
        có sơ đồ mạch cho bài tập 1 nói ở trên không cho mình với!
        hoangvanloi1991@gmail.com
        ai có gửi mail cho mình nha!!
        thanks!

        Comment

        Working...