sbit P2_0 = P2^0;//数码管选定位
sbit P2_1 = P2^1;//数码管选定位
sbit P2_2 = P2^2;//数码管选定位
sbit P2_3 = P2^3;//数码管选定位
//共阳极数码管
unsigned char code table[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e};
unsigned int motorspeed = 0;
unsigned char GE, SHI, BAI, QIAN;
unsigned int counter = 0;//脉冲数
unsigned int calsp;//设定多长时间计数一次
void display();//数码管显示
void delay();//延迟函数
void calspeed();
void main()
{
EA = 1;//开启总中断
EX0 = 1;//开启外部中断0
IT0 = 1;//设置成下降沿触发方式
TMOD = 0x01;//设置定时器0为模式1,即16位计数模式
TH0 = (65536-10000)/256;//计数时间为10ms
TL0 = (65536-10000)%256;
ET0 = 1;//开启定时器0中断
TR0 = 1;//启动定时器0
P2 = P2&0xf0;//将P2的1~4置1
while(1)
<