![]() |
|
||||||||||||||
| | 网站首页 | 综合电子 | 51单片机 | AVR单片机 | ARM专栏 | MSP430 | 网上商城 | PSOC | 下载中心 | 公司事项 | DSP专栏 | | ||
|
||
|
|||||
| AT24CXX串行EEPROM芯片读写程序 | |||||
| AT24CXX串行EEPROM芯片读写程序 | |||||
作者:admin 51单片机来源:网络 点击数: 更新时间:2007-8-4 ![]() |
|||||
|
;入口条件:数据放在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 |
|||||
| 51单片机录入:dycxin 责任编辑:dycxin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| DS1302子程序(时钟芯片) SMC1602A液晶显示器子程序 51读写串行EEPROM芯片at2402… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | | 设为首页 | 购买方法 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 联系我们 | 网络答疑| | | |||
|