Thông báo

Collapse
No announcement yet.

hỏi về kết nối 8051 với eeprom !

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

  • hỏi về kết nối 8051 với eeprom !

    Các anh làm ơn giúp sơ đồ kết nối 8051 với eeprom 24c04. Em lấy từ proteus ra thì nó chỉ có 5 chân (SCL,SDA,WP,A1 và A2_không tính vcc và gnd) nhưng trong data sheet của nó có thêm chân A0 nữa, em không biết nối các chân A0, A1, A2 này thế nào ? Em sử dụng eeprom để lưu giá trị lỡ khi mất điện, các anh có code viết bằng keil c để giao tiếp với eeprom không ?

  • #2
    Nguyên văn bởi toilq30 Xem bài viết
    Các anh làm ơn giúp sơ đồ kết nối 8051 với eeprom 24c04. Em lấy từ proteus ra thì nó chỉ có 5 chân (SCL,SDA,WP,A1 và A2_không tính vcc và gnd) nhưng trong data sheet của nó có thêm chân A0 nữa, em không biết nối các chân A0, A1, A2 này thế nào ? Em sử dụng eeprom để lưu giá trị lỡ khi mất điện, các anh có code viết bằng keil c để giao tiếp với eeprom không ?
    Bạn chỉ càn nối hai chân SCL, SDA vào VĐK của bạn là giao tiếp được. Ba cái chân A0,1,2 đấy là để chốt lựa chọn Eeprom khi mà có nhiều eeprom cùng giao tiếp với một VĐK. Trong trường hợp bạn chỉ dùng một chú bộ nhớ đấy thôi thì khỏi cần quan tâm tới nó.

    Trên VĐK bạn cứ chọn bừa hai chân nào đó làm chân SCL và SDA sau đó copy mấy cái hàm ghi đọc êprom (có đầy trên mạng) vào là sử dụng ok.
    GTH sản xuất mạch in PCB 1 mặt:
    -phủ xanh: 40.000 đ/dm2
    -không phủ xanh: 30.000 đ/dm2
    -Cung cấp mực cảm quang để làm mạch in
    email:

    Comment


    • #3
      Nguyên văn bởi gth_pcb Xem bài viết
      Bạn chỉ càn nối hai chân SCL, SDA vào VĐK của bạn là giao tiếp được. Ba cái chân A0,1,2 đấy là để chốt lựa chọn Eeprom khi mà có nhiều eeprom cùng giao tiếp với một VĐK. Trong trường hợp bạn chỉ dùng một chú bộ nhớ đấy thôi thì khỏi cần quan tâm tới nó.

      Trên VĐK bạn cứ chọn bừa hai chân nào đó làm chân SCL và SDA sau đó copy mấy cái hàm ghi đọc êprom (có đầy trên mạng) vào là sử dụng ok.
      lâu lắm mới thấy anh này viết bài hơi có ích. Tiến bộ nhiều rồi đó nhỉ

      Email:
      Tel: 0983.497.310

      Comment


      • #4
        Nguyên văn bởi gth_pcb Xem bài viết
        Bạn chỉ càn nối hai chân SCL, SDA vào VĐK của bạn là giao tiếp được. Ba cái chân A0,1,2 đấy là để chốt lựa chọn Eeprom khi mà có nhiều eeprom cùng giao tiếp với một VĐK. Trong trường hợp bạn chỉ dùng một chú bộ nhớ đấy thôi thì khỏi cần quan tâm tới nó.

        Trên VĐK bạn cứ chọn bừa hai chân nào đó làm chân SCL và SDA sau đó copy mấy cái hàm ghi đọc êprom (có đầy trên mạng) vào là sử dụng ok.
        À quên nữa bạn ơi, sẵn tiện cho mình hỏi, tức là 3 chân a0,a1,a2 mình hở à ? Còn nữa do dữ liệu mình ghi vào có cả giá trị 8bit và 16bit thì cách thức nó lưu trữ thế nào ? Thanks !
        Last edited by toilq30; 12-10-2009, 20:57.

        Comment


        • #5
          Hi có ai giúp dùm em ko ?

          Comment


          • #6
            Nguyên văn bởi toilq30 Xem bài viết
            À quên nữa bạn ơi, sẵn tiện cho mình hỏi, tức là 3 chân a0,a1,a2 mình hở à ? Còn nữa do dữ liệu mình ghi vào có cả giá trị 8bit và 16bit thì cách thức nó lưu trữ thế nào ? Thanks !
            3 chân đó xuống GND hết

            Comment


            • #7
              Nguyên văn bởi Zz_Bi_zZ Xem bài viết
              3 chân đó xuống GND hết
              Bạn ơi vậy khi dữ liệu của mình gồm 8bit và 16bit thì cách lưu và đọc như thế nào ???

              Comment


              • #8
                Nguyên văn bởi toilq30 Xem bài viết
                Bạn ơi vậy khi dữ liệu của mình gồm 8bit và 16bit thì cách lưu và đọc như thế nào ???
                Có hai loại giá trị khi làm viêc với cái loại 24Cxx này:
                + giá trị data được tính bằng byte (8 bit) là giá trị được lưu vào các ô nhớ
                + giá trị address là địa chỉ của các ô nhớ, cái này được tính là 2 byte
                Vi du bạn ghi một số 34 vào ô địa chỉ thứ 12 thì hàm ghi là
                EEPROM_Write(12,34);
                Nhưng bạn có một số 2009 (>255) thì bạn phải tách ra làm hai số để lưu vào hai ô địa chỉ khác nhau. Mình thì mình hay chia cho 256:
                byte1 = phần nguyên của [2009/256] = 7
                byte2 = phần dư của [2009/256] = 217

                sau đó ghi lần lượt byte1, byte2 vào các ô địa chỉ.

                Nói chung, làm việc với bọn bộ lưu trữ này bạn phải có các hàm quản lý, chuyển đổi dữ liệu làm sao để đồng bộ lúc ghi vào và lúc đọc ra.
                GTH sản xuất mạch in PCB 1 mặt:
                -phủ xanh: 40.000 đ/dm2
                -không phủ xanh: 30.000 đ/dm2
                -Cung cấp mực cảm quang để làm mạch in
                email:

                Comment


                • #9
                  Ai biết chỉ mình với, mình muốn ghi dư liệu vào eeprom nhưng define tới 1F tới 20 thì nó không đọc đk nữa. Vậy fai làm sao ??? Cảm ơn

                  Comment


                  • #10
                    mọi người giúp e với ạ đoạn code này của e sai chỗ nào vậy ạ e viết cho đồng hồ đếm dây
                    với em muốn viết code cho 2 con le đơn nháy bo nguồn thì viết thế nào ạ e cảm ơn



                    SECOND EQU 30H
                    TCOUNT EQU 31H
                    KCOUNT EQU 32H
                    KEY BIT P3.7
                    ORG 00H
                    SJMP START
                    ORG 0BH
                    LJMP INT_T0
                    START: MOV DPTR,#TABLE
                    MOV P0,#3FH
                    MOV P2,#3FH ;Start, digital display, "00"
                    MOV SECOND,#00H
                    MOV TCOUNT,#00H
                    MOV KCOUNT,#00H
                    MOV TMOD,#01H ;Timer 0 is in Mode 1
                    MOV TL0,#(65536-50000)/256
                    MOV TH0,#(65536-50000) MOD 256
                    K1: JB KEY,$ ;Wait for key
                    LCALL DELAY
                    JB KEY,$
                    MOV A,KCOUNT
                    CJNE A,#00H,K2 ;Determine the number keys
                    SETB TR0 ;1st button, start timer
                    MOV IE,#82H
                    JNB KEY,$
                    INC KCOUNT ;Button up, button clicks value plus 1
                    LJMP K1
                    K2: CJNE A,#01H,K3
                    CLR TR0 ;2nd key, turn off timer
                    MOV IE,#00H
                    JNB KEY,$
                    INC KCOUNT ;Button up, button clicks value plus 1
                    LJMP K1
                    K3: CJNE A,#02H,K1 ;The 3rd button, return to initial state
                    JNB KEY,$
                    LJMP START
                    INT_T0: MOV TH0,#(65536-50000)/256
                    MOV TL0,#(65536-50000) MOD 256
                    INC TCOUNT
                    MOV A,TCOUNT
                    CJNE A,#2,I2 ;0.1 seconds is enough to account
                    MOV TCOUNT,#00H
                    INC SECOND
                    MOV A,SECOND
                    CJNE A,#100,I1 ;10 seconds is enough to account
                    MOV SECOND,#00H
                    I1: MOV A,SECOND
                    MOV B,#10
                    DIV AB
                    MOVC A,@A+DPTR ;Show time
                    MOV P0,A
                    MOV A,B
                    MOVC A,@A+DPTR
                    MOV P2,A
                    I2: RETI
                    TABLE: DB 3FH,06H,5BH,4FH,66H
                    DB 6DH,7DH,07H,7FH,6FH
                    DELAY: MOV R6,#20
                    D1: MOV R7,#250
                    DJNZ R7,$
                    DJNZ R6,D1
                    RET
                    END

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X