找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

很着急解决24c02读写问题,敬请高手赐教

[复制链接]
admin 发表于 2012-9-2 13:08:36 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
;很着急解决24c02读写问题,敬请高手赐教
;一直用的选用的是89C52 晶振12M 原来是直插24c02现在是贴片24c02 ,片选和数据
;脚也接了4.7k上拉电阻,问题是:这个程序我早在06年就在用了,效果一直很好,最
;近出现奇数地址数据读不出,写不进,偶数读写有时也很慢,很郁闷,原来用的是直插的,
;现在用的是贴片24c02但现在用直插的测试效果也不如原来好用了,据我观察发现每次
;是写完地址在写数据时DAT2402电位始终不能为低,卡在那里等待,也就是说数据写不进
;DAT2402就没有写结束信号输出,请高手赐教原因何在,再次表示万分感谢!!!

CSCK2402 EQU P0.2 ;24C02选通线引脚6
DAT2402 EQU P0.3 ;24C02数据线引脚5


ORG 0000H
GHE1: NOP
NOP
LCALL SAVE
NOP
NOP
LCALL DU_DATA ;调读数据
JMP GHE1

;**********************************读数据
DU_DATA:
MOV 3AH,#07H
LCALL D_USHU
MOV 20H,A ;是否是第一次写1302数据状态数据暂存20H

MOV 3AH,#01H
LCALL D_USHU ;读取器件数据
MOV 27H,A ;温度数据暂存27H

MOV 3AH,#02H
LCALL D_USHU
MOV 28H,A ;定时开机时钟数据暂存28H

MOV 3AH,#03H
LCALL D_USHU
MOV 29H,A ;定时开机分钟数据暂存29H

MOV 3AH,#04H
LCALL D_USHU
MOV 3CH,A ;定时关机时钟数据暂存3CH

MOV 3AH,#05H
LCALL D_USHU
MOV 3FH,A ;定时关机分钟数据暂存3FH

MOV 3AH,#06H
LCALL D_USHU
MOV 37H,A ;定时开关机状态数据暂存37H
RET




SAVE: ;保存设置数据
; LCALL SET1302 ;写时间
MOV 4DH,#01H ;写器件地址
MOV 4EH,#22H ;装入开机设置参数
LCALL XIE
MOV 4DH,#02H ;写器件地址
MOV 4EH,#13H ;装入设置参数
LCALL XIE
MOV 4DH,#03H ;写器件地址
MOV 4EH,#15H ;装入设置参数
LCALL XIE
MOV 4DH,#04H ;写器件地址
MOV 4EH,#50H ;装入设置参数
LCALL XIE
MOV 4DH,#05H ;写器件地址
MOV 4EH,#06H ;装入设置参数
LCALL XIE
MOV 4DH,#06H ;写器件地址
MOV 4EH,#07H ;装入设置参数
LCALL XIE
MOV 4DH,#07H ;写器件地址
MOV 4EH,#00H ;装入设置参数
LCALL XIE
MOV 4DH,#08H ;写器件地址
MOV 4EH,#00H ;装入设置参数
LCALL XIE
MOV 4DH,#09H ;写器件地址
MOV 4EH,#00H ;装入设置参数
LCALL XIE

RET

;***************24C02读写程序******************
;****************************************************************
XIE: LCALL DELAY1 ;写
CLR DAT2402
MOV A,#10100000B
LCALL SUBS
MOV A,4DH ;把待写入的地址从暂存地址移入A
LCALL SUBS
MOV A,4EH ;设置数据从暂存地址移入A
LCALL SUBS
CLR DAT2402
LCALL DELAY50
SETB CSCK2402
LCALL DELAY50
SETB DAT2402
RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SUBS: MOV R0,#08H
LOOPU: CLR CSCK2402
RLC A
MOV DAT2402,C
LCALL DELAY50
SETB CSCK2402
LCALL DELAY50
DJNZ R0,LOOPU
CLR CSCK2402
LCALL DELAY50
SETB CSCK2402
REP: MOV C,DAT2402
JC REP
CLR CSCK2402
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;24C02读程序
D_USHU: SETB DAT2402
SETB CSCK2402
NOP
NOP
NOP
CLR DAT2402
MOV A,#10100000B
LCALL SUBS
MOV A,3AH
LCALL SUBS
SETB DAT2402
SETB CSCK2402
CLR DAT2402
MOV A,#10100001B
LCALL SUBS
LCALL SUBR
CLR DAT2402
LCALL DELAY50
SETB CSCK2402
LCALL DELAY50
SETB DAT2402
LCALL DELAY50
RET

SUBR: MOV R0,#08H
L_OOP2: SETB CSCK2402
NOP
NOP
MOV C,DAT2402
RLC A
CLR CSCK2402
LCALL DELAY50
DJNZ R0,L_OOP2
RET

DELAY50: MOV R5,#0D0H ;01H
DL200: MOV R6,#0E0H ;E0H
DJNZ R6,$
DJNZ R5,DL200
RET
;**************************************************
DELAY1: MOV R1,#10H;03
DEL11: MOV R2,#75H;75
DEL12: MOV R3,#0DH;0D0
DEL13: DJNZ R3,DEL13
DJNZ R2,DEL12
DJNZ R1,DEL11
RET

END
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-25 00:52 , Processed in 0.051541 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表