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

📄 ytc01.lst

📁 使用AVR的云台控制器程序,通过串口和PC机通讯实现在监控电脑上控制摄像机云台.通过SPI口进行串并转换实现单片机IO扩展.
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0171) 		 CRCT.TXCRC=0;
    00BD 2433      CLR	R3
    00BE 92300064  STS	_CRCT+1,R3
    00C0 92200063  STS	_CRCT,R2
(0172) 		 for(i=0;i<12;i++)
    00C2 2744      CLR	R20
    00C3 C013      RJMP	0x00D7
(0173) 		{
(0174) 		 CRCT.TXCRC=CRCT.TXCRC+RXbuf[i];
    00C4 E685      LDI	R24,0x65
    00C5 E090      LDI	R25,0
    00C6 2FE4      MOV	R30,R20
    00C7 27FF      CLR	R31
    00C8 0FE8      ADD	R30,R24
    00C9 1FF9      ADC	R31,R25
    00CA 8020      LDD	R2,Z+0
    00CB 2433      CLR	R3
    00CC 90400063  LDS	R4,_CRCT
    00CE 90500064  LDS	R5,_CRCT+1
    00D0 0C42      ADD	R4,R2
    00D1 1C53      ADC	R5,R3
    00D2 92500064  STS	_CRCT+1,R5
    00D4 92400063  STS	_CRCT,R4
    00D6 9543      INC	R20
    00D7 304C      CPI	R20,0xC
    00D8 F358      BCS	0x00C4
(0175) 		}//for(i=0;i<12;i++)
(0176) 		
(0177) 		 if(CRCT.txCRC[0]==RXbuf[12] && CRCT.txCRC[1]==RXbuf[13])
    00D9 90200071  LDS	R2,0x71
    00DB 90300063  LDS	R3,_CRCT
    00DD 1432      CP	R3,R2
    00DE F009      BEQ	0x00E0
    00DF C031      RJMP	0x0111
    00E0 90200072  LDS	R2,0x72
    00E2 90300064  LDS	R3,_CRCT+1
    00E4 1432      CP	R3,R2
    00E5 F559      BNE	0x0111
(0178) 		  {
(0179) 		  if(RXbuf[2]=='1')
    00E6 91800067  LDS	R24,_RXbuf+2
    00E8 3381      CPI	R24,0x31
    00E9 F4B9      BNE	0x0101
(0180) 		    {
(0181) 		     
(0182) 			 for(i=3;i<12;i++)
    00EA E043      LDI	R20,3
    00EB C00F      RJMP	0x00FB
(0183) 			    {
(0184) 				  OPDATA[i-3]=RXbuf[i];
    00EC E685      LDI	R24,0x65
    00ED E090      LDI	R25,0
    00EE 2FE4      MOV	R30,R20
    00EF 27FF      CLR	R31
    00F0 0FE8      ADD	R30,R24
    00F1 1FF9      ADC	R31,R25
    00F2 8020      LDD	R2,Z+0
    00F3 E886      LDI	R24,0x86
    00F4 E090      LDI	R25,0
    00F5 2FE4      MOV	R30,R20
    00F6 27FF      CLR	R31
    00F7 0FE8      ADD	R30,R24
    00F8 1FF9      ADC	R31,R25
    00F9 8220      STD	Z+0,R2
    00FA 9543      INC	R20
    00FB 304C      CPI	R20,0xC
    00FC F378      BCS	0x00EC
(0185) 				}//for(i=2;i<10;i++)
(0186) 				
(0187) 			PORTC=OPDATA[0];
    00FD 90200089  LDS	R2,_OPDATA
    00FF BA25      OUT	0x15,R2
(0188) 			SPI_Tran();
    0100 DF60      RCALL	_SPI_Tran
(0189) 	        }//if(RXbuf[2]=='1')
(0190) 			
(0191) 			//ANSWER
(0192) 			TXbufINIT();
    0101 D019      RCALL	_TXbufINIT
(0193) 			for (i=0;i<15;i++)
    0102 2744      CLR	R20
    0103 C00B      RJMP	0x010F
(0194) 			  {
(0195) 			   while(!(UCSRA & (1<<UDRE)))
    0104 9B5D      SBIS	0x0B,5
    0105 CFFE      RJMP	0x0104
(0196) 	            ;
(0197) 	          UDR=TXbuf[i];  //TX the data of rx
    0106 E787      LDI	R24,0x77
    0107 E090      LDI	R25,0
    0108 2FE4      MOV	R30,R20
    0109 27FF      CLR	R31
    010A 0FE8      ADD	R30,R24
    010B 1FF9      ADC	R31,R25
    010C 8020      LDD	R2,Z+0
    010D B82C      OUT	0x0C,R2
    010E 9543      INC	R20
    010F 304F      CPI	R20,0xF
    0110 F398      BCS	0x0104
(0198) 			 }//for (i=0;i<15;i++)
(0199) 		   
(0200) 		 }//if(CRCT.txCRC[0]==RXbuf[12] && CRCT.txCRC[1]==RXbuf[13]) 
(0201) 		 
(0202) 		  
(0203) 	   }//if(RXbuf[1]==BOARDID && RXbuf[12]=='$')
(0204) 	   
(0205) 	   RXbuf[0]=0;
    0111 2422      CLR	R2
    0112 92200065  STS	_RXbuf,R2
