。然而笔者的程序中是在第9个正脉冲的下降沿才误认为输出了数据字节的第0位数据,此位数据事实上是第二个下降沿输出的,故实为数据字节的第1位数据。经笔者实验:只要RST保持为高电平,如果超过8个下降沿,它们将重新从第0位输出数据位,因程序中输出的最后一位数据位,是9个下降沿输出的数据位,故实为数据字节的第0位数据位。
由此可见,单字节读操作的时序图如改为图2所示时序图,则读者较容易理解可避免发生上述编程错误。
只要将上述的DS_RSUB子程序改为如下的子程序即可解决上述问题:
DS_RSUBl:SETBP1.0;为读数据作准备
MOVR7,#08H
RL00P:CLRP1.1;SCLK第8个正脉冲的
MOVC,P1.0;下降沿开始输出数据。
RAC
SETBP1.1
码组合不允许充电。位2和3(DS)则在和之间选择是一个还是两个二
~~~~~~~~~~~~~~~~~~~~~~~~~
答案是肯定的.十五字真的很重要!
嚯嚯!我也来帮忙!
欢迎来我的CY小窝坐坐:
http://www.cyworld.com.cn/shuabaocaicaizi