-
发表于 2011-7-17 10:39
只看该作者
P1口你不是输出么?如果要改为输入,要先写一个0xff到P1口,使得口回到高电平,在读入就是真实的输入电平。这是基本的51常识。看看51的说明书吧------------------------------------------------------------------P1口我是做输出用的(控制继电器),但是同时需要读取P1口的状态发送到PC,所以你的方法应该解决不了我的问题我有如下疑问:1)如何设置一个端口是输入或是输出?2)需要设置一个端口是输入或是输出吗,比如P1=0x01,这不就是控制P1的bit0=1吗
-
发表于 2011-7-17 10:39
只看该作者
P1口你不是输出么?如果要改为输入,要先写一个0xff到P1口,使得口回到高电平,在读入就是真实的输入电平。这是基本的51常识。看看51的说明书吧---------------P1口是做输出口用的,我想做的就是检测P1口的输出状态,并把这个输出状态发送到PC,所以你的方法应该搞不定我的问题一定要把P1写为0xff后才能读这个p1的数据吗?如果设置一个端口是输出还是输入?需要设置?请指点,,,,,,,,
-
楼主是否理解什么叫读回来的数据是空的?在电脑
端串口调试工具里你置显示方式是ASCII还是16进制?ASCII的空数据实际是9x20,表示有一个空格,另外有几个什么都不显示(象00或01),
有一个回车一个换行;16进制显示就不存在空不空的问题,即使00也能显示。
gzmiaody 发表于 2011-7-17 10:39------------PC测是ASCII显示,我说的空就是什么数据也没有,如果有一个空格(0x20)应该看到光标向后退一格,可是我没看到。我看到的是什么都不显示,这个如何解释?
-
这个软件好像不能收发中文,发送和接受时需要勾选十六进制选框。
-----------------------------------------------------------------------------------------------------------------
是的,发送的时候要勾选十六进制的
今天已经将问题定位出来了。是因为没有处理好看门狗的任务,导致cpu不断的复位。理论分析:这个从图3上也能看到,TestP00被拉低了,由于没有再发数据,所以也不会中断,TestP00也就不会再被拉高但是实际TestP00是被拉搞了,这是为什么呢?有一种可能就是cpu复位了,因为cpu复位后的P0的默认状态是高。这也能解释为什么仿真可以,实际上板就不行了。因为仿真的时候不会管这个看门狗的。
有个体会:当遇到问题发现无论如何也不能解释,特别是那些理论分析的很清晰的,实际一上板验证就出问题的问题,一般是低级错误导致的