📄 yy.lst
字号:
C51 COMPILER V8.08 YY 03/20/2008 12:09:20 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE YY
OBJECT MODULE PLACED IN yy.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE yy.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <includes.h>
2 #include "key7279.h"
3 void TaskStartyya(void *yydata) reentrant;
4 void TaskStartyyb(void *yydata) reentrant;
5 void TaskStartyyc(void *yydata) reentrant;
6 void TaskStartyyd(void *yydata) reentrant;
7 void config();
8 OS_STK TaskStartStkyya[MaxStkSize];//注意:我在ASM文件中设置?STACK空间为40H即64。
9 OS_STK TaskStartStkyyb[MaxStkSize];
10 OS_STK TaskStartStkyyc[MaxStkSize];
11 OS_STK TaskStartStkyyd[MaxStkSize];
12 extern uchar ab[8];
13
14 OS_EVENT *CommMbox,*sem,*qbox;
15 void *Commsg[4] ;
16
17 void config()
18 {//看门狗禁止
19 1 WDTCN=0x07;
20 1 WDTCN=0xde;
21 1 WDTCN=0xad;
22 1 SFRPAGE=0x0f;
23 1
24 1 //交叉开关使能,但没有进行外围设备配置
25 1 XBR0=0x00; //IIC配置到引脚
26 1 //SPI配置到引脚 三线四线由SPI寄存器决定
27 1 XBR1=0x00;//INT0和INT1配置到管脚
28 1 //xbrP1.7置位输出系统时钟频率
29 1 XBR3=0x00;
30 1 XBR2=0x42;//不将P0.5 P0.6 P0.7 分配到管脚
31 1 //将T4分配到引脚,输出方波
32 1 //XBR2=0x41; //ADC0引脚连接到端口
33 1
34 1 //引脚输出配置
35 1 SFRPAGE=0x0f;
36 1 P0MDOUT = 0xff; //sclk和NSS为开漏输出 ,MOSI为主输出
37 1 P1MDOUT = 0xff;
38 1 P2MDOUT = 0xff;
39 1 P3MDOUT = 0xff;
40 1 P5MDOUT = 0xff; // P5口设为推挽方式
41 1 //P5MDOUT = 0xf8;
42 1 P6MDOUT = 0x00;
43 1 P7MDOUT = 0xff;
44 1 P3MDIN = 0xff;
45 1 //晶振配置,采用内部晶振 内部晶振是24.5M
46 1 SFRPAGE=0x0f;
47 1 CLKSEL =0x00;
48 1 OSCXCN =0x00;
49 1 OSCICN =0x83;
50 1 }
51
52 void main(void)
53 {
54 1 config();
55 1 OSInit();
C51 COMPILER V8.08 YY 03/20/2008 12:09:20 PAGE 2
56 1 InitTimer0();
57 1
58 1 OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],2);
59 1 OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);
60 1 OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
61 1 OSTaskCreate(TaskStartyyd, (void *)0, &TaskStartStkyyd[0],5);
62 1
63 1 CommMbox = OSMboxCreate((void *)0);
64 1 qbox = OSQCreate(&Commsg[0],4);
65 1 sem = OSSemCreate(1);
66 1
67 1 OSStart();
68 1 }
69
70
71 void TaskStartyya(void *yydata) reentrant
72 { INT8U err;
73 1 INT8U *msg;
74 1 yydata=yydata;
75 1 qp7279(ab);
76 1 for(;;){
77 2 msg=OSQPend(qbox,0,&err);
78 2 if(err==OS_NO_ERR)
79 2 {
80 3 displ(ab,*msg);
81 3 play7279(ab);
82 3 }
83 2 else
84 2 {
85 3 displ(ab,0);
86 3 play7279(ab);
87 3 }
88 2
89 2 }
90 1 }
91 void TaskStartyyb(void *yydata) reentrant
92 { INT8U err;
93 1 INT8U *msg;
94 1 yydata=yydata;
95 1 for(;;){
96 2 msg=OSMboxPend(CommMbox,0,&err);
97 2 if(err==OS_NO_ERR)
98 2 {
99 3 displ(ab,*msg);
100 3 play7279(ab);
101 3 }
102 2 else
103 2 {
104 3 displ(ab,0);
105 3 play7279(ab);
106 3 }
107 2 }
108 1 }
109 void TaskStartyyc(void *yydata) reentrant
110 { INT8U err;
111 1 yydata=yydata;
112 1 for(;;){
113 2 OSSemPend(sem,0,&err);
114 2 if(err==OS_NO_ERR)
115 2 {
116 3 displ(ab,3);
117 3 play7279(ab);
C51 COMPILER V8.08 YY 03/20/2008 12:09:20 PAGE 3
118 3 }
119 2 else
120 2 {
121 3 displ(ab,0);
122 3 play7279(ab);
123 3 }
124 2 }
125 1 }
126 void TaskStartyyd(void *yydata) reentrant
127 { INT8U err;
128 1 INT8U youxia=0x02,yx=0x07;
129 1 yydata=yydata;
130 1 for(;;){
131 2 // err=OSQPostFront(qbox,(void *)&yx);
132 2 err=OSQPost(qbox,(void *)&yx);
133 2
134 2 OSTimeDly(OS_TICKS_PER_SEC);
135 2
136 2 err=OSMboxPost(CommMbox,(void *)&youxia) ;
137 2
138 2 OSTimeDly(OS_TICKS_PER_SEC*2);
139 2
140 2 err=OSSemPost(sem);
141 2
142 2 OSTimeDly(OS_TICKS_PER_SEC*3);
143 2 // youxia++;if(youxia==10)youxia=1;
144 2 // yx--; if(yx==0) yx=9;
145 2 }
146 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1076 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 421 ----
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 + -