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

📄 communication.src

📁 楼宇对讲系统里用的文字信息接收。用可视对讲话机的TFT屏可看到从管理中心发过来的广播信息和本户的特发信息
💻 SRC
字号:
; .\COMMUNICATION.SRC generated from: COMMUNICATION.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE COMMUNICATION.c BROWSE DEBUG OBJECTEXTEND SRC(.\COMMUNICATION.SRC)

$NOMOD51

NAME	COMMUNICATION

P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
T2	BIT	090H.0
EA	BIT	0A8H.7
IE	DATA	0A8H
EXF2	BIT	0C8H.6
RD	BIT	0B0H.7
ES	BIT	0A8H.4
IP	DATA	0B8H
RI	BIT	098H.0
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
T2EX	BIT	090H.1
OV	BIT	0D0H.2
RCAP2L	DATA	0CAH
C_T2	BIT	0C8H.1
WR	BIT	0B0H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
RXD_PIN	BIT	0B0H.1
TXD_PIN	BIT	0B0H.0
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
CP_RL2	BIT	0C8H.0
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
TF2	BIT	0C8H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
TH2	DATA	0CDH
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
TL2	DATA	0CCH
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
PT2	BIT	0B8H.5
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
EXEN2	BIT	0C8H.3
REN	BIT	098H.4
T2CON	DATA	0C8H
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
?PR?Send_byte?COMMUNICATION              SEGMENT CODE 
	PUBLIC	Send_byte
; 
; /***********************************************************/
; /*							                               */
; /*                CPU:AT89S55   11.059MHZ                  */
; /*                Copyright  2004.09  Comelit              */
; /*                                                         */
; /*                                                         */
; /***********************************************************/
; /*                Version  1.0                             */
; /***********************************************************/
; /*      baud rate:9600bps/s   per bit send time=104.167us  */
; /*      per bit send machine time = 104.167/1.08507=96     */
; 
; #include "reg52.h"
; 
; 
; #define  BUS_BUSY   0
; #define  BUS_IDLE   1
; #define  START_BIT  0
; /* baud rate */
; #define TM104US  3
; 
; #define DISABLE_SEND (bit)0
; #define ENABLE_SEND  (bit)1
; #define HIGH         (bit)1
; #define LOW          (bit)0
; 
; 
; sbit RXD_PIN = P3^1 ;
; sbit TXD_PIN = P3^0 ;
; extern unsigned char data tx_data;
; extern bit send_F ;
; #pragma asm
   //   tx_data data 40H
   //  send_F   bit 20H.0 
  EXTRN DATA (tx_data)
  EXTRN BIT (send_F)
; #pragma endasm
; void Send_byte(void) ;
; /***********************************************************/
; /*        arguments:  NO                                   */
; /*        returns:   1        allow send data              */
; /*                   0        disable send data            */
; /***********************************************************/
; /*
; bit Judge_Send(void)
; {
; 
;    if(RXD_PIN == BUS_IDLE)
;    {
;       idle_count = 1 ;                            // it's need that delay  one byte send time
;       ETx = 1 ;    
;       
;       
;       
;       }
;     else
;     {
;        idle_count = 0 ;
;      }
; } 
; 
; */
; /***********************************************************/
; /***********************************************************/
; /* tx_data */
; 
; void Send_byte(void)

	RSEG  ?PR?Send_byte?COMMUNICATION
Send_byte:
			; SOURCE LINE # 68
