📄 ex1.lst
字号:
C51 COMPILER V7.06 EX1 03/22/2009 22:08:37 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE EX1
OBJECT MODULE PLACED IN ex1.obj
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE Ex1_Keil\ex1.c BROWSE DEBUG OBJECTEXTEND PRINT(.\ex1.lst) OBJECT(ex1.obj)
stmt level source
1 #include "..\uc_os_II\includes.h"
2 #include<reg51.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 /*TS12864A-3 端口定义*/
6 #define LCD_data P0 //数据口
7 sbit LCD_RS = P3^5; //寄存器选择输入
8 sbit LCD_RW = P3^6; //液晶读/写控制
9 sbit LCD_EN = P3^4; //液晶使能控制
10 sbit LCD_PSB = P3^7; //串/并方式控制
11 sbit wela = P2^6;
12 sbit dula = P2^7;
13 uchar code dis[] = {"正在进入UCOS"};
14 uchar code dis0[] = {"请稍候..."};
15 uchar code dis1[] = {"任务一 (时间)"};
16 uchar code dis2[] = {"小时 分钟 秒"};
17 uchar code dis22[] = {"马上切换"};
18 uchar code dis3[] = {"任务二(网站)"};
19 uchar code dis4[] = {"WWW.UESTC.com "};
20 uchar code dis5[] = {"WWW.BAIDU.com "};
21 uchar code dis55[] = {"马上切换"};
22 //uchar count,flag;
23 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
24 uchar IRDIS[2];
25 uchar IRCOM[4];
26 void delay0(uchar x); //x*0.14MS
27 void beep();
28 void dataconv();
29 void lcd_pos(uchar X,uchar Y); //确定显示位置
30 OS_STK xdata Task1Stack[CPU_MAX_STK_SIZE];
31 OS_STK xdata Task2Stack[CPU_MAX_STK_SIZE];
32
33
34
35
36 void Task1(void xdata * ppdata) reentrant
37 {
38 1 uchar i,j,hour0=0x30,hour1=0x30,min0=0x30,min1=0x30,sec0=0x30,sec1=0x30;
39 1 ppdata = ppdata;
40 1 while(1)
41 1 {
42 2 OSTimeDlyHMSM(0, 0, 3, 50);
43 2 wela=0;
44 2 dula=0;
45 2 P1=0X00;
46 2 lcd_init(); //初始化LCD
47 2
48 2 lcd_pos(0,0); //设置显示位置为第一行的第1个字符
49 2 i = 0;
50 2 while(dis1[i] != '\0')
51 2 { //显示字符
52 3 lcd_wdat(dis1[i]);
53 3 i++;
54 3 }
55 2 lcd_pos(1,0); //设置显示位置为第二行的第1个字符
C51 COMPILER V7.06 EX1 03/22/2009 22:08:37 PAGE 2
56 2 i = 0;
57 2 while(dis2[i] != '\0')
58 2 {
59 3 lcd_wdat(dis2[i]); //显示字符
60 3 i++;
61 3 }
62 2 lcd_pos(2,0);
63 2 lcd_wdat(0x20);
64 2 lcd_wdat(hour0); //显示字符
65 2 lcd_wdat(hour1);
66 2 lcd_wdat(0x20);
67 2 lcd_wdat(0x20);
68 2 lcd_wdat(0x20);
69 2 lcd_wdat(0x20);
70 2 lcd_wdat(min0);
71 2 lcd_wdat(min1);
72 2 lcd_wdat(0x20);
73 2 lcd_wdat(0x20);
74 2 lcd_wdat(0x20);
75 2 lcd_wdat(sec0);
76 2 lcd_wdat(sec1);
77 2 lcd_pos(3,0); //设置显示位置为第二行的第1个字符
78 2 i = 0;
79 2 while(dis22[i] != '\0')
80 2 {
81 3 lcd_wdat(dis22[i]); //显示字符
82 3 i++;
83 3 }
84 2 /* for(j=0;j<30;j++)
85 2 if(flag==1)
86 2 {
87 2 flag=0;
88 2 sec1++;
89 2 if(sec1==10)
90 2 {
91 2 sec1=0;sec0++;
92 2 }
93 2 if(sec0==10)
94 2 {
95 2 sec0=0;min1++;
96 2 }
97 2 if(min1==10)
98 2 {
99 2 min1=0;min0++;
100 2 }
101 2 lcd_pos(2,0);
102 2 lcd_wdat(0x20);
103 2 lcd_wdat(hour0); //显示字符
104 2 lcd_wdat(hour1);
105 2 lcd_wdat(0x20);
106 2 lcd_wdat(0x20);
107 2 lcd_wdat(0x20);
108 2 lcd_wdat(0x20);
109 2 lcd_wdat(min0);
110 2 lcd_wdat(min1);
111 2 lcd_wdat(0x20);
112 2 lcd_wdat(0x20);
113 2 lcd_wdat(0x20);
114 2 lcd_wdat(sec0);
115 2 lcd_wdat(sec1);
116 2 delay(10);
117 2 }*/
C51 COMPILER V7.06 EX1 03/22/2009 22:08:37 PAGE 3
118 2
119 2 }
120 1 }
*** WARNING C280 IN LINE 38 OF EX1_KEIL\EX1.C: 'j': unreferenced local variable
121
122 void Task2(void xdata * ppdata) reentrant
123 {
124 1 uchar i;
125 1 ppdata = ppdata;
126 1 while(1)
127 1 {
128 2
129 2 OSTimeDlyHMSM(0, 0, 4, 0);
130 2 lcd_init(); //初始化LCD
131 2 P1=0XFF;
132 2 wela=0;
133 2 dula=0;
134 2 lcd_pos(0,0); //设置显示位置为第三行的第1个字符
135 2 i = 0;
136 2 while(dis3[i] != '\0')
137 2 {
138 3 lcd_wdat(dis3[i]); //显示字符
139 3 i++;
140 3 }
141 2 lcd_pos(1,0); //设置显示位置为第四行的第1个字符
142 2 i = 0;
143 2 while(dis4[i] != '\0')
144 2 {
145 3 lcd_wdat(dis4[i]); //显示字符
146 3 i++;
147 3 }
148 2 lcd_pos(2,0); //设置显示位置为第四行的第1个字符
149 2 i = 0;
150 2 while(dis5[i] != '\0')
151 2 {
152 3 lcd_wdat(dis5[i]); //显示字符
153 3 i++;
154 3 }
155 2 lcd_pos(3,0); //设置显示位置为第二行的第1个字符
156 2 i = 0;
157 2 while(dis55[i] != '\0')
158 2 {
159 3 lcd_wdat(dis55[i]); //显示字符
160 3 i++;
161 3 }
162 2 }
163 1 }
164
165 void InterruptInitial()
166 {
167 1 /* set timer. 50ms, THTL = 3caf when cpu at 11.0592MHz */
168 1
169 1 TMOD |= 0x11;
170 1 TH0 = 0xB8;
171 1 TL0 = 0x00;
172 1 /* TR0 is set in OSStart() */
173 1 ET0 = 1;
174 1 /* TH1 = 0x4C;
175 1 TL1 = 0x00;
176 1 ET1 = 1;
177 1 TR1 = 1;
178 1 count=0;*/
C51 COMPILER V7.06 EX1 03/22/2009 22:08:37 PAGE 4
179 1 }
180 void main()
181 {
182 1 uchar i;
183 1 P1=0xF0;
184 1 wela=0;
185 1 dula=0;
186 1 InterruptInitial();
187 1 lcd_init(); //初始化LCD
188 1
189 1 lcd_pos(0,0); //设置显示位置为第一行的第1个字符
190 1 i = 0;
191 1 while(dis[i] != '\0')
192 1 { //显示字符
193 2 lcd_wdat(dis[i]);
194 2 i++;
195 2 }
196 1 lcd_pos(1,0); //设置显示位置为第二行的第1个字符
197 1 i = 0;
198 1 while(dis0[i] != '\0')
199 1 {
200 2 lcd_wdat(dis0[i]); //显示字符
201 2 i++;
202 2 }
203 1
204 1 OSInit();
205 1
206 1 OSTaskCreate(Task1, (void xdata *)0, &Task1Stack[0],2);
207 1 OSTaskCreate(Task2, (void xdata *)0, &Task2Stack[0],3);
208 1
209 1 OSStart();
210 1 }
211
212 /*
213 void inter(void) interrupt 3
214 {
215 TH1 = 0x4C;
216 TL1 = 0x00;
217 count++;
218 if(count==20)
219 {
220 count=0;
221 flag=1;
222 }
223 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 600 ----
CONSTANT SIZE = 115 ----
XDATA SIZE = 180 ----
PDATA SIZE = ---- ----
DATA SIZE = 6 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -