📄 text1.lst
字号:
C51 COMPILER V9.00 TEXT1 02/09/2012 14:54:33 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*--------------------------------------
2 芯片 :STC12C5A60S2
3 晶振 :11.0592MHZ
4 开发平台:KEIL
5 功能 :串口一或者串口二都可以通过上位机控制30路继电器
6 波特率 :9600BPS
7 日期 :11.5.19
8 注意 :下载完程序后请复位系统!!(切记!)
9 --------------------------------------*/
10
11 #include "STC12C5A60S2.h"
12 #include"jdq30.h"
13 #define uchar unsigned char
14 #define uint unsigned int
15
16 uchar dat;
17
18
19 void init ()
20 {
21 1 //串口2波特率
22 1 TMOD = 0x20; //定时器1产生波特率
23 1
24 1 SCON = 0x50; //方式1,8位数据,波特率可变
25 1
26 1 TH1=TL1 = 0xfd; //波特率 9600
27 1
28 1 //串口1波特率
29 1 S2CON = 0x50; //方式1,八位数据,可变波特率
30 1
31 1 BRT=0XFD; //设置波特率9600
32 1
33 1
34 1 TR1=1; //启动定时器产生串口2波特率
35 1
36 1 AUXR=0x10; //启动串口1波特率发生器
37 1
38 1 IP=0x00; //优先级默认
39 1
40 1 EA=1; //开总中断
41 1
42 1 ES=1; //开串口1中断
43 1
44 1 IE2=0x01; //开串口2中断
45 1
46 1 }
47
48 /*
49 // 串口一 发送一个字符
50
51
52 void uart1_txd(uchar x)
53 {
54 SBUF = x;
55 }
C51 COMPILER V9.00 TEXT1 02/09/2012 14:54:33 PAGE 2
56
57 // 串口二 发送一个字符
58 void uart2_txd(uchar x)
59 {
60 S2BUF = x;
61 }
62 */
63
64
65 /*--------------------------------------
66 延时函数
67 --------------------------------------*/
68 void delay ( uint t )
69 {
70 1 uint i,j;
71 1
72 1 for( i=0; i<t; i++)
73 1
74 1 for( j=0; j<250; j++);
75 1 }
76
77
78 /*--------------------------------------
79 主函数
80 --------------------------------------*/
81 void main()
82 {
83 1 uchar k=10;
84 1 P4SW|=0x20; //配置P4.5为IO口
85 1 P4M0|=0x10; //配置P4.4为IO口
86 1 P4M1|=0x10;
87 1 P0=P1=P2=P3=0xff;
88 1 P4|=0x30;
89 1 init();//串口初始化
90 1
91 1 while(1)
92 1 {
93 2
94 2
95 2 /********************************************************************
96 2 接收数据判断函数
97 2 *********************************************************************/
98 2 switch(dat) //接收数据判断
99 2 {
100 3
101 3 case 'I':
102 3 P0=P2=0;
103 3 P1&=0x0c;
104 3 P3&=0x03;
105 3 P4&=0xcf;
106 3 delay(200);
107 3 init();
108 3 break; // 全开
109 3
110 3 case 'i':
111 3 P3=P1=P0=P2=0XFF;
112 3 P4|=0x30;
113 3 delay(k);
114 3 break; // 全关
115 3
116 3 case 'A': OUT1=0;delay(k);break; // 第一路开
117 3 case 'B': OUT2=0;delay(k);break; // 第二路开
C51 COMPILER V9.00 TEXT1 02/09/2012 14:54:33 PAGE 3
118 3 case 'C': OUT3=0;delay(k);break; // 第三路开
119 3 case 'D': OUT4=0;delay(k);break; // 第四路开
120 3 case 'E': OUT5=0;delay(k);break; // 第五路开
121 3 case 'F': OUT6=0;delay(k);break; // 第六路开
122 3 case 'G': OUT7=0;delay(k);break; // 第七路开
123 3 case 'H': OUT8=0;delay(k);break; // 第八路开
124 3 case 'J': OUT9=0;delay(k);break; // 第九路开
125 3 case 'K': OUT10=0;delay(k);break; // 第十路开
126 3 case 'L': OUT11=0;delay(k);break; // 第十一路开
127 3 case 'M': OUT12=0;delay(k);break; // 第十二路开
128 3 case 'N': OUT13=0;delay(k);break; // 第十三路开
129 3 case 'O': OUT14=0;delay(k);break; // 第十四路开
130 3 case 'P': OUT15=0;delay(k);break; // 第十五路开
131 3 case 'Q': OUT16=0;delay(k);break; // 第十六路开
132 3 case 'R': OUT17=0;delay(k);break; // ...
133 3 case 'S': OUT18=0;delay(k);break; // ...
134 3 case 'T': OUT19=0;delay(k);break; // ...
135 3 case 'U': OUT20=0;delay(k);break; // ...
136 3 case 'V': OUT21=0;delay(k);break; // ...
137 3 case 'W': OUT22=0;delay(k);break; // ...
138 3 case 'X': OUT23=0;delay(k);break; // ...
139 3 case 'Y': OUT24=0;delay(k);break; // ...
140 3 case 'Z': OUT25=0;delay(k);break; // ...
141 3 case '1': OUT26=0;delay(k);break; // ...
142 3 case '2': OUT27=0;delay(k);break; // ...
143 3 case '3': OUT28=0;delay(k);break; // ...
144 3 case '4': OUT29=0;delay(k);break; // ...
145 3 case '5': OUT30=0;delay(k);break; // 第三十路开
146 3
147 3 case 'a': OUT1=1;delay(k);break; // 第一路关
148 3 case 'b': OUT2=1;delay(k);break; // 第二路关
149 3 case 'c': OUT3=1;delay(k);break; // 第三路关
150 3 case 'd': OUT4=1;delay(k);break; // 第四路关
151 3 case 'e': OUT5=1;delay(k);break; // 第五路关
152 3 case 'f': OUT6=1;delay(k);break; // 第六路关
153 3 case 'g': OUT7=1;delay(k);break; // 第七路关
154 3 case 'h': OUT8=1;delay(k);break; // 第八路关
155 3 case 'j': OUT9=1;delay(k);break; // ...
156 3 case 'k': OUT10=1;delay(k);break; // ...
157 3 case 'l': OUT11=1;delay(k);break; // ...
158 3 case 'm': OUT12=1;delay(k);break; // ...
159 3 case 'n': OUT13=1;delay(k);break; // ...
160 3 case 'o': OUT14=1;delay(k);break; // ...
161 3 case 'p': OUT15=1;delay(k);break; // ...
162 3 case 'q': OUT16=1;delay(k);break; // ...
163 3 case 'r': OUT17=1;delay(k);break; // ...
164 3 case 's': OUT18=1;delay(k);break; // ...
165 3 case 't': OUT19=1;delay(k);break; // ...
166 3 case 'u': OUT20=1;delay(k);break; // ...
167 3 case 'v': OUT21=1;delay(k);break; // ...
168 3 case 'w': OUT22=1;delay(k);break; // ...
169 3 case 'x': OUT23=1;delay(k);break; // ...
170 3 case 'y': OUT24=1;delay(k);break; // ...
171 3 case 'z': OUT25=1;delay(k);break; // ...
172 3 case '6': OUT26=1;delay(k);break; // ...
173 3 case '7': OUT27=1;delay(k);break; // ...
174 3 case '8': OUT28=1;delay(k);break; // ...
175 3 case '9': OUT29=1;delay(k);break; // ...
176 3 case '0': OUT30=1;delay(k);break; // 第三十路关
177 3 default:break; // 跳出
178 3 }
179 2
C51 COMPILER V9.00 TEXT1 02/09/2012 14:54:33 PAGE 4
180 2 }
181 1
182 1 }
183 /*--------------------------------------
184 串口一 发送接收中断函数
185 --------------------------------------*/
186
187 void uart_isr() interrupt 4
188 {
189 1 if( RI ) RI = 0;
190 1
191 1 dat = SBUF;
192 1
193 1 if( TI ) TI = 0;
194 1 }
195
196
197 /*--------------------------------------
198 串口二 发送接收中断函数
199 --------------------------------------*/
200 void uart2_isr() interrupt 8
201 {
202 1 if( S2CON & 0x01 )
203 1 {
204 2 S2CON &= ~0x01;
205 2 dat= S2BUF;
206 2 }
207 1
208 1 if( S2CON & 0x02 )
209 1 {
210 2 S2CON &= ~0x02;
211 2 }
212 1
213 1 }
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 655 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = ---- ----
C51 COMPILER V9.00 TEXT1 02/09/2012 14:54:33 PAGE 5
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 + -