
请问一个AVR单片机编程的问题?
下面是一个单片机模数转换的程序,使用的是Mega16单片机内部的AD转换器,请问其中的”DDRA&=~BIT(PA0);PORTA&~BIT(PA0);“是什么意思?全部...
下面是一个单片机模数转换的程序,使用的是Mega16单片机内部的AD转换器,
请问其中的
” DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);“
是什么意思?
全部程序如下:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#include "xianshi.c"
unit mega16_ad(uchar ch1)
{
unit addata;
DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);
ADMUX=0;//配置AD的寄存器
ADCSR=0X80;//配置控制寄存器
ADCSR|=BIT(ADSC);
while(!(ADSCR)&(BIT(ADIF)));
/*ADSCR:控制状态寄存器
ADIF:将第四位取为1,其余全为0.热鬉DSCR=1,则为(ADSCR)&(BIT(ADIF))真,跳出循环,执行其它语句*/
addata=ADCL;
addata=addata+ADCH*256;
return addata;
?
}
void main()
{
unit i,ada,ad[4];
while(1)
{
ada=mega16_ad();
for(i=0;i<4;i++)
{
ad[3-i]=ada%10;
ada=ada/10;
}
for(i=0;i<4;i++)
{
show(a[i],i);
delay(2);
}
}
} 展开
请问其中的
” DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);“
是什么意思?
全部程序如下:
#include <iom16v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#include "xianshi.c"
unit mega16_ad(uchar ch1)
{
unit addata;
DDRA&=~BIT(PA0);
PORTA&~BIT(PA0);
ADMUX=0;//配置AD的寄存器
ADCSR=0X80;//配置控制寄存器
ADCSR|=BIT(ADSC);
while(!(ADSCR)&(BIT(ADIF)));
/*ADSCR:控制状态寄存器
ADIF:将第四位取为1,其余全为0.热鬉DSCR=1,则为(ADSCR)&(BIT(ADIF))真,跳出循环,执行其它语句*/
addata=ADCL;
addata=addata+ADCH*256;
return addata;
?
}
void main()
{
unit i,ada,ad[4];
while(1)
{
ada=mega16_ad();
for(i=0;i<4;i++)
{
ad[3-i]=ada%10;
ada=ada/10;
}
for(i=0;i<4;i++)
{
show(a[i],i);
delay(2);
}
}
} 展开
意法半导体(中国)投资有限公司
2023-08-25
展开全部
展开全部
DDRA 是 A 口的数据方向控制寄存器,
PORTA 是 控制 A 口是否用上拉
"DDRA&=~BIT(PA0)" 与 "PORTA&~BIT(PA0)" 是设置PA0口为不带上拉输入;
PORTA 是 控制 A 口是否用上拉
"DDRA&=~BIT(PA0)" 与 "PORTA&~BIT(PA0)" 是设置PA0口为不带上拉输入;

2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询