📄 text1.c
字号:
/******************************************************************************************
*描述: 秒表实验
*编写: 秦立春
*版本信息: V1.0 2008年4月20日
*说明: sp1,sp2,SP3跳线向右;
******************************************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar n,s=0;
void delay(uint t);//延时函数的声明
//-----------------------------------------------------
void delay(uint t) // 延时函数
{
for(;t!=0;t--) ;
}
main()
{
uchar code shu[12]={0xc0,0xf9,0xa4,0xb0,0x99,//0,1,2,3,4,
0x92,0x82,0xf8,0x80,0x90,//5,6,7,8,9,
0x00,0xff}; //灭 共阳极数码管显示段码
uchar i,m=59,h=12 ; //h-小时,m-分钟,s-秒
uchar t[8];
TMOD=0x01; //设置TMOD 0000 0001 GATE0=0;C/T0=0;01工作于方式1状态
TH0=0x3c; //装预置数 ,定时50ms.
TL0=0xb0;
TR0=1; //开定时器0
EA=1; //开总中断EA
ET0=1; //开中断ET0
while(1)
{
t[0]=h/10;
t[1]=h%10;
t[3]=m/10;
t[4]=m%10;
if(s<60)
{
t[6]=s/10; //分离十位
t[7]=s%10; //分离个位
}
else
{
s=0;
m++;
if(m<60)
{
t[3]=m/10;
t[4]=m%10;
}
else
{
m=0;
h++;
if(h<24)
{
t[0]=h/10;
t[1]=h%10;
}
else
{
h=0;
}
}
}
for(i=0;i<8;i++)
{
if((i==2)|(i==5)) //第二位和第五位不刷 空开
{
i++;
}
P2=(~(0X01<<i));
P0=shu[t[i]];
delay(100);
}
}
}
void time(void) interrupt 1 //中断:计秒
{
TR0=0;
TH0=0x3c;
TL0=0xb0;
TR0=1;
n++;
if(n==20)
{
s++;
n=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -