请高手指点迷津,这是关于在单片机atmega16数码管中显示DHT21的温湿度的问题

voiddata_re(void){TCCR0=0;//关定时器TCNT0=0;//计数器值清零count=0;//字节自检函数,5字节,40个位DDRD|=(1<<6)... void data_re(void)
{
TCCR0=0;//关定时器
TCNT0=0;//计数器值清零
count=0; //字节自检函数,5字节,40个位

DDRD|=(1<<6);
_delay_us(3);
PORTD&=~(1<<6);//主机发开始信号
_delay_us(500);//拉低总线500us
PORTD|=(1<<6);//拉高数据口,并延时等待
DDRD&=~(1<<6);
_delay_us(3);

while(PIND&0X40) //等待DH21输出响应
{
;
}

while(~(PIND&0X40))//等待DH21拉高延时准备输出
{
;
}
while(PIND&0X40)//如果为低则表明开始传输数据
{
;
}

while(count<32)//数据开始
{
TCNT0=0;//计数器值清零
while(~(PIND&0X40)) //去除时隙低电平
{
;
}

TCCR0=0X02;//开定时器
while(PIND&0X40) //1计时
{
;
}
TCCR0=0;//关定时器
tab[count++]=TCNT0;//将定时器值赋予高低电平接收数组

}
DDRD|=(1<<6);
PORTD|=(1<<6);
}

在atmega16中用winavr编译,接受到的数据一直为0,希望高手指点
展开
 我来答
匿名用户
2010-06-18
展开全部
貌似很难啊,高手也无法解决啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迪凯特科技(北京)有限公司_
2025-01-03 广告
单片机的UART口通信速度通常取决于以下几个因素:1. 硬件规格:不同的单片机UART接口具有不同的最大传输速率,通常在数百Kbps到数Mbps的范围内。例如,某些常见的单片机,如STM32F103C8T6,其UART接口的最大传输速率可达... 点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式