社区
单片机/工控
帖子详情
菜鸟求助!!
zhangxiaoxi
2003-08-18 11:07:20
最近我用C51编了一个AT93C46的读写程序,可是怎么调试都有问题,我觉得一定是时序有问题
请问哪位高手能将他编的给我看看,或者能给我详细讲讲时序问题(我总是分不清先后和高低)
求求大家了,催的很紧!!
...全文
49
12
打赏
收藏
菜鸟求助!!
最近我用C51编了一个AT93C46的读写程序,可是怎么调试都有问题,我觉得一定是时序有问题 请问哪位高手能将他编的给我看看,或者能给我详细讲讲时序问题(我总是分不清先后和高低) 求求大家了,催的很紧!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuqianyi
2003-08-23
打赏
举报
回复
回复张晓西:
for(i=0;i<5;i++)
{
di=0;
sk=1;
sk=0;
}
为什么i=5而不是4呢?
是这样的:例如EWEN码值为11XXXXX,SB为1,OPCODE为00,将SB和OPCODE及EWEN的前2位11组合为1个数据code_ewen,EWEN码的其余5位组成另一个数据.这样两个数据中只有5位为有用信息.
所以i=5而不是4.你可以从网上下载AT93C46的DATASHEET看看.
zhangxiaoxi
2003-08-20
打赏
举报
回复
非常感谢大家回复,只是还有一点不明白:
for(i=0;i<5;i++)
{
di=0;
sk=1;
sk=0;
}
为什么i=5而不是4呢?是根据时序判断得吗?
还有,我是一个新手,非常盼望大家多多指教!
我的QQ:51587606 EMAIL:xiaoxizhang@hotmail.com
如果愿意,也可以留下联系方法
张晓西再次谢过了!!
zhangxiaoxi
2003-08-20
打赏
举报
回复
谢谢大家对我的关心,本菜鸟真是感激不尽。但时序部分一直是我头痛的地方,请问各位高手能否给在下推荐一些讲时序部分,或者有详细例子的数、或网站?在此先行谢过了!!
SurmountLi
2003-08-20
打赏
举报
回复
订正yuzhang_li@hotmail.com,那个信箱不好用,thx
SurmountLi
2003-08-20
打赏
举报
回复
我在holtek做MCU的Test编程,但也是刚刚进公司,多多探讨!如果有时间看能不能弄到一份执行时序图给你(当然绝对是在公司允许的范围内)。yuzhang@kingteksemi.com.cn 李玉章
多多切磋,共同进取!
CrazyGentleman
2003-08-19
打赏
举报
回复
:(
zhangxiaoxi
2003-08-19
打赏
举报
回复
啊,那没有哪位高手用C51编过93才6吗?这可怎么办???
wwwunix
2003-08-19
打赏
举报
回复
时序问题最好是看着图讲,凭空讲不清楚.:-(
yuqianyi
2003-08-19
打赏
举报
回复
;/***********************************************************/
;/* 93C56 读写程序 2001年4月25日 */
;/* p1.0=DI p1.1=D0 P1.2=SK P1.3=CS */
;/* EWEN=擦写允许 WW=写入 RR=读出 R1=出入 B=地址 */
;/***********************************************************/
EWEN: CLR p1.3 ;片选禁止
MOV A,#30H ;擦写允许 0011XXXX
MOV R7,#05H ;共5位
ACALL WWC
CLR P1.3 ;换CS低
WW: MOV A,#40H ;写命令 01XXXXXX
MOV R7,#03H ;起始写命令供3位
ACALL WWC
MOV A,R1 ;取待传数据
ACALL WWD
CLR P1.3
ACALL DELAY
RET
R: MOV A, #08H ;读命令
MOV R7,#03H
ACALL WWC
ACALL RRD
MOV R1,A
RET
WWD: MOV R7,#80H ;字节长度8位
CLR P1.2 ;SK=0
SETB P1.3 ;CS=1
RLC A ;移最高位到CY
AJMP GGG2 ;
WWC: SETB C
GGG0: CLR P1.2
SETB P1.3
GGG1: MOV P1.1,C ;送数到DI
CPL P1.2 ;SK=1 产生上升沿
RLC A
CPL P1.2 ;SK=0
DJNZ R7,GGG1
MOV R7,#07H ;地址长度
MOV A,B ;取地址
RLC A ;地址移到高位
CLR P1.2
GGG2: MOV P1.1,C
CPL P1.2
RLC A
CPL P1.2
DJNZ R7,GGG2
RET
RRD: SETB P1.3
CLR P1.2
MOV R7,#08H ;数据长度
RRR: CPL P1.2
MOV C,P1.0 ;从DO取数
RLC A
CPL P1.2
DJNZ R7,RRR
CLR P1.3
RET
DELAY:MOV R7,#1FH
DD: MOV R6,#0FFH
DDD: DJNZ R6,DDD
DJNZ R7,DD
RET
END
yuqianyi
2003-08-19
打赏
举报
回复
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define code_ewen 0x98
#define code_write 0xa0
#define code_read 0xc0
#define code_eral 0x90
#define code_erase 0xe0
#define code_wral 0x88
sbit cs=P1^0;
sbit sk=P1^1;
sbit di=P1^2;
sbit dout=P1^3;
uchar mtmp;
void delay()
{uchar i,j;
for(i=0;i<200;i++)
for(j=0;j<10;j++);
}
void str_ewen()
{uchar i;
cs=0;
sk=0;
cs=1;
for(i=0;i<5;i++)
{
di=(bit)((code_ewen>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<5;i++)
{
di=0;
sk=1;
sk=0;
}
cs=0;
}
void str_eral()
{
uchar i;
cs=0;
sk=0;
cs=1;
for(i=0;i<5;i++)
{
di=(bit)((code_eral>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<5;i++)
{
di=0;
sk=1;
sk=0;
}
cs=0;
delay();
}
void str_wral(uchar dat)
{
uchar i;
cs=0;
sk=0;
cs=1;
for(i=0;i<5;i++)
{
di=(bit)((code_wral>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<5;i++)
{
di=0;
sk=1;
sk=0;
}
for(i=0;i<8;i++)
{
di=(bit)((dat>>(7-i))&0X01);
sk=1;
sk=0;
}
cs=0;
delay();
delay();
}
void str_erase(uchar addr)
{
uchar i;
cs=0;
sk=0;
cs=1;
for(i=0;i<3;i++)
{
di=(bit)((code_erase>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<7;i++)
{
di=(bit)((addr>>(6-i))&0X01);
sk=1;
sk=0;
}
cs=0;
delay();
}
void str_write(uchar addr,uchar dat)
{
uchar i;
cs=0;
sk=0;
cs=1;
for(i=0;i<3;i++)
{
di=(bit)((code_write>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<7;i++)
{
di=(bit)((addr>>(6-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<8;i++)
{
di=(bit)((dat>>(7-i))&0X01);
sk=1;
sk=0;
}
cs=0;
delay();
}
uchar str_read(uchar addr)
{uchar i;
bit btmp;
uchar tmp=0;
cs=0;
sk=0;
cs=1;
for(i=0;i<3;i++)
{
di=(bit)((code_read>>(7-i))&0X01);
sk=1;
sk=0;
}
for(i=0;i<7;i++)
{
di=(bit)((addr>>(6-i))&0X01) ;
sk=1;
sk=0;
}
for(i=0;i<8;i++)
{
sk=1;
btmp=dout;
tmp=tmp+((((uint)btmp)&0x01)<<(7-i));
sk=0;
}
cs=0;
delay();
return(tmp);
}
void main(void)
{
mtmp=0;
str_ewen();
str_eral();
str_erase(0x00);
str_write(0x00,0x10);
mtmp=str_read(0x00);
mtmp=1;
}
zhangxiaoxi
2003-08-19
打赏
举报
回复
请问就没有人能帮兄弟一把吗 :(
zhangxiaoxi
2003-08-19
打赏
举报
回复
up 100分!! 帮帮我吧!!
菜鸟
啃Excel
抑或因excel的某个应用技巧,苦于
求助
百度、谷歌无果? 那就快快加入excel部落吧!这里有一群来自五湖四海的excel发烧友,善于将excel疑难问题于说笑逗趣中解决。在《
菜鸟
啃excel》中,我们将告诉你看似简单的excel...
大学生
求助
交流系统(本科毕业设计).zip
本科毕业设计
ToolBar制作菜单栏
现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上
求助
,可是得到的帮助大多是BCGControlBar的源代码或者是SizableRebar的源代码,对于只希望是自己的界面具有该功能的朋友来说,这也许是不错...
庖丁解马教程.pdf
杀马,由
求助
者变为帮助它人者。2.在杀毒软件无能为力的情况下,借助本 文的知识让你仍然能借助工具完成清理查杀的任务。3.让您真正的明白一些 看似神秘的、高深莫测的专用术语与技术的内幕。4.让您了解 Windows ...
小白如何向达人报告网络故障
作为
菜鸟
,遇到网站无法访问等情况后往往需要向达人们
求助
,这时他们往往会提一些你根本听不懂的问题,使用这个文档中介绍的几个命令,把显示的结果复制下来发给达人,他们就能排查你所遇到的问题了
单片机/工控
27,375
社区成员
28,769
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章