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

📄 timer_send.lis

📁 AVR控制的SAB82525——HDLC通信 循环队列处理 完全是自己写的
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0036 29BE              out 0x39,R2
 0038                   .dbline 102
 0038           ;        //EIMSK=0x01;
 0038           ;      
 0038           ;    return;
 0038                   .dbline -2
 0038           L1:
 0038                   .dbline 0 ; func end
 0038 0895              ret
 003A                   .dbend
 003A                   .dbfunc e resethdlc _resethdlc fV
                        .even
 003A           _resethdlc::
 003A                   .dbline -1
 003A                   .dbline 106
 003A           ; }
 003A           ; //-------------------------------------------------------------
 003A           ; void resethdlc(void)
 003A           ; {
 003A                   .dbline 107
 003A           ;    PORTD|=0x40;                       //0100_0000
 003A 969A              sbi 0x12,6
 003C                   .dbline -2
 003C                   .dbline 109
 003C           ;    //PORTD&=0xbf;
 003C           ; } 
 003C           L2:
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbend
 003E                   .dbfunc e cshdlc _cshdlc fV
                        .even
 003E           _cshdlc::
 003E                   .dbline -1
 003E                   .dbline 112
 003E           ; //--------------------------------------------------------------
 003E           ; void cshdlc(void)
 003E           ; {  
 003E                   .dbline 113
 003E           ;    PORTD&=0x3f;                       //0011_1111
 003E 82B3              in R24,0x12
 0040 8F73              andi R24,63
 0042 82BB              out 0x12,R24
 0044                   .dbline -2
 0044                   .dbline 114
 0044           ; }
 0044           L3:
 0044                   .dbline 0 ; func end
 0044 0895              ret
 0046                   .dbend
 0046                   .dbfunc e int_open _int_open fV
                        .even
 0046           _int_open::
 0046                   .dbline -1
 0046                   .dbline 118
 0046           ;     
 0046           ; //-------------------------------------------------------------
 0046           ; void int_open(void)
 0046           ; {
 0046                   .dbline 119
 0046           ;       _SEI();
 0046 7894              sei
 0048                   .dbline 120
 0048           ;       asm("nop");
 0048 0000              nop
 004A                   .dbline -2
 004A                   .dbline 121
 004A           ; }
 004A           L4:
 004A                   .dbline 0 ; func end
 004A 0895              ret
 004C                   .dbend
 004C                   .dbfunc e clk _clk fV
                        .even
 004C           _clk::
 004C                   .dbline -1
 004C                   .dbline 124
 004C           ; //--------------------------------------------------------------
 004C           ; void clk(void)
 004C           ; {
 004C                   .dbline 125
 004C           ;       PORTD&=0xdf;                            //1101_1111                                     片选8254
 004C 82B3              in R24,0x12
 004E 8F7D              andi R24,223
 0050 82BB              out 0x12,R24
 0052                   .dbline 128
 0052           ;       
 0052           ;       //送入计数方式  
 0052           ;       XBYTE[0x3300]=0x36;     //地址11_0000_0000      数据0011_0110
 0052 86E3              ldi R24,54
 0054 80930033          sts 13056,R24
 0058                   .dbline 129
 0058           ;       XBYTE[0x3000]=0x02;     //地址00_0000_0000      数据0000_0010
 0058 82E0              ldi R24,2
 005A 80930030          sts 12288,R24
 005E                   .dbline 130
 005E           ;       XBYTE[0x3000]=0x00;     //地址00_0000_0000      数据0000_0000
 005E 2224              clr R2
 0060 20920030          sts 12288,R2
 0064                   .dbline 132
 0064           ;       
 0064           ;       XBYTE[0x3300]=0x76;     //                                                                      数据0111_0110
 0064 86E7              ldi R24,118
 0066 80930033          sts 13056,R24
 006A                   .dbline 133
 006A           ;       XBYTE[0x3100]=0x02;     //地址01_0000_0000      数据0000_0010
 006A 82E0              ldi R24,2
 006C 80930031          sts 12544,R24
 0070                   .dbline 134
 0070           ;       XBYTE[0x3100]=0x00;     //地址01_0000_0000      数据0000_0000
 0070 20920031          sts 12544,R2
 0074                   .dbline 136
 0074           ;       
 0074           ;       XBYTE[0x3300]=0xB6;     //                                                                      数据1011_0110
 0074 86EB              ldi R24,182
 0076 80930033          sts 13056,R24
 007A                   .dbline 137
 007A           ;       XBYTE[0x3200]=0x02;     //地址10_0000_0000      数据0000_0010
 007A 82E0              ldi R24,2
 007C 80930032          sts 12800,R24
 0080                   .dbline 138
 0080           ;       XBYTE[0x3200]=0x00;     //地址10_0000_0000      数据0000_0000
 0080 20920032          sts 12800,R2
 0084                   .dbline 141
 0084           ;       
 0084           ;       //启动分频计数器
 0084           ;       PORTD|=0x1c;                            //0001_1100     
 0084 82B3              in R24,0x12
 0086 8C61              ori R24,28
 0088 82BB              out 0x12,R24
 008A                   .dbline 144
 008A           ;       
 008A           ;       //取消片选
 008A           ;       PORTD|=0x20;                            //0010_0000
 008A 959A              sbi 0x12,5
 008C                   .dbline 145
 008C           ;       return;
 008C                   .dbline -2
 008C           L5:
 008C                   .dbline 0 ; func end
 008C 0895              ret
 008E                   .dbend
 008E                   .dbfunc e automode _automode fV
                        .even
 008E           _automode::
 008E                   .dbline -1
 008E                   .dbline 149
 008E           ; }
 008E           ; //------------------------------------------------------------------
 008E           ; void automode(void)
 008E           ; {    
 008E                   .dbline 150
 008E           ;     CCR1=0x98;                        //1001_1000
 008E 88E9              ldi R24,152
 0090 80932F20          sts 8239,R24
 0094                   .dbline 152
 0094           ;     
 0094           ;         MASB=0xfb;                    //1111_1011
 0094 8BEF              ldi R24,251
 0096 80936020          sts 8288,R24
 009A                   .dbline 153
 009A           ;         MASK=0x27;                    //0010_0111
 009A 87E2              ldi R24,39
 009C 80932020          sts 8224,R24
 00A0                   .dbline 154
 00A0           ;         MODE=0x18;                    //0001_1100             数据传输由HSCX自动管理
 00A0 88E1              ldi R24,24
 00A2 80932220          sts 8226,R24
 00A6                   .dbline 155
 00A6           ;     TIMR=0x7f;                        //监控帧自动重试的次数
 00A6 8FE7              ldi R24,127
 00A8 80932320          sts 8227,R24
 00AC                   .dbline 157
 00AC           ;     
 00AC           ;     XAD1=0x00;                        //未知
 00AC 2224              clr R2
 00AE 20922320          sts 8227,R2
 00B2                   .dbline 158
 00B2           ;     XAD2=0x03;                        //未知
 00B2 83E0              ldi R24,3
 00B4 80932520          sts 8229,R24
 00B8                   .dbline 159
 00B8           ;     RAH1=0x02;                        //IMPORMANT!!!
 00B8 82E0              ldi R24,2
 00BA 80932620          sts 8230,R24
 00BE                   .dbline 160
 00BE           ;     RAH2=0x00;                        //IMPORTANT!!!
 00BE 20922720          sts 8231,R2
 00C2                   .dbline 161
 00C2           ;     RAL1=0x01;                        //未知
 00C2 81E0              ldi R24,1
 00C4 80932820          sts 8232,R24
 00C8                   .dbline 162
 00C8           ;     RAL2=0x01;                        //未知
 00C8 80932920          sts 8233,R24
 00CC                   .dbline 163
 00CC           ;     CCR2=0x00;                        //
 00CC 20922C20          sts 8236,R2
 00D0                   .dbline 166
 00D0           ;     
 00D0           ;     
 00D0           ;     XBCH=0x00;
 00D0 20922D20          sts 8237,R2
 00D4           L7:
 00D4                   .dbline 167
 00D4           L8:
 00D4                   .dbline 167
 00D4           ;     while(CEC==1);    //等待CMDR可写
 00D4 80912120          lds R24,8225
 00D8 8470              andi R24,4
 00DA 8695              lsr R24
 00DC 8695              lsr R24
 00DE 8130              cpi R24,1
 00E0 C9F3              breq L7
 00E2                   .dbline 168
 00E2           ;     CMDR=0x41;                //重启收发器
 00E2 81E4              ldi R24,65
 00E4 80932120          sts 8225,R24
 00E8                   .dbline -2
 00E8                   .dbline 169
 00E8           ; }
 00E8           L6:
 00E8                   .dbline 0 ; func end
 00E8 0895              ret
 00EA                   .dbend
 00EA                   .dbfunc e delay_nms _delay_nms fV
 00EA           ;          i_dms -> R20,R21
 00EA           ;             tm -> R22,R23
                        .even
 00EA           _delay_nms::
 00EA 0E940000          xcall push_gset2
 00EE B801              movw R22,R16
 00F0                   .dbline -1
 00F0                   .dbline 172
 00F0           ; //-----------------------------------------------------------------------
 00F0           ; void delay_nms(unsigned int tm)
 00F0           ; {
 00F0                   .dbline 174
 00F0           ;       unsigned int i_dms;
 00F0           ;       for(i_dms=tm;i_dms>0;i_dms--)
 00F0 AB01              movw R20,R22
 00F2 03C0              xjmp L14
 00F4           L11:
 00F4                   .dbline 175
 00F4 08D0              xcall _delay_1ms
 00F6           L12:
 00F6                   .dbline 174
 00F6 4150              subi R20,1
 00F8 5040              sbci R21,0
 00FA           L14:
 00FA                   .dbline 174
 00FA 4030              cpi R20,0
 00FC 4507              cpc R20,R21
 00FE D1F7              brne L11
 0100           X0:
 0100                   .dbline -2
 0100                   .dbline 176
 0100           ;               delay_1ms();
 0100           ; }
 0100           L10:

⌨️ 快捷键说明

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