No.37601 作者:hpzjw 邮件:hp.zjw@163.com ID:13672 登陆:32次 文章数:24篇 最后登陆IP:219.133.105.218 最后登陆:2009/11/19 18:17:39 注册:2003/7/16 19:46:18 财富:203 发帖时间:2003/7/19 17:14:25 发贴者IP:202.102.240.78 标题:hpzjw:各位高手小弟有一问题请教关于I2C 摘要:No.37601各位高手小弟有一问题请教关于I2C 各位高手小弟现在想编一个I2C的读写程序可是老是不行不知为何。 程序如下: SDA BIT P3.0 SCL BIT P3.1 EPR EQU 10100001B EPW EQU 10100000B ORG 0000H AJMP MAIN MAIN: MOV SP,#60H MOV P1,#0FFH MOV P3,#0FFH MOV R4,#2FH;对30H到5FH清零 MOV R0,#30H CLEAR: MOV @R0,#00H INC R0 DJNZ R4,CLEAR ST: ACALL DISP ACALL KEY AJMP ST KEY: SETB P3.7 MOV P1,#0F0H MOV A,P1 CJNE A,#0F0H,KEY0 RET KEY0: MOV R3,#0F7H MOV R1,#00H KEY1: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04H KEY2: RLC A JNC KEYIN INC R1 DJNZ R5,KEY2 MOV A,R3 SETB C RRC A MOV R3,A JC KEY1 RET KEYIN: ACALL DL10mS KEYIN1: MOV A,P1 XRL A,R4 JZ KEYIN1 MOV A,R1 MOV DPTR,#TABLE MOVC A,@A+DPTR CJNE A,#0AH,KEYINE1 ACALL XS RET KEYINE1:CJNE A,#0BH,KEYINE2 ACALL EEPW RET KEYINE2:CJNE A,#0CH,KEYIN2 ACALL EEPR RET KEYIN2: XCH A,54H XCH A,55H XCH A,56H XCH A,57H XCH A,58H XCH A,59H MOV A,#0AH XCH A,30H XCH A,31H XCH A,32H XCH A,33H XCH A,34H XCH A,35H RET DL10ms: MOV R6,#10 DL1: MOV R7,#250 DJNZ R7,$ DJNZ R6,DL1 RET DISP: CLR P3.7 MOV A,30H ORL A,#50H MOV P1,A ACALL DL1ms MOV A,31H ORL A,#40H MOV P1,A ACALL DL1mS MOV A,32H ORL A,#30H MOV P1,A ACALL DL1ms MOV A,33H ORL A,#20H MOV P1,A ACALL DL1mS MOV A,34H ORL A,#10H MOV P1,A ACALL DL1mS MOV A,35H ORL A,#00H MOV P1,A ACALL DL1mS RET DL1ms: MOV R0,#250 DJNZ R0,$ RET XS: MOV 30H,54H MOV 31H,55H MOV 32H,56H MOV 33H,57H MOV 34H,58H MOV 35H,59H RET ;写串行E2PROM子程序EEPW ; (R3)=器件地址 ; (R4)=片内字节地 ......
>>返回讨论的主题
|