Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về giao tiếp LCD Please!

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

  • Cần giúp đỡ về giao tiếp LCD Please!

    Chào ACE! Bữa giờ mình có giao tiếp nhiều vs LCD nhưng chỉ giao tiếp cho PortB, Như PIC16F877A mình dùng thư viện chuẩn CCS thì giao tiếp bình thương. Nhưng dùng PortA giao tiếp thì k thể hiển thị được. Ai biết giúp mình với Cảm ơn ạ
    + Cái nữa là sao con PIC 16F828A e làm kiểu gì cũng k giao tiếp được với LCD
    File mô phỏng và Code
    https://www.dropbox.com/s/tsdbdq0j2ityamr/LCD.rar?dl=0

  • #2
    Không có mạch, không có chương trình. Diễn đàn biết giúp bằng gì đây ?
    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      Nguyên văn bởi bqviet Xem bài viết
      Không có mạch, không có chương trình. Diễn đàn biết giúp bằng gì đây ?
      Dạ, e xin lỗi bác, e sơ ý quá.
      Attached Files

      Comment


      • #4
        Nguyên văn bởi bqviet Xem bài viết
        Không có mạch, không có chương trình. Diễn đàn biết giúp bằng gì đây ?
        Dạ, e xin lỗi bác, e sơ ý quá.
        File đầy đủ đạy bác
        https://www.dropbox.com/s/tsdbdq0j2ityamr/LCD.rar?dl=0

        Comment


        • #5
          Chân RA4 PIC16F682A là mở Drain ... nếu làm chân output mà không có điện trở treo thì không chạy !
          Ngoài ra PIC16F628A cũng có chân so sánh tại port A ... Mặc định các chân này là analog ... nếu không set là Digital I/O thì ... cũng không chạy ! ( thay đổi Analog, digital ... tại thanh ghi CMCON ).
          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


          • #6
            Nguyên văn bởi thuanbk1989 Xem bài viết
            Chào ACE! Bữa giờ mình có giao tiếp nhiều vs LCD nhưng chỉ giao tiếp cho PortB, Như PIC16F877A mình dùng thư viện chuẩn CCS thì giao tiếp bình thương. Nhưng dùng PortA giao tiếp thì k thể hiển thị được. Ai biết giúp mình với Cảm ơn ạ
            + Cái nữa là sao con PIC 16F828A e làm kiểu gì cũng k giao tiếp được với LCD
            File mô phỏng và Code
            https://www.dropbox.com/s/tsdbdq0j2ityamr/LCD.rar?dl=0

            PortA của 877 đa phần các chân là Analog, bạn khai báo qua đó mà không tắt Analog đi thì nó không chạy theo I/O số được.
            PIC628 PortA vướng anh RA5-6-7 nếu không cấu hình bỏ các tính năng mặc định của nó thì cũng teo luôn, LCD không chạy. trong 3 hình bạn đưa lên ngay hình 1 đã nối dây sai mất rồi, lấy gì LCD chạy. thứ tự chân phải ĐÚNG như thế này:
            Code:
            #define LCD_ENABLE_PIN  PIN_B0
            #define LCD_RS_PIN      PIN_B1
            #define LCD_RW_PIN      PIN_B2
            
            #define LCD_DATA4       PIN_B4
            #define LCD_DATA5       PIN_B5
            #define LCD_DATA6       PIN_B6
            #define LCD_DATA7       PIN_B7
            #include <LCD.c>
            đảm bảo chạy đẹp luôn!
            Last edited by hd03; 26-05-2016, 15:41. Lý do: sửa lỗi chính tả!! ^^

            Comment


            • #7
              Nguyên văn bởi queduong Xem bài viết
              Chân RA4 PIC16F682A là mở Drain ... nếu làm chân output mà không có điện trở treo thì không chạy !
              Ngoài ra PIC16F628A cũng có chân so sánh tại port A ... Mặc định các chân này là analog ... nếu không set là Digital I/O thì ... cũng không chạy ! ( thay đổi Analog, digital ... tại thanh ghi CMCON ).
              Cảm ơn a nha. đúng cái e cần
              Mà cái PortA nó kìa quá. E k cấu hình gì cho PortA mà vẫn điều khiển LED được và giao tiếp DS18B20 được là sao a?

              Comment


              • #8
                Nguyên văn bởi thuanbk1989 Xem bài viết
                Cảm ơn a nha. đúng cái e cần
                Mà cái PortA nó kìa quá. E k cấu hình gì cho PortA mà vẫn điều khiển LED được và giao tiếp DS18B20 được là sao a?
                Thằng CCS nó củ chuối là vì nó ghi dài dòng văn tự hay tự set cho mình chức năng chân I/O nên nhiều khi khó kiểm soát .
                Chẳng hạn câu lệnh như : NO_ANALOG bla bla gì đó ..... thì trong các trình dịch nó viết ADCON1 = 0x07; chẳng hạn ( viết y hệt trong câu lệnh mẫu trong datasheet của Microchip ... do đó trực quan, dễ dàng hơn ).
                Chẳng hạn câu lệnh kiểm tra mức logic ở chân RB6 thì một số trình dịch khác viết if(RB6) nhưng ông CCS thì if(input(RB6)) ..... đại là như vậy .
                Trong CCS bạn sử dụng fast I/O thì nó tự cấu hình cho cái port( chân ) đó là chân xuất nhập ( mà fast i/o là cái mẹ gì không biết ... vì mấy con PIC thì có muốn " Phát - fast " cũng chẳng "phát" nổi ... đối với một số trình dịch khác nếu không có cái Trisa, trisb gì đó thì nghĩa là không điều khiển được các chân I/O output ( mặc định thường là input )... Nhưng cũng có đôi lúc là sử dụng câu lệnh fast i/o trong ccs rồi nhưng không set Tris là nó éo chịu chạy ( về mặt này thỉnh thoảng hơi củ chuối ) ... Về mặt câu cú, ngữ pháp chắc chuẩn nhất có thằng Hitech PIC rồi XC8 ... còn mấy ông CCS, MikroC mà không hiểu kỹ câu lệnh, thư viện là nhiều khi sai không biết chỗ nào mà sửa.
                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


                • #9
                  fast_io thì phải set tris mới chạy chứ ?
                  Mục đích của nó là để người dùng tự cấu hình điều khiển do đó khi in/out nó sẽ không tự set tris nên sẽ nhanh hơn. Thế nó mới gọi là "phát"

                  Comment


                  • #10
                    Từ hồi giờ cứ nghĩ nó " phát " là chạy nhanh như ARM ... khà khà ... mà cũng lạ là muốn " phát " thì phải sử dụng fast_io ??? Tự người dùng set tris được rồi ... đó là phát gần như nhất rồi ... ( thiếu mỗi inline hay viết trực tiếp bằng ASM hay mã máy thôi ).
                    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


                    • #11
                      Thì bình thường không fast_io thì mỗi lần gọi in/out thì nó tự làm thêm mấy cái như set tris, config adc, compare...
                      Bây giờ dùng phát thì mình chỉ đâu nó đánh đấy, sống chết mặc bây. Nhanh hơn những mấy lần bác còn đòi thế nào nữa

                      Comment


                      • #12
                        Nguyên văn bởi duong_act Xem bài viết
                        Thì bình thường không fast_io thì mỗi lần gọi in/out thì nó tự làm thêm mấy cái như set tris, config adc, compare...
                        Bây giờ dùng phát thì mình chỉ đâu nó đánh đấy, sống chết mặc bây. Nhanh hơn những mấy lần bác còn đòi thế nào nữa
                        Xem 2 bác tranh luận mà e đọc cũng ngẫm ra nhiều cái hay quá. Cảm ơn bác nhé, giờ e đã hiểu "Phat" rồi. BỮa giờ cứ viết thôi chẳng hiểu gì cả

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X