📄 shizhongketiaoziqi1-3.lst
字号:
C51 COMPILER V7.02b SHIZHONGKETIAOZIQI1_3 05/11/2008 15:44:59 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE SHIZHONGKETIAOZIQI1_3
OBJECT MODULE PLACED IN shizhongketiaoziqi1-3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shizhongketiaoziqi1-3.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>//头文件
2 #define uint unsigned int
3 #define uchar unsigned char//宏定义,注意格式,不带分号*
4 unsigned char code table0[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//段码表共阳极
5 unsigned char code table2[]={0xFB,0xF7,0xEF,0xDF,0xBF,0x67F};//位码表
6 sbit k1=P3^3;
7 sbit k2=P3^4;
8 sbit k3=P3^5;//键盘定义部分
9 void chushihua();
10 void display5(uchar aa,uchar bb,uchar cc,uchar dd,uchar shi,uchar ge);
11 void delay(uchar z);//子程序声名部分
12 uchar aa,bb,cc,dd,shi,ge,ss,num,shu,temp;//定义全局变量
13 uint a;
14 void main()//主函数
15 {
16 1 chushihua();
17 1 while(1)
18 1 {
19 2 display5(aa,bb,cc,dd,shi,ge);
20 2 }
21 1 }
22 void delay(uchar z)//带参数的延时子程序
23 {
24 1 uchar x,y;
25 1 for(x=z;x>0;x--)
26 1 for(y=110;y>0;y--);
27 1 }
28 void chushihua()//初始化子程序
29 {
30 1 num=23;
31 1 shu=58;
32 1 temp=0;//赋初值
33 1 aa=num/10;
34 1 bb=num%10;
35 1 cc=shu/10;
36 1 dd=shu%10;
37 1 shi=temp/10;
38 1 ge=temp%10;//位隔离部分
39 1 P2=0xff;//先关所有数码管,为了防止有暗影和乱码出现
40 1 delay(10);
41 1 TMOD=0X01;//选择T0工作在模式1
42 1 TH0=(65536-46080)/256;
43 1 TL0=(65536-46080)%256;//赋初值50毫秒晶振11.0592MHZ
44 1 EA=1;//开总中断
45 1 ET0=1;//开定时器0中断
46 1 TR0=1;//启动定时器0
47 1 }
48 void display5(uchar aa,uchar bb,uchar cc,uchar dd,uchar shi,uchar ge)//显示之程序
49 {
50 1 if(ss==20)
51 1 {
52 2 ss=0;
53 2 temp++;
54 2 }
55 1 if(k1==0)//键盘部分
C51 COMPILER V7.02b SHIZHONGKETIAOZIQI1_3 05/11/2008 15:44:59 PAGE 2
56 1 {
57 2 TR0=0;//进来先关定时器
58 2 delay(10);//消抖语句
59 2 if(k1==0);
60 2 while(!k1);
61 2 delay(10);//消抖语句
62 2 while(!k1);//松手检测
63 2 temp++;
64 2 if(temp==60)temp=0;
65 2 TR0=1;//出去之前先开定时器
66 2 }
67 1 if(temp==60)
68 1 {
69 2 temp=0;
70 2 shu++;
71 2 }
72 1
73 1 if(k2==0)//键盘部分
74 1 {
75 2 TR0=0;//进来先关定时器
76 2 delay(10);//消抖语句
77 2 if(k2==0);
78 2 while(!k2);
79 2 delay(10);//消抖语句
80 2 while(!k2);//松手检测
81 2 shu++;
82 2 if(shu==60)shu=0;
83 2 TR0=1;//出去之前先开定时器
84 2 }
85 1
86 1 shi=temp/10;
87 1 ge=temp%10;
88 1 P2=0xff;
89 1 delay(5);
90 1 P0=table0[shi];
91 1 delay(5);
92 1 P2=0xf7;
93 1 delay(5);
94 1
95 1 P2=0xff;
96 1 delay(5);
97 1 P0=table0[ge];
98 1 delay(5);
99 1 P2=0xfb;
100 1 delay(5);
101 1 if(shu==60)
102 1 {
103 2 shu=0;
104 2 num++;
105 2 }
106 1 if(k3==0)//键盘部分
107 1 {
108 2 TR0=0;//进来先关定时器
109 2 delay(10);//消抖语句
110 2 if(k3==0);
111 2 while(!k3);
112 2 delay(10);//消抖语句
113 2 while(!k3);//松手检测
114 2 num++;
115 2 if(num==24)num=0;
116 2 TR0=1;//出去之前先开定时器
117 2 }
C51 COMPILER V7.02b SHIZHONGKETIAOZIQI1_3 05/11/2008 15:44:59 PAGE 3
118 1 cc=shu/10;//分时隔离部分
119 1 dd=shu%10;
120 1 P2=0xff;
121 1 delay(5);
122 1 P0=table0[cc];//段选部分
123 1 delay(5);
124 1 P2=0xdf;//位选部分
125 1 delay(5);
126 1
127 1 P2=0xff;
128 1 delay(5);
129 1 P0=table0[dd];
130 1 delay(5);
131 1 P2=0xef;
132 1 delay(5);
133 1 if(num==24)num=0;
134 1 aa=num/10;
135 1 bb=num%10;
136 1 P2=0xff;
137 1 delay(5);
138 1 P0=table0[aa];
139 1 delay(5);
140 1 P2=0x7f;
141 1 delay(5);
142 1
143 1 P2=0xff;
144 1 delay(5);
145 1 P0=table0[bb];
146 1 delay(5);
147 1 P2=0xbf;
148 1 delay(5);
149 1 }
150 void timer0()interrupt 1//中断部分,不用声明,中段T0
151 {
152 1 TH0=(65536-46080)/256;
153 1 TL0=(65536-46080)%256;//重赋初值
154 1 ss++;
155 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 443 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 6
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 + -