单片机1602一个读忙程序的问题,请大神赐教???
答案:3 悬赏:0 手机版
解决时间 2021-03-26 13:44
- 提问者网友:浪荡绅士
- 2021-03-26 02:09
单片机1602一个读忙程序的问题,请大神赐教???
最佳答案
- 五星知识达人网友:等灯
- 2021-03-26 03:43
while(1)
{
busy_flag = (bit)(P0 & 0x80);// (bit)的意思是把(P0 & 0x80)位与的结果强制转换为位类型的变量
if(busy_flag == 0)
{
break; //busy_flag为0时退出LCD等待检测
}
}追问我就是想既然已将P0=0xff,那么P0八个io口就都是高电平了,最高位自然也是1啊,P0&0x80也就是11111111&10000000那不管怎样最高位都是1啊,这样的话,读到的就永远都是忙了,这怎么理解呢?求赐教?追答单片机P0口8个端口与1602液晶的D0-D7位相连,1602液晶的D7也就是最高位是1602液晶的BUSY忙标志位,当1602液晶处于空闲状态时此位为0,忙状态时此位为1;而单片机P0^7与1602液晶的D7位物理是相连的,那么当1602处于空闲状态时,P0^7口就被拉低为0了追问谢谢你的指点,由于我只是一名还在读大一的学生,所以对你的回答我不是特别能够理解,(程序开始已经将P0的最高为赋为高电平,为何1602空闲就强制将其拉低了呢?对这个我的想法不知正不正确,就是将其和下拉电阻将电平拉低原理来理解。不知正不正确,多打扰了,求指点一下)但我知道你很厉害,你一定是位高手,谢谢你的指导,非常感谢!!!!追答我也不是什么高手,只是比你学的时间多些吧
51单片机的P0端口与P1 P2 P3口不同的是没有上拉电阻,你看下其相关的资料就懂了
1602空闲还是忙状态是1602自己内部输出的,P0^7口只是作为输入去读取它;把P0口置为0xFF的目的是不让P0口出输入0x00,这样就可以去作为输入,当LCD D7位变化为0时,P0^7就能检测到。
而为什么0能把1拉下去,因为0的能量比1的能量大吧(你现在就这么认为),传统51单片机P0都是没有上拉电阻的,现在很多增强51单片机的P0口与其它IO都一样了,都有上拉电阻;就算有这个上拉电阻,例如这个上拉电阻只能提供10MA的电流,如果外部一个0信号的电流可能是20MA,那么是不是就被拉为0了。
结果就是不管P0口有没有上拉,就算有上拉了电流也比较小,如果外部的电平信号电平比单片机IO口电流大,那么就按外部的电平信号说了算
全部回答
- 1楼网友:蕴藏春秋
- 2021-03-26 05:29
P0赋值0xff的目的是将IO切换到输入状态,这段是51的io特性书上有的.
- 2楼网友:神鬼未生
- 2021-03-26 04:52
这个是典型的关于51单片机的问题,所有的讲51单片机的书上都会指出,
它的端口是弱上拉的结构,读取端口状态之前必须写1。
下面说一下为什么读之前需要先写1.
写1,写的是输出锁存器,读取,读得是端口的状态,或者说是外部输入。这两个操作访问的硬件是不一样的。
输出锁存器输出1的时候,外部电路可以把端口的高电平拉成低电平,因为51是弱上拉。反之,输出锁存器输出0的时候,外部电路是很难把端口的低电平拉成高电平的,拉成高电平就意味着芯片的管脚损坏。
所以,读之前,输出必须写1,这样外部输入可以是高,也可以是低,不会损坏芯片的管脚。反之,如果写0,那么外部电路只能是低电平,如果是高电平,要么读不到,要么管脚损坏。
当然,具体管脚上的硬件要比这里说的复杂,但原理上大概是这样。
回到你的问题,
P1=0xFF是写P1的输出,让输出维持高电平,或者说弱上拉状态。
P1&0x80并不是你想的0xFF&0x80,而是取P1的当前输入的状态与0x80进行与运算。
它的端口是弱上拉的结构,读取端口状态之前必须写1。
下面说一下为什么读之前需要先写1.
写1,写的是输出锁存器,读取,读得是端口的状态,或者说是外部输入。这两个操作访问的硬件是不一样的。
输出锁存器输出1的时候,外部电路可以把端口的高电平拉成低电平,因为51是弱上拉。反之,输出锁存器输出0的时候,外部电路是很难把端口的低电平拉成高电平的,拉成高电平就意味着芯片的管脚损坏。
所以,读之前,输出必须写1,这样外部输入可以是高,也可以是低,不会损坏芯片的管脚。反之,如果写0,那么外部电路只能是低电平,如果是高电平,要么读不到,要么管脚损坏。
当然,具体管脚上的硬件要比这里说的复杂,但原理上大概是这样。
回到你的问题,
P1=0xFF是写P1的输出,让输出维持高电平,或者说弱上拉状态。
P1&0x80并不是你想的0xFF&0x80,而是取P1的当前输入的状态与0x80进行与运算。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