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

📄 text1.c

📁 简单的自行车里程速度计数器
💻 C
字号:
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit RR = P3^7;//小数点显示控制
sbit ONE = P1^2;//变速开关1
sbit TWO = P1^3;//变速开关2
sbit THREE = P1^6;//变速开关3
sbit FOUR = P1^7;//变速开关4
sbit LIGHTA = P1^0;//里程指示灯
sbit LIGHTB = P1^1;//速度指示灯
sbit CHANGE = P3^0;//里程测速转换
sbit ALERM = P3^1;// 报警开关
uint data distance;//里程计数
uint data speed;//速度计数
uint data times;//轮子转圈数
uchar data sign;//四开关标志
uint data minu;//时间数
uchar code dis_7[11] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xFF};//共阴LED段码表
uchar code control[3] = {0xFD,0xFB,0xF7};//由低到高控制字
uchar data show[3] = {0x00,0x00,0x00};

/*延时1ms*/
delay(uint t)
{
	uint i,j;
	for(i=0;i<t;i++)
		for(j=0;j<120;j++)
		;
}

/*里程显示函数*/
showDistance()
{
	uchar k;
	uint dis = distance;
	show[2] = dis/100;//百位
	show[1] = (dis%100)/10;//十位
	show[0] = (dis%100)%10;//个位
	LIGHTA = 0;
	while(1)
	{
		for(k=0;k<4;k++)
		{
			P0 = dis_7[show[k]];
			P2 = control[k];
			delay(1);
		}
	}
}


/*超速警报函数*/
overSpeed()
{
	ALERM = 0;
}

/*速度显示函数*/
showSpeed()
{
	uchar m;
	uint sp = speed;
	show[2] = sp/100;//百位
	show[1] = (sp%100)/10;//十位
	show[0] = (sp%100)%10;//个位
	LIGHTB = 0;
	if(speed>50)
		overSpeed();
	while(1)
	{
		for(m=0;m<4;m++)
		{
			P0 = dis_7[show[m]];
			P2 = control[m];
			delay(1);
		}
	}
}

/*定时器开关函数*/
void calDistance(void) interrupt 2
{
	uint n;
	TR0 = 0;
	n = minu/4000;//n为秒数
	distance = times*sign/1000;//distance为千米数
	speed = times*sign/n;//米每秒
	TR1 = 1;
}

/*轮圈的圈数计数函数*/
void circle(void) interrupt 0
{
	times++;
}

/*计数器T0中断函数*/
void counter(void) interrupt 1
{
	minu++;//加一个250us
}

/*初始化函数*/
init()
{
	IE = 0;
	TMOD = 0x02;
	TR0 = 0;
	TH0 = 0x06;
	TL0 = 0x06;
	IT1 = 0;IT0 = 0;
	P0 = 0xff;P2 = 0xff;
	P1 = 0xff;P3 = 0xff;
	RR = 1;
	EA = 1;EX0 = 1;EX1 = 1;ET0 = 1;
}

main()
{
	init();
	while(1)
	{
		if(ONE == 0)
			sign = 3;
		else if(TWO == 0)
			sign = 4;
		else if(THREE == 0)
			sign = 5;
		else if(FOUR == 0)
			sign = 6;
		if(CHANGE == 0)
			showSpeed();
		else 
			showDistance();
	}
}





⌨️ 快捷键说明

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