Dành cho người mới tìm hiểu 8051

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • Zz_Bi_zZ
    Thành viên tích cực
    • Nov 2007
    • 766

    #481
    Nguyên văn bởi thangbom64
    co ai biet con IC nao dung cho lich van nien ko ma khong can phai lap trinh gi het ? hien thi ngay ,thang ,nam ,gio phut giay va ca nhiet do nua .mong cac bac hoi am giup em.
    chan thanh cam on
    mún en phải len zô bếp , chả ai dọn sẵn cỗ đâu bác ah !

    Comment

    • leanhthuan
      Thành viên mới
      • Dec 2007
      • 15

      #482
      Cảm ơn tất cả các anh em.
      Mà sao bạn Quỳnh không dạy cho moi người nua vậy.
      Bạn hãy porst thêm nhiều ví dụ nưa cho mọi người cùng học tập với chứ.

      Comment

      • mrcuongcon
        Thành viên tích cực
        • Oct 2007
        • 737

        #483
        co ai biet con IC nao dung cho lich van nien ko ma khong can phai lap trinh gi het ? hien thi ngay ,thang ,nam ,gio phut giay va ca nhiet do nua .mong cac bac hoi am giup em.
        chan thanh cam on
        Có loại IC này, nhưng mà ở VN mà tìm mua nó chắc khó hơn lên trời.

        Comment

        • DungNTvt
          Thành viên mới
          • Feb 2008
          • 6

          #484
          Lcd

          Các bác giúp em với. Hiện nay em đang làm bài tập về LCD mô phỏng hiện chữ lên màn hình dùng chương trình mô phỏng Proteus. Em đã mô phỏng 2 trường hợp của chương trình con WAIT_LCD
          Trường hợp 1 em đợi khoảng thời gian mù ( dùng delay ) thì chữ hiện lên LCD bình thường.
          Trường họp 2 em đợi cho cờ BF (ACC.7) từ mức 1 xuống mức 0. Nhưng cờ không thể xuống mức 0 được ( em không hiểu tại sao ??) và chương trình không thể thoát khỏi chương trình con được.
          Đây là chương trình và của em. Mong các bác tìm giúp em lỗi sai ở cờ BF (ACC.7). Em có đính kèm các file chương trình + mô phỏng ở dưới.
          Em cảm ơn nhiều.


          org 0000h
          DB0 BIT P0.0
          DB1 BIT P0.1
          DB2 BIT P0.2
          DB3 BIT P0.3
          DB4 BIT P0.4
          DB5 BIT P0.5
          DB6 BIT P0.6
          DB7 BIT P0.7
          RW BIT P3.5
          RS BIT P3.6
          E BIT P3.7
          MAIN:

          LCALL DELAY
          LCALL INIT_LCD
          LCALL CLR_LCD
          MOV A,#'D'
          LCALL WRITE_TEXT
          MOV A,#'U'
          LCALL WRITE_TEXT
          MOV A,#'N'
          LCALL WRITE_TEXT
          MOV A,#'G'
          LCALL WRITE_TEXT

          ;************************************************* *************
          ; Delay program
          ;************************************************* *************
          DELAY:
          PUSH 7
          PUSH 6
          MOV R7,#1
          RE1: MOV R6,#2
          DJNZ R6, $
          DJNZ R7,RE1
          POP 6
          POP 7

          RET

          ;************************************************* **************
          ; Start LCD
          ;************************************************* **************
          INIT_LCD:
          CLR RS
          CLR RW
          MOV P0,#38h
          SETB E
          CLR E
          LCALL WAIT_LCD
          CLR RS
          CLR RW
          MOV P0,#0Eh
          SETB E
          CLR E
          LCALL WAIT_LCD
          CLR RS
          CLR RW
          MOV P0,#06h
          SETB E
          CLR E
          LCALL WAIT_LCD
          RET

          ;************************************************* **************
          ; Clear LCD
          ;************************************************* **************
          CLR_LCD:
          CLR RW
          CLR RS
          MOV P0,#01h
          SETB E
          CLR E
          LCALL WAIT_LCD
          RET

          ;************************************************* *************
          ; Write the context to LCD
          ;************************************************* ************
          WRITE_TEXT:
          CLR RW
          SETB RS
          MOV P0,A
          SETB E
          CLR E
          LCALL WAIT_LCD
          RET

          ;************************************************* *************
          ; Test busy flat ( wait lcd program )
          ;************************************************* ************
          WAIT_LCD:
          ; lcall delay
          ; CLR E ;Start LCD command
          CLR RS ;It's a command
          SETB RW ;It's a read command
          MOV P0,#0FFh ;Set all pins to FF initially
          SETB E
          MOV A,P0 ;Read the return value
          JB ACC.7,$ ;If bit 7 high, LCD still busy
          CLR E ;Finish the command
          CLR RW ;Turn off RW for future commands
          RET
          END
          Attached Files
          Last edited by DungNTvt; 11-11-2008, 16:33. Lý do: Không thoát khỏi chương trình kiểm tra cờ BF

          Comment

          • DungNTvt
            Thành viên mới
            • Feb 2008
            • 6

            #485
            Trong chương trình mô phỏng em chạy từng lệnh một nhưng tới lệnh JB ACC.7 ,$ thì không thoát ra được ( ACC.7) luôn ở trạng thái 1 (??).
            Last edited by DungNTvt; 11-11-2008, 16:36.

            Comment

            • tallht
              Thành viên mới
              • Apr 2008
              • 361

              #486
              Nguyên văn bởi tranvannam59
              Chào các bạn mình có 70 con led mắc nối tiếp, mỗi con 2v5 tổng hiệu điện thế là 70x2v5= 175v sử dụng điện thế 220v như vậy phải dùng điện trở bao nhiêu ohm? và công thức tính như thế nào nếu thay đổi số lượng led mong các bạn chỉ giúp.
              Cám ơn nhiều
              đơn giản thôi mà bạn: dòng qua các con led là khoảng 10mA.còn áp trên con điện trở là 220-175=45V.Vậy thì con trở sẽ là 45/10m=4500 Ohm.
              SỰ HỌC LÀ MÃI MÃI......!!!!

              Comment

              • tallht
                Thành viên mới
                • Apr 2008
                • 361

                #487
                Nguyên văn bởi DungNTvt Xem bài viết
                Trong chương trình mô phỏng em chạy từng lệnh một nhưng tới lệnh JB ACC.7 ,$ thì không thoát ra được ( ACC.7) luôn ở trạng thái 1 (??).
                bạn Dũng thân mến : cái thằng Proteus nó chỉ là mô phỏng thôi mà.nó đâu phải là sản phẩm thật đâu.Do đó cái thằng LCD trên đó đâu thể tạo ra tín hiệu cho cờ BF=0 được đâu.trường hợp này tui đã gặp.mô phỏng thì chỉ có thể dùng delay thôi.còn bạn hãy đe chương trình bạn viết bằng cờ BF nạp thẳng vào mạch chắc chắn sẽ chạy(hì hì nếu bạn viết đúng nhá)
                Chúc vui!
                SỰ HỌC LÀ MÃI MÃI......!!!!

                Comment

                • mrcuongcon
                  Thành viên tích cực
                  • Oct 2007
                  • 737

                  #488
                  bạn Dũng thân mến : cái thằng Proteus nó chỉ là mô phỏng thôi mà.nó đâu phải là sản phẩm thật đâu.Do đó cái thằng LCD trên đó đâu thể tạo ra tín hiệu cho cờ BF=0 được đâu.trường hợp này tui đã gặp.mô phỏng thì chỉ có thể dùng delay thôi.còn bạn hãy đe chương trình bạn viết bằng cờ BF nạp thẳng vào mạch chắc chắn sẽ chạy(hì hì nếu bạn viết đúng nhá)
                  Chúc vui!
                  Bậy nào, tui làm kiểm tra cờ vẫn chạy ầm ầm.

                  Comment

                  • mrcuongcon
                    Thành viên tích cực
                    • Oct 2007
                    • 737

                    #489
                    JB ACC.7 ,$ là chết rồi, chỗ này kô đúng. ACC.7 là bit trong thanh ghi A của 8051, nó đâu có nối với LCD đâu? bạn phải kiểm tra: JB P3.7, với P3.7 nối với chân của LCD. Bạn xem các môdule của mình, có kiểm tra cờ bận.
                    Attached Files

                    Comment

                    • mrcuongcon
                      Thành viên tích cực
                      • Oct 2007
                      • 737

                      #490
                      đơn giản thôi mà bạn: dòng qua các con led là khoảng 10mA.còn áp trên con điện trở là 220-175=45V.Vậy thì con trở sẽ là 45/10m=4500 Ohm.
                      70 con led mắc nối tiếp, chết 1 con thì....Mà led mua ngoài chợ zoi dễ dính tr hợp đó lắm. Công thức tính thì có rồi đấy. Nhưng chú ý là led có thể chết do áp đỉnh của điện lưới, kô phải là 220 đâu mà là 380v đấy.Bạn nên nắn điện sang 1 chiều , dùng tụ lọc rồi mới cắm dàn led vào.

                      Comment

                      • tallht
                        Thành viên mới
                        • Apr 2008
                        • 361

                        #491
                        ủa sao tui làm k chạy mà ta.nạp vào mạch thì ok.kì nha! tui sẽ test lại.
                        còn cái cụ đèn led thì dĩ nhiên tui đang tính theo 1 chiều muh!
                        hì hì
                        SỰ HỌC LÀ MÃI MÃI......!!!!

                        Comment

                        • rongconn2t
                          Banned
                          • Apr 2008
                          • 278

                          #492
                          Nguyên văn bởi Zz_Bi_zZ Xem bài viết
                          Tui cũng học CDT , thấy rất thú vị đó chứ . Có lẽ bạn là ng ko ham Cơ khí và điện tử lám . Mấy ku lớp tui học năm 5 oy mà h chưa bit điều tốc động cơ DC = cách j . chán !
                          thực sự thì mình cơ khí cũng thích,điện tử cũn Ok.nhưng mà học thì cái j cũng cưỡi ngựa xem hoa ấy.tìm người hỏi khó lắm
                          lên trên này cũng mong mọi người chỉ giáo nhiều

                          Comment

                          • rongconn2t
                            Banned
                            • Apr 2008
                            • 278

                            #493
                            có bác nào có thể vẽ hộ em cái lưu đồ để có thể hiển thị LCD với.
                            ngồi đọc mấy tài liệu về LCD nhưng mãi mà vẫn ko hiểu thế nào.mong mọi người giúp với nhá

                            Comment

                            • mrcuongcon
                              Thành viên tích cực
                              • Oct 2007
                              • 737

                              #494
                              có bác nào có thể vẽ hộ em cái lưu đồ để có thể hiển thị LCD với.
                              ngồi đọc mấy tài liệu về LCD nhưng mãi mà vẫn ko hiểu thế nào.mong mọi người giúp với nhá
                              Làm việc với LCD thì có 4 môdul chính :
                              1_ Init_LCD : khởi tạo các chế độ làm việc của LCD
                              2_ Sent_comman: mô đul gửi mã lệnh
                              3_ Sent_data: môdul gửi dữ liệu
                              4_ Busy: kiểm tra cờ bận
                              Sau khi viết xong các môdul này thì bạn hoàn toàn có thể yên tâm làm việc với LCD. Tuy nhiên, để viết được chúng bạn phải hiểu được cách thức hoạt động của LCD và cách giao tiếp 8051 với LCD.

                              Comment

                              • nct
                                Thành viên chính thức
                                • Mar 2008
                                • 38

                                #495
                                xin mọi người giúp đỡ

                                e dùng keil lập trình cho chip 89c51 (tạo file.hex) làm led P0 sáng tắt xen kẽ, sau đó dùng bo rixin nạp thì nó báo complete. sau đó nối dây mạch reset, thạch anh, chân 31 nối VCC = 5v, mà sao nó chẳng hoạt động gì hết. tháo ra nạp code khác thì nó cũng kô có tác dụng gì hết, toàn bộ led po đều sáng chập chờn. e ngĩ là e két nối sai. hoặc do bo nạp hư, nhưng thấy nó chạy bình thường. xin các a hướng dẫn cho e với đã mò 2 ngày rồi mà nó kô chạy gì cả. các a xem file đính kèm nhe!. e xin cảm ơn!
                                Attached Files

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...