📄 main.lst
字号:
C51 COMPILER V9.00 MAIN 03/16/2012 20:59:45 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 typedef unsigned char uchar;
3 typedef unsigned int uint;
4 code unsigned char tab[]=
5 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
6 //共阴数码管 0-9
7 sbit fout=P1^0;
8 uchar Dis_2;//定义十位
9 uchar Dis_1; //定义个位
10 uchar Dis_4;//定义秒十位
11 uchar Dis_3; //定义秒个位
12 uchar flag_second;
13 uchar ToutCount;
14 uint f;
15 void delay(uchar cnt)
16 {
17 1 while(--cnt);
18 1 }
19 void reflash()
20 {
21 1 Dis_1=Dis_2=Dis_3=Dis_4=0;
22 1 if(f<10000)
23 1 {
24 2 Dis_4=0x80;
25 2 }
26 1 else
27 1 {
28 2 f/=10;
29 2 Dis_3=0x80;
30 2 }
31 1 Dis_1|=tab[f%10]; //个位显示处理
32 1 f/=10;
33 1 Dis_2|=tab[f%10];//十位显示处理
34 1 f/=10;
35 1 Dis_3|=tab[f%10]; //百位显示处理
36 1 f/=10;
37 1 Dis_4|=tab[f%10];//千位显示处理
38 1 }
39 void display()
40 {
41 1 P2=0xfe;
42 1 P0=Dis_4;//显示秒十位
43 1 delay(0xff);//短暂延时
44 1 P2=0xfd;
45 1 P0=Dis_3; //显示秒个位
46 1 delay(0xff);
47 1 P2=0xfb;
48 1 P0=Dis_2;//显示十位
49 1 delay(0xff);//短暂延时
50 1 P2=0xf7;
51 1 P0=Dis_1; //显示个位
52 1 delay(0xff);
53 1 return;
54 1 }
55 main()
C51 COMPILER V9.00 MAIN 03/16/2012 20:59:45 PAGE 2
56 {
57 1 ToutCount=0;
58 1 TMOD = 0x52; //T1为计数器,方式一,T0为定时器,方式2
59 1 TH0 = 6; //定时250us
60 1 TL0 = 6;
61 1 TH1=0;
62 1 TL1=0;
63 1 TR0=1; //启动定时计数器
64 1 TR1=1;
65 1 ET0 = 1;
66 1 ET1 = 1;
67 1 EA = 1; //开中断
68 1 flag_second=1;
69 1 while(1)
70 1 {
71 2 while(flag_second)
72 2 {
73 3 fout=~fout;
74 3 display();
75 3 }
76 2 reflash();
77 2 flag_second=1;
78 2 }
79 1 }
80
81 void timer0() interrupt 1 //定时器0中断服务程序
82 {
83 1 static uint count=0;
84 1 count++;
85 1 if(count == 4000)
86 1 {
87 2 TR1 = 0;
88 2 TR0 = 0;
89 2 f=((int)ToutCount<<16)+((int)TH1<<8)+TL1;
90 2 TH1=0;TL1=0;
91 2 ToutCount=0;
92 2 TR1=1;
93 2 count = 0;
94 2 flag_second = 0;
95 2 TR0 = 1;
96 2 }
97 1 }
98 void timer1() interrupt 3 //定时器1中断服务程序
99 {
100 1 ToutCount++;
101 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 388 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 ----
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 + -