I2C - Mẫu mã

M

Maverickmax

Guest
Chào

Bạn có biết nơi nhận được mẫu miễn phí của việc sử dụng I2C với chip AT89C52?

Maverick Max

 
AT89C52 không có giao diện I2C, nhưng bạn có thể xác định bất kỳ pins sẵn ..
Trong ví dụ này chúng P3.6 và P3.7 ..

RAM VỊ TRÍ NÀY DÙNG TRONG MODULE 70H
; THIS IS A CHƯƠNG TRÌNH LÀM VIỆC, TESTED ON 24C04 Serial Memory vi mạch
; CÙNG MÃ CÓ THỂ ĐƯỢC SỬ DỤNG CHO CÁC I2C IC'S VỚI SỬA ĐỔI.

WTCMD EQU 10100000B; 24C04 WRITE COMMAND
RDCMD EQU 10100001B; 24C04 READ COMMAND
ADDRS EQU 70H

SCL EQU P3.6; Serial Clock PIN
SDA EQU P3.7; SERIAL DATA PIN

...

Phần còn lại của mã, bạn có thể tìm thấy ở đây:
http://www.keil.com/discuss/docs/thread2328.htm

Kính trọng,
IanP

 
Chào

Tôi hiểu rất tốt các mã như dưới đây:Mã số:

RAM VỊ TRÍ NÀY DÙNG TRONG MODULE 70H

; THIS IS A CHƯƠNG TRÌNH LÀM VIỆC, TESTED ON 24C04 Serial Memory vi mạch

; CÙNG MÃ CÓ THỂ ĐƯỢC SỬ DỤNG CHO CÁC I2C IC'S VỚI SỬA ĐỔI.
WTCMD EQU 10100000B; 24C04 WRITE COMMAND

RDCMD EQU 10100001B; 24C04 READ COMMAND

ADDRS EQU 70HSCL EQU P3.6; Serial Clock PIN

SDA EQU P3.7; SERIAL DATA PINORG 0000H

LJMP STARTORG 0030H

START:

MOV P1, # 01hMOV R1, # 55H;

MOV A, # 00; WRITE THE DATA TRONG R1 ĐĂNG KÝ VÀO

MOV ADDRS, A; ADDRS THEO ĐỊA CHỈ nhọn VÀO 24C04

LCALL WRITE;LCALL L_DELAYMOV A, # 00;

MOV ADDRS, A; ĐỌC TỪ DATA 24C04 TỪ Memory

LCALL READ; VỊ TRÍ trỏ bởi ADDRS VÀ TRONG CỬA R2

MOV A, R2;MOV P1, A; THE MOVE P0 Red TRƯỚC dữ liệu lênLCALL L_DELAYLJMP START;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

; NÀY ĐƯỢC DÙNG ĐỂ GHI VÀO 24C04

; ARGUMENTS1 -> ADDRS => ADDRESS TO BE WRITTEN INTO, IN 24C04 Memory

; ARGUMENTS2 -> R1 ==> DATA TO BE WRITTEN

; RETURN -> NONEWRITE:

MOV A, # WTCMD

GỌI outsMOV A, ADDRS

CALL OUTMOV A, R1

CALL OUTGỌI STOPRET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

; NÀY thói quen SUB IS USED TO READ DATA TỪ 24C04

; Đối số -> ADDRS ==> CHỈ TẠI 24C04, THE DATA NÊN ĐƯỢC ĐỌC TỪ.

; RETURN -> R2 (DATA RẰNG WS ĐỌC)

ĐỌC:

MOV A, # WTCMD

GỌI outsMOV A, ADDRS

LCALL OUTMOV A, # RDCMD

LCALL outsLCALL TẠI

MOV R2, ALCALL STOPRET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

Outs:

MOV B, # 8

SETB SDA

SETB SCL

NOP

CLR SDA

NOP

CLR SCLOSLOOP:

RLC A

MOV SDA, C

SETB SCL

NOP

CLR SCL

DJNZ B, OSLOOP

SETB SDA

NOP

SETB SCL

NOP

CLR SCL

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

OUT:

MOV B, # 8

OLOOP:

RLC A

MOV SDA, C

SETB SCL

NOP

CLR SCL

DJNZ B, OLOOP

SETB SDA

NOP

SETB SCL

NOP

CLR SCL

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

IN:

MOV B, # 8

SETB SDA

INLOOP:

CLR SCL

NOP

SETB SCL

MOV C, SDA

RLC A

DJNZ B, INLOOP

CLR SCL

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

STOP:

CLR SDA

NOP

SETB SCL

NOP

SETB SDA

LCALL DLAYms

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

DLAYms:

MOV R6, # 150

MOV B, # 00

MS1: DJNZ B, $; ((2 * 255) (2 * 255) * 150

DJNZ B, $; = 153 MILLI SECONDS

DJNZ R6, MS1

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

L_DELAY:

MOV R7, # 0AH; 153 MILLISECON DS * 10

Lll: LCALL DLAYms; 1,53 SECONDS

DJNZ R7, lll

RET

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

END
 
Tôi tìm thấy một thư viện cho GCC làm cho WinAVR, tìm trong avrfreaks.Như tôi nhớ, nó có hai phiên bản, phần cứng và phần mềm, lựa chọn thông qua những tùy chọn trong makefile này.

jediheThêm vào sau khi 2 phút:Vâng, tôi đã tìm thấy các url:

h. p:. / / homepage.sunrise.ch / mysunrise / peterfleury / avr-software.html # libs

Tôi sử dụng nó trong một dự án gần đây và nó đã làm việc OK (các phiên bản phần cứng)

jedihe

 
hi guys
mã từ
Maverickmax
hoạt động tốt (tôi chỉ sử dụng tùy chọn đọc)
đó là giới hạn firs 256 byte

chúc một ngày vui vẻ

YUV
yaharoni@013.net.il

 
pls đi qua liên kết này
h ** p: / / www.keil.com/discuss/docs/thread2328.htm

 

Welcome to EDABoard.com

Sponsor

Back
Top