📄 mytest.lst
字号:
C51 COMPILER V7.10 MYTEST 05/10/2005 00:01:38 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE MYTEST
OBJECT MODULE PLACED IN MyTest.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE MyTest.c LARGE OPTIMIZE(6,SIZE) BROWSE NOINTPROMOTE DEBUG OBJECTEXTEND
line level source
1 //******************************************************************
2 //* mytest fuction
3 #include <includes.h>
4
5 //******************************************************************
6 //* mytest system timer initial
7 #define TIME_10mS (OS_TICKS_PER_SEC /100)
8 #define TIME_50mS (OS_TICKS_PER_SEC /20 )
9 #define TIME_100mS (OS_TICKS_PER_SEC /10 )
10 #define TIME_200mS (OS_TICKS_PER_SEC /5 )
11 #define TIME_500mS (OS_TICKS_PER_SEC /2 )
12 #define TIME_1S (OS_TICKS_PER_SEC)
13 #define TIME_2S (OS_TICKS_PER_SEC * 2)
14 #define TIME_3S (OS_TICKS_PER_SEC * 3)
15 #define TIME_4S (OS_TICKS_PER_SEC * 4)
16 #define TIME_5S (OS_TICKS_PER_SEC * 5)
17
18 //******************************************************************
19 //* mytest system crystalloid
20 #define XA_CRYSTAL_FREQ (INT32U)(22118400L)
21
22 //******************************************************************
23 //* SCR crystalloid
24 #define CFG_SCR_4 SCR&0x03
25 #define CFG_SCR_16 SCR&0x07
26 #define CFG_SCR_64 SCR&0x0B
27
28 #define OS_CFG_SCR CFG_SCR_4
29
30 //******************************************************************
31 //* mytest system
32 #define TASK_STK_SIZE 30 //* 128 word
33 #define NUMBER_TASKS 20
34
35 //******************************************************************
36 //* mytest task stack define
37 OS_STK xdata AnPrintfStk[TASK_STK_SIZE];
38 OS_STK xdata BnPrintfStk[TASK_STK_SIZE];
39
40 //******************************************************************
41 //* OS_EVENT
42 OS_EVENT xdata * AnPrintfWait;
43 OS_EVENT xdata * BnPrintfWait;
44
45
46
47 //******************************************************************
48
49 INT8U xdata OSCtxSwCtrMax;
50
51 //-------------------------------------------------------------------
52 void TimeTickInitial(void);
53 void AnPrintf(void *dataptr); //* Startup Task
54 void BnPrintf(void *dataptr); //* 8 Identical Tasks
55 void Serial_initialize(void);
C51 COMPILER V7.10 MYTEST 05/10/2005 00:01:38 PAGE 2
56 INT8U keyscan(void);
57 void Delay(INT8U i);
58 //static void XAInit (void);
59 //static void TimerInit (INT8U tmr, INT16U freq, INT8U prio);
60 //static void SeryComm0Init (INT16U baud);
61 //******************************************************************
62
63 //******************************************************************
64 void main (void)
65 {
66 1 //XAInit(); //* XA Configuration
67 1 OSInit(); //* Initialize uC/OS-II, The Real-Time Kernel
68 1
69 1 BnPrintfWait = OSSemCreate(0);
70 1
71 1
72 1
73 1 OSTaskCreate( AnPrintf,
74 1 (void *)0,
75 1 (void *)&AnPrintfStk[TASK_STK_SIZE-1],
76 1 0x03);
77 1
78 1 OSTaskCreate( BnPrintf,
79 1 (void *)0,
80 1 (void *)&BnPrintfStk[TASK_STK_SIZE-1],
81 1 0x04);
82 1
83 1 TimeTickConfig();
84 1 Serial_initialize();
85 1 OSStart();
86 1 }
87
88 void AnPrintf(void *dataptr)
89 {
90 1 INT8U err;
91 1 dataptr = dataptr;
92 1 while(1)
93 1 {
94 2 keyscan();
95 2 OSSemPend(BnPrintfWait,100,&err);
96 2
97 2 }
98 1
99 1 }
100
101 //******************************************************************
102 void BnPrintf(void *dataptr)
103 {
104 1 char tmp[60];
105 1 int i = 0;
106 1
107 1 for(i = 0 ; i < 60 ; i++)
108 1 tmp[i] = i;
109 1
110 1 dataptr = dataptr;
111 1 EA =1;
112 1 while(1)
113 1 {
114 2 P1 = rand();
115 2 Delay(3);
116 2 OSSemPost(BnPrintfWait);
117 2 }
C51 COMPILER V7.10 MYTEST 05/10/2005 00:01:38 PAGE 3
118 1
119 1 }
120 void SeryInt(void)
121 {
122 1
123 1 }
124 void Serial_initialize()
125 {
126 1 SCON = 0x50; //* SCON: mode 1, 8-bit UART, enable rcvr */
127 1 TMOD |= 0x20; //* TMOD: timer 1, mode 2, 8-bit reload */
128 1 TH1 = 0xfd; //* TH1: reload value for 1200 baud @ 16MHz */
129 1 TR1 = 1; //* TR1: timer 1 run */
130 1 TI = 1; //* TI: set TI to send first char of UART */
131 1 }
132
133 INT8U keyscan(void)
134 {
135 1 INT8U sccode,recode;
136 1 P2 = 0xF0;
137 1 if((P2 & 0xF0) != 0xF0)
138 1 {
139 2 Delay(3);
140 2 if((P2 & 0xF0) != 0xF0)
141 2 {
142 3 sccode = 0xFE;
143 3 while((sccode & 0x10) != 0)
144 3 {
145 4 P2 = sccode;
146 4 if((P2 & 0xF0) != 0xF0)
147 4 {
148 5 recode = (P2 & 0xF0) | 0x0F;
149 5 while((P2 & 0xF0) != 0xF0)Delay(1);
150 5 SBUF = ((~sccode) + (~recode));
151 5 return((~sccode) + (~recode));
152 5 }
153 4 else
154 4 sccode = (sccode << 1) | 0x01;
155 4 }
156 3 }
157 2 }
158 1 }
159
160 void Delay(INT8U i)
161 {
162 1 INT8U j,k;
163 1 for(i; i > 0; i--)
164 1 for(j = 0; j < 250; j++)
165 1 for(k = 0; k <250; k++);
166 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 361 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 65 63
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -