📄 test232.lst
字号:
__text_start:
__start:
004A EFCF LDI R28,0xFF
004B E1D0 LDI R29,0x10
004C BFCD OUT 0x3D,R28
004D BFDE OUT 0x3E,R29
004E 52C0 SUBI R28,0x20
004F 40D0 SBCI R29,0
0050 EA0A LDI R16,0xAA
0051 8308 STD Y+0,R16
0052 2400 CLR R0
0053 E0E0 LDI R30,0
0054 E0F1 LDI R31,1
0055 E011 LDI R17,1
0056 30E0 CPI R30,0
0057 07F1 CPC R31,R17
0058 F011 BEQ 0x005B
0059 9201 ST R0,Z+
005A CFFB RJMP 0x0056
005B 8300 STD Z+0,R16
005C E9E4 LDI R30,0x94
005D E0F0 LDI R31,0
005E E0A0 LDI R26,0
005F E0B1 LDI R27,1
0060 E010 LDI R17,0
0061 39E4 CPI R30,0x94
0062 07F1 CPC R31,R17
0063 F021 BEQ 0x0068
0064 95C8 LPM
0065 9631 ADIW R30,1
0066 920D ST R0,X+
0067 CFF9 RJMP 0x0061
0068 940E008A CALL _main
_exit:
006A CFFF RJMP _exit
FILE: D:\报警系统设计资料\报警系统软件\开关量64CPU—485\test232main.c
(0001) #include "test232main.h"
(0002)
(0003) void uart1_init(void)
(0004) {
(0005) UCSR1B = 0x00; //disable while setting baud rate
_uart1_init:
006B 2422 CLR R2
006C 922000C9 STS 0xC9,R2
(0006) UCSR1A = 0x00;
006E 922000C8 STS 0xC8,R2
(0007) UCSR1C = 0x06;
0070 E086 LDI R24,6
0071 938000CA STS 0xCA,R24
(0008) UBRR1L = 0x67; //set baud rate lo
0073 E687 LDI R24,0x67
0074 938000CC STS 0xCC,R24
(0009) UBRR1H = 0x00; //set baud rate hi
0076 922000CD STS 0xCD,R2
(0010) UCSR1B = 0xD8;
0078 ED88 LDI R24,0xD8
0079 938000C9 STS 0xC9,R24
007B 9508 RET
(0011) }
(0012)
(0013) void USART_Transmit( unsigned char data )
(0014) {
(0015) //Wait for empty transmit buffer
(0016) while ( !( UCSR1A & (1<<UDRE1)) )
_USART_Transmit:
data --> R16
007C 918000C8 LDS R24,0xC8
007E 7280 ANDI R24,0x20
007F F3E1 BEQ 0x007C
(0017) ;
(0018) //Put data into buffer, sends the data
(0019) UDR1 = data;
0080 930000CE STS 0xCE,R16
0082 9508 RET
(0020) }
(0021)
(0022) unsigned char USART_Receive( void )
(0023) {
(0024) //Wait for data to be received
(0025) while ( !(UCSR1A & (1<<RXC1)) )
_USART_Receive:
0083 918000C8 LDS R24,0xC8
0085 7880 ANDI R24,0x80
0086 F3E1 BEQ 0x0083
(0026) ;
(0027) //Get and return received data from buffer
(0028) return UDR1;
0087 910000CE LDS R16,0xCE
0089 9508 RET
(0029) }
(0030)
(0031) void main(void)
(0032) {
(0033) CLI();
_main:
008A 94F8 BCLR 7
(0034) uart1_init();
008B DFDF RCALL _uart1_init
(0035) SEI();
008C 9478 BSET 7
008D C002 RJMP 0x0090
(0036) while(1)
(0037) USART_Transmit( 0x88);
FILE: <library>
008E E808 LDI R16,0x88
008F DFEC RCALL _USART_Transmit
0090 CFFD RJMP 0x008E
0091 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -