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

📄 com.lst

📁 此程序是及iic、rs485、rs232于一身的单片机c语言编写
💻 LST
字号:
C51 COMPILER V6.12  COM                                                                    04/20/2006 17:14:56 PAGE 1   


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

stmt level    source

   1          #include <main.h>
   2          
   3          //*************************************
   4          #define COM_MK_HEAD 0x7e  /*协议头*/
   5          #define COM_MK_ID   0x00  /*帧号*/
   6          #define COM_MK_SUM  0x00  /*累加和*/
   7          #define COM_MK_END 0x0d   /*协议尾*/
   8          //*************************************
   9          
  10          byte idata com_st=COM_ST_IDLE;
  11          byte com_command = 0x00; //命令字
  12          byte idata rx_para[18];//定义rs232接收数组
  13          byte idata tx_para[18];//定义rs232发送数组
  14          byte com_para_len = EMPTY;//数据数组的长度
  15          byte idata com_cs_len = EMPTY;
  16          bit fctl = 0;
  17          bit f1=0;
  18          
  19          void init_com(void);  //串口初始化子函数
  20          void com_return_error(void);//通信出错子函数
  21          
  22          void com_return_error(void)
  23          {  
  24   1          _nop_();
  25   1          _nop_();
  26   1          _nop_();
  27   1          _nop_();
  28   1          _nop_();
  29   1          _nop_();
  30   1          _nop_();
  31   1          _nop_();
  32   1          com_st=COM_ST_IDLE;
  33   1      }
  34          void init_com(void)
  35          {
  36   1        TMOD=0x20; //定时器初始化,定时器T1为方式2,8位自动重装
  37   1        TL1=0xfd; 
  38   1        TH1=0xfd;  //设置9600波特率
  39   1        SCON=0x50; //串口初始化,方式1
  40   1        PCON=0x00;
  41   1        ES=1;      //允许串口中断
  42   1        ET1=0;     //禁止T1中断
  43   1        TR1=1;     //启动T1
  44   1        IP=0x10;   //串口高中断优先级
  45   1        EA=1;      //开中断
  46   1      }
  47          
  48          void int_1(void) interrupt 2 using 2
  49          {
  50   1      	EX1 = 0;
  51   1      	f1 = 1;
  52   1      }
  53          
  54          void max3100_r_prc(void)
  55          {
C51 COMPILER V6.12  COM                                                                    04/20/2006 17:14:56 PAGE 2   

  56   1         switch(com_st) 
  57   1           {
  58   2           	   
  59   2      		case  COM_ST_IDLE:
  60   2      	                     	com_cs_len = 0x00;
  61   2      			     	if(rx_para[0] == COM_MK_HEAD)
  62   2      			         	com_st=COM_ST_LEN;                       	
  63   2      			     	break;
  64   2      		case  COM_ST_LEN:
  65   2      			     	com_cs_len = rx_para[1];      //得到字长
  66   2      			     	com_st=COM_ST_ID;
  67   2      			     	break;
  68   2      		case  COM_ST_ID:
  69   2      				if(rx_para[2] == COM_MK_ID)
  70   2      				{
  71   3      					com_st=COM_ST_CMD;
  72   3      				}
  73   2      				break;
  74   2      			     	 
  75   2      		case  COM_ST_CMD:	       
  76   2      			     	com_command = rx_para[3];
  77   2      			     	com_st = COM_ST_CS;			     
  78   2      			     	break; 	      		     
  79   2      	   	case  COM_ST_CS: 
  80   2      	                     	com_st = COM_ST_SUM;		     
  81   2      			     	break;			              
  82   2      	   	case  COM_ST_SUM:  
  83   2      	                    	com_st = COM_ST_END;			       
  84   2      			     	break;
  85   2      		case COM_ST_END:
  86   2      				if(rx_para[com_cs_len+3] == COM_MK_END)
  87   2      				{
  88   3      					com_st = COM_ST_IDLE;
  89   3      					fctl = 1;
  90   3      					set = 0;     
  91   3      				}
  92   2      				break;
  93   2      	   	default:
  94   2      			   	com_st = COM_ST_IDLE;
  95   2      			  	break;				
  96   2      	        
  97   2           }
  98   1      
  99   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    160    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =     38    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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