ex1.lst
来自「c8051f020单片机的例程」· LST 代码 · 共 216 行
LST
216 行
C51 COMPILER V7.06 EX1 05/31/2008 13:07:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE EX1
OBJECT MODULE PLACED IN ex1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex1.c LARGE BROWSE INCDIR(F:\software\KEIL\) DEBUG OBJECTEXTEND
stmt level source
1 #include <includes.h>
2 #include <cygnalcon.h>
3 //#include <ucos_ii.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 OS_EVENT *TASKA1;
7 //OS_EVENT *TASKB1;
8 //OS_EVENT *TASKC1;
9 //OS_EVENT *TASKD1;
10 INT8U i;
11 OS_EVENT *OSSemCreate(INT16U cnt);
12 //void OSSemPend(OS_EVENT *pevent,INT16U timeout,INT8U *err);
13 //INT8U OSSemPost(OS_EVENT *pevent);
14 void TaskA(void*) reentrant;
15 void TaskB(void*) reentrant;
16 void TaskC(void*) reentrant;
17 void TaskD(void*) reentrant;
18
19 OS_STK TaskStartStkA[MaxStkSize];//注意:在ASM文件中设置?STACK空间为40H即64。
20 OS_STK TaskStartStkB[MaxStkSize];
21 OS_STK TaskStartStkC[MaxStkSize];
22 OS_STK TaskStartStkD[MaxStkSize];
23
24 void UART0_SendByte(INT8U data1)
25 { SBUF0=data1;
26 1 while(TI0==0);
27 1 // while(!TI);
28 1 TI0=0; // µÈ´ýÊý¾Ý
29 1 }
30
31
32
33
34 void main(void)
35 {
36 1 i=0;
37 1 config();
38 1 // TASKA1 = OSSemCreate(1);
39 1 OSInit();
40 1
41 1 InitTimer0();
42 1
43 1
44 1 OSTaskCreate(TaskA, (void *)0, TaskStartStkA,1);
45 1 OSTaskCreate(TaskB, (void *)0, TaskStartStkB,2);
46 1 OSTaskCreate(TaskC, (void *)0, TaskStartStkC,4);
47 1 OSTaskCreate(TaskD, (void *)0, TaskStartStkD,5);
48 1
49 1 //TASKA1 = OSSemCreate(1);
50 1 // TASKB1 = OSSemCreate(0);
51 1 // TASKC1 = OSSemCreate(0);
52 1 // TASKD1 = OSSemCreate(0);
53 1 OSStart();
54 1 }
55
C51 COMPILER V7.06 EX1 05/31/2008 13:07:10 PAGE 2
56
57 void TaskA(void *pdat) reentrant
58 {
59 1
60 1 pdat=pdat;
61 1
62 1 for(;;){ // OSSemPend(TASKA1,10,&err);
63 2 //INT8U sz=0;
64 2 //INT8U d[10]={63,6,91,79,102,109,124,7,127,103};
65 2 //for( sz=0;sz<10;sz++)
66 2 // {
67 2 // P3=d[sz];
68 2 if(i==0)
69 2 { UART0_SendByte(0x01);
70 3 i=1;}
71 2 // OSSemPost(TASKA1);
72 2 //OSTimeDly(OS_TICKS_PER_SEC);
73 2 OSTimeDly(1);
74 2
75 2 // }
76 2
77 2 }
78 1 /* OSSemPost(TASKB1);
79 1 for (;;)
80 1 {
81 1 OSSemPend(TASKB1,10,&err);
82 1 if(err==OS_NO_ERR)
83 1 {
84 1
85 1 UART0_SendByte(0x01);
86 1
87 1 OSSemPost(TASKC1);
88 1
89 1 }
90 1
91 1 }*/
92 1
93 1
94 1 }
95
96 void TaskB(void *pdat) reentrant
97 {
98 1 pdat=pdat;
99 1
100 1 for(;;){//OSSemPend(TASKA1,10,&err);
101 2 if(i==1)
102 2 {P3=~P3;
103 3 UART0_SendByte(0x02);
104 3 i=2;}
105 2 // OSSemPost(TASKA1);
106 2 OSTimeDly(2);
107 2 }
108 1 /* for (;;)
109 1 {
110 1 OSSemPend(TASKC1,10,&err);
111 1 if(err==OS_NO_ERR)
112 1 {
113 1
114 1 UART0_SendByte(0x02);
115 1
116 1 OSSemPost(TASKD1);
117 1
C51 COMPILER V7.06 EX1 05/31/2008 13:07:10 PAGE 3
118 1 }
119 1
120 1 }*/
121 1 }
122
123 void TaskC(void *pdat) reentrant
124 {
125 1 pdat=pdat;
126 1
127 1 for(;;){if(i==2)
128 2
129 2 // P0=~P0;
130 2 {UART0_SendByte(0x03);
131 3
132 3 i=3;}
133 2 OSTimeDly(3);
134 2 }
135 1 /* for (;;)
136 1 {
137 1 OSSemPend(TASKD1,10,&err);
138 1 if(err==OS_NO_ERR)
139 1 {
140 1
141 1 UART0_SendByte(0x03);
142 1
143 1 OSSemPost(TASKA1);
144 1
145 1 }
146 1
147 1 }*/
148 1
149 1 }
150
151 void TaskD(void *pdat) reentrant
152 {
153 1
154 1 //INT8U sx;
155 1 //INT8U e[10]={103,127,7,124,109,102,79,91,6,63};
156 1
157 1 // pdat=pdat;
158 1
159 1 for(;;){if(i==3)
160 2
161 2 // for( sx=0;sx<10;sx++)
162 2 // {
163 2 /// P2=e[sx];
164 2 { UART0_SendByte(0x04);
165 3
166 3 i=0;}
167 2 // }
168 2 OSTimeDly(4);
169 2 }
170 1 }
*** WARNING C280 IN LINE 151 OF EX1.C: 'pdat': unreferenced local variable
171 /* for (;;)
172 {
173 OSSemPend(TASKA1,10,&err);
174 if(err==OS_NO_ERR)
175 {
176
177 UART0_SendByte(0x02);
178
C51 COMPILER V7.06 EX1 05/31/2008 13:07:10 PAGE 4
179 OSSemPost(TASKA1);
180
181 }
182 }
183
184 }*/
185
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 489 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 404 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?