C51-秒表0-99(中断方式实现)

lemon Lv5

第十篇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include  "reg51.h"

//void delay1s()
//{
// unsigned char i;
// for(i=0;i<1;i++){
// TH1=(65536-10000)/256;
// TL1=(65536-10000)%256;
// TR1=1;
// while(!TF1);
// TF1=0;
// }
//}
unsigned char miao=0;
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;

void ZD1() interrupt 3
{
static unsigned char count=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
if(count>=20)
{
count=0;
miao++;
if(miao==100)
{
miao=0;
}
}
}

void disp(unsigned char i)
{
unsigned int k;
// unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90} ;
// for ( k = 0; k < 50; k++)
// {
P2=0xe7;
P0=~led[i/10];
for(k=0;k<100;k++);
P0=0X00;
// delay1s();
P2=0xe3;
P0=~led[i%10];
for(k=0;k<100;k++);
P0=0X00;
// delay1s();
// }
}
void main()
{
// unsigned char miao=0;
TMOD=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;

ET1=1;//开放T1中断允许
EA=1;//开放总中断允许

TR1=1;
while(1)
{
disp(miao);
}
}


代码下载链接(123云盘):https://www.123684.com/s/wFuijv-i8Zgh

  • 标题: C51-秒表0-99(中断方式实现)
  • 作者: lemon
  • 创建于 : 2025-07-22 22:06:43
  • 更新于 : 2025-07-23 00:11:25
  • 链接: https://lemon2003.github.io/post/20250722220643.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
C51-秒表0-99(中断方式实现)