打印
[经验分享]

(转)单片机测速程序

[复制链接]
680|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiqi1|  楼主 | 2016-5-22 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define TOHIGH Ox3C
#define TOLOW OxB0
sbit P3_5=P3^5;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_3=P3^3;
sbit P3_7=P3^7;
void count(void);
void display(void);
void disp_init(void);
unsigned char i,number;
unsigned int n,len[4],sum=0;
char code table[]={OxC0,OxF9,OxA4,OxB0,Ox99,Ox92,Ox82,OxF8,Ox80,Ox90,Oxff};
void main(void)
{
disp_init();
while(1)
{  while(! P3_3){}
    if(P3_3){
           sum++;
      while(P3_3){}
    }
}
}
void count(void)
{
n=sum*20;
if(n>6000&&n<600){
  len[0]=0;
  len[1]=0;
  len[2]=0;
  len[3]=0;
}
len[0]=n/1000;
len[1]=n%1000/100;
len[2]=n%1000%100/10;
len[3]=n%10;
}
void display(void)
{
TMOD=Ox1;
TCON=Ox00;
TH0=TOHIGH;
TL0=TOLOW;
IE=Ox82;
TR0=1;
}
void system_tick(void) interrut 1
{
static unsigned char second_cnt=20;
TR0=0;
TH0=TOHIGH;
TL0=TOLOW;
second_cnt--;
if(! second_cnt)
{

      count();
   P3_7=0;
   P3_5=1;
   P3_1=1;
   P3_0=1;
   number=table[len[3]];
   display();
   P3_7=1;
   P3_5=0;
   P3_1=1;
   P3_0=1;
   number=table[len[2]];
   display();
   P3_7=1;
   P3_5=1;
   P3_1=0;
   P3_0=1;
   number=table[len[1]];
   display();
   P3_7=1;
   P3_5=1;
   P3_1=1;
   P3_0=0;
   number=table[len[0]];
   display();
   second_cnt=20;
   sum=0;
   TR0=1;
}
TR0=1;
}
沙发
androidbus| | 2016-5-22 20:55 | 只看该作者
楼主,你这电路能否说明一下呢?

使用特权

评论回复
板凳
androidbus| | 2016-5-22 21:06 | 只看该作者
感觉好强大啊,这个是什么单片机都可以测吗??

使用特权

评论回复
地板
qiangweii| | 2016-5-22 21:13 | 只看该作者
是啊,没有看到电路啊

使用特权

评论回复
5
shashaa| | 2016-5-22 21:17 | 只看该作者
这个也是用是的笙泉单片机吗???

使用特权

评论回复
6
xia00| | 2016-5-22 21:26 | 只看该作者
程序太少了,看不出什么东西出来。

使用特权

评论回复
7
hfdy01| | 2016-5-22 22:04 | 只看该作者
如何测速,这个看的不是很明白啊

使用特权

评论回复
8
CallReceiver| | 2016-5-22 22:13 | 只看该作者
看看,我也是觉得这个程序写的太简单了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

424

主题

1616

帖子

1

粉丝