Atmega16 và LCD 16x2

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • vietthanh123
    Thành viên tích cực
    • Mar 2011
    • 479

    #1

    Atmega16 và LCD 16x2

    Chào các bác. Em dùng codevision để lập trình. Em mắc phải vấn đề cần mọi người giúp như sau:
    Em sử dụng các nút bấm để hiển thị các dòng chữ trên LCD khác nhau. Tuy nhiên, nếu dòng chữ sau mà có ít ký tự hơn dòng chữ trước đó thì các chữ ở phía sau ko mất đi được.
    Các bác chỉ các khắc phục cho em với.
    Code và file mô phỏng đây ah.
    http://www.mediafire.com/?j8zhzun31eszl1e
    Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
    http://diencongnghiep360.com/
    http://tudienhathe.vn/

  • thegioi21mas
    Thành viên chính thức
    • Oct 2009
    • 42

    #2
    Hi!! Nghe qua thì có vẻ như vấn đề là do bạn chưa xóa ký tự trên LCD rồi mới ghi lại giá trị mới nên mới bị vậy...
    Bạn thử coi lại xem... chúc thành công

    Comment

    • nhquangdt3k5
      Thành viên tích cực
      • Nov 2010
      • 433

      #3
      cái này không cần phải dùng lệnh xóa sẽ làm cho LCD bị nháy. nếu dòng sau ít ký tự hơn thì bạn chèn thêm các ký tự trắng vào đằng sau hoặc đằng trước dòng cần hiển thị. ví dụ bạn muốn in lên LCD dòng " VI DIEU KHIEN" thì thay vì bạn viết như thế mà bạn hãy viết " VI DIEU KHIEN ". viết như vậy thì những phần nào không dùng đến sẽ bị chèn bằng ký tự trắng. trường hợp không chèn như vậy thì dùng lệnh xóa màn hình: lcd_clear(); (nếu dùng codewinavr) hoặc viết lệnh 0x01 vào lcd nếu như không dùng codewinavr.
      Never forget who you are!

      Comment

      • yakhontvn
        Thành viên chính thức
        • Jun 2011
        • 57

        #4
        Cũng không hẳn thế,lệnh xóa chỉ nháy nếu nó đặt trong vòng while(1) thôi.Vì vậy cứ đặt nó ngay trước while là ok!

        Comment

        • qchien
          Thành viên chính thức
          • Apr 2010
          • 64

          #5
          Nguyên văn bởi vietthanh123 Xem bài viết
          Chào các bác. Em dùng codevision để lập trình. Em mắc phải vấn đề cần mọi người giúp như sau:
          Em sử dụng các nút bấm để hiển thị các dòng chữ trên LCD khác nhau. Tuy nhiên, nếu dòng chữ sau mà có ít ký tự hơn dòng chữ trước đó thì các chữ ở phía sau ko mất đi được.
          Các bác chỉ các khắc phục cho em với.
          Code và file mô phỏng đây ah.
          http://www.mediafire.com/?j8zhzun31eszl1e
          Về vấn đề này bạn có thể làm theo cách sau những ký tự bạn cần hiển thị thêm vào đó là ký tự trống" " để LCD tự ghi đè lên những ký tự cũ mà không cần xóa.
          Ví dụ lệnh lcd_putsf("dientuvietnam"), sau đó bạn lại muốn hển thị từ"hello" thì chỉ cần viết lcd_putsf("hello "), thì sau đó không còn ký tự của dòng trước nữa.Chúc vui!

          :

          Comment

          • thiennv0109
            Thành viên tích cực
            • Dec 2010
            • 219

            #6
            Các bạn ở trên nói chuẩn rồi đấy, có 2 cách, một là dùng lệnh xóa rồi hiện thị dòng mới, 2 là dùng kí tự trống để chèn, số kí tự trống cần tối thiểu =| hiệu độ dài 2 dòng chữ|. Chúc bạn thành công.
            Đối với Tôi Đam mê là yếu tố không thể thiếu để quyết định sự Thành Công ...!
            Gmail: -Mobile: 0989.194.472

            Comment

            • vietthanh123
              Thành viên tích cực
              • Mar 2011
              • 479

              #7
              uhm. Cảm ơn mọi người đã giúp đỡ.
              Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
              http://diencongnghiep360.com/
              http://tudienhathe.vn/

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...