课本上说,端口读取数据分两种,读锁存器和读引脚。
读引脚之前先要输出高电平使端口内的场效应管截止,否则读取高电平会出错。
这个我试了一下,用的是AT89S52。
故意先输出电平再读引脚,并未发生读取错误的现象啊。
哪位遇到过书上说的这种读取错误么?
书上说的是老的51单片机么?现在用的单片机已经解决这个问题了么?
大概我问题中没说明白……我测试了一下,先输出低电平,再读取。无论是0和1,都能准确读取,没有出错。和书上写的不一样。
我想问这怎么解释,是不是书上错了。
道理上讲管脚被拉低,就不会接受外部信号,因为本身管脚已经被接地了,你的测试结果不符合常理的,接的时候共地了吗?
完全是答非所问嘛
51单片机 读引脚与读锁存器的问题
P1口有上拉,读的时候就会直接读到上拉的点,接了外设,由于外设的原因造成端口被拉低,读取的时候就会读到低电平。如果外设的接口也是高电平,那就是高电平。
51单片机读引脚与读锁存器的问题
51单片机的P1读的是引脚上的电平 即使你把io口置位 也可能被外部电路拉低 所以有没有外设读到的电平可能会不一样 因为51单片机io口没有三态 所以读io口时要先将io口置位
51单片机如何读回端口状态?
原因:51单片机的准双向端口输出1时如果外接负载偏重(例如几毫安),其端口电压可能低到2~3V甚至更低,但这时往往外接电路还能工作,但直接读回端口状态就有可能是0.比较好的解决办法:输出要回读的话,最好额外定义一个输出端口镜像存储单元,每次输出先对该镜像单元操作,然后把镜像单元的值送到端口。
51单片机读取引脚的数据时,要先将IO口输出设置为高电平。为什么?_百度...
是的, 51单片机作输入时就直接让他输出高电平,看看外设有没有将其拉低。这是因为51的高电平输出电流很小,随便一个低电平就能将其拉低的缘故,但低电平不能被拉高。
有谁知道电脑识别不了51单片机的端口是什么原因吗?
这个问题以前偶也遇到过,通常这种情况是因为端口存在数据,提示端口被占用。你试着把端口禁用,再启用;或者直接重启电脑试下;要么就换个口用。具体原因偶不是很清楚ˉ-ˉ
使用51单片机的i\/o口时要注意哪些问题
传51单片机P0口需外接上拉电阻,否则输不出高电平 作为输入端口时,读取前要向该IO端口写1 外电路可将高电平拉低,但不能强行将低电平拉高 IO端口高电平输出电流只有300UA左右,低电平输出电流(灌电流)可达10ma以上 现今的增强型51单片机有IO端口配置寄存器,可以配置为弱上拉 推挽 浮空 开漏四种...
51单片机串口连接到电脑上计算机无法显示com端口如何解决(51单片机接收...
5. 51单片机串口打开失败 IE = 0x90;把里面的上面那句去掉,就行了。把ES=1,再来一个IE = 0x90;实际上ES=0了 6. 51单片机串口接收数据的处理程序 3.比如读取内存地址0x22中的数据 C语言中对于内存的访问是基于指针的,这个毋庸置疑,具体操如下 unsigned int *p= (unsigned int*)0x...
P0口为什么不能读引脚?
不光是P0口,标准51单片机的所有IO口都有“读引脚”和“读锁存器”的问题。其实这类问题也很好解释,自己去看看51单片机的IO脚框图就豁然开朗了。读引脚的意思就是直接读P0外部引脚的电位,而读端口(锁存器)读的是内部与数据总线链接的锁存器的电位。一般来说,读取P0的数据,都是读引脚,目的是...
51单片机烧录时找不到串口,提示串口打开失败?
1. 插入电脑设备管理器里面有没有提示或出现什么带问号的驱动名称,如果有证明驱动没安装好 2. 如果没有开发板硬件有问题 3. 换个USB口再试,不行就百度一下兼容操作系统的驱动或找卖家搞定
Win10系统识别不了51单片机怎么办?Windows10无法识别51单片机的解决方法...
具体方法如下:1、首先鼠标移到开始菜单,右击,找到设备管理器,点击端口。2、此后右击,点击属性,再点击驱动程序。3、点击更新驱动程序。4、点击浏览浏览计算机查找程序驱动软件。5、点击下一步。6、点击第一个版本。7、返回去重新加载,就能读取51单片机。如果依然不能识别,可能相关服务未开启:1、按...