#include<reg52.h>sbit p1_1=P1^0;unsigned int a ;void main(){ while(1) { a=51000; p1_1=0; while(a--); a=51000; while(a--);
p1_1=1; a=51000; while(a--); a=51000; while(a--); }}程序中的第二行是什么意思啊?求详解.....
单片机程序中sbit p1_1=P1^0是什么意思?
答案:6 悬赏:80 手机版
解决时间 2021-04-26 21:34
- 提问者网友:嘚啵嘚啵
- 2021-04-25 20:41
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-04-25 21:26
#include<reg52.h>
sbit p1_1=P1^0;
unsigned int a ;
void main()
{while(1)
{
a=51000;
p1_1=0;
while(a--);a=51000;while(a--);
p1_1=1;
a=51000; while(a--);a=51000; while(a--); }
}
sbit是位定义,sbit p1_1=P1^0;是为把P1.0这一位定义成p1_1(相当于一个标识符),在main函数中的p1_1=0; 相当于P1.0=0 ,即P1.0输出低电平。
在函数中不允许对P0~P3口进行为位操作的,故使用前要先进行位定义。
又如:
#include<reg52.h>
sbit led=P1^0;
unsigned int a ;
void main()
{while(1)
{
a=51000;
led=0;
while(a--);a=51000;while(a--);
led=1;
a=51000; while(a--);a=51000; while(a--); }
}
与你上面的程序一样的效果!
如有不清楚欢迎追问!
全部回答
- 1楼网友:渡鹤影
- 2021-04-25 23:52
那个只是一个定义,以后你就可以去读或者写数据到p1_1,那他就会相对对P1.0进行操作了,p1_1只是一个你自己定义的名字而已,这个可以随便起的。这个只是做一个延时输出,在P1.0这个脚输出一个低电平,然后延时,在输出高电平,然后又延时。
- 2楼网友:毛毛
- 2021-04-25 22:57
sbit p1_1=P1^0的意思是 定义P1^0这个位的名字为p1_1;之后写p1_1的地方就是P1^0这个I/O口,你也可以不用,凡是有p1_1的地方就写P1^0也可以~~
- 3楼网友:煞尾
- 2021-04-25 22:44
每个端口都有默认值的,一般情况下是0,你不赋值并不代表他没有值,你可以每次都给他赋予不用的端口确定的值
- 4楼网友:迷人又混蛋
- 2021-04-25 22:08
用P1_1这个变量名来代替P1.0位
- 5楼网友:愁杀梦里人
- 2021-04-25 21:54
把p1.0位的值送入P1.1位
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