No.63510 作者:zhongqiu 邮件:xsz8866@126.com ID:26192 登陆:26次 文章数:10篇 最后登陆IP:221.215.99.85 最后登陆:2005/2/22 17:08:56 注册:2004/9/28 10:54:03 财富:161 发帖时间:2004/9/28 11:05:32 发贴者IP:221.215.99.80 标题:zhongqiu:先祝大家中秋团圆 摘要:No.63510先祝大家中秋团圆 归入正题,我有一道难题跟大家请教一下,关于24C02的写入问题,需要通过串口接收不确定数目字节的数据,我编了一下,却发觉该程序有个缺陷,仅仅能接收28个字节的数据,超过后就接收不正常了,经我反复测试,问题大概在串口24C02的写入上,串口接收应该是没有问题,大家有谁能给我指点一下,谢谢! ;该程序为N个字节的串口接收程序,串口采用方式1,并将接收到的数据写到24C02的00H起始的地址中 MAINSCON:MOV 40H,#0A0H MOV 41H,#00H MOV 42H,#30H;串口写入的内存地址首地址 SLAW EQU 40H NUMBYT EQU 41H NWD EQU 42H VSDA EQU P0.4 VSCL EQU P0.5 SDL1:MOV TMOD,#20H;定时器T1作波特率发生器,工作于方式2 MOV TL1,#0F3H;设定T1的初值确定波特率为4800 MOV TH1,#0F3H; CLR ET1;T1作波特率发生器时应禁止中断 SETB TR1;启动TR1计数 MOV SCON,#52H;串行口设置方式1 ORL PCON,#80H;SMOD=1 MOV R0,NWD;待接收数据首地址 ;待接收数据字节数量 MOV R5,#5 MOV R3,#50 MOV R7,NUMBYT CJNE R7,#00H,WAIT WAIT0:JBC RI,SSS AJMP WAIT0 WAIT: JBC RI,SSS DJNZ R5,WAIT DJNZ R3,WAIT AJMP WAIT1 SSS: CLR RI MOV A,SBUF MOV @R0,A MOV R7,NUMBYT INC R7 MOV NUMBYT,R7 ;该程序为将RAM30H-37H中的内容写到24C02的00H WRADD:LCALL STA MOV A,SLAW LCALL WRBYT LCALL CACK JB F0,WRADD MOV A,R7;写入EEPROM单元地址 LCALL WRBYT LCALL CACK JB F0,WRADD MOV R0,NWD WRDA:MOV A,@R0 LCALL WRBYT LCALL CACK JB F0,WRADD LCALL STOP;至此将数据0AAH写入了EEPROM地址单元00中 PROGRAM:LCALL SDL1 JB RI,SSS AJMP WAIT1 W ......
>>返回讨论的主题
|