📄 main.lst
字号:
C51 COMPILER V8.01 MAIN 05/11/2006 18:37:12 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************************************************
2 ** Small RTOS(51)
3 ** The Real-Time Kernel(For Keil c51)
4 **
5 ** (c) Copyright 2002-2003, chenmingji
6 ** All Rights Reserved
7 **
8 ** V1.12.0
9 **
10 **
11 **--------------文件信息--------------------------------------------------------------------------------
12 **文 件 名: ext2.c
13 **创 建 人: 陈明计
14 **最后修改日期: 2002年12月30日
15 **描 述: ext2源代码。
16 **
17 **--------------历史版本信息----------------------------------------------------------------------------
18 ** 创建人: 陈明计
19 ** 版 本: V0.50
20 ** 日 期: 2002年2月22日
21 ** 描 述: 原始版本
22 **
23 **------------------------------------------------------------------------------------------------------
24 ** 修改人: 陈明计
25 ** 版 本: V1.11.0
26 ** 日 期: 2003年12月2日
27 ** 描 述: 删除TaskF代码
28 **
29 **------------------------------------------------------------------------------------------------------
30 ** 修改人: 陈明计
31 ** 版 本: V1.12.0
32 ** 日 期: 2003年12月30日
33 ** 描 述: 无变化
34 **
35 **--------------当前版本修订------------------------------------------------------------------------------
36 ** 修改人: 陈子牙
37 ** 日 期: 2005年5月10日
38 ** 描 述:
39 **
40 **------------------------------------------------------------------------------------------------------
41 ********************************************************************************************************/
42
43 #include<stdlib.h>
44 #include<string.h>
45 #include<stdio.h>
46 #include "..\h\config.h"
47
48 #define ID_LEDRShow 0
49 #define ID_MusicPlay 1
50 #define ID_LEDWtsk 2
51 #define ID_MusicSpeak 4
52
53 #define ID_OSS_W_LED 0
54 #define ID_OSS_R_LED 1
55 #define ID_OSS_M 2
C51 COMPILER V8.01 MAIN 05/11/2006 18:37:12 PAGE 2
56
57
58 #define LED_MAX 20
59 #define aLED_MAX 2
60 char const aLED0[LED_MAX]={0x81,0x42,0x24,0x18,0x24,0x42,0x81,0xc3,0xe7,0xff,0x00,0x00,0xff,0x18,0x3c,0x7e
-,0xff,0x00,0x00,0x00};
61 char const aLED1[LED_MAX]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff
-,0x81,0x00,0x18,0x00};
62 char const * aLED[aLED_MAX];
63
64 /************************************************************************************************
65 函数名:主函数
66 功能: 启动多任务
67 作者: 陈子牙
68 ************************************************************************************************/
69
70 void main(void)
71 {
72 1
73 1 TMOD = (TMOD & 0xF0) | 0x01;
74 1 TL0 = 0x00;
75 1 TH0 = 0x4c;
76 1 TR0 = 1;
77 1 ET0 = 1;
78 1 TF0 = 0;
79 1 OSStart();
80 1 }
81
82 //////////////////////////////////////////////////////////////////////////////////////////////
83 //** 函数名称 :
84 //** 函数功能 :
85 //** 入口参数 :
86 //** 出口参数 :
87 // 使用方法 :
88 // 注意事项 :
89 //////////////////////////////////////////////////////////////////////////////////////////////
90 void LEDRShow(void)
91 {char SemRec=0;
92 1 char ID_led=0;
93 1 char h_led=0;
94 1 bit bOK=0; //为0时允许灯亮
95 1 aLED[0]=aLED0;
96 1 aLED[1]=aLED1;
97 1 while(1)
98 1 {//SPEAK=1;
99 2 if(bOK==0)
100 2 {
101 3 if((++h_led)==LED_MAX)
102 3 h_led=0;
103 3 LED_SHOW=~aLED[ID_led][h_led];
104 3 }
105 2 OSWait(K_TMO,2);
106 2 SemRec=OSSemAccept(ID_OSS_R_LED);
107 2 if(SemRec==OS_SEM_OK)
108 2 {
109 3 ID_led++;
110 3 if(ID_led==aLED_MAX)
111 3 {
112 4 LED_SHOW=0xff;
113 4 bOK=1;
114 4 }
115 3 if(ID_led==aLED_MAX+1)
C51 COMPILER V8.01 MAIN 05/11/2006 18:37:12 PAGE 3
116 3 {
117 4 ID_led=0;
118 4 bOK=0;
119 4 }
120 3 }
121 2 }
122 1
123 1 }
124 //////////////////////////////////////////////////////////////////////////////////////////////
125 //** 函数名称 :
126 //** 函数功能 :
127 //** 入口参数 :
128 //** 出口参数 :
129 // 使用方法 :
130 // 注意事项 :
131 //////////////////////////////////////////////////////////////////////////////////////////////
132 void KEYGet(void)
133 {char key=0;
134 1 //OSWait(K_TMO,10);
135 1 OSSemCreate(ID_OSS_W_LED,0);
136 1 OSSemCreate(ID_OSS_R_LED,0);
137 1 OSSemCreate(ID_OSS_M,0);
138 1 //fnKEYInit();
139 1 while(1)
140 1 {//SPEAK=1;
141 2 OSWait(K_TMO,2);
142 2 key=fnGetKey();
143 2 if(key==KEY_W)
144 2 {
145 3 OSSendSignal(ID_LEDWtsk);
146 3 }
147 2 if(key==KEY_R)
148 2 {
149 3 OSSemPost(ID_OSS_R_LED);
150 3 }
151 2 if(key==KEY_M)
152 2 {
153 3 OSSendSignal(ID_MusicPlay);
154 3 }
155 2 }
156 1
157 1
158 1 }
159
160 //////////////////////////////////////////////////////////////////////////////////////////////
161 //** 函数名称 :
162 //** 函数功能 :
163 //** 入口参数 :
164 //** 出口参数 :
165 // 使用方法 :
166 // 注意事项 :
167 //////////////////////////////////////////////////////////////////////////////////////////////
168 extern char ID_speak;
169 extern char const aMusic1[];
170 extern char const aMusic2[];
171 extern char const *aMusic[MUSIC_MAX];
172 extern bit MUSIC_OK;//为1时,不允许播放音乐
173 void MusicPlay(void)
174 {
175 1 aMusic[0]=aMusic1;
176 1 aMusic[1]=aMusic2;
177 1 while(1)
C51 COMPILER V8.01 MAIN 05/11/2006 18:37:12 PAGE 4
178 1 {// SPEAK=1;
179 2 OSWait(K_SIG,0);
180 2 if((++ID_speak)==MUSIC_MAX)
181 2 {
182 3 MUSIC_OK=1;
183 3 //ID_speak=0;
184 3 }
185 2 if(ID_speak==MUSIC_MAX+1)
186 2 {
187 3 ID_speak=0;
188 3 MUSIC_OK=0;
189 3 }
190 2
191 2 OSSendSignal(ID_MusicSpeak);
192 2
193 2 }
194 1
195 1
196 1 }
197
198 void MusicSpeak(void)
199 {
200 1 while(1)
201 1 { SPEAK=1;
202 2 OSWait(K_SIG,0);
203 2 timer1init();
204 2 Speak();
205 2 time1stop();
206 2 }
207 1
208 1 }
209 //////////////////////////////////////////////////////////////////////////////////////////////
210 //** 函数名称 :
211 //** 函数功能 :
212 //** 入口参数 :
213 //** 出口参数 :
214 // 使用方法 :
215 // 注意事项 :
216 //////////////////////////////////////////////////////////////////////////////////////////////
217
218 void LEDWtsk(void)
219 {bit i=1;
220 1 while(1)
221 1 { //SPEAK=1;
222 2 LED_W=i=~i;
223 2 OSWait(K_SIG,0);
224 2
225 2
226 2 }
227 1
228 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 280 ----
CONSTANT SIZE = 40 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 3
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILER V8.01 MAIN 05/11/2006 18:37:12 PAGE 5
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -