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

📄 motor_ce.lst

📁 AVR单片机的电机测速程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0026) 
(0027) SEI();
    010A 9478      BSET	7
(0028) while(1)
    010B CFFF      RJMP	0x010B
    010C 9508      RET
FILE: C:\DOCUME~1\www\桌面\motor_ce\usart.c
(0001) #include "includes.h"
(0002) //-------------------------------------------------------------
(0003) //字符输出函数 		
(0004) void Usart_Tx(unsigned char data)
(0005) {	 
(0006) while (!(UCSRA&(1<<UDRE)));
_Usart_Tx:
  data                 --> R16
    010D 9B5D      SBIS	0x0B,5
    010E CFFE      RJMP	_Usart_Tx
(0007) UDR=data;    
    010F B90C      OUT	0x0C,R16
    0110 9508      RET
(0008) }
(0009) //字符输入函数 		
(0010) unsigned char Usart_Rx(void)
(0011) {
(0012) while(!(UCSRA& (1<<RXC)));
_Usart_Rx:
    0111 9B5F      SBIS	0x0B,7
    0112 CFFE      RJMP	_Usart_Rx
(0013) return UDR;
    0113 B10C      IN	R16,0x0C
    0114 9508      RET
_Usart_Str_Tx:
  s                    --> R20
    0115 940E0180  CALL	push_gset1
    0117 01A8      MOVW	R20,R16
(0014) }		
(0015) //字符串输出函数	   	
(0016) void Usart_Str_Tx(char *s)
(0017) {
    0118 C005      RJMP	0x011E
(0018) while (*s)
(0019) {
(0020) Usart_Tx(*s);
    0119 01FA      MOVW	R30,R20
    011A 8100      LDD	R16,Z+0
    011B DFF1      RCALL	_Usart_Tx
(0021) s++;
    011C 5F4F      SUBI	R20,0xFF
    011D 4F5F      SBCI	R21,0xFF
    011E 01FA      MOVW	R30,R20
    011F 8020      LDD	R2,Z+0
    0120 2022      TST	R2
    0121 F7B9      BNE	0x0119
(0022) }	
(0023) Usart_Tx(0x0a);//回车换行
    0122 E00A      LDI	R16,0xA
    0123 DFE9      RCALL	_Usart_Tx
(0024) Usart_Tx(0x0d);
    0124 E00D      LDI	R16,0xD
    0125 DFE7      RCALL	_Usart_Tx
    0126 940E0183  CALL	pop_gset1
    0128 9508      RET
(0025) }
(0026) //------------------------------------------------------
(0027) void Usart_Init(void)//9600,8,1,
(0028) {
(0029)  UCSRB = 0x00; //disable while setting baud rate
_Usart_Init:
    0129 2422      CLR	R2
    012A B82A      OUT	0x0A,R2
(0030)  UCSRA = 0x00;
    012B B82B      OUT	0x0B,R2
(0031)  UCSRC = 0x86;
    012C E886      LDI	R24,0x86
    012D BD80      OUT	0x20,R24
(0032) //UBRRL = 0x33; //set baud rate lo
(0033) //UBRRH = 0x00; //set baud rate hi
(0034) UBRRL = 0x0C; //set baud rate lo
    012E E08C      LDI	R24,0xC
    012F B989      OUT	0x09,R24
(0035) UBRRH = 0x00; //set baud rate hi,38400
    0130 BC20      OUT	0x20,R2
(0036)  UCSRB = 0x18;
    0131 E188      LDI	R24,0x18
    0132 B98A      OUT	0x0A,R24
    0133 9508      RET
_Usart_Buffer_Tx:
  i                    --> R20
  Buffer               --> R22
    0134 940E0197  CALL	push_gset2
    0136 01B8      MOVW	R22,R16
(0037) }
(0038) //----------------------------------------------------
(0039) void Usart_Buffer_Tx(unsigned char Buffer[Buffer_Length])
(0040) {
(0041) unsigned int i=0;
    0137 2744      CLR	R20
    0138 2755      CLR	R21
    0139 C014      RJMP	0x014E
(0042) while(i<Buffer_Length)
(0043) {
(0044) Usart_Tx(i);
    013A 2F04      MOV	R16,R20
    013B DFD1      RCALL	_Usart_Tx
(0045) Usart_Tx(Buffer[i]);
    013C 01FA      MOVW	R30,R20
    013D 0FE6      ADD	R30,R22
    013E 1FF7      ADC	R31,R23
    013F 8100      LDD	R16,Z+0
    0140 DFCC      RCALL	_Usart_Tx
(0046) i++;
    0141 5F4F      SUBI	R20,0xFF
    0142 4F5F      SBCI	R21,0xFF
(0047) Usart_Tx(Buffer[i]);
    0143 01FA      MOVW	R30,R20
    0144 0FE6      ADD	R30,R22
    0145 1FF7      ADC	R31,R23
    0146 8100      LDD	R16,Z+0
    0147 DFC5      RCALL	_Usart_Tx
(0048) 
(0049) Usart_Tx(0x0a);//回车换行
    0148 E00A      LDI	R16,0xA
    0149 DFC3      RCALL	_Usart_Tx
(0050) Usart_Tx(0x0d);
    014A E00D      LDI	R16,0xD
    014B DFC1      RCALL	_Usart_Tx
(0051) i++;
FILE: <library>
    014C 5F4F      SUBI	R20,0xFF
    014D 4F5F      SBCI	R21,0xFF
    014E 3644      CPI	R20,0x64
    014F E0E0      LDI	R30,0
    0150 075E      CPC	R21,R30
    0151 F340      BCS	0x013A
    0152 940E017D  CALL	pop_gset2
    0154 9508      RET
mod8u:
    0155 9468      BSET	6
    0156 C001      RJMP	xdiv8u
div8u:
    0157 94E8      BCLR	6
xdiv8u:
    0158 932A      ST	R18,-Y
    0159 92FA      ST	R15,-Y
    015A 92EA      ST	R14,-Y
    015B 24FF      CLR	R15
    015C 24EE      CLR	R14
    015D E120      LDI	R18,0x10
    015E 0F00      LSL	R16
    015F 1CFF      ROL	R15
    0160 1CEE      ROL	R14
    0161 16E1      CP	R14,R17
    0162 F010      BCS	0x0165
    0163 1AE1      SUB	R14,R17
    0164 9503      INC	R16
    0165 952A      DEC	R18
    0166 F7B9      BNE	0x015E
    0167 F40E      BRTC	0x0169
    0168 2D0E      MOV	R16,R14
    0169 90E9      LD	R14,Y+
    016A 90F9      LD	R15,Y+
    016B 9129      LD	R18,Y+
    016C 9508      RET
empy16s:
    016D 920A      ST	R0,-Y
    016E 921A      ST	R1,-Y
    016F 938A      ST	R24,-Y
    0170 939A      ST	R25,-Y
    0171 9F02      MUL	R16,R18
    0172 01C0      MOVW	R24,R0
    0173 9F12      MUL	R17,R18
    0174 0D90      ADD	R25,R0
    0175 9F03      MUL	R16,R19
    0176 0D90      ADD	R25,R0
    0177 018C      MOVW	R16,R24
    0178 9199      LD	R25,Y+
    0179 9189      LD	R24,Y+
    017A 9019      LD	R1,Y+
    017B 9009      LD	R0,Y+
    017C 9508      RET
pop_gset2:
    017D E0E2      LDI	R30,2
    017E 940C0184  JMP	pop
push_gset1:
    0180 935A      ST	R21,-Y
    0181 934A      ST	R20,-Y
    0182 9508      RET
pop_gset1:
    0183 E0E1      LDI	R30,1
pop:
    0184 9149      LD	R20,Y+
    0185 9159      LD	R21,Y+
    0186 FDE0      SBRC	R30,0
    0187 9508      RET
    0188 9169      LD	R22,Y+
    0189 9179      LD	R23,Y+
    018A FDE1      SBRC	R30,1
    018B 9508      RET
    018C 90A9      LD	R10,Y+
    018D 90B9      LD	R11,Y+
    018E FDE2      SBRC	R30,2
    018F 9508      RET
    0190 90C9      LD	R12,Y+
    0191 90D9      LD	R13,Y+
    0192 FDE3      SBRC	R30,3
    0193 9508      RET
    0194 90E9      LD	R14,Y+
    0195 90F9      LD	R15,Y+
    0196 9508      RET
push_gset2:
    0197 937A      ST	R23,-Y
    0198 936A      ST	R22,-Y
    0199 940C0180  JMP	push_gset1
push_lset:
    019B 93FA      ST	R31,-Y
    019C 93EA      ST	R30,-Y
    019D 93BA      ST	R27,-Y
    019E 93AA      ST	R26,-Y
    019F 939A      ST	R25,-Y
    01A0 938A      ST	R24,-Y
    01A1 933A      ST	R19,-Y
    01A2 932A      ST	R18,-Y
    01A3 931A      ST	R17,-Y
    01A4 930A      ST	R16,-Y
    01A5 929A      ST	R9,-Y
    01A6 928A      ST	R8,-Y
    01A7 927A      ST	R7,-Y
    01A8 926A      ST	R6,-Y
    01A9 925A      ST	R5,-Y
    01AA 924A      ST	R4,-Y
    01AB 923A      ST	R3,-Y
    01AC 922A      ST	R2,-Y
    01AD 921A      ST	R1,-Y
    01AE 920A      ST	R0,-Y
    01AF B60F      IN	R0,0x3F
    01B0 920A      ST	R0,-Y
    01B1 9508      RET
pop_lset:
    01B2 9009      LD	R0,Y+
    01B3 BE0F      OUT	0x3F,R0
    01B4 9009      LD	R0,Y+
    01B5 9019      LD	R1,Y+
    01B6 9029      LD	R2,Y+
    01B7 9039      LD	R3,Y+
    01B8 9049      LD	R4,Y+
    01B9 9059      LD	R5,Y+
    01BA 9069      LD	R6,Y+
    01BB 9079      LD	R7,Y+
    01BC 9089      LD	R8,Y+
    01BD 9099      LD	R9,Y+
    01BE 9109      LD	R16,Y+
    01BF 9119      LD	R17,Y+
    01C0 9129      LD	R18,Y+
    01C1 9139      LD	R19,Y+
    01C2 9189      LD	R24,Y+
    01C3 9199      LD	R25,Y+
    01C4 91A9      LD	R26,Y+
    01C5 91B9      LD	R27,Y+
    01C6 91E9      LD	R30,Y+
    01C7 91F9      LD	R31,Y+
    01C8 9508      RET

⌨️ 快捷键说明

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