📄 被动式.lst
字号:
C51 COMPILER V7.50 被动式 11/28/2007 21:26:58 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 被动式
OBJECT MODULE PLACED IN 被动式.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 被动式.c BROWSE DEBUG OBJECTEXTEND TABS(8)
line level source
1 #include <reg51.H>
2 unsigned char bdata dat;
3 unsigned char bdata biaoz=0;
4 sbit b7=biaoz^7;
5 sbit sd7=dat^7;
6 sbit sd6=dat^6;
7 sbit sd5=dat^5;
8 sbit sd4=dat^4;
9 sbit sd3=dat^3;
10 sbit sd2=dat^2;
11
12
13 sbit p_7=P3^7;
14 sbit p_6=P3^6;
15 sbit p_5=P3^5;
16 sbit p_4=P3^4;
17 sbit p_3=P3^3;
18 sbit p_2=P3^2;
19
20 sfr WDTRST = 0xA6;
21
22
23 void delay(unsigned char a);
24 //void delay1(unsigned long a);
25 void chu_shi();
26 void CLRWDT();
27
28 unsigned char n=0;
29 unsigned char data RAM[3];
30
31
32
33
34
35
36
37
38
39
40 ///////////////////////////////////////////////////
41 /**********************主程序*****************/
42 void main ()
43 {
44 1 chu_shi();
45 1 while(1)
46 1 {
47 2 CLRWDT();//喂狗
48 2 if(b7==1)//缓冲区有数据
49 2 {
50 3 b7=0;
51 3 ES=0;//不允许串口中断
52 3 EA=0;//关总中断
53 3
54 3 switch(RAM[0])
55 3 {
C51 COMPILER V7.50 被动式 11/28/2007 21:26:58 PAGE 2
56 4 case 0:
57 4 switch(RAM[1])
58 4 {
59 5 case 0:
60 5 P0=~RAM[2];
61 5 break;
62 5
63 5 case 1:
64 5 SBUF=P0;
65 5 while(!TI);
66 5 TI=0;
67 5 break;
68 5 }
69 4
70 4 break;
71 4
72 4
73 4
74 4 case 1:
75 4 switch(RAM[1])
76 4 {
77 5 case 0:
78 5 P1=RAM[2];
79 5 break;
80 5
81 5 case 1:
82 5 SBUF=P1;
83 5 while(!TI);
84 5 TI=0;
85 5 break;
86 5 }
87 4 break;
88 4
89 4
90 4
91 4
92 4 case 2:
93 4 switch(RAM[1])
94 4 {
95 5 case 0:
96 5 P2=RAM[2];
97 5 break;
98 5
99 5 case 1:
100 5 SBUF=P2;
101 5 while(!TI);
102 5 TI=0;
103 5 break;
104 5 }
105 4 break;
106 4
107 4
108 4
109 4 case 3:
110 4 switch(RAM[1])
111 4 {
112 5 case 0:
113 5 p_7=sd7;
114 5 p_6=sd6;
115 5 p_5=sd5;
116 5 p_4=sd4;
117 5 p_3=sd3;
C51 COMPILER V7.50 被动式 11/28/2007 21:26:58 PAGE 3
118 5 p_2=sd2;
119 5
120 5
121 5
122 5 break;
123 5
124 5 case 1:
125 5 SBUF=P3;
126 5 while(!TI);
127 5 TI=0;
128 5 break;
129 5 }
130 4
131 4 break;
132 4
133 4
134 4 }
135 3
136 3
137 3
138 3
139 3 ES=1;//允许串口中断
140 3 EA=1;//开总中断
141 3 }
142 2
143 2 else
144 2 delay(10);
145 2
146 2 }
147 1 }
148
149
150
151 void delay(unsigned char a)
152 {
153 1 unsigned char b;
154 1 for(b=a;b>0;b--)
155 1 {
156 2 CLRWDT();//喂狗
157 2 }
158 1 }
159
160 /*
161 void delay1(unsigned long a)
162 {
163 unsigned long b;
164 for(b=a;b>0;b--)
165 {
166 CLRWDT();//喂狗
167 }
168 }
169
170 */
171
172 void CLRWDT()
173 {
174 1 WDTRST=0x1E;
175 1 WDTRST=0xE1;//看门狗
176 1 }
177
178 ///////////////////////////////////////////////////
179 /**********************系统初始化*****************/
C51 COMPILER V7.50 被动式 11/28/2007 21:26:58 PAGE 4
180 void chu_shi(void)
181 {
182 1 CLRWDT();//初始化看门狗
183 1
184 1 TMOD=0X20; //定时器1方式2
185 1 //PCON=0X80;//波特率*2
186 1 TH1=0XFD;//波特率9600
187 1 TL1=0XFD;
188 1 SCON=0X50;//串口方式允许接受
189 1 ES=1;//允许串口中断
190 1 EA=1;//开总中断
191 1 TR1=1;//启动定时器1
192 1 }
193 //////////////////////////////////////////////////
194
195
196
197 void uart1()interrupt 4 using 1
198 {
199 1 unsigned char temp;
200 1 CLRWDT();//喂狗
201 1 if(RI==1)//是接受中断
202 1 {
203 2 RI=0;
204 2 temp=SBUF;//接受数据
205 2 RAM[n]=temp;//保存数据
206 2 //SBUF=temp;//返回数据
207 2 n=n+1;
208 2 if(n==3)
209 2 {
210 3 n=0;
211 3 b7=1;
212 3 dat=RAM[2];
213 3 CLRWDT();//喂狗
214 3 }
215 2 }
216 1 else
217 1 TI=0;//是发射中断
218 1 }
219
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 258 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 1
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 + -