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

📄 74ls164.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0015) 
(0016) 说    明:   若用于商业用途,请保留此段文字或注明代码来源
(0017) 		
(0018) 	深 圳 微 雪 电 子 保 留 所 有 的 版 权     
(0019) *********************************************************************/
(0020) 
(0021) /*01010101010101010101010101010101010101010101010101010101010101010101
(0022) ----------------------------------------------------------------------
(0023) 版本更新记录:
(0024) 
(0025) ----------------------------------------------------------------------
(0026) 实验内容:
(0027) 使用PB口的LED指示灯查看MCU自己从串口发送的数据。
(0028) ----------------------------------------------------------------------
(0029) 硬件连接:
(0030) 接口说明: SeialBoard(164PrlPort)     M16SD
(0031) 				Q0		---------     PB0
(0032) 				Q1  	---------     PB1
(0033) 				Q2 		---------     PB2
(0034) 				Q3  	---------     PB3
(0035) 				Q4  	---------     PB4
(0036) 				Q5  	---------     PB5
(0037) 				Q6  	---------     PB6
(0038) 				Q7  	---------     PB7
(0039) 		  SeialBoard(164SrlPort)     M16SD
(0040) 				VCC		---------	  VCC
(0041) 				GND		---------	  GND
(0042) 				TXD		---------	  RXD
(0043) 				RXD		---------	  TXD
(0044) ----------------------------------------------------------------------
(0045) 注意事项:
(0046) 详见M16SD说明书
(0047) ----------------------------------------------------------------------
(0048) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0049) 
(0050) #include <iom16v.h>
(0051) #include "D:\ICC_H\CmmICC.H"
(0052) 
(0053) #define DISP_PORT	PORTB
(0054) #define DISP_DDR	DDRB
(0055) 
(0056) #define OUT_RXD		sbi(DDRD,0)	   //PD0 数据口
(0057) #define SET_RXD		sbi(PORTD,0)
(0058) #define CLR_RXD		cbi(PORTD,0)
(0059) #define OUT_TXD  	sbi(DDRD,1)	   //PD1 脉冲口
(0060) #define SET_TXD 	sbi(PORTD,1)
(0061) #define CLR_TXD  	cbi(PORTD,1)
(0062) 
(0063) 
(0064) //#define data7  (bool)operData&0x80
(0065) 
(0066) /*--------------------------------------------------------------------
(0067) 函数名称:
(0068) 函数功能:
(0069) 注意事项:
(0070) 提示说明:
(0071) 输    入:
(0072) 返    回:
(0073) --------------------------------------------------------------------*/
(0074) void output(uint8 dat)
(0075) {
(0076) 	uint8 i;
(0077) 
(0078) 	for(i=0;i<8;i++)
    01FC 2744      CLR	R20
    01FD C009      RJMP	0x0207
(0079) 	{
(0080) 		SET_TXD;
    01FE 9A91      SBI	0x12,1
(0081) 		if((bool)dat&0x01)
    01FF FF00      SBRS	R16,0
    0200 C002      RJMP	0x0203
(0082) 			SET_RXD;
    0201 9A90      SBI	0x12,0
    0202 C001      RJMP	0x0204
(0083) 		else
(0084) 			CLR_RXD;
    0203 9890      CBI	0x12,0
(0085) 		CLR_TXD;
    0204 9891      CBI	0x12,1
(0086) 		dat = dat>>1;
    0205 9506      LSR	R16
    0206 9543      INC	R20
    0207 3048      CPI	R20,0x8
    0208 F3A8      BCS	0x01FE
    0209 940E02CA  CALL	pop_gset1
    020B 9508      RET
(0087) 	}
(0088) }
(0089) /*--------------------------------------------------------------------
(0090) 函数名称:
(0091) 函数功能:
(0092) 注意事项:
(0093) 提示说明:
(0094) 输    入:
(0095) 返    回:
(0096) --------------------------------------------------------------------*/
(0097) void main()
(0098) {
(0099)     uint8 dat=0X55;						//改变dat,观察数据变化
_main:
  dat                  --> R20
    020C E545      LDI	R20,0x55
(0100) 	
(0101) 	OUT_RXD;
    020D 9A88      SBI	0x11,0
(0102) 	OUT_TXD;
    020E 9A89      SBI	0x11,1
(0103) 	output(dat);
    020F 2F04      MOV	R16,R20
    0210 DFE9      RCALL	_output
(0104) 	while(1);
FILE: <library>
    0211 CFFF      RJMP	0x0211
    0212 9508      RET
push_arg4:
    0213 933A      ST	R19,-Y
    0214 932A      ST	R18,-Y
push_arg2:
    0215 931A      ST	R17,-Y
    0216 930A      ST	R16,-Y
    0217 9508      RET
div32u:
    0218 94E8      BCLR	6
    0219 C001      RJMP	0x021B
mod32u:
    021A 9468      BSET	6
    021B D02F      RCALL	long_div_prolog
    021C 24CC      CLR	R12
    021D C008      RJMP	0x0226
div32s:
    021E 94E8      BCLR	6
    021F C001      RJMP	0x0221
mod32s:
    0220 9468      BSET	6
    0221 D029      RCALL	long_div_prolog
    0222 FD37      SBRC	R19,7
    0223 D053      RCALL	neg_R16_R19
    0224 FDB7      SBRC	R27,7
    0225 D05A      RCALL	neg_R24_R27
    0226 2477      CLR	R7
    0227 2488      CLR	R8
    0228 2499      CLR	R9
    0229 24AA      CLR	R10
    022A 24BB      CLR	R11
    022B D041      RCALL	tst_R16_R19
    022C F0C1      BEQ	0x0245
    022D D044      RCALL	tst_R24_R27
    022E F0B1      BEQ	0x0245
    022F E2E8      LDI	R30,0x28
    0230 0F00      LSL	R16
    0231 1F11      ROL	R17
    0232 1F22      ROL	R18
    0233 1F33      ROL	R19
    0234 1C77      ROL	R7
    0235 1C88      ROL	R8
    0236 1C99      ROL	R9
    0237 1CAA      ROL	R10
    0238 1CBB      ROL	R11
    0239 1688      CP	R8,R24
    023A 0699      CPC	R9,R25
    023B 06AA      CPC	R10,R26
    023C 06BB      CPC	R11,R27
    023D F028      BCS	0x0243
    023E 1A88      SUB	R8,R24
    023F 0A99      SBC	R9,R25
    0240 0AAA      SBC	R10,R26
    0241 0ABB      SBC	R11,R27
    0242 9503      INC	R16
    0243 95EA      DEC	R30
    0244 F759      BNE	0x0230
    0245 F426      BRTC	0x024A
    0246 2D08      MOV	R16,R8
    0247 2D19      MOV	R17,R9
    0248 2D2A      MOV	R18,R10
    0249 2D3B      MOV	R19,R11
    024A C013      RJMP	long_div_epilog
long_div_prolog:
    024B 927A      ST	R7,-Y
    024C 928A      ST	R8,-Y
    024D 929A      ST	R9,-Y
    024E 92AA      ST	R10,-Y
    024F 92BA      ST	R11,-Y
    0250 92CA      ST	R12,-Y
    0251 93EA      ST	R30,-Y
    0252 938A      ST	R24,-Y
    0253 939A      ST	R25,-Y
    0254 93AA      ST	R26,-Y
    0255 93BA      ST	R27,-Y
    0256 858B      LDD	R24,Y+11
    0257 859C      LDD	R25,Y+12
    0258 85AD      LDD	R26,Y+13
    0259 85BE      LDD	R27,Y+14
    025A 2EC3      MOV	R12,R19
    025B F00E      BRTS	0x025D
    025C 26CB      EOR	R12,R27
    025D 9508      RET
long_div_epilog:
    025E FCC7      SBRC	R12,7
    025F D017      RCALL	neg_R16_R19
    0260 91B9      LD	R27,Y+
    0261 91A9      LD	R26,Y+
    0262 9199      LD	R25,Y+
    0263 9189      LD	R24,Y+
    0264 91E9      LD	R30,Y+
    0265 90C9      LD	R12,Y+
    0266 90B9      LD	R11,Y+
    0267 90A9      LD	R10,Y+
    0268 9099      LD	R9,Y+
    0269 9089      LD	R8,Y+
    026A 9079      LD	R7,Y+
    026B 9624      ADIW	R28,4
    026C 9508      RET
tst_R16_R19:
    026D 2FE0      MOV	R30,R16
    026E 2BE1      OR	R30,R17
    026F 2BE2      OR	R30,R18
    0270 2BE3      OR	R30,R19
    0271 9508      RET
tst_R24_R27:
    0272 2FE8      MOV	R30,R24
    0273 2BE9      OR	R30,R25
    0274 2BEA      OR	R30,R26
    0275 2BEB      OR	R30,R27
    0276 9508      RET
neg_R16_R19:
    0277 9500      COM	R16
    0278 9510      COM	R17
    0279 9520      COM	R18
    027A 9530      COM	R19
    027B 5F0F      SUBI	R16,0xFF
    027C 4F1F      SBCI	R17,0xFF
    027D 4F2F      SBCI	R18,0xFF
    027E 4F3F      SBCI	R19,0xFF
    027F 9508      RET
neg_R24_R27:
    0280 9580      COM	R24
    0281 9590      COM	R25
    0282 95A0      COM	R26
    0283 95B0      COM	R27
    0284 5F8F      SUBI	R24,0xFF
    0285 4F9F      SBCI	R25,0xFF
    0286 4FAF      SBCI	R26,0xFF
    0287 4FBF      SBCI	R27,0xFF
    0288 9508      RET
empy32s:
empy32u:
    0289 940E02DE  CALL	long_prolog
    028B 927F      PUSH	R7
    028C 940E02F7  CALL	tstzero1
    028E F139      BEQ	0x02B6
    028F 2477      CLR	R7
    0290 940E02FD  CALL	tstzero2
    0292 F419      BNE	0x0296
    0293 018C      MOVW	R16,R24
    0294 019D      MOVW	R18,R26
    0295 C020      RJMP	0x02B6
    0296 9F08      MUL	R16,R24
    0297 2CB0      MOV	R11,R0
    0298 2CA1      MOV	R10,R1
    0299 9F28      MUL	R18,R24
    029A 2C90      MOV	R9,R0
    029B 2C81      MOV	R8,R1
    029C 9F18      MUL	R17,R24
    029D 0CA0      ADD	R10,R0
    029E 1C91      ADC	R9,R1
    029F 1C87      ADC	R8,R7
    02A0 9F09      MUL	R16,R25
    02A1 0CA0      ADD	R10,R0
    02A2 1C91      ADC	R9,R1
    02A3 1C87      ADC	R8,R7
    02A4 9F19      MUL	R17,R25
    02A5 0C90      ADD	R9,R0
    02A6 1C81      ADC	R8,R1
    02A7 9F0A      MUL	R16,R26
    02A8 0C90      ADD	R9,R0
    02A9 1C81      ADC	R8,R1
    02AA 9F38      MUL	R19,R24
    02AB 0C80      ADD	R8,R0
    02AC 9F29      MUL	R18,R25
    02AD 0C80      ADD	R8,R0
    02AE 9F1A      MUL	R17,R26
    02AF 0C80      ADD	R8,R0
    02B0 9F0B      MUL	R16,R27
    02B1 0C80      ADD	R8,R0
    02B2 2D0B      MOV	R16,R11
    02B3 2D1A      MOV	R17,R10
    02B4 2D29      MOV	R18,R9
    02B5 2D38      MOV	R19,R8
    02B6 907F      POP	R7
    02B7 940C02EC  JMP	long_epilog
pop_gset2:
    02B9 E0E2      LDI	R30,2
    02BA 940C02CB  JMP	pop
pop_gset4:
    02BC E0E8      LDI	R30,0x8
    02BD 940C02CB  JMP	pop
push_gset5:
    02BF 92FA      ST	R15,-Y
    02C0 92EA      ST	R14,-Y
push_gset4:
    02C1 92DA      ST	R13,-Y
    02C2 92CA      ST	R12,-Y
push_gset3:
    02C3 92BA      ST	R11,-Y
    02C4 92AA      ST	R10,-Y
push_gset2:
    02C5 937A      ST	R23,-Y
    02C6 936A      ST	R22,-Y
push_gset1:
    02C7 935A      ST	R21,-Y
    02C8 934A      ST	R20,-Y
    02C9 9508      RET
pop_gset1:
    02CA E0E1      LDI	R30,1
pop:
    02CB 9149      LD	R20,Y+
    02CC 9159      LD	R21,Y+
    02CD FDE0      SBRC	R30,0
    02CE 9508      RET
    02CF 9169      LD	R22,Y+
    02D0 9179      LD	R23,Y+
    02D1 FDE1      SBRC	R30,1
    02D2 9508      RET
    02D3 90A9      LD	R10,Y+
    02D4 90B9      LD	R11,Y+
    02D5 FDE2      SBRC	R30,2
    02D6 9508      RET
    02D7 90C9      LD	R12,Y+
    02D8 90D9      LD	R13,Y+
    02D9 FDE3      SBRC	R30,3
    02DA 9508      RET
    02DB 90E9      LD	R14,Y+
    02DC 90F9      LD	R15,Y+
    02DD 9508      RET
long_prolog:
    02DE 928A      ST	R8,-Y
    02DF 929A      ST	R9,-Y
    02E0 92AA      ST	R10,-Y
    02E1 92BA      ST	R11,-Y
    02E2 93EA      ST	R30,-Y
    02E3 938A      ST	R24,-Y
    02E4 939A      ST	R25,-Y
    02E5 93AA      ST	R26,-Y
    02E6 93BA      ST	R27,-Y
    02E7 8589      LDD	R24,Y+9
    02E8 859A      LDD	R25,Y+10
    02E9 85AB      LDD	R26,Y+11
    02EA 85BC      LDD	R27,Y+12
    02EB 9508      RET
long_epilog:
    02EC 91B9      LD	R27,Y+
    02ED 91A9      LD	R26,Y+
    02EE 9199      LD	R25,Y+
    02EF 9189      LD	R24,Y+
    02F0 91E9      LD	R30,Y+
    02F1 90B9      LD	R11,Y+
    02F2 90A9      LD	R10,Y+
    02F3 9099      LD	R9,Y+
    02F4 9089      LD	R8,Y+
    02F5 9624      ADIW	R28,4
    02F6 9508      RET
tstzero1:
    02F7 27EE      CLR	R30
    02F8 2BE0      OR	R30,R16
    02F9 2BE1      OR	R30,R17
    02FA 2BE2      OR	R30,R18
    02FB 2BE3      OR	R30,R19
    02FC 9508      RET
tstzero2:
    02FD 27EE      CLR	R30
    02FE 2BE8      OR	R30,R24
    02FF 2BE9      OR	R30,R25
    0300 2BEA      OR	R30,R26
    0301 2BEB      OR	R30,R27
    0302 9508      RET

⌨️ 快捷键说明

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