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

📄 test_usart.lst

📁 ad7135的avr16的源程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    002A E5CF      LDI	R28,0x5F
    002B E0D4      LDI	R29,4
    002C BFCD      OUT	0x3D,R28
    002D BFDE      OUT	0x3E,R29
    002E 51C0      SUBI	R28,0x10
    002F 40D0      SBCI	R29,0
    0030 EA0A      LDI	R16,0xAA
    0031 8308      STD	Y+0,R16
    0032 2400      CLR	R0
    0033 E6E0      LDI	R30,0x60
    0034 E0F0      LDI	R31,0
    0035 E010      LDI	R17,0
    0036 36E0      CPI	R30,0x60
    0037 07F1      CPC	R31,R17
    0038 F011      BEQ	0x003B
    0039 9201      ST	R0,Z+
    003A CFFB      RJMP	0x0036
    003B 8300      STD	Z+0,R16
    003C E5E4      LDI	R30,0x54
    003D E0F0      LDI	R31,0
    003E E6A0      LDI	R26,0x60
    003F E0B0      LDI	R27,0
    0040 E010      LDI	R17,0
    0041 35E4      CPI	R30,0x54
    0042 07F1      CPC	R31,R17
    0043 F021      BEQ	0x0048
    0044 95C8      LPM
    0045 9631      ADIW	R30,1
    0046 920D      ST	R0,X+
    0047 CFF9      RJMP	0x0041
    0048 940E0194  CALL	_main
_exit:
    004A CFFF      RJMP	_exit
