![]() |
万家灯火51 发表于 2024-11-5 13:21 我仿真测试的就是自画键盘啊,当然keypad这个键盘模板也会出现同样问题 |
万家灯火51 发表于 2024-11-5 13:13 前几天有人问过类似的问题,不是你问的,我是说那个,你搜索一下就看到了。 |
既然都说真实键盘正常了,何必还纠结这个仿真?毕竟还得以实物为主。 |
这个还没有解决,顶一下。 |
cyi8 发表于 2024-11-4 08:22 KEY_ScanPort=0xFF;//真实键盘和其它仿真模型键盘,可以去掉这一句的。但keypad模型,删除这一句,下面temp就采集不到正确数据了,为什么? KEY_ScanPort=0x0F; // 高四位置0,低四位设置为数据采集状态 temp=KEY_ScanPort; //上面那句去掉,这里采集到的数据就是错的 |
lkc8210 发表于 2024-11-4 09:20 你这测试有意思。我还没有去这么仿真测过。不过这自画键盘,我画过,没有任何问题,所以没有去进一步研究。下次试试。这个帖子问的问题,只有才keypad这个键盘模板里才遇到。其它自画键盘或真实键盘中,不存在这个问题的。所以,不知道是proteus 的keypad这个模型本身有问题还是,自己哪点没有理解透。 |
xiaobendan001 发表于 2024-11-4 09:42 谢谢还记得前面的问题。这个问题是新问题。跟前面那个不一样。这次这个代码是个很神奇的问题。 |
cyi8 发表于 2024-11-4 08:22 KEY_ScanPort=0x0F; // 高四位置0,低四位设置为数据采集状态 这一句,低4位就是置1,断cmos门地,准备好采集数据。 所以,不是你说的原因。 |
这个不是前几天刚问过? |
仿真不真,详情看此贴: 解决某些版本Proteus阵列键盘失效的奇葩方法 |
回去好好看一下51单片机各口的定义,51单片机的各输入输出口只是准双向口,不是真正的双向口,所以当要接收外部数据输入是,要先将输入输出口置1,然后读取的数据才会正确,不置1的话,读取到的数据就是内部缓冲器的数据,会不准确,因为内部缓冲器的数据不一定是输入的数据,还有可能是内部代码产生的数据。 |
说明一下,不是延时等待电平稳定问题。测试过了。 |