📄 chengxu.lst
字号:
C51 COMPILER V9.00 CHENGXU 02/08/2012 12:35:59 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 汇诚科技
3
4 实现功能:串口控制继电器程序
5 使用芯片:AT89S52
6 晶振:11.0592MHZ
7 波特率:9600
8 编译环境:Keil
9 作者:zhangxinchunleo
10 网站:www.ourhc.cn
11 淘宝店:汇诚科技 http://shop36330473.taobao.com
12 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
13
14 *********************************************************************/
15 /********************************************************************
16 单片机与PC机采用9针串口,MAX232通讯,波特率默认为9600.
17
18 单片机接收PC机发送的十六进制码表如下:
19
20 01、全开:PC发送'I';
21 02、全关:PC发送'i';
22
23 03、第一路开:PC发送'A';
24 04、第二路开:PC发送'B';
25 05、第三路开:PC发送'C';
26 06、第四路开:PC发送'D';
27 07、第五路开:PC发送'E';
28 08、第六路开:PC发送'F';
29 09、第七路开:PC发送'G';
30 10、第八路开:PC发送'H';
31
32 11、第一路关:PC发送'a';
33 12、第二路关:PC发送'b';
34 13、第三路关:PC发送'c';
35 14、第四路关:PC发送'd';
36 15、第五路关:PC发送'e';
37 16、第六路关:PC发送'f';
38 17、第七路关:PC发送'g';
39 18、第八路关:PC发送'h';
40
41 *********************************************************************/
42 #include<STC12C5A60S2.H> //库文件
43 #include"jdq30.h"
44 #define uchar unsigned char//宏定义无符号字符型
45 #define uint unsigned int //宏定义无符号整型
46 /********************************************************************
47 初始定义
48 *********************************************************************/
49
50 unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
51
52
53
54 /********************************************************************
55 延时函数
C51 COMPILER V9.00 CHENGXU 02/08/2012 12:35:59 PAGE 2
56 *********************************************************************/
57 void delay(uchar t)
58 {
59 1 uchar i,j;
60 1 for(i=0;i<t;i++)
61 1 {
62 2 for(j=13;j>0;j--);
63 2 { ;
64 3 }
65 2 }
66 1 }
67
68 /********************************************************************
69 功能:串口初始化,波特率9600,方式1
70 *********************************************************************/
71 void init(void)
72 {
73 1
74 1 TMOD = 0x20; //定时器1产生波特率
75 1
76 1 SCON = 0x50; //方式2,8位数据,波特率可变
77 1
78 1 PCON = 0x00; //不倍增波特率
79 1
80 1 AUXR = 0x00; //1T工作方式,不使用波特率发生器
81 1
82 1 IP = 0x00; //优先级默认
83 1
84 1 TH1 = TL1 = 0xfd; //波特率 9600
85 1
86 1 TR1 = 1; //启动定时器产生波特率
87 1
88 1 EA = 1;
89 1 ES = 1; //开总中断,开串口中断
90 1 }
91
92
93 /********************************************************************
94 主函数
95 *********************************************************************/
96 void main()
97 {
98 1 uchar k=10;
99 1 P4SW|=0x20; //配置P4.5为IO口
100 1 P4M0|=0x10; //配置P4.4为IO口
101 1 P4M1|=0x10;
102 1 P0=P1=P2=P3=0xff;
103 1 P4|=0x30;
104 1 init();//串口初始化
105 1
106 1 while(1)
107 1 {
108 2
109 2
110 2 /********************************************************************
111 2 接收数据判断函数
112 2 *********************************************************************/
113 2 switch(dat) //接收数据判断
114 2 {
115 3
116 3 case 'I':
117 3 P1=P0=P2=0;
C51 COMPILER V9.00 CHENGXU 02/08/2012 12:35:59 PAGE 3
118 3 P3&=0x03;
119 3 P4&=0xcf;
120 3 delay(200);
121 3 init();
122 3 break; // 全开
123 3
124 3 case 'i':
125 3 P3=P1=P0=P2=0XFF;
126 3 P4|=0x30;
127 3 delay(k);
128 3 break; // 全关
129 3
130 3 case 'A': OUT1=0;delay(k);break; // 第一路开
131 3 case 'B': OUT2=0;delay(k);break; // 第二路开
132 3 case 'C': OUT3=0;delay(k);break; // 第三路开
133 3 case 'D': OUT4=0;delay(k);break; // 第四路开
134 3 case 'E': OUT5=0;delay(k);break; // 第五路开
135 3 case 'F': OUT6=0;delay(k);break; // 第六路开
136 3 case 'G': OUT7=0;delay(k);break; // 第七路开
137 3 case 'H': OUT8=0;delay(k);break; // 第八路开
138 3 case 'J': OUT9=0;delay(k);break; // 第一路开
139 3 case 'K': OUT10=0;delay(k);break; // 第二路开
140 3 case 'L': OUT11=0;delay(k);break; // 第三路开
141 3 case 'M': OUT12=0;delay(k);break; // 第四路开
142 3 case 'N': OUT13=0;delay(k);break; // 第五路开
143 3 case 'O': OUT14=0;delay(k);break; // 第六路开
144 3 case 'P': OUT15=0;delay(k);break; // 第七路开
145 3 case 'Q': OUT16=0;delay(k);break; // 第八路开
146 3 case 'R': OUT17=0;delay(k);break; // 第一路开
147 3 case 'S': OUT18=0;delay(k);break; // 第二路开
148 3 case 'T': OUT19=0;delay(k);break; // 第三路开
149 3 case 'U': OUT20=0;delay(k);break; // 第四路开
150 3 case 'V': OUT21=0;delay(k);break; // 第二路开
151 3 case 'W': OUT22=0;delay(k);break; // 第三路开
152 3 case 'X': OUT23=0;delay(k);break; // 第四路开
153 3 case 'Y': OUT24=0;delay(k);break; // 第五路开
154 3 case 'Z': OUT25=0;delay(k);break; // 第六路开
155 3 case '1': OUT26=0;delay(k);break; // 第七路开
156 3 case '2': OUT27=0;delay(k);break; // 第八路开
157 3 case '3': OUT28=0;delay(k);break; // 第一路开
158 3 case '4': OUT29=0;delay(k);break; // 第二路开
159 3 case '5': OUT30=0;delay(k);break; // 第三路开
160 3
161 3 case 'a': OUT1=1;delay(k);break; // 第一路关
162 3 case 'b': OUT2=1;delay(k);break; // 第二路关
163 3 case 'c': OUT3=1;delay(k);break; // 第三路关
164 3 case 'd': OUT4=1;delay(k);break; // 第四路关
165 3 case 'e': OUT5=1;delay(k);break; // 第五路关
166 3 case 'f': OUT6=1;delay(k);break; // 第六路关
167 3 case 'g': OUT7=1;delay(k);break; // 第七路关
168 3 case 'h': OUT8=1;delay(k);break; // 第八路关
169 3 case 'j': OUT9=1;delay(k);break; // 第一路关
170 3 case 'k': OUT10=1;delay(k);break; // 第二路关
171 3 case 'l': OUT11=1;delay(k);break; // 第三路关
172 3 case 'm': OUT12=1;delay(k);break; // 第四路关
173 3 case 'n': OUT13=1;delay(k);break; // 第五路关
174 3 case 'o': OUT14=1;delay(k);break; // 第六路关
175 3 case 'p': OUT15=1;delay(k);break; // 第七路关
176 3 case 'q': OUT16=1;delay(k);break; // 第八路关
177 3 case 'r': OUT17=1;delay(k);break; // 第五路关
178 3 case 's': OUT18=1;delay(k);break; // 第六路关
179 3 case 't': OUT19=1;delay(k);break; // 第七路关
C51 COMPILER V9.00 CHENGXU 02/08/2012 12:35:59 PAGE 4
180 3 case 'u': OUT20=1;delay(k);break; // 第八路关
181 3 case 'v': OUT21=1;delay(k);break; // 第二路关
182 3 case 'w': OUT22=1;delay(k);break; // 第三路关
183 3 case 'x': OUT23=1;delay(k);break; // 第四路关
184 3 case 'y': OUT24=1;delay(k);break; // 第五路关
185 3 case 'z': OUT25=1;delay(k);break; // 第六路关
186 3 case '6': OUT26=1;delay(k);break; // 第七路关
187 3 case '7': OUT27=1;delay(k);break; // 第八路关
188 3 case '8': OUT28=1;delay(k);break; // 第五路关
189 3 case '9': OUT29=1;delay(k);break; // 第六路关
190 3 case '0': OUT30=1;delay(k);break; // 第七路关
191 3 default:break; // 跳出
192 3 }
193 2
194 2 }
195 1 }
196
197
198 void uart_isr() interrupt 4
199 {
200 1 if( RI )
201 1 { RI = 0;
202 2 dat = SBUF;
203 2 }
204 1
205 1 SBUF='K';
206 1 while(!TI);
207 1 TI=0;
208 1
209 1 }
210
211
212 /********************************************************************
213 结束
214 *********************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 603 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 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 + -