📄 main.lst
字号:
C51 COMPILER V8.01 MAIN 04/19/2006 10:46:36 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <2_UART_SST.h>
2 #include <stdio.h>
3
4 extern xdata struct uart1_rx_strut
5 {
6 uchar no_data_count ; //接收缓冲区无数据的时间计数,接收到数据,将置为0,没有数据时,20ms加一(在定时中断内
-加一)
7 uchar rx_state ; //接收的状态
8 uchar rx_bitcont ; //接收的一个数据的位数(常用的为8位宽度)
9 uchar buff[MAX_SIZE_BUF] ; //接收缓冲区大小
10 uint count ; //已经接收的数据个数,也可根据接收的数目,来判断有无新数据,在取出数据后,将这个数目清零
11 }uart2_rx,uart1_rx ; //原来的BUFFER设为256,由于SST89E516的XRAM为300H,如果分配4个256的BUFFER,SST MCU内部
-的XRAM便不够,
12 //因此出现第2个UART不能接收或发送的现象.
13 //----------------------------------------
14 void main(void )
15 {
16 1 UART_SST_init( ) ; //调用扩展UART的初始化函数
17 1 UART1_rx_disable(); //这里无用,只是防止在编译时出现未调用的警告.
18 1 UART1_rx_enable( ); //允许UART1进行接收
19 1 UART2_rx_disable(); //这里无用,只是防止在编译时出现未调用的警告.
20 1 UART2_rx_enable( ); ////允许UART1进行接收
21 1
22 1 EA = 1 ; //开总中断
23 1
24 1 while(1)
25 1 {
26 2 if( uart2_rx.no_data_count > 250 ) //连续250循环中没有接收到数据,开始发送接收的数据
27 2 { //if didn't receive data beyond 1 second, consider receive data finished
28 3 if( uart2_rx.count != 0 )
29 3 { //if received data ,transfer it
30 4 UART2_send_out( uart2_rx.buff ,uart2_rx.count ); //就将接收缓冲区的数据全部发送出去
31 4 uart2_rx.count = 0 ; //发送完毕,就将接收的数目改为0,表示接收区的内容已全部取出
32 4 }
33 3 uart2_rx.no_data_count = 0 ; //置接收缓冲区内有数据标志,没有数据时,置为非0标志
34 3 }
35 2
36 2
37 2 if ( uart1_rx.no_data_count > 250 ) //连续250循环中没有接收到数据,开始发送接收的数据
38 2 { //if didn't receive data beyond 1 second, consider receive data finished
39 3 if( uart1_rx.count != 0 )
40 3 { //if received data ,transfer it
41 4 UART1_send_out( uart1_rx.buff ,uart1_rx.count ); //就将接收缓冲区的数据全部发送出去
42 4 uart1_rx.count = 0 ; //发送完毕,就将接收的数目改为0,表示接收区的内容已全部取出
43 4 }
44 3 uart1_rx.no_data_count = 0 ; //置接收缓冲区内有数据标志,没有数据时,置为非0标志
45 3 }
46 2
47 2
48 2 uart1_rx.no_data_count++; //一个循环,接收无数据的次数加一
49 2 uart2_rx.no_data_count++; //一个循环,接收无数据的次数加一
50 2 }
51 1 }
C51 COMPILER V8.01 MAIN 04/19/2006 10:46:36 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 113 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -