⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com.lst

📁 用c语言编写的单片机程序
💻 LST
字号:
C51 COMPILER V6.12  COM                                                                    01/24/2006 09:00:57 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE COM
OBJECT MODULE PLACED IN com.OBJ
COMPILER INVOKED BY: C:\Manley\c51\BIN\C51.EXE com.c DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include<main.h>
   2          #define COM_BUS_DATA(x) XBYTE[0x1001 + x]
   3          
   4          byte xdata com_r_buff[COM_R_BUFF_LEN];
   5          byte xdata com_s_buff[COM_S_BUFF_LEN];
   6          byte xdata com_r_sadr;
   7          byte xdata com_r_cmd;
   8          byte xdata com_r_num;
   9          byte xdata com_r_len;
  10          byte xdata com_r_perr;
  11          byte xdata com_r_crc = 0x00;
  12          byte xdata *pcom_r_buff_wr = com_r_buff;//写指针,判断写数据后,fifo是否为满
  13          byte xdata *pcom_r_buff_rd = com_r_buff;//读指针,判断读数据后,fifo是否为空
  14          byte xdata *pcom_r_buff_prc = com_r_buff;//当前读指针,不判断是否为我要的数据,读完一个就加一
  15          byte xdata *pcom_send_buff_wr = com_s_buff;
  16          byte xdata *pcom_send_buff_rd = com_s_buff;
  17          
  18          bit com_r_buff_empty = TRUE;
  19          bit com_r_buff_full = FALSE;
  20          bit com_send_buff_empty = TRUE;
  21          bit com_send_buff_full = FALSE;
  22          
  23          byte idata com_len = NULL_BYTE;
  24          byte idata st_com_r = ST_COM_R_IDLE;
  25          byte idata com_data_num = NULL_BYTE;
  26          
  27          byte xdata data_r_tmp_buff[DATA_R_TMP_BUFF_LEN];
  28          
  29          byte xdata inf_r_buff[INF_R_BUFF_LEN];
  30          data byte xdata *pinf_r_buff_wr = inf_r_buff;//接收到属于我的指令
  31          data byte xdata *pinf_r_buff_rd = inf_r_buff; 
  32          word xdata inf_r_len = NULL_WORD;
  33          byte idata inf_r_total = NULL_BYTE;
  34          
  35          sbit ctr_bc = P1^5 ;
  36          sbit SEND485 = P1^0 ;
  37          void prc_com_bus_data(void);
  38          
  39          union
  40          {	word w; 
  41          	struct 
  42          	{
  43          		byte h;	//word 的高字节。
  44          		byte l;	//word 的低字节。
  45          	} b;
  46          }w_b;
  47          
  48          bit inf_r_buff_empty = TRUE;
  49          
  50          #ifdef MY_TET
              bit fctr_len = TRUE;
              word pre_ctr_len = NULL_WORD;
              word pre_ctr_num = NULL_WORD;
              byte ctr_num = NULL_BYTE;
              byte xdata ctr_data[INF_R_BUFF_LEN];
C51 COMPILER V6.12  COM                                                                    01/24/2006 09:00:57 PAGE 2   

              #endif
  57          
  58          word xdata com_s_len;
  59          word xdata com_s_mlen;
  60          byte com_s_perr = NULL_BYTE;
  61          
  62          
  63          void com_r_init (void) interrupt 4//串口中断
  64          {
  65   1      	byte tmp;
  66   1      	COM_INT_DISEN();
  67   1      	if(RI)
  68   1      	{	
  69   2      		tmp = SBUF; 
  70   2      		if(!com_r_buff_full)
  71   2      			//;//ERR PROC
  72   2      		{
  73   3      			*pcom_r_buff_wr =tmp;
  74   3      			if(pcom_r_buff_wr == com_r_buff + COM_R_BUFF_LEN)  
  75   3      			{
  76   4      				if(pcom_r_buff_rd == com_r_buff)	
  77   4      					com_r_buff_full = TRUE;//写指针在fifo末尾,读指针在开始,则fifo为满
  78   4      				pcom_r_buff_wr = com_r_buff;//把写指针放在fifo开始
  79   4      			}
  80   3      			else
  81   3      			{
  82   4      				pcom_r_buff_wr++;//写指针加1
  83   4      				if(pcom_r_buff_wr == pcom_r_buff_rd)
  84   4      					com_r_buff_full = TRUE;//写指针在fifo中间,写指针加1后与读指针相等也为满。因为新写入的数,读指针没有

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -