51单片机,简单问题

来自:营养健康    更新日期:早些时候
单片机C语言编程的简单问题~

#include
#include
int main()
{
char x[6] = "ab";
char x1[6] = {0};
char y[4] = {0};
int i;
for(i = 1; i<10; i++)
{
sprintf(y,"%d",i);
strcpy(x1,x);
strcat(x1,y);
printf("%s
",x1);
}
return 0;
}

#include
#include

sbit P00 = P0^0;
void delay(unsigned int ms)
{
unsigned char i;
while(ms--) for(i = 110; i-- ; i > 0);
}

void main()
{
unsigned char LED = 0xfe, COUN = 0;
while(1) {
P1 = LED;
P2 = COUN;
if (P00 == 1) {
delay(2);
if (P00 == 1) {
while (P00 == 1);
LED = _cror_(LED, 1);
COUN++;
} } } }

一般情况下我们都是以1作为高电平,0作为低电平,因为这样符合我们日常生活中的认识。但是芯片的高低电平有时候不是这样的,单片机是以1作为高电平(这时也是高电压),0作为低电平(低电压)。

但是并不是所有的逻辑电平都是这样(1为高,0为低)的。比如RS-232C标准规定的逻辑电平与TTL数字电路(例如 单片机)的逻辑电平就不兼容(不一定相反,只是电压高低规定不一样)。所以设计电路时最好仔细看看芯片的参数。

可以把高电平理解为高电压,低电平理解为低电压,但是各种芯片的高低电压不一样。如有的芯片高于3.3V就为高电平,有的要高于5.5才为高电压。

不知对你是否有帮助?

一般是用1表示高电平的,0表示低电平的。 1表示接收到信号。

高电平的电压其实也不高,一般是规定一个范围,比如2-5V,2V以上就是高电平了,就可以产生信号。 这就是为什么单片机要规定连接电缆的长度,以后信号强度会损失的吗,可能发出一个4V的信号,传输2m以后发现衰弱为一点几V,那就接收不到了.

那么2V以下就是低电平啦,因为端口本身也有电压的,很弱,检测的话一般是零点几这样子。

好久没用单片机了,不算太确定,希望帮到你

1和0是人为规定的,通常在51单片机中1表示高电平,0表示低电平。高低电平是根据TTL门电压比较。数字电子设计有相关的电压比较信息。通俗的理解就是高电平为电源电压,低电平认为是地电压即是0。

因为数字电路只能分清高电平与低电平两种状态,
举例说明,如果是一个5V的系统(电路)一般以为2.7V以下为低电平,3.4V以上为高电平(不能超过供电电压5V,具体查芯片手册);
如果是一个3V或12V的系统(电路),高低电平的数据又有不同;所以说高低电平只是一个相对值,芯片的供电定下后基本上高低电平的数据也就定下了


51单片机,简单问题视频

相关评论:
  • 17674898785MCS-51单片机,逻辑与和高低位指令SWAP的问题?
    经委苏这个问题要联系实际问题才能确定最佳方案。情况一:假如你要将A的高四位和另一个4位(0000$%&@)的数作比较,那就应该选用上面程序那样,使用SWAP。因为你直接把低4位屏蔽而直接取高4位,这样的结果是A=***0000,其中前面的4位星是代表你原来A中的高4位。但要比较一个数,不能是0000***与另一...

  • 17674898785关于51单片机的一个简单的中断嵌套问题
    经委苏你main函数中的第一句写的是P0=0;也就是说在执行完中断的时候返回到主函数时会执行P0=0;这时会出现你所说的情况,建议你软件仿真一下,把各个io口和定时器调出来看一下。假如要实现你的思路,在执行完P0=0;一次之后屏蔽掉这个语句,在接下来的时间不执行P0=0;...

  • 17674898785关于单片机的一点问题
    经委苏入门的话 最好选择51单片机,简单!网络资源丰富,例程也多,只要感兴趣加上坚持。这些功能都能实现。 你提的第一个问题51单片机就可是实现,定时的话单片机里面有定时器功能,设置好相应的时间就可以控制灯亮灭,手动控制的话,用按钮接单片机IO口来控制灯泡亮灭。第二个问题就有点难度了,像你那样的...

  • 1767489878551单片机,2个简单问题,求大神,定采纳
    经委苏hex 英文 hexadecimal 的缩写,意思是 16进制 51单片机串口下载程序时,单片机的波特率可以任意设置,它会自适应,一般选9600bps就行了

  • 17674898785问一下各位大神一个简单的51单片机定时器计数初值的问题
    经委苏周期为600us的等宽方波脉冲,那么高低电平持续时间就是300US,所以那里会乘以2。晶振为6MHz,则一个机器周期为2US,600US就是300个机器周期 (8192-N)*2=300这里的300说的是300个机器周期。课本是对的

  • 1767489878551单片机很简单的问题,求大神解答
    经委苏只有一个对P1.0的位赋值: sbit led1=P1^0;led1=~led1 是求反吧,相当于CPL

  • 17674898785帮忙看看这个51单片机的计数器程序哪里出问题了吧,用矩阵键盘控制的_百 ...
    经委苏1、数码管显示部分的问题,没有消 0 ,C 语言中变量初值都是 0 ,所以一开始就会显示 0 如果你不想让显示 0 ,那就要写消 0 的程序,就加两句话,很简单的 2、键盘处理部分的问题,如果确认你的键盘检测是对的,那么就是键值处理部分的问题了 3、51都是加法计数器,如果你要想进行减法计数的...

  • 1767489878551单片机定时器简单问题,求大神解救!
    经委苏可以编译通过,延时函数没有调用过,会有一个警告,数字可以显示,变化时间过长。

  • 1767489878551单片机延时函数的问题。晶振是12MHz..需要延时1秒
    经委苏很简单, for循环也是需要时间的.当你使用仿真的时候,通常可以在编译器里面查看这段代码的汇编指令.你可以看书它的用到了多少个汇编指令, 然后在你的芯片手册上查询,每一个汇编指令执行需要多少个最小指令周期. 最小指令周期才是你说的1um, 全部加起来, 你就知道你这句话用掉了多少个最小指令....

  • 17674898785关于51单片机定时\/计数器装入初值的问题
    经委苏这个有什么看不懂得呢 第一种 是吧十进制化成十六机制的方法 第二种呢 就是单纯的十进制 这样跟你说吧 因为th0只有一个字节 那就只能放下8位2进制 于是第一种表示就是把一个大于一个字节小于两个字节的数据转化成两个字节高八位和第八位的分离形式 第二种就简单了 0x9c就是65536-100的十六...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网