⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 自行车的速度测试系统.c

📁 自行车测速系统
💻 C
字号:
#include <AT89X51.H>
#define uchar unsigned char
#define uint unsigned int

uchar code seg7code[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uint sec,miaoshu,tcnt,count;

sbit p00=P0^0; //各个口定义
sbit p01=P0^1; 
sbit p02=P0^2; 
sbit p03=P0^3; 
sbit p04=P0^4;
sbit p05=P0^5;

void Delay(uchar t)
{
	uchar i;
	while(t--)
	{
		for ( i = 0; i < 200 ;i ++);
	}
}



void t0(void) interrupt 1 using 0 //定时T0中断服务函数
{
	tcnt++; //每过250ust tcnt 加一
	if(tcnt==40) //计满40 次(1/100 秒)时
	{		
		tcnt=0; //重新再计
		sec++;
		if(sec==100) //定时1 秒,在从零开始计时
		{
			sec=0;
        	TH0=0x06; //对TH0 TL0 赋值
        	TL0=0x06;
			miaoshu=count;
	       	count=0;
		}
	}
}

void t1(void) interrupt 3 using 0 //计数T1中断服务函数
{   
	count=count+1;
    TF0=1;
	TH1=255;	
	TL1=255;
	TR1=1;
	EA=1;
}

void LED()
{
	if (miaoshu>=100)
	{	
		p04=0;P1=0x00;	
	}
	else
	{
		p04=1;P1=0xFF;
	}

	P2=seg7code[miaoshu/1000];
	p00=1;
	Delay(5);
	p00=0;

	P2=seg7code[miaoshu/100%10];
	p01=1;
	Delay(5);
	p01=0;

	P2=seg7code[(miaoshu%100)/10];
	p02=1;
	Delay(5);
	p02=0;

	P2=seg7code[miaoshu%10];
	p03=1;
	Delay(5);
	p03=0;
}

void main(void)//主程序
{   
	TMOD=0x62; //定时器T0工作在方式2 自动重装方式,计数器T1工作在方式2 自动重装方式
	TH0=0x06; //对TH0 TL0 赋值
	TL0=0x06;
	TR0=1; //开始定时
	ET0=1; //允许T0 产生中断
	EA=1;
	TH1=255;
	TL1=255;
	TR1=1;
	ET1=1;

	EA=1;
   	sec=0;
	miaoshu=0;tcnt=0;count=0;
	while(1)//调用各个函数模块,死循环
	{ 
		LED();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -