liwu.lst
来自「摇摇棒程序 用普通的51单片机控制16个LED」· LST 代码 · 共 264 行
LST
264 行
C51 COMPILER V8.16 LIWU 01/04/2009 17:36:45 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE LIWU
OBJECT MODULE PLACED IN liwu.OBJ
COMPILER INVOKED BY: D:\Keil3\C51\BIN\C51.EXE liwu.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF LIWU.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1 #include<reg51.h>
2 typedef unsigned int uint;
3 typedef unsigned char uchar;
4
5 uchar code JSTU[144] =
6 {
7
8 //-------新---------
9 0x00, 0x00,0x04,0x84,0x24,0x88,0x34,0xB2,0xAC,0x81,0x67,0xFE,0x2C,0xA0,0x34,0x9A,0x24,0x84,
10 0x00,0x18,0x3F,0xE0,0x24,0x00,0x24,0x00,0x47,0xFF,0x44,0x00,0x44,0x00,0x00,0x00, 0x00, 0x00,
11 //-------年---------
12 0x00, 0x00,0x02,0x20,0x04,0x20,0x08,0x20,0x30,0x20,0xC7,0xE0,0x44,0x20,0x44,0x20,0x44,0x20,
13 0x7F,0xFF,0x44,0x20,0x44,0x20,0x44,0x20,0x44,0x20,0x40,0x20,0x00,0x20,0x00,0x00, 0x00, 0x00,
14 //-------快---------
15 0x00, 0x00,0x0E,0x00,0x00,0x00,0xFF,0xFF,0x10,0x00,0x0D,0x01,0x11,0x02,0x11,0x0C,0x11,0x70,
16 0xFF,0x80,0x11,0x60,0x11,0x10,0x11,0x0C,0x1F,0x06,0x01,0x03,0x01,0x02,0x00,0x00, 0x00,0x00,
17 //-------乐---------
18 0x00, 0x00,0x00,0x00,0x00,0x04,0x02,0x18,0x3F,0x30,0x22,0xE0,0x22,0x48,0x22,0x04,0x62,0x02,
19 0x5F,0xFC,0x42,0x00,0xC2,0x00,0xC2,0x40,0x42,0x30,0x02,0x1C,0x00,0x08,0x00,0x00, 0x00, 0x00
20 };
21
22 uchar code DX[144]=
23 {
24 //-------天---------
25 0x00, 0x00,0x00,0x00,0x02,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x60,0x7F,0x80,
26 0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x0C,0x42,0x06,0x02,0x04,0x00,0x00, 0x00,0x00,
27 //-------天---------
28 0x00, 0x00,0x00,0x00,0x02,0x01,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x10,0x42,0x60,0x7F,0x80,
29 0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x08,0x42,0x0C,0x42,0x06,0x02,0x04,0x00,0x00, 0x00,0x00,
30 //-------开---------
31 0x00, 0x00,0x02,0x00,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x7F,0xC0,0x42,0x00,0x42,0x00,
32 0x42,0x00,0x42,0x00,0x7F,0xFE,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00, 0x00, 0x00,
33 //-------心---------
34 0x00, 0x00,0x00,0x20,0x01,0xC0,0x00,0x00,0x00,0x00,0x0F,0xFC,0x00,0x02,0x80,0x02,0x40,0x02,
35 0x38,0x02,0x10,0x02,0x00,0x02,0x02,0x1E,0x01,0x00,0x00,0xE0,0x00,0x40,0x00,0x00, 0x00, 0x00
36 };
37
38
39 uchar code CK[144]=
40 {
41 //-------笑---------
42 0x00, 0x00,0x08,0x01,0x30,0x41,0xC2,0x42,0x62,0x42,0x52,0x44,0x42,0x48,0x4A,0x70,0x13,0xC0,
43 0xE4,0x60,0x44,0x50,0x64,0x48,0x54,0x44,0x48,0x46,0x40,0x43,0x40,0x02,0x00,0x00, 0x00,0x00,
44 //-------口---------
45 0x00, 0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,
46 0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, 0x00, 0x00,
47 //-------常---------
48 0x00, 0x00,0x04,0x00,0x18,0x00,0x10,0x7C,0x90,0x40,0x77,0x40,0x55,0x40,0x15,0x40,0xF5,0xFF,
49 0x15,0x40,0x15,0x40,0x37,0x48,0xD0,0x44,0x54,0x78,0x18,0x00,0x10,0x00,0x00,0x00, 0x00, 0x00,
50 //-------开---------
51 0x00, 0x00,0x02,0x00,0x42,0x02,0x42,0x04,0x42,0x08,0x42,0x30,0x7F,0xC0,0x42,0x00,0x42,0x00,
52 0x42,0x00,0x42,0x00,0x7F,0xFE,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00, 0x00, 0x00
53 };
54
C51 COMPILER V8.16 LIWU 01/04/2009 17:36:45 PAGE 2
55
56 //------------两边加0x0000是为了两个字之间延时时不出现字的”拖尾“现象---------
57
58
59
60 /*------------------小心图-------------------*/
61 uchar code small_heart[36] =
62 {
63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x07,0xe0,0x07,0xf0,0x07,0xf0,0x03,0xf8,
64 0x03,0xf8,0x07,0xf0,0x07,0xf0,0x07,0xe0,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
65 };
66 /*-------------------大心图--------------------*/
67 uchar code big_heart[36]=
68 {
69 0x00,0x00,0x00,0x00,0x0f,0x80,0x1f,0xc0,0x1f,0xe0,0x1f,0xe0,0x1f,0xf0,0x0f,0xf8,0x07,0xfc,
70 0x07,0xfc,0x0f,0xf8,0x1f,0xf0,0x1f,0xe0,0x1f,0xe0,0x1f,0xc0,0x0f,0x80,0x00,0x00,0x00,0x00
71 };
72 /*------------------笑脸图-------------------*/
73 uchar code smile[36]=
74 {
75 0x00,0x00,0x03,0x80,0x0c,0x60,0x10,0x18,0x20,0xc4,0x4c,0x24,0x4c,0x12,0x4c,0x12,0x40,0x12,
76 0x40,0x12,0x4c,0x12,0x4c,0x12,0x4c,0x24,0x20,0xc4,0x10,0x18,0x0c,0x60,0x03,0x80,0x00,0x00
77 };
78
79
80 uchar wave_time = 0;
81 uchar state = 10; //无效状态
82 uchar flag = 0; //显示过一遍则置1
83
84
85 //----延时-----
86 void delay(uchar time);
87
88
89 void main(void)
90 {
91 1 signed int i;
92 1 IT0 = 1;
93 1 IE0 = 0;
94 1 EX0 = 1;
95 1 EA =1 ;
96 1
97 1 //----P2接上面八位,P1接下面八位----
98 1 P1 = 0xff;
99 1 P2 = 0xff;
100 1 while(1)
101 1 {
102 2 //--如果没有中断产生则不显示---
103 2 if(!flag)
104 2 {
105 3 IE0 = 0;//--中断请求置0---
106 3 EA = 0; //--关中断----
107 3
108 3 //----状态转换-------
109 3 switch(state)
110 3 {
111 4 //-------技术师范---------
112 4 case 0:
113 4 {
114 5 delay(50); // 使图形在中央附近显示
115 5 for(i = sizeof(JSTU)-1; i >= 0;i--)
116 5 {
C51 COMPILER V8.16 LIWU 01/04/2009 17:36:45 PAGE 3
117 6 P1 = ~JSTU[i];
118 6 P2 = ~JSTU[--i];
119 6 delay(2);
120 6 }
121 5 flag = 1;
122 5 break;
123 5 }
124 4
125 4 //-------电信学院--------
126 4 case 1:
127 4 {
128 5 delay(50); // 使图形在中央附近显示
129 5 for(i = sizeof(DX)-1;i >= 0;i--)
130 5 {
131 6 P1 = ~DX[i];
132 6 P2 = ~DX[--i];
133 6 delay(2);
134 6 }
135 5 flag = 1;
136 5 break;
137 5 }
138 4
139 4 //--------05测控1W----------
140 4 case 2:
141 4 {
142 5 delay(50); // 使图形在中央附近显示
143 5 for(i = sizeof(CK)-1;i >= 0;i--)
144 5 {
145 6 P1 = ~CK[i];
146 6 P2 = ~CK[--i];
147 6 delay(2);
148 6 }
149 5 flag = 1;
150 5 break;
151 5 }
152 4
153 4 //--------笑脸------------
154 4 case 3:
155 4 {
156 5 delay(50); // 使图形在中央附近显示
157 5 for(i = sizeof(smile)-1;i >= 0;i--)
158 5 {
159 6 P1 = ~smile[i];
160 6 P2 = ~smile[--i];
161 6 delay(5);
162 6 }
163 5 flag = 1;
164 5 break;
165 5 }
166 4
167 4 //---------心跳(小)----------
168 4 case 4:
169 4 {
170 5 delay(50); // 使图形在中央附近显示
171 5 for(i = sizeof(small_heart)-1;i >= 0;i--)
172 5 {
173 6 P1 = ~small_heart[i];
174 6 P2 = ~small_heart[--i];
175 6 delay(5);
176 6 }
177 5 flag = 1;
178 5 break;
C51 COMPILER V8.16 LIWU 01/04/2009 17:36:45 PAGE 4
179 5 }
180 4 //---------心跳(大)----------
181 4 case 5:
182 4 {
183 5 delay(50); // 使图形在中央附近显示
184 5 for(i = sizeof(big_heart)-1;i >= 0;i--)
185 5 {
186 6 P1 = ~big_heart[i];
187 6 P2 = ~big_heart[--i];
188 6 delay(5);
189 6 }
190 5 flag = 1;
191 5 break;
192 5 }
193 4 //----其它不显示----
194 4 default:
195 4 {
196 5 P1 = 0xff;
197 5 P2 = 0xff;
198 5 flag = 1;
199 5 break;
200 5 }
201 4 }
202 3
203 3 EA = 1;
204 3 }
205 2 }
206 1 }
207
208 //-----延时-----
209 void delay(uchar time)
210 {
211 1 uint i,j;
212 1 for(i = 0;i < 15;i++)
213 1 for(j = 0;j < time;j++);
214 1 }
215
216 //-----外部中断-----
217 void INT_0() interrupt 0 using 1
218 {
219 1 flag = 0;
220 1 if(wave_time++ >= 90)wave_time = 0;//---90次一个轮回
221 1
222 1 if(wave_time < 15) state = 0;//技术师范
223 1 else if (wave_time < 30) state = 1;// 电信学院
224 1 else if (wave_time < 45) state = 2;// 05测控1W
225 1 else if (wave_time < 60) state = 3;// 笑脸
226 1 else if (wave_time %2 == 0) state= 4;// 大心图
227 1 else if (wave_time %2 == 1) state= 5;// 小心图
228 1 IE0 = 0;//----防抖动-----
229 1 }
230
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 643 ----
CONSTANT SIZE = 540 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.16 LIWU 01/04/2009 17:36:45 PAGE 5
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?