您的位置:首页 > 其它

自己写的一个简单的风速仪程序

2011-06-14 15:15 197 查看
/*在cvavr下编写的 已经测试通过 显示用的320*240液晶
time0定时1s   每1秒读TCNT1的数据 然后清零tcnt1

*/

#include <mega1280.h>
bit flag;
unsigned int count;
unsigned int date;
unsigned char fengji;

interrupt [TIM0_OVF]  void time0_ovf(void)
{
count++;
if(count==28839)
{
count=0;
flag=1;

}

}
time_init()
{
TCCR0A=0x00;
TCCR0B=0x01;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

TCCR1A=0x00;
TCCR1B=0x06;
TCNT1H=0x00;
TCNT1L=0x00;
TIMSK0=0x01;
#asm("sei")
}

void fengsu(void)
{
float m;

if(flag==1)
{
flag=0;
date=(TCNT1H<<8)+TCNT1L;
TCNT1H=0x00;
TCNT1L=0x00;

}
if(date==0) m=0;
else{
m= date* 1.17;
m=m+0.4;
}

if(m>=3&&m<15) fengji=1;
else if(m>=15&&m<33) fengji=2;
else if(m>=33&&m<54) fengji=3;
else if(m>=54&&m<79) fengji=4;
else if(m>=79&&m<107) fengji=5;
else if(m>=107&&m<138) fengji=6;
else if(m>=138&&m<171) fengji=7;
else if(m>=171&&m<207) fengji=8;
else if(m>=207&&m<244) fengji=9;
else if(m>=244&&m<284) fengji=10;
else if(m>=284&&m<326) fengji=11;
else if(m>=326) fengji=12;
else fengji=0;

disp_value(fengji,6,217,16,8,0);

}

void main()
{
fengji=0;
time_init();
LcdInit();
disp_zhujiemian();      while(1)
{
fengsu();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