(0206) 	   RXbuf[1]=0;
    0114 92200066  STS	_RXbuf+1,R2
(0207) 	   RXbuf[14]=0;
    0116 92200073  STS	0x73,R2
(0208) 	  } //if(RXstartFlag==1 && RXCR==13 && RXbuf[0]=='%')
    0118 D06E      RCALL	pop_gset1
    0119 D09B      RCALL	pop_lset
    011A 9518      RETI
(0209) 	
(0210) 	} //void 
(0211)  
(0212)  
(0213) void TXbufINIT(void)
(0214)      {
(0215) 	 
(0216) 	 unsigned char i;
(0217) 	 TXbuf[0]=37;
_TXbufINIT:
  i                    --> R16
    011B E285      LDI	R24,0x25
    011C 93800077  STS	_TXbuf,R24
(0218) 	 TXbuf[1]=49;
    011E E381      LDI	R24,0x31
    011F 93800078  STS	_TXbuf+1,R24
(0219) 	 TXbuf[2]=49;
    0121 93800079  STS	_TXbuf+2,R24
(0220) 	 TXbuf[14]=36;
    0123 E284      LDI	R24,0x24
    0124 93800085  STS	0x85,R24
(0221) 	  for(i=3;i<12;i++)
    0126 E003      LDI	R16,3
    0127 C00F      RJMP	0x0137
(0222) 		{
(0223) 		 TXbuf[i]=OPDATA[i-3];
    0128 E886      LDI	R24,0x86
    0129 E090      LDI	R25,0
    012A 2FE0      MOV	R30,R16
    012B 27FF      CLR	R31
    012C 0FE8      ADD	R30,R24
    012D 1FF9      ADC	R31,R25
    012E 8020      LDD	R2,Z+0
    012F E787      LDI	R24,0x77
    0130 E090      LDI	R25,0
    0131 2FE0      MOV	R30,R16
    0132 27FF      CLR	R31
    0133 0FE8      ADD	R30,R24
    0134 1FF9      ADC	R31,R25
    0135 8220      STD	Z+0,R2
    0136 9503      INC	R16
    0137 300C      CPI	R16,0xC
    0138 F378      BCS	0x0128
(0224) 		}//for(i=2;i<10;i++)
(0225) 	 CRCT.TXCRC=0;
    0139 2422      CLR	R2
    013A 2433      CLR	R3
    013B 92300064  STS	_CRCT+1,R3
    013D 92200063  STS	_CRCT,R2
(0226) 	 for(i=0;i<12;i++)
    013F 2700      CLR	R16
    0140 C013      RJMP	0x0154
(0227) 		{
(0228) 		 CRCT.TXCRC=CRCT.TXCRC+TXbuf[i];
    0141 E787      LDI	R24,0x77
    0142 E090      LDI	R25,0
    0143 2FE0      MOV	R30,R16
    0144 27FF      CLR	R31
    0145 0FE8      ADD	R30,R24
    0146 1FF9      ADC	R31,R25
    0147 8020      LDD	R2,Z+0
    0148 2433      CLR	R3
    0149 90400063  LDS	R4,_CRCT
    014B 90500064  LDS	R5,_CRCT+1
    014D 0C42      ADD	R4,R2
    014E 1C53      ADC	R5,R3
    014F 92500064  STS	_CRCT+1,R5
    0151 92400063  STS	_CRCT,R4
    0153 9503      INC	R16
    0154 300C      CPI	R16,0xC
    0155 F358      BCS	0x0141
(0229) 		}//f
(0230) 	TXbuf[12]=CRCT.txCRC[0];
    0156 90200063  LDS	R2,_CRCT
    0158 92200083  STS	0x83,R2
(0231) 	TXbuf[13]=CRCT.txCRC[1];
    015A 90200064  LDS	R2,_CRCT+1
    015C 92200084  STS	0x84,R2
    015E 9508      RET
(0232) 	 }
(0233)     
(0234) void main()
(0235) 	{
(0236) 	unsigned char ia;
(0237) 	 port_init();
_main:
  ia                   --> R20
    015F DEEE      RCALL	_port_init
(0238) 	 SPI_MasterInit();
    0160 DEFD      RCALL	_SPI_MasterInit
(0239) 	 uart_init();
    0161 DF10      RCALL	_uart_init
(0240) 	 
(0241) 	 
(0242) 	 
(0243) 	 for(ia=0;ia<13;ia++)
    0162 2744      CLR	R20
    0163 C009      RJMP	0x016D
(0244) 	    {
(0245) 		OPDATA[ia]=0;
    0164 E889      LDI	R24,0x89
    0165 E090      LDI	R25,0
    0166 2FE4      MOV	R30,R20
    0167 27FF      CLR	R31
    0168 0FE8      ADD	R30,R24
    0169 1FF9      ADC	R31,R25
    016A 2422      CLR	R2
    016B 8220      STD	Z+0,R2
    016C 9543      INC	R20
    016D 304D      CPI	R20,0xD
    016E F3A8      BCS	0x0164
(0246) 		}
(0247) 	 
(0248) 	 
(0249) 	 CLRON;
    016F 98C0      CBI	0x18,0
(0250) 	 delayXms(100);
    0170 E604      LDI	R16,0x64
    0171 E010      LDI	R17,0
    0172 DECE      RCALL	_delayXms
(0251) 	 CLROFF;
    0173 9AC0      SBI	0x18,0
(0252) 	 PORTC=0xff;
    0174 EF8F      LDI	R24,0xFF
    0175 BB85      OUT	0x15,R24
(0253) 	 delayXms(1000);
    0176 EE08      LDI	R16,0xE8
    0177 E013      LDI	R17,3
    0178 DEC8      RCALL	_delayXms
(0254) 	 PORTC=0;
    0179 2422      CLR	R2
    017A BA25      OUT	0x15,R2
(0255) 	  SPI_Tran();
    017B DEE5      RCALL	_SPI_Tran
(0256) 	 delayXms(500);
    017C EF04      LDI	R16,0xF4
    017D E011      LDI	R17,1
    017E DEC2      RCALL	_delayXms
(0257) 	 SEI();
    017F 9478      BSET	7
(0258) 	 while(1)
FILE: <library>
    0180 CFFF      RJMP	0x0180
    0181 9508      RET
pop_gset2:
    0182 E0E2      LDI	R30,2
    0183 C004      RJMP	pop
push_gset1:
    0184 935A      ST	R21,-Y
    0185 934A      ST	R20,-Y
    0186 9508      RET
pop_gset1:
    0187 E0E1      LDI	R30,1
pop:
    0188 9149      LD	R20,Y+
    0189 9159      LD	R21,Y+
    018A FDE0      SBRC	R30,0
    018B 9508      RET
    018C 9169      LD	R22,Y+
    018D 9179      LD	R23,Y+
    018E FDE1      SBRC	R30,1
    018F 9508      RET
    0190 90A9      LD	R10,Y+
    0191 90B9      LD	R11,Y+
    0192 FDE2      SBRC	R30,2
    0193 9508      RET
    0194 90C9      LD	R12,Y+
    0195 90D9      LD	R13,Y+
    0196 FDE3      SBRC	R30,3
    0197 9508      RET
    0198 90E9      LD	R14,Y+
    0199 90F9      LD	R15,Y+
    019A 9508      RET
push_gset2:
    019B 937A      ST	R23,-Y
    019C 936A      ST	R22,-Y
    019D CFE6      RJMP	push_gset1
push_lset:
    019E 93FA      ST	R31,-Y
    019F 93EA      ST	R30,-Y
    01A0 93BA      ST	R27,-Y
    01A1 93AA      ST	R26,-Y
    01A2 939A      ST	R25,-Y
    01A3 938A      ST	R24,-Y
    01A4 933A      ST	R19,-Y
    01A5 932A      ST	R18,-Y
    01A6 931A      ST	R17,-Y
    01A7 930A      ST	R16,-Y
    01A8 929A      ST	R9,-Y
    01A9 928A      ST	R8,-Y
    01AA 927A      ST	R7,-Y
    01AB 926A      ST	R6,-Y
    01AC 925A      ST	R5,-Y
    01AD 924A      ST	R4,-Y
    01AE 923A      ST	R3,-Y
    01AF 922A      ST	R2,-Y
    01B0 921A      ST	R1,-Y
    01B1 920A      ST	R0,-Y
    01B2 B60F      IN	R0,0x3F
    01B3 920A      ST	R0,-Y
    01B4 9508      RET
pop_lset:
    01B5 9009      LD	R0,Y+
    01B6 BE0F      OUT	0x3F,R0
    01B7 9009      LD	R0,Y+
    01B8 9019      LD	R1,Y+
    01B9 9029      LD	R2,Y+
    01BA 9039      LD	R3,Y+
    01BB 9049      LD	R4,Y+
    01BC 9059      LD	R5,Y+
    01BD 9069      LD	R6,Y+
    01BE 9079      LD	R7,Y+
    01BF 9089      LD	R8,Y+
    01C0 9099      LD	R9,Y+
    01C1 9109      LD	R16,Y+
    01C2 9119      LD	R17,Y+
    01C3 9129      LD	R18,Y+
    01C4 9139      LD	R19,Y+
    01C5 9189      LD	R24,Y+
    01C6 9199      LD	R25,Y+
    01C7 91A9      LD	R26,Y+
    01C8 91B9      LD	R27,Y+
    01C9 91E9      LD	R30,Y+
    01CA 91F9      LD	R31,Y+
    01CB 9508      RET

⌨️ 快捷键说明

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