📄 sp2538 demo.lst
字号:
83 3 else { //子串口2接收到一个字节(输入地址:010)
84 4 Uart2RBuf=SBUF; //缓存子串口2收到的数据,以便接收后续数据
85 4 bUart2RFlag=1; //置子串口2收到数据标志,便于主程序查询
86 4 }
87 3 }
88 2 else if(AdrIn0){ //子串口1接收到一个字节(输入地址:001)
89 3 Uart1RBuf=SBUF; //缓存子串口1收到的数据,以便接收后续数据
90 3 bUart1RFlag=1; //置子串口1收到数据标志,便于主程序查询
91 3 }
92 2 else { //子串口0接收到一个字节(输入地址:000)
93 3 Uart0RBuf=SBUF; //缓存子串口0收到的数据,以便接收后续数据
94 3 bUart0RFlag=1; //置子串口0收到数据标志,便于主程序查询
95 3 }
96 2 }
97 1
98 1 else{
99 2 TI=0; //已经产生发送中断,准备解析下一个需要发送的数据
100 2 switch(UartPointer){ //判断即将向哪个子串口发送数据?
101 3 case 0:{ //准备向子串口0发送数据
102 4 UartPointer++; //下一次发送中断准备向子串口1发送数据
103 4 if(Uart0TNum){ //串口0发送缓存区是否有数据需要发送?
104 5 AdrOut0=0; //有数据需要发送,则选通子串口0的地址
105 5 AdrOut1=0;
106 5 AdrOut2=0;
107 5 SBUF=Uart0Tbuf[--Uart0TNum];//将串口0发送缓存中的一个字节
108 5 break; //由子串口0发送到下位机
109 5 }
110 4 else goto T_NopInstruction; //若子串口0没有数据发送则准备发送空指令
111 4 }
112 3
113 3 case 1:{ //准备向子串口1发送数据
114 4 UartPointer++; //下一次发送中断准备向串口2发送数据
115 4 if(Uart1TNum){ //串口1发送缓存区是否有数据需要发送?
116 5 AdrOut0=1; //有数据需要发送,则选通子串口1的地址
117 5 AdrOut1=0;
C51 COMPILER V7.20 SP2538_DEMO 03/09/2006 09:31:46 PAGE 3
118 5 AdrOut2=0;
119 5 SBUF=Uart1TBuf[--Uart1TNum];//将串口1发送缓存中的一个字节
120 5 break; //由子串口1发送到下位机
121 5 }
122 4 else goto T_NopInstruction; //若子串口1没有数据发送则准备发送空指令
123 4 } //而只能够发送一条空指令用于时序配合
124 3
125 3 case 2:{ //准备向子串口2发送数据
126 4 UartPointer++; //下一次发送中断准备向串口3发送数据
127 4 if(Uart2TNum){ //串口2发送缓存区是否有数据需要发送?
128 5 AdrOut0=0; //有数据需要发送,则选通子串口2的地址
129 5 AdrOut1=1;
130 5 AdrOut2=0;
131 5 SBUF=Uart2TBuf[--Uart2TNum];//将串口2发送缓存中的一个字节
132 5 break; //由子串口2发送到下位机
133 5 }
134 4 goto T_NopInstruction; //若子串口2没有数据发送则准备发送空指令
135 4 } //而只能够发送一条空指令用于时序配合
136 3
137 3 case 3:{ //准备向子串口3发送数据
138 4 UartPointer++; //下一次发送中断准备向串口4发送数据
139 4 if(Uart3TNum){ //串口3发送缓存区是否有数据需要发送?
140 5 AdrOut0=1; //有数据需要发送,则选通子串口3的地址
141 5 AdrOut1=1;
142 5 AdrOut2=0;
143 5 SBUF=Uart3TBuf[--Uart3TNum];//将串口3发送缓存中的一个字节
144 5 break; //由子串口3发送到下位机
145 5 }
146 4 goto T_NopInstruction; //若子串口3没有数据发送则准备发送空指令
147 4 } //而只能够发送一条空指令用于时序配合
148 3
149 3 case 4:{ //准备向子串口4发送数据
150 4 UartPointer++; //下一次发送中断准备发送空指令
151 4 if(Uart4TNum){ //串口4发送缓存区是否有数据需要发送?
152 5 AdrOut0=0; //有数据需要发送,则选通子串口4的地址
153 5 AdrOut1=0;
154 5 AdrOut2=1;
155 5 SBUF=Uart4TBuf[--Uart4TNum];//将串口4发送缓存中的一个字节
156 5 break; //由子串口4发送到下位机
157 5 }
158 4 goto T_NopInstruction; //若子串口4没有数据发送则准备发送空指令
159 4 } //而只能够发送一条空指令用于时序配合
160 3
161 3 default:{
162 4 UartPointer=0; //下一次发送中断准备向串口0发送数据
163 4 T_NopInstruction:
164 4 AdrOut0=1; //选通目串口准备发送空指令或者其他指令
165 4 AdrOut1=0;
166 4 AdrOut2=1;
167 4 if(bInstructFlag){ //判断是否需要发送其他指令?
168 5 bInstructFlag=0; //清除指令发送标志
169 5 SBUF=InstructBuf; //将需要发送的指令发送到串口扩展IC
170 5 break;
171 5 }
172 4 else if(Uart0TNum|Uart1TNum|Uart2TNum|Uart3TNum|Uart4TNum){
173 5 SBUF=0; //所有子串口的数据是否都已全部发送
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -