📄 952.lst
字号:
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 952
OBJECT MODULE PLACED IN 952.OBJ
COMPILER INVOKED BY: D:\软件安装路径\C51\BIN\C51.EXE 952.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG952.H>
2 #include <intrins.H>
3 #include "16C554.h"
4 #include "uart.h"
5 #include "T0.h"
6
7 #define uchar unsigned char
8 #define uint unsigned int
9
10 #define SIZE2 10
11 extern uchar over, d554,s[8];
12
13 static bit cmdflag2=0;
14 static uchar check_sum2,command2[SIZE2],cmdpos2;
15
16 void protocol2(uchar cmd2)
17 {
18 1 if(cmdflag2 == 0)
19 1 {
20 2 TR0=1;
21 2 TH0=0x00; // 11.8ms T0重装初值
22 2 TL0=0x00;
23 2 command2[0] = cmd2;
24 2 cmdpos2 = 1;
25 2 cmdflag2 = 1;
26 2 check_sum2=command2[0];
27 2 }
28 1 else
29 1 {
30 2 command2[cmdpos2] = cmd2;
31 2 if(cmdpos2 <SIZE2-1) //表明数组没有溢出
32 2 {
33 3 check_sum2 += command2[cmdpos2];
34 3 }
35 2 else //数组溢出
36 2 {
37 3 over=1;
38 3 check_sum2 += command2[cmdpos2];
39 3 cmdflag2 = 0;
40 3 }
41 2 cmdpos2++;
42 2 }
43 1 }
44 //主函数
45 void main(void)
46 {
47 1 uchar chr,h,rt2;
48 1 P0M1=0x00; //配置P0为准双向口
49 1 P0M2=0x00;
50 1 P1M1=0x0e; //P1.6,P1.7接Serial_M1,Serial_M2配置为推换输出
51 1 P1M2=0xcd; //端口初始化P1.0,P1.1分别为推挽输出和输入,P1.2 1.3为开漏输出
52 1 P1M1=0x10|P1M1; //P1.4设置为中断输入
53 1 P1M2=0xEF&P1M1;
54 1 P2M1=0x00; //P2设置为推挽输出方式
55 1 P2M2=0x3F;
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 2
56 1 Serial_M1=0; //将扩展的八个串口都定义为RS232
57 1 Serial_M2=0;
58 1 Serial_M3=0;
59 1 Serial_M4=0;
60 1 Serial_M5=0;
61 1 Serial_M6=0;
62 1 Serial_M7=0;
63 1 Serial_M8=0;
64 1 //P4.4=nWR P4.5=nRD P4.6=WR P4.7=LATCH
65 1 P4M1=0x08; //uart1,P4.2设置为推挽输出方式 P4.3为输入 其它为推挽输出
66 1 P4M2=0xFB;
67 1 P5M1=0x00;
68 1 P5M2=0xFF; //P5设置为推挽输出方式
69 1
70 1 T0_init();
71 1
72 1 EA=1; //开总中断
73 1 IT1=0; //外部中断1低电平触发中断
74 1 EX1=1; //外部中断1使能位
75 1 IP0H=0x14; //设置外部中断优先级为2级,UART0接收中断为3级
76 1 IP0=0x10;
77 1
78 1 for(h=0;h<8;h++)
79 1 {
80 2 SC16C554_SET(s[h],38400);
81 2 SC16C554_Write(s[h]|THR, 0xff);
82 2 }
83 1 UART0_Init(); //串口初始化
84 1
85 1 while(1)
86 1 {
87 2 rt2=com_getchar554(&chr);
88 2 if(rt2==1)
89 2 {
90 3 protocol2(chr);
91 3 }
92 2 if(over)
93 2 {
94 3 uchar r;
95 3 TR0=0;
96 3 cmdflag2=0;
97 3 com_putchar(d554+1);
98 3 for(r=0;r<cmdpos2;r++)
99 3 {
100 4 com_putchar(command2[r]);
101 4 }
102 3 com_putchar(check_sum2);
103 3 over=0;
104 3 }
105 2 }
106 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 3
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -