📄 prot30.lst
字号:
C51 COMPILER V9.00 PROT30 01/01/2002 01:36:54 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE PROT30
OBJECT MODULE PLACED IN prot30.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cmain\prot30.c BROWSE DEBUG OBJECTEXTEND PRINT(.\prot30.lst) OBJECT(prot30.
-obj)
line level source
1 /*--------------------------------------
2 芯片 :STC12C5A60S2
3 晶振 :11.0592MHZ
4 开发平台:KEIL
5 功能 :串口一或者串口二都可以通过上位机控制30路继电器
6 波特率 :9600BPS
7 日期 :11.5.19
8 注意 :下载完程序后请复位系统!!(切记!)
9 --------------------------------------*/
10
11 #include "Hfile\\STC12C5A60S2.h"
12 #include"Hfile\\PublicV.H"
13 #define uchar unsigned char
14 #define uint unsigned int
15 uchar dat;
16
17 void init ()
18 {
19 1 //串口2波特率
20 1 TMOD = 0x20; //定时器1产生波特率
21 1 SCON = 0x50; //方式1,8位数据,波特率可变
22 1 TH1= 0xfd;
23 1 TL1 = 0xfd; //波特率 9600
24 1 //串口1波特率
25 1 S2CON = 0x50; //方式1,八位数据,可变波特率
26 1 BRT=0XFD; //设置波特率9600
27 1 TR1=1; //启动定时器产生串口2波特率
28 1 AUXR=0x10; //启动串口1波特率发生器
29 1 IP=0x00; //优先级默认
30 1 EA=1; //开总中断
31 1 ES=1; //开串口1中断
32 1 IE2=0x01; //开串口2中断
33 1
34 1 }
35
36 /*--------------------------------------
37 延时函数
38 --------------------------------------*/
39 void delay ( uint t )
40 {
41 1 uint i,j;
42 1 for( i=0; i<t; i++)
43 1 for( j=0; j<250; j++);
44 1 }
45
46 /*--------------------------------------
47 主函数
48 --------------------------------------*/
49 void main()
50 {
51 1 uchar k=10;
52 1 P4SW|=0x20; //配置P4.5为IO口
53 1 P4M0|=0x10; //配置P4.4为IO口
54 1 P4M1|=0x10;
C51 COMPILER V9.00 PROT30 01/01/2002 01:36:54 PAGE 2
55 1 P0=P1=P2=P3=0xff;
56 1 P4|=0x30;
57 1 init(); // 定时器初始化
58 1 add=0X00;
59 1 while(1)
60 1 {
61 2 if(receive==1&&bite[1]==add)
62 2 {
63 3 /*0=握手 1=地址 2=继电器开关 3=继电器1-8路 4=继电器9-16路 5=继电器17=24路
64 3 *6=继电器25-30路*/
65 3 receive=0;
66 3 if(bite[2]==0x11) //打开
67 3 open_X1(bite[3],0);
68 3 if(bite[2]==0x01) //关闭
69 3 open_X1(bite[3],1);
70 3
71 3 if(bite[4]==0x12) //打开
72 3 open_X2(bite[5],0);
73 3 if(bite[4]==0x02) //关闭
74 3 open_X2(bite[5],1);
75 3
76 3
77 3 // IapEraseSector(0);
78 3 // IapProgramByte(1,bite[3]);
79 3 // IapProgramByte(2,bite[5]);
80 3 // IapProgramByte(3,bite[7]);
81 3 // IapProgramByte(4,bite[9]);
82 3
83 3
84 3 }
85 2 }
86 1
87 1 }
88 /*--------------------------------------
89 串口一 发送接收中断函数
90 --------------------------------------*/
91
92 void uart_isr() interrupt 4 using 2
93 {
94 1
95 1 ES=0;
96 1 if( RI )
97 1 {
98 2 RI=0;
99 2 bite[r] = SBUF;
100 2 if(bite[0]==0XAA || bite[0]==0XAB || bite[0]==0XAC || bite[0]==0XAD)
101 2 r++;
102 2 if(r>=6)
103 2 {
104 3 receive=1;
105 3 r=0;
106 3 }
107 2 }
108 1 ES=1;
109 1
110 1 }
111
112 void uart2_isr() interrupt 8 using 1
113 {
114 1 if( S2CON & 0x01 )
115 1 {
116 2 S2CON &= ~0x01;
C51 COMPILER V9.00 PROT30 01/01/2002 01:36:54 PAGE 3
117 2 bite[r] = S2BUF;
118 2 if(bite[0]==0XAA || bite[0]==0XAB || bite[0]==0XAC || bite[0]==0XAD)
119 2 r++;
120 2 if(r>=6)
121 2 {
122 3 receive=1;
123 3 r=0;
124 3 }
125 2 }
126 1
127 1 if( S2CON & 0x02 )
128 1 {
129 2 S2CON &= ~0x02;
130 2 }
131 1
132 1 }
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 296 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -