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

📄 uart.lst

📁 串行口测试程序。例如:程序复位后先向串口发送"Hellow Word!",之后每从串口收到一个字符就把它从串口发送出去
💻 LST
字号:
__start:
__text_start:
    0031 E5CF      LDI	R28,0x5F
    0032 E0D4      LDI	R29,4
    0033 BFCD      OUT	0x3D,R28
    0034 BFDE      OUT	0x3E,R29
    0035 51C0      SUBI	R28,0x10
    0036 40D0      SBCI	R29,0
    0037 EA0A      LDI	R16,0xAA
    0038 8308      STD	Y+0,R16
    0039 2400      CLR	R0
    003A E6ED      LDI	R30,0x6D
    003B E0F0      LDI	R31,0
    003C E010      LDI	R17,0
    003D 36EF      CPI	R30,0x6F
    003E 07F1      CPC	R31,R17
    003F F011      BEQ	0x0042
    0040 9201      ST	R0,Z+
    0041 CFFB      RJMP	0x003D
    0042 8300      STD	Z+0,R16
    0043 E5E4      LDI	R30,0x54
    0044 E0F0      LDI	R31,0
    0045 E6A0      LDI	R26,0x60
    0046 E0B0      LDI	R27,0
    0047 E010      LDI	R17,0
    0048 36E1      CPI	R30,0x61
    0049 07F1      CPC	R31,R17
    004A F021      BEQ	0x004F
    004B 95C8      LPM
    004C 9631      ADIW	R30,1
    004D 920D      ST	R0,X+
    004E CFF9      RJMP	0x0048
    004F 940E0058  CALL	_main
_exit:
    0051 CFFF      RJMP	_exit
FILE: D:\AVR源程序\IccAVR\UartTest\uart.c
(0001) /*****************************************
(0002) 串行口测试程序
(0003) 输入数据:无
(0004) 输出:程序复位后先向串口发送"Hellow Word!",之后每从串口收到一个字符就把它从串口发送出去
(0005) 作者:
(0006) CPU: M16L  晶振:片外8M
(0007) 修改时间:2004-08-02
(0008) *****************************************/
(0009) 
(0010) #include "iom16.h"
(0011) #include "stdio.h"
(0012) #include "macros.h"		//	常用的宏定义
(0013) #define uchar unsigned char
(0014) #define uint unsigned int
(0015) 
(0016) 
(0017) void cpu_init(void)
(0018) {
(0019)  	CLI();
_cpu_init:
    0052 94F8      BCLR	7
(0020)  	UBRR  = 0x33;			//	波特率9600
    0053 E383      LDI	R24,0x33
    0054 B989      OUT	0x09,R24
(0021) 	UCR = 0x18;
    0055 E188      LDI	R24,0x18
    0056 B98A      OUT	0x0A,R24
    0057 9508      RET
(0022) }
(0023) 
(0024) void main(void)
(0025) {
(0026) 	cpu_init();
_main:
    0058 DFF9      RCALL	_cpu_init
(0027) 	puts("Hellow Word!");
    0059 E600      LDI	R16,0x60
    005A E010      LDI	R17,0
    005B 940E009F  CALL	_puts
    005D C006      RJMP	0x0064
(0028) 	while(1) 
(0029) 	{
(0030) 		while(!(USR&0x80));
    005E 9B5F      SBIS	0x0B,7
    005F CFFE      RJMP	0x005E
(0031) 		UDR=UDR;
    0060 B02C      IN	R2,0x0C
    0061 B82C      OUT	0x0C,R2
(0032) 		while(!(USR&0X40));
FILE: <library>
    0062 9B5E      SBIS	0x0B,6
    0063 CFFE      RJMP	0x0062
    0064 CFF9      RJMP	0x005E
    0065 9508      RET
pop_gset2:
    0066 E0E2      LDI	R30,2
    0067 940C0075  JMP	pop
push_gset5:
    0069 92FA      ST	R15,-Y
    006A 92EA      ST	R14,-Y
push_gset4:
    006B 92DA      ST	R13,-Y
    006C 92CA      ST	R12,-Y
push_gset3:
    006D 92BA      ST	R11,-Y
    006E 92AA      ST	R10,-Y
push_gset2:
    006F 937A      ST	R23,-Y
    0070 936A      ST	R22,-Y
push_gset1:
    0071 935A      ST	R21,-Y
    0072 934A      ST	R20,-Y
    0073 9508      RET
pop_gset1:
    0074 E0E1      LDI	R30,1
pop:
    0075 9149      LD	R20,Y+
    0076 9159      LD	R21,Y+
    0077 FDE0      SBRC	R30,0
    0078 9508      RET
    0079 9169      LD	R22,Y+
    007A 9179      LD	R23,Y+
    007B FDE1      SBRC	R30,1
    007C 9508      RET
    007D 90A9      LD	R10,Y+
    007E 90B9      LD	R11,Y+
    007F FDE2      SBRC	R30,2
    0080 9508      RET
    0081 90C9      LD	R12,Y+
    0082 90D9      LD	R13,Y+
    0083 FDE3      SBRC	R30,3
    0084 9508      RET
    0085 90E9      LD	R14,Y+
    0086 90F9      LD	R15,Y+
    0087 9508      RET
_putchar:
    0088 940E0071  CALL	push_gset1
    008A 2F40      MOV	R20,R16
    008B 9020006D  LDS	R2,_textmode
    008D 9030006E  LDS	R3,_textmode+1
    008F 2022      TST	R2
    0090 F411      BNE	0x0093
    0091 2033      TST	R3
    0092 F021      BEQ	0x0097
    0093 304A      CPI	R20,0xA
    0094 F411      BNE	0x0097
    0095 E00D      LDI	R16,0xD
    0096 DFF1      RCALL	_putchar
    0097 9B5D      SBIS	0x0B,5
    0098 CFFE      RJMP	0x0097
    0099 B94C      OUT	0x0C,R20
    009A 2F04      MOV	R16,R20
    009B 2711      CLR	R17
    009C 940E0074  CALL	pop_gset1
    009E 9508      RET
_puts:
    009F 940E006F  CALL	push_gset2
    00A1 2F60      MOV	R22,R16
    00A2 2F71      MOV	R23,R17
    00A3 2744      CLR	R20
    00A4 2755      CLR	R21
    00A5 C009      RJMP	0x00AF
    00A6 2FE6      MOV	R30,R22
    00A7 2FF7      MOV	R31,R23
    00A8 8100      LDD	R16,Z+0
    00A9 940E0088  CALL	_putchar
    00AB 5F4F      SUBI	R20,0xFF
    00AC 4F5F      SBCI	R21,0xFF
    00AD 5F6F      SUBI	R22,0xFF
    00AE 4F7F      SBCI	R23,0xFF
    00AF 2FE6      MOV	R30,R22
    00B0 2FF7      MOV	R31,R23
    00B1 8020      LDD	R2,Z+0
    00B2 2022      TST	R2
    00B3 F791      BNE	0x00A6
    00B4 E00A      LDI	R16,0xA
    00B5 940E0088  CALL	_putchar
    00B7 E001      LDI	R16,1
    00B8 E010      LDI	R17,0
    00B9 940E0066  CALL	pop_gset2
    00BB 9508      RET

⌨️ 快捷键说明

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