基于51单片机的跑表,它由3个按钮,一块89c51芯片和数码管组成,精度达到0.01s,最大测量范围为60s。
#include<reg51.h>
#define DataPort P0//定义数据端口
sbit Seg = P2^1;//段锁存
sbit Bit = P2^2;//位锁存
sbit KEY1 = P1^0;//暂停按钮
sbit KEY2 = P1^1;//继续按钮
sbit KEY3 = P1^2;//复位按键
void Display(unsigned char firstbit,unsigned char NUM);
void delay_100us();//100us的延迟
unsigned char Seg_Code[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79};
unsigned char Bit_Code[] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
unsigned char DISP_NUM[8];
void main()
{
unsigned int num,num_S1,num_S2,num_MS1,num_MS2;
while(1)
{
num ++;
if(5999 == num)
{
num = 0;
}
num_S1 = num / 1000;
num_S2 = ( num % 1000 ) / 100;
num_MS1 = (( num % 1000 ) % 100 ) / 10;
num_MS2 = (( num % 1000 ) % 100 ) % 10;
DISP_NUM[0] = Seg_Code[num_S1];
DISP_NUM[1] = Seg_Code[num_S2] | 0x8