; { 
			; SOURCE LINE # 69
;  //	unsigned char i;
;     #pragma asm 
; 
	  
;      // f_collisione=FALSE;
	  
;      //   TXD_PIN = START_BIT; 
	  
; 	     CLR TXD_PIN                              
	  CLR TXD_PIN                              
;      //   Delay_us(TM104.167US);
	  
; 	 //   Delay 104US 
	  
; /*  2+2+2+2+1+((1+(1+2)*8)+2)*TM114US = 90 machine time */
	  
;          push ACC                 ;2
	  push ACC                 ;2
;          push  0H                 ;2
	  push  0H                 ;2
;          push  1H				  ;2
	  push  1H				  ;2
; 		 push  7H                 ;2
	  push  7H                 ;2
;          mov   R0,#TM104US         ;1
	  mov   R0,#3         ;1
;  LOOP1:	 mov   R1,#8              ;1
	  LOOP1:	 mov   R1,#8              ;1
;  LOOP2:  NOP                      ;1
	  LOOP2:  NOP                      ;1
; 		 DJNZ R1,LOOP2            ;2
	  DJNZ R1,LOOP2            ;2
; 		 DJNZ  R0,LOOP1           ;2
	  DJNZ  R0,LOOP1           ;2
; 
	  
; //delay over
	  
;         
	  
; //  for(i=0;i<8;i++)		
	  
; //---- Variable 'i?040' assigned to Register 'R7' ----
	  
; 	CLR  	A                           //1 machine CYC
	  CLR  	A                            
; 	MOV  	R7,A                        //1 machine CYC
	  MOV  	R7,A                         
; L0001:
	  L0001:
; //  {    
	  
; //	  	if(tx_data &0x80)               		
	  
; 	MOV  	A,tx_data                   //1 machine CYC
	  MOV  	A,tx_data                    
; 	JNB  	ACC.7,L0004                 //2 machine CYC  
	  JNB  	ACC.7,L0004                  
; // 	{
	  
; // 	    TXD_PIN = HIGH ;
	  
; /* last time == 96 machine time */		
	  
; 	SETB 	TXD_PIN                     //1 machine CYC
	  SETB 	TXD_PIN                      
; //	Delay_20US start
	  
;     MOV R0,#9                           //1 machine CYC
	  MOV R0,#9                            
; Delay_20CYC:
	  Delay_20CYC:
;     DJNZ R0,Delay_20CYC                  //2 machine CYC
	  DJNZ R0,Delay_20CYC                   
; 	NOP                                 //1	machine CYC   
	  NOP                                  
; //Delay_20US OVER
	  
; // 		if(!RXD_PIN)                    //		
	  
; 	JB   	RXD_PIN,L0005               //2 machine CYC
	  JB   	RXD_PIN,L0005                
; // 		{				
	  
; // 		     send_F = DISABLE_SEND ;	
	  
; 	CLR  	send_F
	  CLR  	send_F
; 	RET  	
	  RET  	
;  	//       TXD_PIN = HIGH ;
	  
; // 			 return;
	  
; // 		 }
	  
; 		
	  
; L0005:
	  L0005:
;  		 //DELAY 21 machine CYC 
	  
;  	     MOV R0,#10                          //1 machine CYC
	  MOV R0,#10                           
; First_21CYC:
	  First_21CYC:
;         DJNZ R0,First_21CYC                  //2 machine CYC
	  DJNZ R0,First_21CYC                   
;  		  //delay_21CYC  over
	  
; // 	     if(!RXD_PIN)
	  
; 		
	  
; 	JB   	RXD_PIN,L0007              //2 machine CYC
	  JB   	RXD_PIN,L0007               
; // 		{			
	  
; // 			 send_F = DISABLE_SEND ; 			
	  
; 	CLR  	send_F  
	  CLR  	send_F  
; 	RET  	
	  RET  	
;   	     //    TXD_PIN = HIGH ;
	  
; // 			 return;
	  
; // 		 }
	  
; 			
	  
; L0007:
	  L0007:
;  	
	  
; // Second_21CYC delay start
	  
;  	     MOV R0,#10                          //1 machine CYC
	  MOV R0,#10                           
; Second_21CYC:
	  Second_21CYC:
;         DJNZ R0,Second_21CYC                  //2 machine CYC
	  DJNZ R0,Second_21CYC                   
; //Second_21CYC  delay over 
	  
; // 	     if(!RXD_PIN)			
	  
; 	JB   	RXD_PIN,L0008              //2  machine CYC
	  JB   	RXD_PIN,L0008               
; // 		{				
	  
; //  	   send_F = DISABLE_SEND ;			
	  
; 	CLR  	send_F
	  CLR  	send_F
; 	RET  	
	  RET  	
;  		 //    TXD_PIN = HIGH ;
	  
; // 			 return;
	  
; // 		 }			
	  
; L0008:
	  L0008:
; // Third_21CYC delay start
	  
;  	 MOV R0,#10                          //1 machine CYC
	  MOV R0,#10                           
; Third_21CYC:
	  Third_21CYC:
;      DJNZ R0,Third_21CYC                  //2 machine CYC
	  DJNZ R0,Third_21CYC                   
; //Third_21CYC  delay over 	 
	  
; // 	      if(!RXD_PIN)		
	  
; 	JB   	RXD_PIN,L0010              //2 machine CYC
	  JB   	RXD_PIN,L0010               
; // 		{ 			
	  
; // 	         send_F = DISABLE_SEND ;
	  
; 			
	  
; 	CLR  	send_F
	  CLR  	send_F
; 	RET  	
	  RET  	
;          //     TXD_PIN = HIGH ;
	  
; // 			 return;
	  
; // 		 }
	  
; 		
	  
; // 	} 
	  
; 			
	  
; L0004:
	  L0004:
; //     else                                  //0
	  
; //    { 		
	  
; //         TXD_PIN = LOW ;
	  
; 		CLR  	TXD_PIN                      // 1 machine CYC
	  CLR  	TXD_PIN                       
; //Delay_83CYC  START
	  
;  	 MOV R0,#40                          //1 machine CYC
	  MOV R0,#40                           
; Delay_84CYC:
	  Delay_84CYC:
;      DJNZ R0,Delay_84CYC                 //2 machine CYC
	  DJNZ R0,Delay_84CYC                  
; 	 NOP
	  NOP
; 	 NOP
	  NOP
; 	 NOP
	  NOP
; //Delay_83CYC  over 	 
	  
; // 	}	               
	  
; 			
	  
; L0010: 
	  L0010: 
; //      tx_data <<= 1 ; 		
	  
;     NOP                            // 1 machine CYC
	  NOP                             
; 	NOP                            // 1 machine CYC
	  NOP                             
; 	MOV  	A,tx_data              // 1 machine CYC
	  MOV  	A,tx_data               
; //	ADD  	A,ACC
	  
;     RL      A                      // 1 machine  CYC
	  RL      A                       
; 	MOV  	tx_data,A              // 1 machine  CYC
	  MOV  	tx_data,A               
; //   }		
	  
; 	INC  	R7                     // 1 machine  CYC
	  INC  	R7                      
; 	
	  
; 	CJNE 	R7,#08H,L0001          // 2 machine  CYC
	  CJNE 	R7,#08H,L0001           
; L0002: 
	  L0002: 
; // 	TXD_PIN = HIGH ;			
	  
; 	SETB 	TXD_PIN
	  SETB 	TXD_PIN
; // }			
	  
; L0006:
	  L0006:
; 	RET  	
	  RET  	
;  
	  
; 	#pragma endasm
; }  
			; SOURCE LINE # 207
	RET  	
; END OF Send_byte

	END

⌨️ 快捷键说明

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