DDRB BIT(IO)是什么算法?是c语言吗?是什么意思

2020-11-28 11:32:53 字数 4531 阅读 2586

1楼:匿名用户

位运算

应该是单片机编程**的片段吧ddrb|=bit(io)

ddrb=ddrb|bit(io)即对ddrb的某一位或某几位置一

怎样用c语言独立于操作系统地io

2楼:mexico卡卡

如何用c语言操纵avr的io端口(以iccavr为例):

举例一:将pb0定义

为输出,且输出为高电平

ddrb=bit(0); //定义 pb0为输出

portb|=bit(0); // pb0 输出高电平

举例二:将pb0、pb1定义为输出,且pb0输出低电平,pb1均为高电平

ddrb|=bit(0)|bit(1); //定义 pb0、pb1为输出

portb|=bit(0)|bit(1);// pb0、pb1 输出高电平

举例三:将pb0数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

portb^=bit(0); // pb0 输出高电平

举例四:将pb0、pb1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

portb^=bit(0)|bit(1); // pb0 输出高电平

举例五:将pb2、pb3定义为输入,不带上拉电阻

ddrb&=~(bit(2)|bit(3)); //定义 pb2、pb3为输入

portb&=~(bit(2)|bit(3)); // 将 port 置0,没有上拉电阻

举例六:将pb2、pb3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平

sfior&=~bit(pud); // sfior寄存器的上拉电阻控制位pud置0,在整个**中,这句话可以不出现,或仅出现一次即可。因为它是一个控制全部上拉电阻的控制位。

ddrb&=~(bit(2)|bit(3)); //定义 pb2、pb3为输入

portb|=bit(2)|bit(3); // 将 port 置1,满足上拉电阻的另一个条件

举例七:ddrb=bit(0)|bit(1) 与 ddrb|=bit(0)|bit(1) 的区别

假定在执行上面两句指令前,ddrb 的状态为: 1000 0000

如果执行 ddrb="bit"(0)|bit(1) ,ddrb的状态变为: 0000 0011

如果执行 ddrd|=bit(0)|bit(1),,ddrb的状态变为: 1000 0011

那前一句会先清空以前的所有状态,后一句保留前面的状态。

在实际应用中,后一句更常用。

举例八:将第三位置1,除了用bit(3),还有其它的表达方法吗?

ddrb|=bit(3);

ddrb|=1<<3;

ddrb|=0x08;

ddrb|=0b00001000;

#define led_set portd |= (1 << pd5) //位置高

#define led_clr portd &= ~(1 << pd5) //位置低

#define led_*** portd ^= (1 << pd5) //位取反

#define led_r pind & (1 << pd5) //位读取

通过上面的定义就可以在程序中直接操作i/o了。

如何用c语言操纵avr的io端口

3楼:匿名用户

如何用c语言操纵avr的io端口(以iccavr为例):

举例一:将pb0定义为输出,且输出为高电平

ddrb=bit(0); //定义 pb0为输出

portb|=bit(0); // pb0 输出高电平

举例二:将pb0、pb1定义为输出,且pb0输出低电平,pb1均为高电平

ddrb|=bit(0)|bit(1); //定义 pb0、pb1为输出

portb|=bit(0)|bit(1);// pb0、pb1 输出高电平

举例三:将pb0数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

portb^=bit(0); // pb0 输出高电平

举例四:将pb0、pb1数据寄存器的数值翻转,即如果是1时变成0,如果是0时变成1

portb^=bit(0)|bit(1); // pb0 输出高电平

举例五:将pb2、pb3定义为输入,不带上拉电阻

ddrb&=~(bit(2)|bit(3)); //定义 pb2、pb3为输入

portb&=~(bit(2)|bit(3)); // 将 port 置0,没有上拉电阻

举例六:将pb2、pb3定义为输入,带上拉电阻。即没有引用这些引脚时,缺省值为高电平

sfior&=~bit(pud); // sfior寄存器的上拉电阻控制位pud置0,在整个**中,这句话可以不出现,或仅出现一次即可。因为它是一个控制全部上拉电阻的控制位。

ddrb&=~(bit(2)|bit(3)); //定义 pb2、pb3为输入

portb|=bit(2)|bit(3); // 将 port 置1,满足上拉电阻的另一个条件

举例七:ddrb=bit(0)|bit(1) 与 ddrb|=bit(0)|bit(1) 的区别

