24c02 汇编语言,单片机读写24C02的汇编程序

;简洁的24C02读写汇编程序

;--------------------------------------------

I2C_SDA          EQU P1.6   ; PIN 5

I2C_SCL          EQU P1.7   ; PIN 6

;=============================================

I2C_WRITE:  ;  WRITE 8 BYTES TO EEROM ; INPUT: A - A*8 = EEROM START ADDR

;                                  R0 - RAN START ADDR

;                            USE: C, A, R0, R6, R7

ACALL I2C_START

ACALL OUT

MOV R6, #8

WR_LP:MOV A, @R0

ACALL OUT

INC R0

DJNZ R6, WR_LP

AJMP I2C_STOP

;==========================================

I2C_READ:   ;  READ 8 BYTES FROM EEROM ; INPUT: A - A*8 = EEROM START ADDR

;                                   R0 - RAN START ADDR

;                            USE: C, A, R0, R6, R7

ACALL I2C_START

ACALL OUT

MOV R6, #8

MOV A, #0A1H; #RDCMD

ACALL OUTS

BRDLP:

MOV R7, #8

SETB I2C_SDA

INLP:     CLR  I2C_SCL

ACALL DELAY6

SETB  I2C_SCL

NOP

MOV C, I2C_SDA

RLC A

DJNZ R7, INLP

CLR   I2C_SCL

MOV @R0, A

INC R0

DJNZ R6, ACKLP

;;;;----------------------------

I2C_STOP:

CLR I2C_SDA

ACALL DELAY5

SETB I2C_SCL

ACALL DELAY5

SETB I2C_SDA

DELAY6:

NOP

DELAY5:

NOP

RET

;;-----------------------------

I2C_START:

SWAP A

RR A

MOV R6, A

MOV A, #0A0H; #WTCMD

ACALL OUTS

MOV A, R6

RET

;-------------------------------

ACKLP:

CLR I2C_SDA

SETB I2C_SCL

ACALL DELAY5

CLR I2C_SCL

AJMP BRDLP

;=======================

OUTS:

SETB I2C_SDA

SETB I2C_SCL

ACALL DELAY5

CLR I2C_SDA

ACALL DELAY5

CLR I2C_SCL

;========================

OUT:

SETB C

MOV R7, #9

OTLP: RLC A

NOP

MOV I2C_SDA, C

NOP

NOP

SETB I2C_SCL

ACALL DELAY5

CLR  I2C_SCL

DJNZ R7, OTLP

RET

;========================

END

关注eeworld公众号

快捷获取更多信息

关注eeworld服务号

享受更多官方福利

推荐阅读

STC15单片机实验名称:使用NTC电阻测量温度实验内容:        使用NTC电阻测量温度并显示在数码管上        读取DS18B20模块测量温度作为参考实验器材:        STC15W408AS_DIP16 x1        DS18B20  x1        TM1637数码管 x1

发表于 2020-12-17

13c8c1f1db3591c57b81a47ceb4c8acf.png

/*一款电子钟程序,此电子钟是四位电子钟数码管组成的,功能分别有走时、响闹、走时间调整、闹钟时间调整等功能!调整部分分别由三个按键实现,一个功能键,一个+(加)键,另一个为-(减)键,其它功能键是复用功能!*/硬键介绍:数码管个位.十位.百位.千位.小数点分别接P0.0 P0.1 P0.2 P0.3 P0.4。蜂鸣器接P3.5脚,功能按键接P3.2 加按键接P3.3 减按键接P3.4以下是两张图片!!!#include //头文件#define uchar unsigned char//宏定义#define uint unsigned int//宏定义uchar shi,fen,nshi,nfen,ma

发表于 2020-12-17

929b95366525f73860d9149dcc838369.png

51单片机做的温度显示,温度显示在LCD1602液晶屏上。然后按键可以调整温度阈值,温度高于或低于所设温度,蜂鸣器就会响……单片机源程序如下:/***************************************************************************************                              基于单片机的实时温度报警系统设计        &nbsp

发表于 2020-12-17

d774af01611cbee573d22008cbada9a7.png

当电机较大时,启动是个必须注意的问题。比较简单且用的很多的是星三角启动,这里写出了星三角启动的核心部分。每一个IO口接上继电器,再控制交流接触器,就OK了。但,要注意,星、角交流接触器一定要互锁,否则一旦某个交流接触器粘连,就造成短路了。#include sbit K1=P3^1;  //按键1,控制第1个继电器启动sbit K2=P3^2;  //按键2,控制第2个继电器启动sbit J1=P1^5;  //星接继电器sbit J2=P1^6;  //星点继电器sbit J3=P1^7;  //角继电器void Delay_1ms(unsigned i

发表于 2020-12-16

、技术性能稳定等特点而受到广大用户和专业人士的欢迎。而本设计的电路包括硬件和软件两个部分。硬件部分包括红外感应部分与单片机控制部分。整个系统电路可划分为:电源部分、传感器模块部分、单片机控制电路,而单片机控制由最小系统和指示灯电路、报警电路等子模块组成。主要工作由热释电红外感应器完成信息采集、处理、数据传送经过单片机功能设定到达报警模块这一过程。就此设计的核心模块来说,单片机就是设计的中心单元。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是主要是工作的程序通过编写程序来控制输入的信号。二、设计任务分析1.该设计包括硬件和软件设计两个部分。模块划分为数据采集、按键设定、报警

发表于 2020-12-16

adaa7bdbd8dd0405b9e6a0b580515f99.png

用一个按键控制四个继电器循环导通,程序由51单片机的程序改到STC15F104W上,第一次按键,第一个继电器吸合,第二次按键,第二个继电器吸合,第一个继电器释放,以此类推。最初的想法就是实现电风扇,三档开关,程序里面可以修改端口。#includesbit key = P3^4; //定义按键void delayms(void);                         //延时void led_refresh(unsigned char

发表于 2020-12-16

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值