本帖最后由 lxz117 于 2015-3-26 15:52 编辑
谢谢您的关照!
上面我忘给您说了,我用的是汇编。代码如下:
.include "p24FJ128GA010.inc"
.list
config __CONFIG2,(FNOSC_FRC&OSCIOFNC_ON) ;内部RC时钟
config __CONFIG1,FWDTEN_OFF ;关闭看门狗
.global p24FJ128GA010.gld
.bss
yanshi1: .space 4
yanshi2: .space 4
.text
.global __reset
;**************主程序***********
__reset:
;初始化IC2
csh_I2C:
;I2C1CON默认值“0000”
mov #10,w0 ;波特率为100KHz
mov w0,I2C1BRG
;开启I2C模块
mov #0x8040,w0
mov w0,I2C1CON
bset I2C1CON,#2 ;发送功能位置1
aaa:
btsc I2C1CON,#0
goto aaa
mov #0xa0,w0 ;器件地址
mov w0,I2C2TRN
bbb:
btsc I2C1STAT,#15 ;检测
goto bbb
btsc I2C1STAT,#14
goto xxx ;故障,去执行停止停止位
mov #0x00,w0 ;24C04数据存储区地址
mov w0,I2C2TRN
ccc:
btsc I2C1STAT,#15 ;检测
goto ccc
mov #55,w0 ;十进制“55”写入
mov w0,I2C1TRN
ddd:
btsc I2C1STAT,#14 ;检测
goto ddd
xxx:
bclr I2C1CON,#15 ;关闭I2C模块
call yanshi_1ms
;*************延时子程序*****************
yanshi_1ms:
mov #0x5,w0
mov w0,yanshi2
display1:
mov #0x67,w0
mov w0,yanshi2 ;
dec yanshi2
bra nz,display1
return
;*********************
.end
|