假定在执行上面两句指令前,ddrb 的状态为: 1000 0000

如果执行 ddrb="bit"(0)|bit(1) ,ddrb的状态变为: 0000 0011

如果执行 ddrd|=bit(0)|bit(1),,ddrb的状态变为: 1000 0011

那前一句会先清空以前的所有状态,后一句保留前面的状态。

在实际应用中,后一句更常用。

举例八:将第三位置1,除了用bit(3),还有其它的表达方法吗?

ddrb|=bit(3);

ddrb|=1<<3;

ddrb|=0x08;

ddrb|=0b00001000;

#define led_set portd |= (1 << pd5) //位置高

#define led_clr portd &= ~(1 << pd5) //位置低

#define led_*** portd ^= (1 << pd5) //位取反

#define led_r pind & (1 << pd5) //位读取

通过上面的定义就可以在程序中直接操作i/o了。

ddrb = (1 << ddb4) 是什么意思? 5

4楼:天真的畅想

ddrb是方向寄存器,1<把1左移到ddb4.

ddrb决定了单片机io口的方向,若是仅仅应用,那在读取端口是设置ddrb相应位为1,然后读取pinb,写端口是设置ddrb相应位为0,然后写portb.

5楼:匿名用户

ddrb是端口b的方向寄存器,这句话的意思是说端口b的port4脚设为输出。

6楼:秋之左岸

ddrb 是方向寄存器,1<

单片机ddrb的作用

7楼:还要设置密码

ddrb决定了单片机io口的方向,若是仅仅应用,那在读取端口是设置ddrb相应位为1,然后读取pinb,写端口是设置ddrb相应位为0,然后写portb,若是想深入了解,最好看atmega16芯片手册,看看端口的电路图。

读取b口:

unsigned char sb;

ddrb=0xff;

sb=pinb;

写b端口:

ddrb=0x0;

portb=0x2b;

8楼:徐龙成

什么型号单片机?ddrb一般是b口方向寄存器。你可是设置io口是输入还是输出。

9楼:匿名用户

ddrb |= 0x80; //等于“sbi(ddrb,7);” ddrb

单片机中ddrb=00fx什么意思

10楼:匿名用户

这个是avr单片机的io口,也就是输入输出口线b口的引脚配置,如果配置成ddrb = 0xf0,则表示b口的高四位是输出,低四位是输入配置,如果配置成ddrb= 0xff,则表示b口全部是输出模式。当然还可以配置成ddrb= 0xf1 0xf2 0xf4....

11楼:宋桓公

不应该是ddrb=00fx;应该是,ddrb=0xf0 吧ddrb决定了单片机io口的方向,若是仅仅应用,那在读取端口是设置ddrb相应位为1,然后读取pinb,写端口是设置ddrb相应位为0,然后写portb,若是想深入了解,最好看atmega16芯片手册,看看端口的电路图。

读取b口:

unsigned char sb;

ddrb=0xff;

sb=pinb;

写b端口:

ddrb=0x0;

portb=0x2b;

装C是什么意思,C语言/*……*/是什么意思

1楼 神丶雨祭丨 装c 装。b 只不过好听一点不想爆粗口 希望采纳,你的支持是我们的动力! 2楼 安安静静活几年 就是比装逼 b 更厉害的当时是装c了 c语言 是什么意思 3楼 安徽电信网上营业厅 是c语言注释的起始标识。 在c语言中,可以使用 作为注释文字的起始和结束标识,在 和 中间的文字,将不...

c语言c中间加数字是什么意思,C语言%c中间加数字是什么意思

1楼 灰灰不吃羊 限制输出宽度, 2c,就是输出的宽度为2, c省略了1,c的输出格式控制会有详细的介绍。 c语言里 f中间加数字是什么意思 2楼 匿名用户 f是用于格式化输入输出函数,对应类型为float的格式字符。加数字的情况仅适用于输出函数,比如printf。 其形式为 printf a bf...

c语言中sk是什么意思,c语言中 k*=2 是什么意思

1楼 匿名用户 相当于 s k,取结构体中k的值 2楼 匿名用户 struct studentstu s stu k s k s是指向结构体的指针 3楼 发烧友eri画家 s是结构体指针,指向结构体中的变量k 也就是k的值 c语言中s k是什么意思 4楼 匿名用户 就是s s k的意思就是把s的值加...