📄 6.lst
字号:
C51 COMPILER V7.06 6 09/01/2008 13:17:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 6
OBJECT MODULE PLACED IN 6.OBJ
COMPILER INVOKED BY: F:\串口调试助手\keil2\C51\BIN\C51.EXE 6.c BROWSE DEBUG OBJECTEXTEND TABS(3)
stmt level source
1 #include<reg52.h>
2 #include<intrins.h>
3 sbit m=P2^5;
4 sbit jian=P1^7;
5 unsigned char flag,flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8;
6 unsigned int x,y,t0,t1,t2,t3,t4,t5,t6,t7,x,y;
7 void delay() //1s
8 {
9 1 for(x=0;x<400;x++)
10 1 for(y=0;y<400;y++);
11 1 }
12 void init()
13 {
14 1 t0=0xfe; //分别为1个2个3个。。。灯
15 1 t1=0xfc; // 亮时的初始状态
16 1 t2=0xf8;
17 1 t3=0xf0;
18 1 t4=0xe0;
19 1 t5=0xc0;
20 1 t6=0x80;
21 1 t7=0x00;
22 1 P1=0xfe;
23 1 }
24
25 void main()
26 {
27 1 flag1=1;
28 1 m=1;
29 1 t0=0xfe;
30 1 t1=0xfc;
31 1 t2=0xf8;
32 1 t3=0xf0;
33 1 t4=0xe0;
34 1 t5=0xc0;
35 1 t6=0x80;
36 1 t7=0x00;
37 1 P1=0xfe;
38 1 TMOD=0x01;
39 1 EA=1;
40 1 ET0=1;
41 1 TH0=0x4c;
42 1 TL0=0x00;
43 1 TR0=1;
44 1 while(1) //启动大循环
45 1 {
46 2 if(flag8==1) //保证每隔1s运行一次
47 2 { flag8=0;
48 3 if(flag1==1) //进入一个灯的循环
49 3 {
50 4 P1=_crol_(t0,1);
51 4 t0=P1;
52 4 if(jian==0) //判断最高位P1^7是否为0,如果是则先让其显示1s,在进入下一个状态
53 4 {
54 5 TR0=0;
55 5 delay();
C51 COMPILER V7.06 6 09/01/2008 13:17:41 PAGE 2
56 5 flag1=0;
57 5 flag2=1;
58 5 P1=t1;
59 5 delay();
60 5 TR0=1;
61 5 }
62 4 }
63 3 if(flag2==1) //进入二个灯的循环
64 3 {
65 4 P1=_crol_(t1,1);
66 4 t1=P1;
67 4 if(jian==0)
68 4 {
69 5 TR0=0;
70 5 delay();
71 5 flag2=0;
72 5 flag3=1;
73 5 P1=t2;
74 5 delay();TR0=1;
75 5 }
76 4 }
77 3 if(flag3==1) //进入三个灯的循环
78 3 {
79 4 P1=_crol_(t2,1);
80 4 t2=P1;
81 4
82 4 if(jian==0)
83 4 {
84 5 TR0=0;
85 5 delay();
86 5 flag3=0;
87 5 flag4=1;
88 5 P1=t3;
89 5 delay();TR0=1;
90 5 }
91 4 }
92 3 if(flag4==1) //进入四个灯的循环
93 3 {
94 4
95 4 P1=_crol_(t3,1);
96 4 t3=P1;
97 4 if(jian==0)
98 4 {
99 5 TR0=0;
100 5 delay();
101 5 flag4=0;
102 5 flag5=1;
103 5 P1=t4;
104 5 delay();TR0=1;
105 5 }
106 4 }
107 3 if(flag5==1) //进入五个灯的循环
108 3 {
109 4
110 4 P1=_crol_(t4,1);
111 4 t4=P1;
112 4 if(jian==0)
113 4 {
114 5 TR0=0;
115 5 delay();
116 5 flag5=0;
117 5 flag6=1;
C51 COMPILER V7.06 6 09/01/2008 13:17:41 PAGE 3
118 5 P1=t5;
119 5 delay();TR0=1;
120 5 }
121 4 }
122 3 if(flag6==1) //进入六个灯的循环
123 3 {
124 4
125 4 P1=_crol_(t5,1);
126 4 t5=P1;
127 4 if(jian==0)
128 4 {
129 5 TR0=0;
130 5 delay();
131 5 flag6=0;
132 5 flag7=1;
133 5 P1=t6;
134 5 delay();TR0=1;
135 5 }
136 4 }
137 3 if(flag7==1) //进入七个灯的循环
138 3 {
139 4
140 4 P1=_crol_(t6,1);
141 4 t6=P1;
142 4 if(jian==0)
143 4 { delay();
144 5 flag7=0;
145 5 flag1=1;
146 5 init(); //在一次循环过后必须再次初始化,否则由于P1^7的预留值,造成下一轮的混乱
147 5
148 5 }
149 4 }
150 3 }
151 2 }
152 1 }
153
154
155 void inter(void) interrupt 1 using 1
156 {
157 1
158 1 TH0=0x4c;
159 1 TL0=0x00;
160 1 flag++;
161 1 if(flag==20)
162 1 {
163 2 flag=0;
164 2 flag8=1;
165 2 }
166 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 537 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 29 ----
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 + -