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

📄 jinyuspeed.c

📁 51单片机的测速程序
💻 C
字号:
#include "reg51.h"
sbit int0 =P3^2;
sbit P2_4=P2^7;
sbit P2_5=P2^6;
sbit P2_6=P2^5;
sbit P2_7=P2^4;
unsigned char count; //脉冲数
bit countflg; //计数开始标志位
unsigned long int _1ms;//1ms
unsigned long int time; //半周时间
unsigned char time1;
unsigned char time2;
unsigned char time3;
unsigned char time4;
unsigned char codes[10]={        
        0xC0,/*0*/
		0xF9,/*1*/
        0xA4,/*2*/
        0xB0,/*3*/
        0x99,/*4*/
        0x92,/*5*/
        0x82,/*6*/
        0xF8,/*7*/
        0x80,/*8*/
        0x90,/*9*/};
void exint (void) interrupt 0
{
EX0=0;
if(countflg==0)
{TR0=1;
countflg=1;
} 
else
{
count++;
if(count>=4)
{
_1ms=0;
count=0;
TL0=0x18;
TH0=0xfc;
}
}
EX0=1;
}
void delay10ms(void)
{unsigned int a;
for(a=0;a<1000;a++)
{
;
}

}

void display(void)
{P2_4=0;
P0=codes[time1];
delay10ms();
P2_4=1;

P2_5=0;
P0=codes[time2];
delay10ms();
P2_5=1;

P2_6=0;
P0=codes[time3];
delay10ms();
P2_6=1;

P2_7=0;
P0=codes[time4];
delay10ms();
P2_7=1;
}


void timer0(void) interrupt 1
{
TR0=0;
TL0=0x18;
TH0=0xfc;
_1ms++;
TR0=1;
}

void main(void)
{_1ms=0;
count=0;
countflg=0;
EA=1;
EX0=1;
ET0=1;
TMOD=0x1;
TR0=0;
TL0=0x18;
TH0=0xfc;

while(1)
{

/*time4=time%1000;
time3=(time-1000*time4)%100;
time2=(time-1000*time4-100*time3)%10;
time1=time-1000*time4-100*time3-time2*10;*/



	time1=time%10;
	time/=10;
	time2=time%10;
	time/=10;
	time3=time%10;
	time/=10;
	time4=time%10;
 display();
}
}

⌨️ 快捷键说明

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