FILE: test_usart.c
(0001) //************************************************* 
(0002) //测试功能:下位机往上位机发送数据
(0003) //测试方法:串口调试助手
(0004) //测试结果:OK
(0005) //时钟频率:外部8m
(0006) //管脚分配:
(0007) //注意事项: 
(0008) //完成时间:2009.03.15 
(0009) //**************************************************
(0010) 
(0011) //************************************************** 
(0012) //头文件
(0013) //************************************************** 
(0014) #include <iom16v.h>
(0015) #include <macros.h>
(0016) //**************************************************
(0017) 
(0018)  
(0019) //********************************************************** 
(0020) //函数名称:void DELAY_1MS(void)
(0021) //函数功能:延时1ms
(0022) //注意事项:i=143*n-2
(0023) //********************************************************** 
(0024) void DELAY_1MS(void)
(0025) {    
(0026) 	 unsigned int i;
(0027) 	 for(i=1142;i>0;i--)    
_DELAY_1MS:
  i                    --> R16
    004B E706      LDI	R16,0x76
    004C E014      LDI	R17,4
    004D C002      RJMP	0x0050
    004E 5001      SUBI	R16,1
    004F 4010      SBCI	R17,0
    0050 3000      CPI	R16,0
    0051 0701      CPC	R16,R17
    0052 F7D9      BNE	0x004E
    0053 9508      RET
_DELAY_NMS:
  n                    --> R20
    0054 940E021D  CALL	push_gset1
    0056 01A8      MOVW	R20,R16
(0028)      ;
(0029) }
(0030) //********************************************************** 
(0031) //函数名称:void DELAY_1MS(void)
(0032) //函数功能:延时1ms
(0033) //注意事项:i=143*n-2
(0034) //********************************************************** 
(0035) void DELAY_NMS(unsigned int n)
(0036) {	 
(0037) 	 for(;n>0;n--)
    0057 C003      RJMP	0x005B
(0038) 	      DELAY_1MS();
    0058 DFF2      RCALL	_DELAY_1MS
    0059 5041      SUBI	R20,1
    005A 4050      SBCI	R21,0
    005B 3040      CPI	R20,0
    005C 0745      CPC	R20,R21
    005D F7D1      BNE	0x0058
    005E 940E0220  CALL	pop_gset1
    0060 9508      RET
(0039) }
(0040) //***************************************************** 
(0041) //函数名称:void USART_INIT(void) 
(0042) //函数功能:8M,波特率9600
(0043) //注意事项:
(0044) //*****************************************************
(0045) void USART_INIT(void)
(0046) {	 
(0047) 	 UBRR=0X33;//fosc=8mhz,波特率9600
_USART_INIT:
    0061 E383      LDI	R24,0x33
    0062 B989      OUT	0x09,R24
(0048) 	 UCSRA=0X20;
    0063 E280      LDI	R24,0x20
    0064 B98B      OUT	0x0B,R24
(0049) 	 UCSRC=0X86;
    0065 E886      LDI	R24,0x86
    0066 BD80      OUT	0x20,R24
(0050) 	 UCSRB=0X98;
    0067 E988      LDI	R24,0x98
    0068 B98A      OUT	0x0A,R24
    0069 9508      RET
_USART_TX:
  data                 --> R20
    006A 940E021D  CALL	push_gset1
    006C 2F40      MOV	R20,R16
(0051) }
(0052) //***************************************************** 
(0053) //函数名称:void USART_INIT(void) 
(0054) //函数功能:8M,波特率9600
(0055) //注意事项:
(0056) //*****************************************************
(0057) void USART_TX(unsigned char data)
(0058) {	 
(0059) 	 UDR=data;
    006D B94C      OUT	0x0C,R20
(0060) 	 while(!(UCSRA&(1<<TXC)))
    006E 9B5E      SBIS	0x0B,6
    006F CFFE      RJMP	0x006E
(0061) 	 ;
(0062) 	 DELAY_NMS(1);
    0070 E001      LDI	R16,1
    0071 E010      LDI	R17,0
    0072 DFE1      RCALL	_DELAY_NMS
    0073 940E0220  CALL	pop_gset1
    0075 9508      RET
_DATA_DISPLAY:
  temp                 --> Y+0
  i                    --> R10
  data                 --> Y+16
    0076 940E019C  CALL	push_arg4
    0078 940E0219  CALL	push_gset3
    007A 972A      SBIW	R28,0xA
(0063) }
(0064) //***************************************************** 
(0065) //函数名称:void USART_INIT(void) 
(0066) //函数功能:8M,波特率9600
(0067) //注意事项:
(0068) //*****************************************************
(0069) void DATA_DISPLAY(unsigned long int data)
(0070) {	 
(0071) 	 unsigned char temp[10],i;
(0072) 	 temp[0]=(data/1000000000);
    007B E040      LDI	R20,0
    007C EC5A      LDI	R21,0xCA
    007D E96A      LDI	R22,0x9A
    007E E37B      LDI	R23,0x3B
    007F 01FE      MOVW	R30,R28
    0080 8820      LDD	R2,Z+16
    0081 8831      LDD	R3,Z+17
    0082 8842      LDD	R4,Z+18
    0083 8853      LDD	R5,Z+19
    0084 937A      ST	R23,-Y
    0085 936A      ST	R22,-Y
    0086 935A      ST	R21,-Y
    0087 934A      ST	R20,-Y
    0088 0181      MOVW	R16,R2
    0089 0192      MOVW	R18,R4
    008A 940E01A1  CALL	div32u
    008C 8308      STD	Y+0,R16
(0073) 	 temp[1]=(data/100000000)%10;
    008D E040      LDI	R20,0
    008E EE51      LDI	R21,0xE1
    008F EF65      LDI	R22,0xF5
    0090 E075      LDI	R23,5
    0091 01FE      MOVW	R30,R28
    0092 8820      LDD	R2,Z+16
    0093 8831      LDD	R3,Z+17
    0094 8842      LDD	R4,Z+18
    0095 8853      LDD	R5,Z+19
    0096 937A      ST	R23,-Y
    0097 936A      ST	R22,-Y
    0098 935A      ST	R21,-Y
    0099 934A      ST	R20,-Y
    009A 0181      MOVW	R16,R2
    009B 0192      MOVW	R18,R4
    009C 940E01A1  CALL	div32u
    009E E04A      LDI	R20,0xA
    009F E050      LDI	R21,0
    00A0 E060      LDI	R22,0
    00A1 E070      LDI	R23,0
    00A2 937A      ST	R23,-Y
    00A3 936A      ST	R22,-Y
    00A4 935A      ST	R21,-Y
    00A5 934A      ST	R20,-Y
    00A6 940E01A3  CALL	mod32u
    00A8 8309      STD	Y+1,R16
(0074) 	 temp[2]=(data/10000000)%10;
    00A9 E840      LDI	R20,0x80
    00AA E956      LDI	R21,0x96
    00AB E968      LDI	R22,0x98
    00AC E070      LDI	R23,0
    00AD 01FE      MOVW	R30,R28
    00AE 8820      LDD	R2,Z+16
    00AF 8831      LDD	R3,Z+17
    00B0 8842      LDD	R4,Z+18
    00B1 8853      LDD	R5,Z+19
    00B2 937A      ST	R23,-Y
    00B3 936A      ST	R22,-Y
    00B4 935A      ST	R21,-Y
    00B5 934A      ST	R20,-Y
    00B6 0181      MOVW	R16,R2
    00B7 0192      MOVW	R18,R4
    00B8 940E01A1  CALL	div32u
    00BA E04A      LDI	R20,0xA
    00BB E050      LDI	R21,0
    00BC E060      LDI	R22,0
    00BD E070      LDI	R23,0
    00BE 937A      ST	R23,-Y
    00BF 936A      ST	R22,-Y
    00C0 935A      ST	R21,-Y
    00C1 934A      ST	R20,-Y
    00C2 940E01A3  CALL	mod32u
    00C4 830A      STD	Y+2,R16
(0075) 	 temp[3]=(data/1000000)%10;
    00C5 E440      LDI	R20,0x40
    00C6 E452      LDI	R21,0x42
    00C7 E06F      LDI	R22,0xF
    00C8 E070      LDI	R23,0
    00C9 01FE      MOVW	R30,R28
    00CA 8820      LDD	R2,Z+16
    00CB 8831      LDD	R3,Z+17
    00CC 8842      LDD	R4,Z+18
    00CD 8853      LDD	R5,Z+19
    00CE 937A      ST	R23,-Y
    00CF 936A      ST	R22,-Y
    00D0 935A      ST	R21,-Y
    00D1 934A      ST	R20,-Y
    00D2 0181      MOVW	R16,R2
    00D3 0192      MOVW	R18,R4
    00D4 940E01A1  CALL	div32u
    00D6 E04A      LDI	R20,0xA
    00D7 E050      LDI	R21,0
    00D8 E060      LDI	R22,0
    00D9 E070      LDI	R23,0
    00DA 937A      ST	R23,-Y
    00DB 936A      ST	R22,-Y
    00DC 935A      ST	R21,-Y
    00DD 934A      ST	R20,-Y
    00DE 940E01A3  CALL	mod32u
    00E0 830B      STD	Y+3,R16
(0076) 	 temp[4]=(data/100000)%10;
    00E1 EA40      LDI	R20,0xA0
    00E2 E856      LDI	R21,0x86
    00E3 E061      LDI	R22,1
    00E4 E070      LDI	R23,0
    00E5 01FE      MOVW	R30,R28
    00E6 8820      LDD	R2,Z+16
    00E7 8831      LDD	R3,Z+17
    00E8 8842      LDD	R4,Z+18
    00E9 8853      LDD	R5,Z+19
    00EA 937A      ST	R23,-Y
    00EB 936A      ST	R22,-Y
    00EC 935A      ST	R21,-Y
    00ED 934A      ST	R20,-Y
    00EE 0181      MOVW	R16,R2
    00EF 0192      MOVW	R18,R4
    00F0 940E01A1  CALL	div32u
    00F2 E04A      LDI	R20,0xA
    00F3 E050      LDI	R21,0
    00F4 E060      LDI	R22,0
    00F5 E070      LDI	R23,0
    00F6 937A      ST	R23,-Y
    00F7 936A      ST	R22,-Y
    00F8 935A      ST	R21,-Y
    00F9 934A      ST	R20,-Y
    00FA 940E01A3  CALL	mod32u
    00FC 830C      STD	Y+4,R16
(0077) 	 temp[5]=(data/10000)%10;
    00FD E140      LDI	R20,0x10
    00FE E257      LDI	R21,0x27
    00FF E060      LDI	R22,0
    0100 E070      LDI	R23,0
    0101 01FE      MOVW	R30,R28
    0102 8820      LDD	R2,Z+16
    0103 8831      LDD	R3,Z+17
    0104 8842      LDD	R4,Z+18
    0105 8853      LDD	R5,Z+19
    0106 937A      ST	R23,-Y
    0107 936A      ST	R22,-Y
    0108 935A      ST	R21,-Y
    0109 934A      ST	R20,-Y
    010A 0181      MOVW	R16,R2
    010B 0192      MOVW	R18,R4
    010C 940E01A1  CALL	div32u
    010E E04A      LDI	R20,0xA
    010F E050      LDI	R21,0
    0110 E060      LDI	R22,0
    0111 E070      LDI	R23,0
    0112 937A      ST	R23,-Y
    0113 936A      ST	R22,-Y
    0114 935A      ST	R21,-Y
    0115 934A      ST	R20,-Y
    0116 940E01A3  CALL	mod32u
    0118 830D      STD	Y+5,R16
(0078) 	 temp[6]=(data/1000)%10;

⌨️ 快捷键说明

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