历史上的今天
今天是:2025年01月22日(星期三)
2018年01月22日 | AT24CXX串行EEPROM芯片读写程序
2018-01-22 来源:eefocus
;说明:
;入口条件:数据放在ADAT_I2C中,页面放在APAG_IC2,字节地址放在AADR_I2C,如准备向AT24CXX第一页的字节地址03H中写入值0FH,则置APAG_IC2=01H,AADR_I2C=03H,ADAT_I2C=0FH。
;出口信息:读出的数据在累加器A中。
;影响资源:PSW、A、R7 堆栈需求: 6字节
;ASLK EQU P3.3 ;AT24CXX卡的SLK
;ASDA EQU P3.4 ;AT24CXX卡的SDA
ASLK EQU P1.4 ;AT24CXX芯片的SLK
ASDA EQU P1.5 ;AT24CXX芯片的SDA
AADR_I2C EQU 30H ; AT24CXX的字节地址
ADAT_I2C EQU 31H ;读出、写入的地址
APAG_IC2 EQU 32H ; AT24CXX的页面
AWRTBYTE: ;向AT24C01写入一个字节---写串行E2PRAM
NOP
LCALL ASTABIT ;初始化
MOV A,APAG_IC2
ANL A,#0FH
RL A
ADD A,#0A0H
LCALL AWRTBIT ;送出写控制字
MOV A,AADR_I2C
LCALL AWRTBIT ;送出地址
MOV A,ADAT_I2C
LCALL AWRTBIT ;写入数据
LCALL ASTPBIT ;停止
LCALL ADELAY
SETB ASDA
RET
AREADBYTE: ;从24C01读入一个字节---读串行E2PRAM
NOP
LCALL ASTABIT ;初始化
MOV A,APAG_IC2
ANL A,#0FH
RL A
ADD A,#0A0H
LCALL AWRTBIT ;送出写控制字
MOV A,AADR_I2C
LCALL AWRTBIT ;送出地址
LCALL ASTABIT ;第二次初始化
MOV A,#0A1H
LCALL AWRTBIT ;送出读控制字
LCALL AREADBIT ;读出数据
SETB ASDA
RET
ASTABIT: NOP
SETB ASLK
SETB ASDA
LCALL ADELAY
CLR ASDA
LCALL ADELAY
SETB ASDA
RET
AWRTBIT: NOP
MOV R7,#08H
AWRTLOP: NOP
CLR ASLK
NOP
RLC A
MOV ASDA,C
NOP
SETB ASLK
NOP
DJNZ R7,AWRTLOP
CLR ASLK
LCALL ADELAY
SETB ASLK
LCALL ADELAY
CLR ASLK
LCALL ADELAY
SETB ASDA
RET
AREADBIT: NOP
SETB ASDA
NOP
MOV R7,#08H
AREADLP: NOP
SETB ASLK
NOP
MOV C,ASDA
RLC A
NOP
CLR ASLK
NOP
DJNZ R7,AREADLP
LCALL ADELAY
RET
ASTPBIT: NOP
CLR ASDA
LCALL ADELAY
SETB ASLK
LCALL ADELAY
SETB ASDA
LCALL ADELAY1MS
RET
ADELAY1MS:
MOV R7,#0FFH
DJNZ R7,$
MOV R7,#0FFH
DJNZ R7,$
MOV R7,#0FFH
DJNZ R7,$
RET
ADELAY:
MOV R7,#0FH
DJNZ R7,$
RET
上一篇:SMC1602A液晶显示器子程序
下一篇:实用单片机电子钟的制作
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:19 编辑 一、任务 测量两个正弦信号的叠加信号,其中,x1是主信号,幅值为 V(偏置为0V),频率为:20-20kHz;x2是次要信号,幅值为主信号的1/4-1/6,频率为:20-20kHz;二、要求 1.基本要求 (1)利用两个 ...… 查看全部问答> |
|
哈哈!我骗大家进来的,没什么爽的 问题是这样的:在PXA270上我跑这段程序:入口地址选为0X0(即NORFLASH的地址) xlli_GPIOREGS_PA_BASE EQU 0x40e00000 xlli_GAFR0_L_offset EQU 0x00000054 xlli_GPDR0_offset   ...… 查看全部问答> |
|
车图 跑道 现在 要控制车子速度 通过一个舵机控制车头转动方向 转动的方向由前面的红外传感器检测到跑道的识别码得到 但是检测的识别码只可能尽量的和实际吻合但仍会有几度的误差 有时甚至会更多 程序会不停的扫描道路得到识 ...… 查看全部问答> |
|
具体请看taobao上的介绍 http://auction1.taobao.com/auction/item_detail-0db2-5a0abc7b0e70e1f7ae53ffad3582dfc4.jhtml 配件清单: 1) S3C2440核心板一片,配置64MB NAND FLASH和64MB SDRAM 2) S3C2440开发板底板一片 3) 直连九针串口线一条 ...… 查看全部问答> |
|
'CHtmlView' : base class undefined 我在evc下pocketPC模拟器,在一个窗口上要显示网页内容,使用了CHtmlCtrl类 http://dev.yesky.com/128/2272128_1.shtml 这个是国外某达人写的。 我在stdafx.h中已经加了#include \"afxhtml.h\",但是编译后提示我 \'CHtmlView\' : base class u ...… 查看全部问答> |
|
类CPdd16550中m_dwWaterMark是用来干什么的? 类CPdd16550中m_dwWaterMark是用来干什么的? 是波特率的mark呢还是安全相关的mark? 有劳各位!… 查看全部问答> |
|
我今天用一个探测火源的模块去接F149的内部AD,我用3.3V给火焰传感器模块供电,输出脚悬空的时候我测输出脚是0到3V之间在变化(就是当没有火源或者火源超过探测范围的时候是3V),但我接上F149的AD的输入脚之后本来的3V输出就立即衰减为1.7V了。然 ...… 查看全部问答> |




