新手学单片机,问几个KeilC和Proteus的问题!

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:30:07
最近在学长的教育下,从仿真开始学单片机了,但刚开始就遇到了很多问题,进度总是很慢,先发一些想到了的,大家看是怎么回事

1。keilc里引用89C51的一个引脚时用P0_0和P0^0有什么不同么?好像观察窗口里好像看到它们不是同的数据类型啊?
2.在main外用sbit L1=P0^0之后L1和P0^0就完全一样了么,意思是sbit命令就是个方便的作用?
2.5,有的时候直接用P0^0=xx给引脚赋值编译时出错,用sbit L1=P0^0之后就给过了,是怎么回事呢
3.运行后P0.0默认是高电平,我用P0_0=0可以让这个引脚为低电平。这时如果有变量char a=P0_0时a的值应该是0的吧,但我现在从外部给P0.0输入高电平,这时P0。0好像又等于1了,那再给a 赋值的话a 是等于几呢?
换句话说,P0_0这个变量指示的到底是哪的电平呢?
3.5如果我在P0.0接LED后接地,在P0.1处接button开关后接地,那灯的开关岂不是可以写成P0_0=P0_1;?
4.单片机的“低电平”能用来导通PNP管么?
5.实际制作中要用到电压比较器LM393,但拾取元件的时候显示no ...modles,仿真不运行了,在哪能找到这样的冷门元件呢?
6.单片机可以用两节五号电池作为电源么?
7.单片机“高电平”的值是不是就是VCC接的电源的值呢?

这么多呀,我慢慢答你
1、P0_0,应该是没有的,除非是你自己定义的。P0^0是p0口的第0个端口,这两个值你都可以在观察里看到,p0^0可以直接在i/o中看到的。
2、你的意思理解是正解的,方便
2.5、因为P0^0你没有定义,你必须这样才能用 sbit 一个符号=P0^0,因为在reg51.h库中只定义了P0口是可以位变量
3、前面说的对,后面的就看你的char a=P0_0;放在什么位置了,如果你每次在外部输入高电平的时间,然后在后面跟着a=P0_0;那么这个a就跟着你的p0_0走。
3.5、可行的,不过你的程序中得处理,另外你的LED得限流电阻。一般的键盘可不是这样的,哈哈
4、能的,得加上电阻,要不然对单片机的口不利
5、电压比较器挺多的,如果不行的话,放大器也可以做成比较器来用呀,好OP07,
6、看是什么单片机了,你可以对应想应的单片机手册,不过可以告诉你,msp430是可以的,还有atmega128L也是可以的,部分51系列的单片机也是可以的。at89c51是不可以的(如果你升压的话,当然也行,哈哈)
7、理论是这个值,一般高电平的标准值为>0.7VCC即可,输去看负载了

希望上面的答案对你有用。有什么问题信息我