Thông báo

Collapse
No announcement yet.

LCD và PIC

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

  • LCD và PIC

    Nếu mình dùng 1 PORT để đk LCD thì ok, nhưng nếu mình ko dành PORT đó để đk mà dùng PORT khác làm chức năng RS, RW, EN thì LCD ko chạy đc, mình cũng đã định nghĩa lại nhưng ko thành công. Bác nào có cách thì chỉ dùm mình nhé. ThankS!


    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
    Tel: 031 518648 Phone: 0904 283 505

  • #2
    Bạn viết bằng CCS cho LCD 4bit?

    Comment


    • #3
      Trường hợp này giống của cậu :

      http://www.ccsinfo.com/forum/viewtop...er=asc&start=0

      Với HTPIC :
      http://www.lcdinterfacing.info/Inter...PIC16F877A.php

      Comment


      • #4
        Oh_THế thì mình phải viết thêm hàm mở rộng cho nó, mình dùng avr thấy lcd đc hỗ trợ khá tốt_Sang PIC hơi amater, cám ơn bạn nhiều.


        Add: 97 Quán Nam - Lê Chân - Hải Phòng.
        Tel: 031 518648 Phone: 0904 283 505

        Comment


        • #5
          Đã fix và add lại nhưng nó chạy lung tung beng hết cả. Hihi. Sẽ fix tiếp bằng đc thì thôi.


          Add: 97 Quán Nam - Lê Chân - Hải Phòng.
          Tel: 031 518648 Phone: 0904 283 505

          Comment


          • #6
            Sau một thời gian vật lộn với LCD (không lỗi này thì lỗi kia) mình cũng hiển thị được. Tuy nhiên còn một vướng mắc sau:
            - Mình dùng PIC16F877A điều khiển LCD. Chân dữ liệu D4-D7 của LCD nối vào chân RD4 - RD7 của PIC. Chân điều khiển R/W nối GND, RS nối RD2, E nối RD0. Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2 (do khi không dùng LCD thì mình dùng port d làm việc khác).
            - Vấn đề là: trong hàm main nếu đặt RE2 = 1 trước khi gọi hàm lcd_init() thì hiển thị bình thường. Nếu chuyển lệnh này ra sau hàm lcd_init() thì LCD hiển thị 1 hàng giống như trường hợp chỉ cấp nguồn, ko gửi dữ liệu, trong khi thử các chân dữ liệu của LCD bằng led thì vẫn thấy nháy (cả 4 chân).
            Có bác nào biết được vấn đề này là sao ko?
            (Một triệu chứng nữa là: mình có 1 hàm hiển thị LCD, 1 hàm sử dụng port d để hiển thị led đơn. Nếu gọi hàm hiển thị LCD sau hàm hiển thị led đơn thì cũng gặp hiện tượng như trên.)

            Comment


            • #7
              Chưa cấp nguồn cho LCD thì gọi cái lcd_init() thì có ý nghĩa gì_LCD cần có nguồn nuôi để thực hiện đc các lệnh khởi tạo bt chứ. Khà khà khà.............


              Add: 97 Quán Nam - Lê Chân - Hải Phòng.
              Tel: 031 518648 Phone: 0904 283 505

              Comment


              • #8
                Nguyên văn bởi whalebeat Xem bài viết
                Sau một thời gian vật lộn với LCD (không lỗi này thì lỗi kia) mình cũng hiển thị được. Tuy nhiên còn một vướng mắc sau:
                - Mình dùng PIC16F877A điều khiển LCD. Chân dữ liệu D4-D7 của LCD nối vào chân RD4 - RD7 của PIC. Chân điều khiển R/W nối GND, RS nối RD2, E nối RD0. Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2 (do khi không dùng LCD thì mình dùng port d làm việc khác).
                - Vấn đề là: trong hàm main nếu đặt RE2 = 1 trước khi gọi hàm lcd_init() thì hiển thị bình thường. Nếu chuyển lệnh này ra sau hàm lcd_init() thì LCD hiển thị 1 hàng giống như trường hợp chỉ cấp nguồn, ko gửi dữ liệu, trong khi thử các chân dữ liệu của LCD bằng led thì vẫn thấy nháy (cả 4 chân).
                Có bác nào biết được vấn đề này là sao ko?
                (Một triệu chứng nữa là: mình có 1 hàm hiển thị LCD, 1 hàm sử dụng port d để hiển thị led đơn. Nếu gọi hàm hiển thị LCD sau hàm hiển thị led đơn thì cũng gặp hiện tượng như trên.)

                Vấn đề của bạn là bạn tham lam quá , tích hợp nhiều thứ trên 1 port ... nên trong phần mềm phải xử lý khéo ( có nhiều trường hợp không thể xử lý được do các trường hợp xung đột nhau ) ... Tuy vậy tôi đoán là của bạn chỉ hiển thị các chức năng tuần tự ... và bạn " yếu " và chưa có nhiều kinh nghiệm về lập trình nên bị tắc.

                --- Bạn dùng chân để điều khiển nguồn cho LCD ( có phải khi bạn không dùng LCD bạn sẽ điều khiển chân chân này tắt LCD đi ??? để cho chữ hay LCD không bị loạn ? ).

                Nếu có dùng cái này khi bạn dùng LCD bạn phải :
                Kích hoạt nguồn trước
                RE2 =1 ;
                Trễ 1 thời gian ( delay chẳng hạn ... cho chắc ăn )
                Rồi mới Init_LCD ();

                Cách này làm là đúng ... vì LCD đã cấp điện, khởi động đầy đủ và sẵ sàng Init ( giao tiếp)

                --- Còn cách này : Init_LCD(); rồi mới RE2=1 ; .... là sai ( LCD cần cấp điện, các IC cần hoạt động trước khi ... dữ liệu giao tiếp, khởi tạo hoạt động .

                /// Còn trường hợp về hàm sau LED ... khi đã tắt điện LCD đi ( bằng chân RE2 ) để thực hiện hàm led trên Port D ... muốn dùng LCD lại thì ... lại phải kích hoạt RE2 ... init LCD ... rồi mới đến cái hàm hiển thị
                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
                  Thank bác nhiều nhiều. Giờ thì ngộ ra thêm một số điều. Quên mất là mình ngắt nguồn LCD rồi thì phải init lại . Đúng là gà quá.

                  Comment


                  • #10
                    "Chân nguồn Vdd mình điều khiển bằng cách nối với chân RE2"
                    "...Chuyển lệnh này ra sau hàm lcd_init()..."
                    Dân điện tử mà hỏi cái lỗi này ak. Đúng là chọc cười thiên hạ

                    Comment

                    Về tác giả

                    Collapse

                    hoangdai Hoàng Đình Đại-Điện tự động công nghiệp Tìm hiểu thêm về hoangdai

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

                    Collapse

                    • nhathung1101
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi nhathung1101
                      Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                      Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                      Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                      Hôm qua, 22:18
                    • dinhthuong80
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi dinhthuong80
                      Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                      Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                      Hôm qua, 14:51
                    • dinhthuong80
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi dinhthuong80
                      Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                      Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                      Hôm qua, 14:39
                    • dinhthuong80
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi dinhthuong80
                      Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                      Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                      Hôm qua, 14:28
                    • bqviet
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi bqviet
                      Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                      21-02-2025, 20:26
                    • mèomướp
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi mèomướp
                      Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                      21-02-2025, 12:32
                    • vi van pham
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi vi van pham
                      Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                      Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                      20-02-2025, 21:31
                    • bqviet
                      Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                      bởi bqviet
                      Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                      20-02-2025, 17:22
                    • dinhthuong80
                      Trả lời cho Tiếng Anh cho người Việt
                      bởi dinhthuong80
                      Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                      Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                      20-02-2025, 11:52
                    • vi van pham
                      Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                      bởi vi van pham
                      Uống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?

                      Cái khó bó cái...
                      19-02-2025, 23:05
                    Đang tải...
                    X