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

📄 timer0.lis

📁 AVR控制的SAB82525——HDLC通信 循环队列处理 完全是自己写的
💻 LIS
字号:
                        .module Timer0.c
                        .area vector(rom, abs)
                        .org 64
 0040 0C940000          jmp _timer0_txd_srv
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Projects\AVR\Timer_Send\Timer0.c
 0000                   .dbfunc e timer0_txd_srv _timer0_txd_srv fV
 0000           ;        num_tmr -> R20
                        .even
 0000           _timer0_txd_srv::
 0000 0E940000          xcall push_lset
 0004 0E940000          xcall push_gset1
 0008                   .dbline -1
 0008                   .dbline 13
 0008                   .dbline 14
 0008 4427              clr R20
 000A                   .dbline 15
 000A 85EB              ldi R24,181
 000C 82BF              out 0x32,R24
 000E                   .dbline 17
 000E 0E940000          xcall _transmit
 0012                   .dbline 19
 0012 80910000          lds R24,_count
 0016 8F30              cpi R24,15
 0018 F0F4              brsh L2
 001A                   .dbline 20
 001A                   .dbline 21
 001A 22E0              ldi R18,2
 001C 30E0              ldi R19,0
 001E 00E0              ldi R16,<_data_array01
 0020 10E0              ldi R17,>_data_array01
 0022 0E940000          xcall _EnQueue
 0026                   .dbline 22
 0026 24E0              ldi R18,4
 0028 30E0              ldi R19,0
 002A 00E0              ldi R16,<_data_array02
 002C 10E0              ldi R17,>_data_array02
 002E 0E940000          xcall _EnQueue
 0032                   .dbline 23
 0032 23E0              ldi R18,3
 0034 30E0              ldi R19,0
 0036 00E0              ldi R16,<_data_array03
 0038 10E0              ldi R17,>_data_array03
 003A 0E940000          xcall _EnQueue
 003E                   .dbline 24
 003E 23E0              ldi R18,3
 0040 30E0              ldi R19,0
 0042 00E0              ldi R16,<_data_array04
 0044 10E0              ldi R17,>_data_array04
 0046 0E940000          xcall _EnQueue
 004A                   .dbline 25
 004A 2FE0              ldi R18,15
 004C 30E0              ldi R19,0
 004E 00E0              ldi R16,<_data_array05
 0050 10E0              ldi R17,>_data_array05
 0052 0E940000          xcall _EnQueue
 0056                   .dbline 26
 0056           L2:
 0056                   .dbline -2
 0056                   .dbline 29
 0056           ; #include "iom128v.h"
 0056           ; #include "macros.h"
 0056           ; //------------------------------------------------------------------
 0056           ; extern unsigned char count;
 0056           ; extern unsigned char data_array01[32];
 0056           ; extern unsigned char data_array02[32];
 0056           ; extern unsigned char data_array03[32];
 0056           ; extern unsigned char data_array04[32];
 0056           ; extern unsigned char data_array05[32];
 0056           ; //------------------------------------------------------------------
 0056           ; #pragma interrupt_handler timer0_txd_srv:17
 0056           ; void timer0_txd_srv(void)
 0056           ; {
 0056           ;       unsigned char num_tmr=0;
 0056           ;       TCNT0=0xb5;     //计数值重装
 0056           ;       
 0056           ;       transmit();
 0056           ;       
 0056           ;       if(count<(20-5))
 0056           ;               {
 0056           ;                       EnQueue(data_array01,2);
 0056           ;                       EnQueue(data_array02,4);
 0056           ;                       EnQueue(data_array03,3);
 0056           ;                       EnQueue(data_array04,3);
 0056           ;                       EnQueue(data_array05,15);
 0056           ;               }
 0056           ;                               
 0056           ;                       
 0056           ; }
 0056           L1:
 0056 0E940000          xcall pop_gset1
 005A 0E940000          xcall pop_lset
 005E                   .dbline 0 ; func end
 005E 1895              reti
 0060                   .dbsym r num_tmr 20 c
 0060                   .dbend
 0060                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0060           _timer0_init::
 0060                   .dbline -1
 0060                   .dbline 32
 0060           ; //------------------------------------------------------------------
 0060           ; void timer0_init(void)
 0060           ; {
 0060                   .dbline 33
 0060           ;       TIMSK=0x01;
 0060 81E0              ldi R24,1
 0062 87BF              out 0x37,R24
 0064                   .dbline 34
 0064           ;       TCCR0=0x00;
 0064 2224              clr R2
 0066 23BE              out 0x33,R2
 0068                   .dbline 35
 0068           ;       TCNT0=0xb5;     //20ms的计数值
 0068 85EB              ldi R24,181
 006A 82BF              out 0x32,R24
 006C                   .dbline 37
 006C           ;       
 006C           ;       TCCR0=0x07;
 006C 87E0              ldi R24,7
 006E 83BF              out 0x33,R24
 0070                   .dbline -2
 0070                   .dbline 38
 0070           ; }
 0070           L4:
 0070                   .dbline 0 ; func end
 0070 0895              ret
 0072                   .dbend

⌨️ 快捷键说明

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