单片机c语言编程时,假如一个IO已口定义了,但没定义此口是高电平还是低电平,那系统会默认为低电平么

单片机c语言编程时,假如一个IO已口定义了,但没定义此口是高电平还是低电平,那系统会默认为低电平么?

任何一个C语言语句,最终都是经过编译程序编译成汇编语言再由汇编器编译成机器码,但是,定语句则不痛,他们被编译成汇编语言伪指令(不是可执行指令),只要你没有在定义时赋值,就没有实质的机器码产生,也就不会改变寄存器或者内存的状态。
由此,我们可以得出答案,单片机c语言编程时,假如一个IO已口定义了,但没定义此口是高电平还是低电平,那系统不会默认为低电平。这个IO口具体是什么状态,有具体单片机的默认状态决定,且不同的单片机有所不同,对传统单片机,默认状态是弱上拉准IO状态,是高电平。追问

p89v51单片机

追答

看了下资料,语焉不详。这不重要,你明白实质就好。其实单片机程序启动后第一步工作就是初始化,也可视为布置工作现场,对你所用到的功能,最好明确设置,这是经验。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-21
请问你是使用的什么单片机?IO口的输入输出配置是怎么样的?简单说一下才能够继续回答。。。因为不同的单片机IO功能是不一样的。
希望可以帮助到你!追问

51单片机

追答

具体型号?你的端口配置代码?

追问

p89v51

追答

P0口是一个8位开漏双向IO口,写入1时,IO口悬浮。可用作高阻态输入。
P1(P2、P3)口是一个带内部上拉的IO口,写入1时,IO口高电平。
请问你关注的IO口是哪一组上面的?

追问

p0口

追答

P0口的话默认是高阻悬浮输入状态,你直接测量电平有可能是高电平也有可能是低电平还有可能是中间值(例如2.3V)。你的外围电路是如何连接的呢?

第2个回答  2015-04-21
会默认为高阻态,介于高低电平之间的一种状态追问

是51单片机

不是只有高低两种电平么?

追答

不是,P0端口有高阻态的http://wenda.haosou.com/q/1366495211065684

追问

p89v51