📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/18/2006 10:38:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X51.H>
2 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
3 0x6d,0x7d,0x07, 0x7f,0x6f, };
4 unsigned char sec; //定义计数值,每过1/10秒,sec加一
5 unsigned char keycnt=1;
6 unsigned int tcnt; //键值判断
7 sbit gewei=P1^3; //个位选通定义
8 sbit shiwei=P1^2; //十位选通定义
9 sbit INT_0=P3^2; //按键定义位
10 void Delay(unsigned int tc) //延时程序
11 {
12 1 while( tc != 0 )
13 1 {
14 2 unsigned int i;
15 2 for(i=0; i<100; i++);
16 2 tc--;
17 2 }
18 1 }
19 void LED() //LED显示函数
20 {
21 1 shiwei=0;
22 1 P0=table[sec/10]|0x80;//十位加上小数点
23 1 Delay(8);
24 1 shiwei=1;
25 1 gewei=0;
26 1 P0=table[sec%10];
27 1 Delay(5);
28 1 gewei=1;
29 1 }
30 void KEY() //按键扫描程序
31 {
32 1 unsigned char i,j;
33 1 if(INT_0==0)
34 1 {
35 2 for(i=20;i>0;i--) //延时去干扰
36 2 for(j=248;j>0;j--);
37 2 if(INT_0==0)
38 2 {
39 3 switch(keycnt) //按下次数判断
40 3 {
41 4 case 1: //第一次按下
42 4 TH0=0x06; //对TH0 TL0赋值
43 4 TL0=0x06;
44 4 TR0=1; //开始定时
45 4 keycnt=2; //为第二次做准备
46 4 break;
47 4 case 2: //第二次按下
48 4 TR0=0; //定时结束
49 4 keycnt=3; //为第三次按下做准备
50 4 break;
51 4 case 3: //第三次按下
52 4 keycnt=1; //重新开始判断键值
53 4 sec=0; //计数重新从零开始
54 4 break;
55 4 }
C51 COMPILER V7.06 MAIN 10/18/2006 10:38:25 PAGE 2
56 3 while(INT_0==0);
57 3 }
58 2 }
59 1 }
60 void t0(void) interrupt 1 using 0 //定时中断服务函数
61 {
62 1 tcnt++; //每过250ust tcnt加一
63 1 if(tcnt==400) //计满400次(1/10秒)时
64 1 {
65 2 tcnt=0; //重新再计
66 2 sec++;
67 2 if(sec==100) //定时10秒,在从零开始计时
68 2 {
69 3 sec=0;
70 3 }
71 2 }
72 1 }
73 void main(void)
74 {
75 1 TMOD=0x02; //定时器工作在方式2 自动重装方式
76 1 ET0=1; //允许T0产生中断
77 1 EA=1; //开总中断
78 1 sec=0;
79 1 while(1)
80 1 {
81 2 KEY();
82 2 LED();
83 2 }
84 1 }
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
C51 COMPILER V7.06 MAIN 10/18/2006 10:38:25 PAGE 3
118
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 195 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -