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

📄 intmcu.lis

📁 LED显示面板
💻 LIS
字号:
                        .module intmcu.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\intmcu.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 5
 0000           ; #include "main.h"
 0000           ; 
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 6
 0000           ;  PORTA = 0x00;
 0000 2224              clr R2
 0002 22B8              out 0x2,R2
 0004                   .dbline 7
 0004           ;  DDRA  = 0xff;
 0004 8FEF              ldi R24,255
 0006 81B9              out 0x1,R24
 0008                   .dbline 8
 0008           ;  PORTB = 0x00;
 0008 25B8              out 0x5,R2
 000A                   .dbline 9
 000A           ;  DDRB  = 0x00;
 000A 24B8              out 0x4,R2
 000C                   .dbline 10
 000C           ;  PORTC = 0x00; //m103 output only
 000C 28B8              out 0x8,R2
 000E                   .dbline 11
 000E           ;  DDRC  = 0xff;
 000E 87B9              out 0x7,R24
 0010                   .dbline 12
 0010           ;  PORTD = 0x00;
 0010 2BB8              out 0xb,R2
 0012                   .dbline 13
 0012           ;  DDRD  = 0x83;
 0012 83E8              ldi R24,131
 0014 8AB9              out 0xa,R24
 0016                   .dbline 14
 0016           ;  PORTE = 0xff;
 0016 8FEF              ldi R24,255
 0018 8EB9              out 0xe,R24
 001A                   .dbline 15
 001A           ;  DDRE  = 0xfc;
 001A 8CEF              ldi R24,252
 001C 8DB9              out 0xd,R24
 001E                   .dbline 16
 001E           ;  PORTF = 0x00;
 001E 21BA              out 0x11,R2
 0020                   .dbline 17
 0020           ;  DDRF  = 0xff;
 0020 8FEF              ldi R24,255
 0022 80BB              out 0x10,R24
 0024                   .dbline 18
 0024           ;  PORTG = 0xf8;
 0024 88EF              ldi R24,248
 0026 84BB              out 0x14,R24
 0028                   .dbline 19
 0028           ;  DDRG  = 0x18;
 0028 88E1              ldi R24,24
 002A 83BB              out 0x13,R24
 002C                   .dbline -2
 002C           L2:
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbend
 002E                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 002E           _watchdog_init::
 002E                   .dbline -1
 002E                   .dbline 23
 002E           ; }
 002E           ; 
 002E           ; void watchdog_init(void)
 002E           ; {
 002E                   .dbline 24
 002E           ;  WDR(); //this prevents a timout on enabling
 002E A895              wdr
 0030                   .dbline 25
 0030           ;  WDTCR = 0x0e; //WATCHDOG ENABLED - dont forget to issue WDRs
 0030 8EE0              ldi R24,14
 0032 E0E6              ldi R30,96
 0034 F0E0              ldi R31,0
 0036 8083              std z+0,R24
 0038                   .dbline -2
 0038           L3:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbend
 003A                   .dbfunc e uart0_init _uart0_init fV
                        .even
 003A           _uart0_init::
 003A                   .dbline -1
 003A                   .dbline 33
 003A           ; }
 003A           ; 
 003A           ; 
 003A           ; //UART1 initialize
 003A           ; // desired baud rate:9600
 003A           ; // actual baud rate:9615 (0.2%)
 003A           ; void uart0_init(void)
 003A           ; {
 003A                   .dbline 34
 003A           ;  UCSR0B = 0x00; //disable while setting baud rate
 003A 2224              clr R2
 003C E1EC              ldi R30,193
 003E F0E0              ldi R31,0
 0040 2082              std z+0,R2
 0042                   .dbline 35
 0042           ;  UCSR0A = 0x00;
 0042 E0EC              ldi R30,192
 0044 2082              std z+0,R2
 0046                   .dbline 36
 0046           ;  UCSR0C = 0x06;
 0046 86E0              ldi R24,6
 0048 E2EC              ldi R30,194
 004A 8083              std z+0,R24
 004C                   .dbline 37
 004C           ;  UBRR0L = 0x67; //set baud rate lo
 004C 87E6              ldi R24,103
 004E E4EC              ldi R30,196
 0050 8083              std z+0,R24
 0052                   .dbline 38
 0052           ;  UBRR0H = 0x00; //set baud rate hi
 0052 E5EC              ldi R30,197
 0054 2082              std z+0,R2
 0056                   .dbline 39
 0056           ;  UCSR0B = 0xD8;
 0056 88ED              ldi R24,216
 0058 E1EC              ldi R30,193
 005A 8083              std z+0,R24
 005C                   .dbline -2
 005C           L4:
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbend
 005E                   .dbfunc e timer0_init _timer0_init fV
                        .even
 005E           _timer0_init::
 005E                   .dbline -1
 005E                   .dbline 44
 005E           ; }
 005E           ; 
 005E           ; 
 005E           ; void timer0_init(void)
 005E           ; {
 005E                   .dbline 45
 005E           ;  TCCR0A = 0x00; //stop
 005E 2224              clr R2
 0060 24BC              out 0x24,R2
 0062                   .dbline 46
 0062           ;  ASSR  = 0x00; //set async mode
 0062 E6EB              ldi R30,182
 0064 F0E0              ldi R31,0
 0066 2082              std z+0,R2
 0068                   .dbline 47
 0068           ;  TCNT0 = 0x83; //set count
 0068 83E8              ldi R24,131
 006A 86BD              out 0x26,R24
 006C                   .dbline 48
 006C           ;  OCR0  = 0x7D;
 006C 8DE7              ldi R24,125
 006E 87BD              out 0x27,R24
 0070                   .dbline 49
 0070           ;  TCCR0A = 0x05; //start timer
 0070 85E0              ldi R24,5
 0072 84BD              out 0x24,R24
 0074                   .dbline -2
 0074           L5:
 0074                   .dbline 0 ; func end
 0074 0895              ret
 0076                   .dbend
 0076                   .dbfunc e USART_Transmit _USART_Transmit fV
 0076           ;           data -> R16
                        .even
 0076           _USART_Transmit::
 0076                   .dbline -1
 0076                   .dbline 54
 0076           ; }
 0076           ; 
 0076           ; 
 0076           ; void USART_Transmit( unsigned char data )
 0076           ; {
 0076           L7:
 0076                   .dbline 57
 0076           L8:
 0076                   .dbline 56
 0076           ; //Wait for empty transmit buffer 
 0076           ; while ( !( UCSR0A & (1<<UDRE0)) )
 0076 E0EC              ldi R30,192
 0078 F0E0              ldi R31,0
 007A 2080              ldd R2,z+0
 007C 25FE              sbrs R2,5
 007E FBCF              rjmp L7
 0080                   .dbline 59
 0080           ; ;
 0080           ; //Put data into buffer, sends the data 
 0080           ; UDR0 = data;
 0080 E6EC              ldi R30,198
 0082 0083              std z+0,R16
 0084                   .dbline -2
 0084           L6:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbsym r data 16 c
 0086                   .dbend
 0086                   .dbfunc e USART_Receive _USART_Receive fc
                        .even
 0086           _USART_Receive::
 0086                   .dbline -1
 0086                   .dbline 63
 0086           ; }
 0086           ; 
 0086           ; unsigned char USART_Receive( void )
 0086           ; {
 0086           L11:
 0086                   .dbline 66
 0086           L12:
 0086                   .dbline 65
 0086           ; //Wait for data to be received 
 0086           ; while ( !(UCSR0A & (1<<RXC0)) )
 0086 E0EC              ldi R30,192
 0088 F0E0              ldi R31,0
 008A 2080              ldd R2,z+0
 008C 27FE              sbrs R2,7
 008E FBCF              rjmp L11
 0090                   .dbline 68
 0090           ; ;
 0090           ; //Get and return received data from buffer 
 0090           ; return UDR0;
 0090 E6EC              ldi R30,198
 0092 0081              ldd R16,z+0
 0094                   .dbline -2
 0094           L10:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbend
                        .area vector(rom, abs)
                        .org 84
 0054 0C944B00          jmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0096                   .dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\intmcu.c
 0096                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
                        .even
 0096           _uart0_rx_isr::
 0096                   .dbline -1
 0096                   .dbline 74
 0096           ; }
 0096           ; 
 0096           ; 
 0096           ; #pragma interrupt_handler uart0_rx_isr:22
 0096           ; void uart0_rx_isr(void)
 0096           ; {
 0096                   .dbline 75
 0096           ; ;
 0096                   .dbline -2
 0096           L14:
 0096                   .dbline 0 ; func end
 0096 1895              reti
 0098                   .dbend
 0098                   .dbfunc e init_devices _init_devices fV
                        .even
 0098           _init_devices::
 0098                   .dbline -1
 0098                   .dbline 79
 0098           ; }
 0098           ; 
 0098           ; void init_devices(void)                   //CPU复位
 0098           ; {
 0098                   .dbline 80
 0098           ;  port_init();
 0098 B3DF              xcall _port_init
 009A                   .dbline 81
 009A           ;  timer0_init(); 
 009A E1DF              xcall _timer0_init
 009C                   .dbline 82
 009C           ;  uart0_init();
 009C CEDF              xcall _uart0_init
 009E                   .dbline 83
 009E           ;  TIMSK0 = 0x01; 
 009E 81E0              ldi R24,1
 00A0 EEE6              ldi R30,110
 00A2 F0E0              ldi R31,0
 00A4 8083              std z+0,R24
 00A6                   .dbline -2
 00A6           L15:
 00A6                   .dbline 0 ; func end
 00A6 0895              ret
 00A8                   .dbend

⌨️ 快捷键说明

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