关于X24C45的有关问题
发布时间:2011-06-23 20:31:31 文章来源:www.iduyao.cn 采编人员:星星草
关于X24C45的问题
我在做X24C45存储操作时,单片机有数据送入X24C45,但X24C45没有数据读出,以下是程序,请大家帮着解决一下,谢谢!
$include (c8051f000.inc); Include register definition file.
SK BIT P1.2;
CE BIT P1.3;
DIO BIT P1.1;
WRDS EQU 80H;
ST0 EQU 81H;
ENAS EQU 82H;
WRITE EQU 83H;
WREN EQU 84H;
RCL EQU 85H;
READ EQU 86H;
DATAHI EQU R1 ;数据的高位寄存器
DATALO EQU R2 ;数据的低位寄存器
ADDR EQU R3 ;地址寄存器
COUNT EQU R4 ;计数器
INST EQU R5 ;命令寄存器
;-------------------------------------------------------
ORG 0000H;程序复位地址
LJMP BEGIN;
ORG 0100H;程序起始地址BEGIN
BEGIN: MOV SP,#60H;初始化堆栈指针
MOV OSCICN,#95H;
CLR EA;
MOV WDTCN,#0DEH;
MOV WDTCN,#0ADH;
SETB EA;
MOV XBR2,#40H;
MOV PRT1CF,#00H;
MOV PRT2CF,#0FFH;
MOV P1,#0FFH;
MOV P2,#0FFH;
CLR CE;
CLR SK;
CLR DIO;
MOV A,#RCL;
MOV INST,A;
SETB CE
CLR SK;
LCALL OUTBYT;
NOP
CLR CE;
NOP
NOP
CLR DIO
; MOV A,#09H ;读地址9中的内容,并保在寄存器DATALO与DATAHI中
; MOV ADDR,A;
; LCALL RDWRD;
; MOV P2,DATAHI;
DONE0: MOV A,#WREN;设置“写允许”锁存器
MOV INST,A;
SETB CE;
CLR SK;
LCALL OUTBYT;
NOP
CLR CE;
NOP
NOP
NOP
CLR DIO
MOV DATAHI,#0AAH;
MOV DATALO,#55H;
MOV A,#02H;将数据写入地址2中
MOV ADDR,A;
LCALL WRWRD;
MOV R7,#10H
LOOP1: MOV A,#02H ;读地址2中的内容,并保在寄存器DATALO与DATAHI中
MOV ADDR,A;
LCALL RDWRD;
MOV R7,#20H
LOOP2: DJNZ R7,LOOP2
DONE: LJMP DONE0;循环直到复位
WRWRD: SETB CE ;将寄存器DATALO与DATAHI中的内容写入寄存器ADDR指定的地址中
CLR SK;
MOV A,ADDR;
RL A;将地址加入指令中
RL A;
RL A;
ANL A,#78H;
ORL A,#83H;
MOV INST,A;
LCALL OUTBYT;
MOV A,DATAHI;
MOV INST,A;
LCALL OUTBYT;输出数据的高字节
MOV A,DATALO;
MOV INST,A;
LCALL OUTBYT;输出数据的低字节
NOP
CLR CE;
CLR DIO
RET ;将寄存器INST中的内容传送到X24C45的输入口。
RDWRD: SETB CE;读寄存器ADDR指定的地址中内容
CLR SK;
MOV A,ADDR;
RL A;将地址编入指令中
RL A;
RL A;
ANL A,#78H;
ORL A,#86H;
MOV INST,A;
LCALL SEND7;
SETB DIO;
; MOV R7,#05H
;LOOP3: DJNZ R7,LOOP3
MOV COUNT,#10H;读进16位数据
MOV A,#00H;
SETB SK;
NOP
NOP
NOP
NOP
CLR SK;
BITX: MOV C,DIO;
DIONO1:MOV A,DATALO;将数据移进寄存器DATALO与DATAHI中
RLC A;
MOV DATALO,A;
MOV A,DATAHI;
RLC A;
MOV DATAHI,A;
SETB SK;
NOP
NOP
NOP
NOP
CLR SK;
DJNZ COUNT,BITX;读数据循环
NOP
CLR CE;
CLR DIO
RET ;将寄存器INST中的内容传送到X24C45的输入口。
;----------------------------------------------------
SEND7: MOV COUNT,#07H;移出7位读命令字
LJMP LOOP0;
OUTBYT:MOV COUNT,#08H;移出8位命令字LOOP0:
LOOP0: MOV A,INST;为将数据输出到DI作准备
RLC A;
MOV INST,A;
MOV DIO,C;
NOP
NOP
NOP
SETB SK;
NOP
NOP
NOP
NOP
CLR SK;
DJNZ COUNT,LOOP0;
RET;产生时钟脉冲
;--------------------------
END
------解决方案--------------------
爱莫能助
------解决方案--------------------
额 ,学习一下
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
(VS2005)VB有关继承封装在DLL里窗体
公司里有一套自己的架构并把它封装在叫MFW的DLL里,再学习使用时发现了很多不明白的地方。例如:现...
-
如何让treeview点击结点不刷新页面?
如何让treeview点击结点不刷新页面?
------解决方案--------------------
帮你顶
------解决...
-
单薄的业务层
相信开发WEB信息的人都用到过三层架构
表示层--》业务层--》数据访问层
以前一直开发CS结构最近一年一直在开发...
-
类爆炸问题,对维护也是恶梦?
原意在ERP项目中有设计一个工序类用來描述工序:
public Process
{
public string ProcessNo
{
...
-
怎么实现随意变换网页字体?
想做个艺术签名的网站
字体也找了几个
就是在用户输入“名字”后
把“名字”转换成几个字体显示出来
...
-
关于政府部门网站数据库设计
今天上面安排让我做个政府有关部门的网站,我看了下不是很复杂。可到了设计数据库表时候碰到了些问题...
-
如何自动为录入的人员信息分配用户权限
我这里有两类人,一类是教师,一类是学生,要解决的问题是,在用管理员身份录入教师和学生信息时,...
-
Ext.Net 和ExtJS
现在在做一个项目,用到了EXT.NET 但是有个缺点就是EXT.NET里的时间选择器dateField不能选择时分秒,现在想到用EXTJ...
-
谁手里有现成的提示框样式啊,急用
谁手里有现成的提示框样式或者皮肤啊 还有弹出div层的好看一点的样式 给我个呗 我这急用呢 ...
-
求两个样式的例子...
一个是点击修改弹出修改表单表格 出现在列表上 要特别好看的那种 最好是悬浮的
一个 要弹出的确...