--也是输出状态,但是也可以输入。
是呈现高阻态的,就是I/O口内部结构的开关是断开的,不接地,
--P0 口,确实是这样的。
但还接一个上拉电阻吧!(都带上拉电阻)。
--P0 口没有上拉电阻。
--P1P2P3,都有上拉电阻。
--但是电阻很大,几百K,上拉作用有限。
那我接低电平的外围器件不就会输出电流了吗
--P1P2P3,都有输出电流。
--很小的电流。
但这是输入状态啊!不矛盾吗
--谁说是输入状态?他是瞎说。
--此时是输出1。
--但是引脚内部的上拉能力有限,因此,这时就可以当输入使用。
而且单片机的Io口的输出电压也是5V啊,就是通过这个原理输出的吗?
--5V?谁说输出5V了?
--引脚上拉能力有限,难以保证5V。
--你外部接地了,就是0V。这就是输入低电平。
那同理,我置0,是输出状态吧!
--置一、清零,都是输出。
--只是,置一后,可以输入。
内部开关闭合,接地,电平拉低,
上拉电阻也接地了,拉低了,上拉电阻不对外输出。
但怎么输出1呢?不是接地了吗?怎么输出1啊?
--《我置0》,你就是输出0,怎么会想到输出1
输出状态才能输出1和0吗?
--置一、清零,都是输出。
输入状态不能输出吗?
--输入状态,隐含在输出1的时候。一直循环检测IO口状态,检测到起始信号边缘(如51单片机IO口一直是高电平,当检测到出现低电平即为启动信号),然后利用延时程序延时05ms,读取每个数据位的中间位置,判断是0还是1。
根据你的实际要求,第一次读取肯定是高电平,第二次读取为低电平,你需要再判断第三次和第四次,如果第三、四次均为低电平则为数据1,如果不是则为数据0。
个人感觉你这个通信协议有点问题,需要改进。原因如下:
比如顺氦矗份匪莓睹逢色抚姬序出现高、低、低电平时已经可以判断为1了,第四个电平是没有作用的。还有你这个协议由于数据1传输结尾时低电平,因此需要以高电平作为启动信号,而大部分单片机都是以低电平为启动信号的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)