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

📄 test232.lst

📁 工业开关量检测模块的原代码,带断线检测功能
💻 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 + -