用C语言编写秒表的程序(单片机控制的时钟设计)

用液晶屏显示的 只要秒表程序就可以了
我要C语言的

这个程序可以实现秒的计时,按键控制开始、暂停、清零功能,更多功能自己在看清程序的基础上进行改进。
#include <reg51.H>
sbit P3_5 =P3^5;
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00};
unsigned char second;
unsigned char keycnt;
unsigned int tcnt;
void main(void)
{
unsigned char i,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
while(1)
{
if(P3_5==0)
{
for(i=20;i>0;i--)
for(j=248;j>0;j--);
if(P3_5==0)
{
keycnt++;
switch(keycnt)
{
case 1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case 2:
TR0=0;
break;
case 3:
keycnt=0;
second=0;
P1=dispcode[second/10];
P2=dispcode[second%10];
break;
}
while(P3_5==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==100)
{
second=0;
}
P1=dispcode[second/10];
P2=dispcode[second%10];
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
你觉得这不是C语言吗?
#include <regx51.h>

#define TIMER0_COUNT 0xee11
code seven_seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code scan[]={0xef,0xdf,0xbf,0x7f};
unsigned char counter[]={0,0,0,0};
unsigned int timer0_tick,i=0;

static void timer0_isr(void) interrupt TF0_VECTOR using 1
{
TR0=0;
TL0=(TIMER0_COUNT & 0x00ff);
TH0=(TIMER0_COUNT >> 8);
TR0=1;
P0=seven_seg[counter[i]];
P1=scan[i];
P0_7=0;
i++;
if(i==4)
{
i=0;
}
timer0_tick++;
if(timer0_tick==200)
{
timer0_tick=0;
counter[0]++;
if(counter[0]==10)
{
counter[0]=0;
counter[1]++;
if(counter[1]==6)
{
counter[1]=0;
counter[2]++;
if(counter[2]==10)
{
counter[2]=0;
counter[3]++;
if(counter[3]==6)
{
counter[3]=0;
}
}
}
}
}
}

static void timer0_initialize(void)
{
EA=0;
timer0_tick=0;
TR0=0;
TMOD &= 0xf0;
TMOD |= 0x01;
TL0=(TIMER0_COUNT & 0x00ff);
TH0=(TIMER0_COUNT >> 8);
PT0=0;
ET0=1;
TR0=1;
EA=1;
}

void main(void)
{
timer0_initialize();
while(1);
}本回答被提问者和网友采纳
第2个回答  2008-05-07
我的博客上也有一个汇编语言的,当然还有一个C语言的,但是只是一个很基本的程序,如果是变成电子秒表,还得稍微改一下.只要你看懂了,肯定能自己写了.
相似回答