proteus仿真stc15--P0 IO口的BUG

仿真矩阵键盘时,发现仿真中的stc15的IO口有蜜汁bug…

首先,P0M0,P0M1之类的IO口配置语句完全无效。(所有IO口都无效)
proteus仿真stc15--P0 IO口的BUG_第1张图片
按上图中不论怎么配置都无效。
如果说这算正常,暂且都默认它们是准双向IO口。

5.21更新:

以下问题目前仅在P0口发现,其他IO口使用正常。

这些IO口的输出阻抗非常玄学,上图:

先放一个正常点的图,这里不加电阻,是直接拉低的:
proteus仿真stc15--P0 IO口的BUG_第2张图片
proteus仿真stc15--P0 IO口的BUG_第3张图片图中,P0.0~P0.3输出为低电平,P0.4 ~ P0.5输出为高电平,按理说,准双向IO口是弱上拉,300欧的下拉,完全是可以拉低的,结果没有。
这个输出有16mA了,已经是达到推挽的输出能力了。

我加了一个10k的上拉,开始迷惑行为了:
proteus仿真stc15--P0 IO口的BUG_第4张图片

竟然直接拉到2.5…一般准双向IO口,最少也有10mA的拉电流吧(况且刚才测试过,16mA的拉电流是没问题的)

下面就更玄学了,这是两个按键未按下时的现象:

proteus仿真stc15--P0 IO口的BUG_第5张图片

这是都按下的现象…
上面的正常拉低,下面的显示短路。

proteus仿真stc15--P0 IO口的BUG_第6张图片没办法,短路就要加限流电阻呀…
之前试过,加300拉低不了…那就加100(50mA),依然没卵用…
proteus仿真stc15--P0 IO口的BUG_第7张图片
挑战IO口输出极限(),加1欧:
proteus仿真stc15--P0 IO口的BUG_第8张图片

,终于有现象了,不过两边都是2.5是什么鬼,拉电流跟灌电流一样大!?…(没错,我proteus就是头铁

经过不耐烦的测试,发现在整个P0里,只有P0.1和P0.3直接接地会短路。其他的都是正常拉低。
proteus仿真stc15--P0 IO口的BUG_第9张图片

这如果这都可以解释的话,再看下面的现象:
显示短路后,再按下第一个按键,短路消失了…
proteus仿真stc15--P0 IO口的BUG_第10张图片
proteus仿真stc15--P0 IO口的BUG_第11张图片

加了限流电阻,没法拉低
不加限流电阻,直接短路
还有伴随着各种玄学现象…

你可能感兴趣的:(proteus,stc15)