📄 ad_92201.lst
字号:
C51 COMPILER V8.02 AD_92201 04/27/2007 19:46:16 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AD_92201
OBJECT MODULE PLACED IN ad_92201.OBJ
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE ad_92201.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X51.H>
2 #include<intrins.h>
3 #include<absacc.h>
4 #define uchar unsigned char
5 #define ulong unsigned long
6 #define uint unsigned int
7 unsigned char code dispcode[]={ 0x3f,0x06,0x5b,0x4f,
8 0x66,0x6d,0x7d,0x07,
9 0x7f,0x6f,0x77,0x7c,
10 0x39,0x5e,0x79,0x71,
11 0x40,0x00,0xbf,0x86,
12 0xdb,0xcf,0xe6,0xed,
13 0xfd,0x87,0xff,0xf};
14 //unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
15 sbit clk=P2^1;
16 sbit din=P2^0;
17 sbit k0=P2^4;
18 sbit k1=P2^5;
19 sbit k2=P2^6;
20 sbit k3=P2^7;
21 sbit ACC_7=ACC^7;
22 sbit adclk=P3^2;
23 bit flag,k4=1;
24 uchar n,h,j;
25 uint q,i,temp,sum;
26 float m;
27 uchar zhongliang[8],k;
28 uint s_dat[10];
29 uchar shijian[8]={0,0,16,0,0,16,0,0};
30 uchar lu,x,y,cuo=0,hour1,w=0,m1=0,n; //定义相关变量
31 int i1;
32 uchar dis;
33 char second;
34 char minite;
35 char hour;
36 uint tcnt,tcnt2;
37 uchar ms,a=0,c;
38
39 jizhong()
40 {
41 1 a=1;
42 1 for(;;)
43 1 {
44 2 for(j=0;j<10;j++)
45 2 {
46 3 adclk=0;
47 3 adclk=1;
48 3 _nop_();
49 3 _nop_();
50 3 // _nop_();
51 3 adclk=0;
52 3 P1=0xff;
53 3 n=P1;
54 3 P0=0xff;
55 3 h=P0;
C51 COMPILER V8.02 AD_92201 04/27/2007 19:46:16 PAGE 2
56 3 h=_cror_(h,4);
57 3 h=h&0x0f;
58 3 s_dat[j]=n*16+h;
59 3 }
60 2 for(;;)
61 2 {
62 3 flag=1;
63 3 for(j=0;j<9;j++)
64 3 {
65 4 if(s_dat[j]>s_dat[j+1])
66 4 {
67 5 temp=s_dat[j];
68 5 s_dat[j]=s_dat[j+1];
69 5 s_dat[j+1]=temp;
70 5 flag=0;
71 5 }
72 4 if(_testbit_(flag))
73 4 break;
74 4 }
75 3 }
76 2 for(j=1;j<9;j++)
77 2 sum+=s_dat[j];
78 2 m=sum/8;
79 2 m=m/4095;
80 2 sum=(uint)(m*200000);
81 2 zhongliang[0]=16;
82 2 zhongliang[1]=16;
83 2 zhongliang[2]=16;
84 2 q=10000;
85 2 for(i=3;i<7;i++)
86 2 {
87 3 zhongliang[i]=sum/q;
88 3 sum%=q;
89 3 q/=10;
90 3 }
91 2 zhongliang[7]=sum;
92 2 //dis();
93 2 /* for(j=0;j<10;j++);
94 2 for(i=0;i<20000;i++);
95 2 for(j=0;j<8;j++)
96 2 {
97 2 n=dispcode[dat[j]];
98 2 if(j==5)
99 2 n=n+0x80;
100 2 for(k=0;k<8;k++)
101 2 {
102 2 ACC=n;
103 2 din=ACC_7;
104 2 clk=1;
105 2 n=_crol_(n,1);
106 2 clk=0;
107 2 }
108 2 }
109 2 for(i=0;i<10000;i++);*/
110 2 }
111 1
112 1 }
113
114
115 delay(int t) //延时子程序
116 {
117 1 int s,e;
C51 COMPILER V8.02 AD_92201 04/27/2007 19:46:16 PAGE 3
118 1 for(s=0;s<t;s++)
119 1 for(e=0;e<100;e++);
120 1 }
121
122 yijian() //一键是否按下子程序
123 {
124 1 char q=0;
125 1 if(k0==0)
126 1 {
127 2 delay(2);
128 2 if(k0==0)
129 2 {
130 3 q=1;
131 3 while(1) if(k0==1) break;
132 3 }
133 2 }
134 1 return q;
135 1 }
136
137 erjian() //二键是否按下子程序
138 {
139 1 char q=0;
140 1 if(k1==0)
141 1 {
142 2 delay(2);
143 2 if(k1==0)
144 2 {
145 3 q=1;
146 3 while(1) if(k1==1) break;
147 3 }
148 2 }
149 1 return q;
150 1 }
151
152 sanjian() //三键是否按下子程序
153 {
154 1 char q=0;
155 1 if(k2==0)
156 1 {
157 2 delay(2);
158 2 if(k2==0)
159 2 {
160 3 q=1;
161 3 while(1) if(k2==1) break;
162 3 }
163 2 }
164 1 return q;
165 1 }
166 tiaoshi() //调时间子程序
167 {
168 1 // if(w==1)
169 1 // goto loop;
170 1 k4=0; //停止计时
171 1 for(i1=7;i1>0;i1=i1-3) //对时、分、秒进行循环
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -