4562|0

280

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

51单片机写入24C02一个字节数据的汇编代码。有详细注释,搭电路测试通过 [复制链接]

;读写24C02   P1.3时钟信号    P1.4 数据信号  器件地址三个引脚全部接  地
        clr p1.3 ;时钟信号初始化
        setb p1.4;初始化scl低,sda高
        setb p1.3 ;第一个时钟
        nop
        clr p1.4 ;数据信号相低跳变,表示起始信号
        nop
        clr p1.3;第一个脉冲结束,起始信号发送完毕
        mov a,#0a0h ;器件地址10100000 表示写入前四位是固定的,接下来三位就是123引脚,全接地,所以都是0 。最后一个0表示写入
        acall cadd  ;发送器件地址,cadd是发送8位数据的子程序,相当于一个脉冲,往出移一位数据
        setb p1.4  ;准备接收应答信号
        nop
        setb p1.3  ;给时钟信号,检测Ack回执信号
        jb p1.4,$  ;等待ACK
        nop
        clr p1.3 ;读到应答信号,时钟结束
        mov a,#33h;写入编程地址,数据要写到24C02的哪个单元,我写入了33h单元
        acall cadd  发送地址
        setb p1.4
        nop
        setb p1.3  ;给时钟,接收ACK。其实和上面发送是一样的
        jb p1.4,$
        nop
        clr p1.3  ;读到ACK信号后时钟结束
        mov a,33h  ;写入数据
        acall cadd
        nop
        setb p1.4  ;相当于再发送8位数据
        nop
        setb p1.3
        jb p1.4,$
        nop
        clr p1.3 ;写入数据后接收到ACK
        
        clr p1.4 ;以下是发送停止信号,以便24C02把接收到的数据正真写到芯片中
        nop
        setb p1.3 ;时钟高电平
        nop
        setb p1.4 ;数据上升跳变表示停止位
        nop
        clr p1.3 ;时钟结束,停止位发送完毕。同样写操作完成。
        
cadd:        MOV R7,#08H
Nda:        MOV C,ACC.7
               MOV p1.4,C;给数据
               RL A
               SETB P1.3 ;给时钟
               nop
               clr p1.3 ;时钟结束
             DJNZ R7,Nda
RET

此帖出自51单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表