📄 translater.lst
字号:
C51 COMPILER V7.06 TRANSLATER 07/20/2008 23:55:37 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TRANSLATER
OBJECT MODULE PLACED IN translater.OBJ
COMPILER INVOKED BY: E:\design tools\keilc\C51\BIN\C51.EXE translater.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 sbit key1=P3^2;
6 sbit key2=P3^3;
7 sbit key3=P3^4;
8 sbit key4=P3^5;
9
10 uchar h,count,num,dat,flag,dat1,num1,key1num,temp;
11 uint r=0;
12 uint s;
13 uchar code dis[]={
14
15 0Xc0,/*0*/
16 0Xf9,/*1*/
17 0Xa4,/*2*/
18 0Xb0,/*3*/
19 0X99,/*4*/
20 0X92,/*5*/
21 0X82,/*6*/
22 0Xf8,/*7*/
23 0X80,/*8*/
24 0X90,/*9*/
25 0Xff,/*NULL*/
26 };
27
28
29 void delay(uint c)
30 {
31 1 uint i,j;
32 1 for(i=0;i<c;i++)
33 1 for(j=0;j<100;j++);
34 1
35 1 }
36
37 void init()
38 {
39 1 TMOD=0x11;//设置定时器0为工作方式1
40 1 TH0=(65536-10000)/256;
41 1 TL0=(65536-10000)%256;
42 1 TH1=(65536-20000)/256;
43 1 TL1=(65536-20000)%256;
44 1 EA=1;//开总中断
45 1 ET0=1;//开定时器0中断
46 1 ET1=1;
47 1 TR0=1;//启动定时器0
48 1 TR1=1;
49 1 num=30;
50 1 P0=0xeb;
51 1 }
52 void display(dat) //送显示
53 {
54 1
55 1 P1=0x00;
C51 COMPILER V7.06 TRANSLATER 07/20/2008 23:55:37 PAGE 2
56 1 P2=0xff;
57 1 P1=0x01;
58 1 P2=dis[dat/10];
59 1 delay(1);
60 1 P1=0x00;
61 1 P2=0xff;
62 1 P1=0x02;
63 1 P2=dis[dat%10];
64 1 delay(1);
65 1 P1=0x00;
66 1 P2=0xff;
67 1 P1=0x04;
68 1 P2=dis[(dat+2)/10];
69 1 delay(1);
70 1 P1=0x00;
71 1 P2=0xff;
72 1 P1=0x08;
73 1 P2=dis[(dat+2)%10];
74 1 delay(1);
75 1 if(flag==1)
76 1 {
77 2 P0=0xe2;
78 2 }
79 1 if(flag==2)
80 1 {
81 2 P0=0xdd;
82 2 }
83 1 if(flag==3)
84 1 {
85 2 P0=0xd4;
86 2 }
87 1
88 1
89 1
90 1 }
91 void keyscan() //键盘检测
92 {
93 1 if(key1==0)
94 1 {
95 2 delay(5);
96 2 if(key1==0)
97 2 {
98 3 key1num++;
99 3 while(!key1);
100 3 if(key1num==1)
101 3 {
102 4 TR0=0;
103 4 TR1=0;
104 4 }
105 3 if(key1num==2)
106 3 {
107 4 P1=0xf3;
108 4 }
109 3 if(key1num==3)
110 3 {
111 4 TR0=1;
112 4 TR1=1;
113 4 P1=temp;
114 4 key1num=0;
115 4
116 4 }
117 3 }
C51 COMPILER V7.06 TRANSLATER 07/20/2008 23:55:37 PAGE 3
118 2
119 2 }
120 1 if(key1num!=0)
121 1 {
122 2 if(key2==0)
123 2 {
124 3 delay(5);
125 3 if(key2==0)
126 3 {
127 4 while(!key2);
128 4 if(key1num==1)
129 4 {
130 5 num++;
131 5 display(num);
132 5
133 5 }
134 4 if(key1num==2)
135 4 {
136 5 num++;
137 5 display(num);
138 5 }
139 4 }
140 3 }
141 2 if(key3==0)
142 2 {
143 3 delay(5);
144 3 if(key3==0)
145 3 {
146 4 while(!key3);
147 4 {
148 5 if(key1num==1)
149 5 {
150 6 if(num==0)
151 6 num=32;
152 6 num--;
153 6 }
154 5 }
155 4
156 4 }
157 3 }
158 2 }
159 1 }
160 void main() //主函数
161 {
162 1 init();
163 1 while(1)
164 1 {
165 2 keyscan();
166 2 if(count==20)
167 2 {
168 3 count=0;
169 3 num--;
170 3
171 3 if(num==0)
172 3 {
173 4 num=30;
174 4 }
175 3 }
176 2 display(num);
177 2 }
178 1 }
179 void t0(void ) interrupt 1 //定时器T0
C51 COMPILER V7.06 TRANSLATER 07/20/2008 23:55:37 PAGE 4
180 {
181 1 TH0=(65535-50000)/256;
182 1 TL0=(65535-50000)%256;
183 1 count++;
184 1
185 1
186 1 }
187 void time1() interrupt 3 //定时器T1
188 {
189 1 TH1=(65536-20000)/256;
190 1 TL1=(65536-20000)%256;
191 1 num1++;
192 1 if(num1==50)
193 1 {
194 2 num1=0;
195 2 dat1++;
196 2 if(dat1==20)
197 2 {
198 3 flag=1;
199 3 }
200 2 if(dat1==30)
201 2 {
202 3 flag=2;
203 3 }
204 2 if(dat1==50)
205 2 {
206 3 flag=3;
207 3 }
208 2 if(dat1==60)
209 2 {
210 3 dat1=0;
211 3 flag=2;
212 3 }
213 2 }
214 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 441 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 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 + -