?? 7.lst
字號:
C51 COMPILER V7.06 7 09/01/2008 13:07:38 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 7
OBJECT MODULE PLACED IN 7.OBJ
COMPILER INVOKED BY: F:\串口調試助手\keil2\C51\BIN\C51.EXE 7.c BROWSE DEBUG OBJECTEXTEND TABS(3)
stmt level source
1 #include<reg52.h> //整過過程是通過一級一級的運行與判斷進行的,在每一次顯示效果完成后,關閉當前,啟動下一
-效果,即進入下一個效果,
2 #include<intrins.h>
3 sbit m=P2^5;
4 char code table[]={0x7e,0xbd,0xdb,0xe7,0x7e,0xbd,0xdb,0xe7,0x7e,0xbd,0xdb,0xe7};
5 char code table1[]={0xe7,0xdb,0xbd,0x7e,0xe7,0xdb,0xbd,0x7e,0xe7,0xdb,0xbd,0x7e};
6 unsigned int x,y,m0,m1,m2,t0,t,t1,t2,h,flag,flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,u,i;
7 void delay1() //500ms
8 {
9 1 for(x=0;x<129;x++)
10 1 for(y=0;y<250;y++);
11 1 }
12
13
14 void main()
15 {
16 1 m=1;
17 1 t0=0xaa;
18 1 t1=0xfe;
19 1 flag2=1;
20 1 TMOD=0x01;
21 1 EA=1;
22 1 ET0=1;
23 1 TH0=0x4c;
24 1 TL0=0x00;
25 1 TR0=1;
26 1 while(1) //進入大循環
27 1 {
28 2 if(flag1==1) //保證每隔一秒鐘燈操作一次
29 2 {
30 3 flag1=0;
31 3 if(flag2==1) //間隔1s先奇數燈亮在偶數燈亮
32 3 {
33 4
34 4 P1=_crol_(t0,1);
35 4 t0=P1;
36 4 flag3++;
37 4 }
38 3 if(flag3==4) //一個燈上下循環亮
39 3 {
40 4 flag2=0; //關閉讓燈奇偶亮
41 4 if(flag4==0) //參照作業流水燈5
42 4 {
43 5
44 5 P1=0xfe;
45 5 TR0=0;
46 5 delay1();
47 5 delay1();
48 5 TR0=1;
49 5 P1=_crol_(t1,1);
50 5
51 5 t1=P1;
52 5 flag5++;
53 5 if(flag5==7)
54 5 {
C51 COMPILER V7.06 7 09/01/2008 13:07:38 PAGE 2
55 6 flag5=0;
56 6 flag4=1;
57 6 TR0=0;
58 6 delay1();
59 6 delay1();
60 6 TR0=1;
61 6 }
62 5 }
63 4 if(flag4==1)
64 4 {
65 5
66 5 P1=_cror_(t1,1);
67 5
68 5 t1=P1;
69 5 flag5++;
70 5 if(flag5==7)
71 5 {
72 6 m0++;
73 6 flag5=0;
74 6 flag4=0;
75 6 if(m0==3)
76 6 {m0=0;flag6=1;flag3=0;}
77 6 delay1();
78 6 }
79 5 }
80 4
81 4
82 4 }
83 3 if(flag6==1) //兩個分別從兩邊往中間流動三次
84 3 {
85 4 P1=table[m1]; //用數組的方式調用燈的兩滅
86 4 m1++;
87 4 if(m1==11)
88 4 {
89 5 m1=0;
90 5 flag6=0;
91 5 flag7=1;
92 5 TR0=0; //為了最后的一次過程也亮一秒在進入下一過程,先關閉定時器,延時一秒,在打開,否則影響
-后面的定時
93 5 delay1();
94 5 delay1();
95 5 TR0=1;
96 5 }
97 4 }
98 3 if(flag7==1)
99 3 {
100 4 P1=table1[m2];
101 4 m2++;
102 4 if(m2==11)
103 4 {
104 5 m2=0;
105 5 flag7=0;
106 5 flag8=1;
107 5 TR0=0;
108 5 delay1();
109 5 delay1();
110 5 TR0=1;
111 5 }
112 4
113 4 }
114 3 if(flag8==1) //8個全部閃爍3次,參照作業流水燈5
115 3 {
C51 COMPILER V7.06 7 09/01/2008 13:07:38 PAGE 3
116 4 TR0=0;
117 4 u=0xff;
118 4 i=0x00;
119 4 P1=0x00;
120 4 flag8=0;
121 4 delay1();
122 4 for(t=0;t<8;t++)
123 4 {
124 5 i=P1;
125 5 P1=u;
126 5 u=i;
127 5 TR0=0;
128 5 delay1();
129 5 delay1();
130 5 TR0=1;
131 5 }
132 4 flag2=1;
133 4 TR0=1;
134 4 }
135 3 }
136 2 }
137 1 }
138
139
140
141
142 void inter(void) interrupt 1 using 1
143 {
144 1
145 1 TH0=0x4c;
146 1 TL0=0x00;
147 1 flag++;
148 1 if(flag==20)
149 1 {
150 2 flag=0;
151 2 flag1=1;
152 2 }
153 1 }
154
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 502 ----
CONSTANT SIZE = 24 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 42 ----
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 + -