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

📄 74ls165.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0034) 				P1  	---------     PB1
(0035) 				P2 		---------     PB2
(0036) 				P3  	---------     PB3
(0037) 				P4  	---------     PB4
(0038) 				P5  	---------     PB5
(0039) 				P6  	---------     PB6
(0040) 				P7  	---------     PB7
(0041) 				PL		---------	  PD2
(0042) 		   SeialBoard(165SrlPort)    M16SD
(0043) 				VCC		---------	  VCC
(0044) 				GND		---------	  GND
(0045) 				TXD		---------	  RXD
(0046) 				RXD		---------	  TXD
(0047) ----------------------------------------------------------------------
(0048) 注意事项:
(0049) 详见M16SD说明书
(0050) ----------------------------------------------------------------------
(0051) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0052) 
(0053) #include <iom16v.h>
(0054) #include "D:\ICC_H\CmmICC.H"
(0055) 
(0056) #define DISP_DDR    DDRB
(0057) #define DISP_PORT   PORTB
(0058) 
(0059) #define SOURCE_DDR  DDRA
(0060) #define SOURCE_PORT PORTA
(0061) 
(0062) #define IN_RXD		cbi(DDRD,0)	   //PD0 数据口
(0063) #define GET_RXD		gbi(PIND,0)
(0064) 
(0065) #define OUT_TXD  	sbi(DDRD,1)	   //PD1 脉冲口
(0066) #define SET_TXD 	sbi(PORTD,1)
(0067) #define CLR_TXD  	cbi(PORTD,1)
(0068) 
(0069) #define OUT_PL		sbi(DDRD,2)	   //PD2 锁存口
(0070) #define SET_PL		sbi(PORTD,2)
(0071) #define CLR_PL		cbi(PORTD,2)
(0072) 
(0073) /*--------------------------------------------------------------------
(0074) 函数名称:
(0075) 函数功能:
(0076) 注意事项:
(0077) 提示说明:
(0078) 输    入:
(0079) 返    回:
(0080) --------------------------------------------------------------------*/
(0081) uint8 getDat()
(0082) {
(0083) 	uint8 i,dat;
(0084) 
(0085) 	for(i=0;i<8;i++)
_getDat:
  i                    --> R16
  dat                  --> R18
    01FA 2700      CLR	R16
    01FB C007      RJMP	0x0203
(0086) 	{
(0087) 		SET_TXD;
    01FC 9A91      SBI	0x12,1
(0088) 		if(GET_RXD)
    01FD 9B80      SBIS	0x10,0
    01FE C001      RJMP	0x0200
(0089) 			dat |= 0x01;
    01FF 6021      ORI	R18,1
(0090) 		dat = dat<<1;
    0200 0F22      LSL	R18
(0091) 		CLR_TXD;
    0201 9891      CBI	0x12,1
    0202 9503      INC	R16
    0203 3008      CPI	R16,0x8
    0204 F3B8      BCS	0x01FC
(0092) 	}
(0093) 	dat = dat>>1;
    0205 9526      LSR	R18
(0094) 	return dat;
    0206 2F02      MOV	R16,R18
    0207 9508      RET
(0095) }
(0096) /*--------------------------------------------------------------------
(0097) 函数名称:
(0098) 函数功能:
(0099) 注意事项:
(0100) 提示说明:
(0101) 输    入:
(0102) 返    回:
(0103) --------------------------------------------------------------------*/
(0104) void main()
(0105) {	
(0106) 	uint8 i;
(0107) 	
(0108) 	DISP_DDR = 0XFF;
_main:
  i                    --> Y+1
    0208 EF8F      LDI	R24,0xFF
    0209 BB87      OUT	0x17,R24
(0109) 	SOURCE_DDR = 0XFF;
    020A BB8A      OUT	0x1A,R24
(0110) 	OUT_PL;
    020B 9A8A      SBI	0x11,2
(0111) 	OUT_TXD;
    020C 9A89      SBI	0x11,1
(0112) 	IN_RXD;
    020D 9888      CBI	0x11,0
(0113) 	//while(1)
(0114) 	//{
(0115) 		SOURCE_PORT = 0X55;
    020E E585      LDI	R24,0x55
    020F BB8B      OUT	0x1B,R24
(0116) 		SET_PL;
    0210 9A92      SBI	0x12,2
(0117) 		CLR_PL;
    0211 9892      CBI	0x12,2
(0118) 		SET_PL;
    0212 9A92      SBI	0x12,2
(0119) 		DISP_PORT = getDat();
FILE: <library>
    0213 DFE6      RCALL	_getDat
    0214 BB08      OUT	0x18,R16
    0215 9508      RET
push_arg4:
    0216 933A      ST	R19,-Y
    0217 932A      ST	R18,-Y
push_arg2:
    0218 931A      ST	R17,-Y
    0219 930A      ST	R16,-Y
    021A 9508      RET
div32u:
    021B 94E8      BCLR	6
    021C C001      RJMP	0x021E
mod32u:
    021D 9468      BSET	6
    021E D02F      RCALL	long_div_prolog
    021F 24CC      CLR	R12
    0220 C008      RJMP	0x0229
div32s:
    0221 94E8      BCLR	6
    0222 C001      RJMP	0x0224
mod32s:
    0223 9468      BSET	6
    0224 D029      RCALL	long_div_prolog
    0225 FD37      SBRC	R19,7
    0226 D053      RCALL	neg_R16_R19
    0227 FDB7      SBRC	R27,7
    0228 D05A      RCALL	neg_R24_R27
    0229 2477      CLR	R7
    022A 2488      CLR	R8
    022B 2499      CLR	R9
    022C 24AA      CLR	R10
    022D 24BB      CLR	R11
    022E D041      RCALL	tst_R16_R19
    022F F0C1      BEQ	0x0248
    0230 D044      RCALL	tst_R24_R27
    0231 F0B1      BEQ	0x0248
    0232 E2E8      LDI	R30,0x28
    0233 0F00      LSL	R16
    0234 1F11      ROL	R17
    0235 1F22      ROL	R18
    0236 1F33      ROL	R19
    0237 1C77      ROL	R7
    0238 1C88      ROL	R8
    0239 1C99      ROL	R9
    023A 1CAA      ROL	R10
    023B 1CBB      ROL	R11
    023C 1688      CP	R8,R24
    023D 0699      CPC	R9,R25
    023E 06AA      CPC	R10,R26
    023F 06BB      CPC	R11,R27
    0240 F028      BCS	0x0246
    0241 1A88      SUB	R8,R24
    0242 0A99      SBC	R9,R25
    0243 0AAA      SBC	R10,R26
    0244 0ABB      SBC	R11,R27
    0245 9503      INC	R16
    0246 95EA      DEC	R30
    0247 F759      BNE	0x0233
    0248 F426      BRTC	0x024D
    0249 2D08      MOV	R16,R8
    024A 2D19      MOV	R17,R9
    024B 2D2A      MOV	R18,R10
    024C 2D3B      MOV	R19,R11
    024D C013      RJMP	long_div_epilog
long_div_prolog:
    024E 927A      ST	R7,-Y
    024F 928A      ST	R8,-Y
    0250 929A      ST	R9,-Y
    0251 92AA      ST	R10,-Y
    0252 92BA      ST	R11,-Y
    0253 92CA      ST	R12,-Y
    0254 93EA      ST	R30,-Y
    0255 938A      ST	R24,-Y
    0256 939A      ST	R25,-Y
    0257 93AA      ST	R26,-Y
    0258 93BA      ST	R27,-Y
    0259 858B      LDD	R24,Y+11
    025A 859C      LDD	R25,Y+12
    025B 85AD      LDD	R26,Y+13
    025C 85BE      LDD	R27,Y+14
    025D 2EC3      MOV	R12,R19
    025E F00E      BRTS	0x0260
    025F 26CB      EOR	R12,R27
    0260 9508      RET
long_div_epilog:
    0261 FCC7      SBRC	R12,7
    0262 D017      RCALL	neg_R16_R19
    0263 91B9      LD	R27,Y+
    0264 91A9      LD	R26,Y+
    0265 9199      LD	R25,Y+
    0266 9189      LD	R24,Y+
    0267 91E9      LD	R30,Y+
    0268 90C9      LD	R12,Y+
    0269 90B9      LD	R11,Y+
    026A 90A9      LD	R10,Y+
    026B 9099      LD	R9,Y+
    026C 9089      LD	R8,Y+
    026D 9079      LD	R7,Y+
    026E 9624      ADIW	R28,4
    026F 9508      RET
tst_R16_R19:
    0270 2FE0      MOV	R30,R16
    0271 2BE1      OR	R30,R17
    0272 2BE2      OR	R30,R18
    0273 2BE3      OR	R30,R19
    0274 9508      RET
tst_R24_R27:
    0275 2FE8      MOV	R30,R24
    0276 2BE9      OR	R30,R25
    0277 2BEA      OR	R30,R26
    0278 2BEB      OR	R30,R27
    0279 9508      RET
neg_R16_R19:
    027A 9500      COM	R16
    027B 9510      COM	R17
    027C 9520      COM	R18
    027D 9530      COM	R19
    027E 5F0F      SUBI	R16,0xFF
    027F 4F1F      SBCI	R17,0xFF
    0280 4F2F      SBCI	R18,0xFF
    0281 4F3F      SBCI	R19,0xFF
    0282 9508      RET
neg_R24_R27:
    0283 9580      COM	R24
    0284 9590      COM	R25
    0285 95A0      COM	R26
    0286 95B0      COM	R27
    0287 5F8F      SUBI	R24,0xFF
    0288 4F9F      SBCI	R25,0xFF
    0289 4FAF      SBCI	R26,0xFF
    028A 4FBF      SBCI	R27,0xFF
    028B 9508      RET
empy32s:
empy32u:
    028C 940E02E1  CALL	long_prolog
    028E 927F      PUSH	R7
    028F 940E02FA  CALL	tstzero1
    0291 F139      BEQ	0x02B9
    0292 2477      CLR	R7
    0293 940E0300  CALL	tstzero2
    0295 F419      BNE	0x0299
    0296 018C      MOVW	R16,R24
    0297 019D      MOVW	R18,R26
    0298 C020      RJMP	0x02B9
    0299 9F08      MUL	R16,R24
    029A 2CB0      MOV	R11,R0
    029B 2CA1      MOV	R10,R1
    029C 9F28      MUL	R18,R24
    029D 2C90      MOV	R9,R0
    029E 2C81      MOV	R8,R1
    029F 9F18      MUL	R17,R24
    02A0 0CA0      ADD	R10,R0
    02A1 1C91      ADC	R9,R1
    02A2 1C87      ADC	R8,R7
    02A3 9F09      MUL	R16,R25
    02A4 0CA0      ADD	R10,R0
    02A5 1C91      ADC	R9,R1
    02A6 1C87      ADC	R8,R7
    02A7 9F19      MUL	R17,R25
    02A8 0C90      ADD	R9,R0
    02A9 1C81      ADC	R8,R1
    02AA 9F0A      MUL	R16,R26
    02AB 0C90      ADD	R9,R0
    02AC 1C81      ADC	R8,R1
    02AD 9F38      MUL	R19,R24
    02AE 0C80      ADD	R8,R0
    02AF 9F29      MUL	R18,R25
    02B0 0C80      ADD	R8,R0
    02B1 9F1A      MUL	R17,R26
    02B2 0C80      ADD	R8,R0
    02B3 9F0B      MUL	R16,R27
    02B4 0C80      ADD	R8,R0
    02B5 2D0B      MOV	R16,R11
    02B6 2D1A      MOV	R17,R10
    02B7 2D29      MOV	R18,R9
    02B8 2D38      MOV	R19,R8
    02B9 907F      POP	R7
    02BA 940C02EF  JMP	long_epilog
pop_gset2:
    02BC E0E2      LDI	R30,2
    02BD 940C02CE  JMP	pop
pop_gset4:
    02BF E0E8      LDI	R30,0x8
    02C0 940C02CE  JMP	pop
push_gset5:
    02C2 92FA      ST	R15,-Y
    02C3 92EA      ST	R14,-Y
push_gset4:
    02C4 92DA      ST	R13,-Y
    02C5 92CA      ST	R12,-Y
push_gset3:
    02C6 92BA      ST	R11,-Y
    02C7 92AA      ST	R10,-Y
push_gset2:
    02C8 937A      ST	R23,-Y
    02C9 936A      ST	R22,-Y
push_gset1:
    02CA 935A      ST	R21,-Y
    02CB 934A      ST	R20,-Y
    02CC 9508      RET
pop_gset1:
    02CD E0E1      LDI	R30,1
pop:
    02CE 9149      LD	R20,Y+
    02CF 9159      LD	R21,Y+
    02D0 FDE0      SBRC	R30,0
    02D1 9508      RET
    02D2 9169      LD	R22,Y+
    02D3 9179      LD	R23,Y+
    02D4 FDE1      SBRC	R30,1
    02D5 9508      RET
    02D6 90A9      LD	R10,Y+
    02D7 90B9      LD	R11,Y+
    02D8 FDE2      SBRC	R30,2
    02D9 9508      RET
    02DA 90C9      LD	R12,Y+
    02DB 90D9      LD	R13,Y+
    02DC FDE3      SBRC	R30,3
    02DD 9508      RET
    02DE 90E9      LD	R14,Y+
    02DF 90F9      LD	R15,Y+
    02E0 9508      RET
long_prolog:
    02E1 928A      ST	R8,-Y
    02E2 929A      ST	R9,-Y
    02E3 92AA      ST	R10,-Y
    02E4 92BA      ST	R11,-Y
    02E5 93EA      ST	R30,-Y
    02E6 938A      ST	R24,-Y
    02E7 939A      ST	R25,-Y
    02E8 93AA      ST	R26,-Y
    02E9 93BA      ST	R27,-Y
    02EA 8589      LDD	R24,Y+9
    02EB 859A      LDD	R25,Y+10
    02EC 85AB      LDD	R26,Y+11
    02ED 85BC      LDD	R27,Y+12
    02EE 9508      RET
long_epilog:
    02EF 91B9      LD	R27,Y+
    02F0 91A9      LD	R26,Y+
    02F1 9199      LD	R25,Y+
    02F2 9189      LD	R24,Y+
    02F3 91E9      LD	R30,Y+
    02F4 90B9      LD	R11,Y+
    02F5 90A9      LD	R10,Y+
    02F6 9099      LD	R9,Y+
    02F7 9089      LD	R8,Y+
    02F8 9624      ADIW	R28,4
    02F9 9508      RET
tstzero1:
    02FA 27EE      CLR	R30
    02FB 2BE0      OR	R30,R16
    02FC 2BE1      OR	R30,R17
    02FD 2BE2      OR	R30,R18
    02FE 2BE3      OR	R30,R19
    02FF 9508      RET
tstzero2:
    0300 27EE      CLR	R30
    0301 2BE8      OR	R30,R24
    0302 2BE9      OR	R30,R25
    0303 2BEA      OR	R30,R26
    0304 2BEB      OR	R30,R27
    0305 9508      RET

⌨️ 快捷键说明

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