Thông báo

Collapse
No announcement yet.

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

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

  • 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


    • 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


      • 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


        • 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


          • 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


            • 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


              • 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


                • 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


                  • 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


                    • đơ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


                      • ủ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


                        • 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


                          • 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


                            • 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


                              • 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...
                                X