概述
下载请于:http://download.csdn.net/detail/chenqiai0/4483389(完全代码以及详解)-------有疑问可以留言,希望多多交流
org 0x00
ljmp start
org 30H
start:
lcall init_I2C
lcall init_led
main:
mov R3,#0x23
mov R5,#0x05
lcall write_add
//这一句和 lcall read_add需要从stop-》start,所以有一个延时,这个延时时间经过自己计算至少1.5ms
mov 0x72,#77
//小于77会发生错误
j:
lcall delay
//14周期
djnz 0x72,j
//3个周期
lcall read_add
mov A,R4
xrl A,#0xFF
mov P0,A
h:
ljmp h
delay:
mov R0,#5
//2个周期
here:
djnz R0,here
//djnz 寄存器减1,不为零就转移
3个周期
ret
I2C_start:
clr
P3.7 //scl
lcall
delay
setb
P3.6
lcall
delay
setb
P3.7
lcall
delay
clr
P3.6
lcall
delay
ret
I2C_stop:
clr
P3.7 //scl
lcall
delay
clr
P3.6
lcall
delay
setb
P3.7
lcall
delay
setb
P3.6
lcall
delay
ret
I2C_respons:
mov R0,#0x00
setb P3.7
lcall
delay
there:
jnb P3.6,q
inc R0
cjne R0,#250,there
q:
clr P3.7
lcall delay
ret
write_byte:
//void write_byte(uchar date),从C语言看,这个函数需要一个参数
//我们不妨令R5=date
(R6=i,A=temp)
mov A,R5
mov R6,#0x09
w_circle: djnz R6,next
ljmp q1
next:
rlc A
clr P3.7
lcall delay
mov P3.6,C
lcall delay
setb P3.7
lcall delay
ljmp w_circle
q1:
clr P3.7
lcall delay
setb P3.6
lcall delay
ret
read_byte:
//A=k,R6=i
clr P3.7
lcall delay
setb P3.6
lcall delay
mov R6,#0x09
mov A,#0x00
r_circle:
djnz R6,next2
ljmp q2
next2:
setb P3.7
lcall delay
rl A
jb
P3.6,orl1
orl A,#0
ljmp orl2
orl1:
orl A,#1
orl2:
mov R4,A
clr P3.7
lcall delay
ljmp r_circle
q2:
clr P3.7
lcall delay
setb P3.6
lcall delay
setb P3.7
lcall delay
ret
write_add:
mov 0x70,R5//把原数据保存起来
lcall I2C_start
mov R5,#0xa0
lcall write_byte
lcall
I2C_respons
mov 0x71,R3
mov R5,0x71
lcall write_byte
lcall
I2C_respons
mov R5,0x70
lcall write_byte
lcall
I2C_respons
lcall I2C_stop
ret
read_add:
lcall I2C_start
mov R5,#0xa0
lcall write_byte
lcall
I2C_respons
mov 0x71,R3
mov R5,0x71
lcall write_byte
lcall
I2C_respons
lcall I2C_start
mov R5,#0xa1
lcall write_byte
lcall
I2C_respons
lcall read_byte
ret
init_I2C:
setb P3.6
lcall delay
setb P3.7
lcall delay
ret
//选中小灯
init_led:
clr
P1.0
setb P1.1
setb P1.2
clr
P1.4
setb P1.3
ret
end
最后
以上就是有魅力夕阳为你收集整理的用I2C通信实现点亮一盏小灯(包含应答)---汇编语言的全部内容,希望文章能够帮你解决用I2C通信实现点亮一盏小灯(包含应答)---汇编语言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复