pt2262.lis

来自「单片机PT2262发射程序 串口调试助手测试成功」· LIS 代码 · 共 168 行

LIS
168
字号
                        .module PT2262.C
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\PT2262_atmega8\PT2262.C
 0000                   .dbfunc e initial_PORT _initial_PORT fV
                        .even
 0000           _initial_PORT::
 0000                   .dbline -1
 0000                   .dbline 21
 0000           ; /********************************
 0000           ;               NAME:USART.C
 0000           ;               DATA: 2007/5/6
 0000           ;               AUTHOR: DIP STUDIO
 0000           ;               MCU: ATMEGA8  
 0000           ;                8.0000MHz
 0000           ; ********************************/
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; /*引脚连接
 0000           ; PD3---->D0
 0000           ; PD4---->D1
 0000           ; PD5---->D2
 0000           ; PD6---->D3
 0000           ; PD7---->TE
 0000           ; */
 0000           ; //------------------------------------------------------------------
 0000           ; //                  初始化函数
 0000           ; //------------------------------------------------------------------
 0000           ; void initial_PORT(void)
 0000           ; {
 0000                   .dbline 22
 0000           ;     PORTD=0XFF;
 0000 8FEF              ldi R24,255
 0002 82BB              out 0x12,R24
 0004                   .dbline 23
 0004           ;       DDRD=0XFF;   //PD口为输出模式 
 0004 81BB              out 0x11,R24
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbend
 0008                   .dbfunc e delay _delay fV
 0008           ;              i -> R20,R21
 0008           ;           time -> R16,R17
                        .even
 0008           _delay::
 0008 00D0              rcall push_gset1
 000A                   .dbline -1
 000A                   .dbline 29
 000A           ; }
 000A           ; //--------------------------------------------------------------
 000A           ; //                         延时函数
 000A           ; //--------------------------------------------------------------
 000A           ; void delay(int time)
 000A           ; {
 000A 09C0              rjmp L4
 000C           L3:
 000C                   .dbline 32
 000C           ;     int i;
 000C           ;           while(--time)
 000C           ;                  {
 000C                   .dbline 33
 000C           ;                         for(i=0;i<=1000;i++)
 000C 4427              clr R20
 000E 5527              clr R21
 0010           L6:
 0010                   .dbline 34
 0010                   .dbline 34
 0010                   .dbline 34
 0010           L7:
 0010                   .dbline 33
 0010 4F5F              subi R20,255  ; offset = 1
 0012 5F4F              sbci R21,255
 0014                   .dbline 33
 0014 88EE              ldi R24,1000
 0016 93E0              ldi R25,3
 0018 8417              cp R24,R20
 001A 9507              cpc R25,R21
 001C CCF7              brge L6
 001E                   .dbline 35
 001E           L4:
 001E                   .dbline 31
 001E C801              movw R24,R16
 0020 0197              sbiw R24,1
 0022 8C01              movw R16,R24
 0024 0030              cpi R16,0
 0026 0107              cpc R16,R17
 0028 89F7              brne L3
 002A           X0:
 002A                   .dbline -2
 002A           L2:
 002A 00D0              rcall pop_gset1
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbsym r i 20 I
 002E                   .dbsym r time 16 I
 002E                   .dbend
 002E                   .dbfunc e Radio_send _Radio_send fV
 002E           ;          datas -> R16
                        .even
 002E           _Radio_send::
 002E                   .dbline -1
 002E                   .dbline 41
 002E           ;                                {;}
 002E           ;                  }
 002E           ; }
 002E           ; //--------------------------------------------------------------
 002E           ; //                 发射函数
 002E           ; //--------------------------------------------------------------
 002E           ; void Radio_send(unsigned char datas)//发送的有效数据是一个4位二进制数,
 002E           ; {                                   //datas的低4位为有效数据 
 002E                   .dbline 42
 002E           ;     PORTD=(datas<<3)&0XF8; //把数据移到待发射位置,并关闭发射使能
 002E 802F              mov R24,R16
 0030 880F              lsl R24
 0032 880F              lsl R24
 0034 880F              lsl R24
 0036 887F              andi R24,248
 0038 82BB              out 0x12,R24
 003A                   .dbline 43
 003A           ;       PORTD&=0X7F;     //发射数据
 003A 82B3              in R24,0x12
 003C 8F77              andi R24,127
 003E 82BB              out 0x12,R24
 0040                   .dbline 44
 0040           ;       PORTD|=0X80;     //关闭发射
 0040 979A              sbi 0x12,7
 0042                   .dbline -2
 0042           L10:
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbsym r datas 16 c
 0044                   .dbend
 0044                   .dbfunc e main _main fV
                        .even
 0044           _main::
 0044                   .dbline -1
 0044                   .dbline 50
 0044           ; }
 0044           ; //--------------------------------------------------------------
 0044           ; //                 主函数
 0044           ; //--------------------------------------------------------------
 0044           ; void main(void)
 0044           ; {
 0044                   .dbline 51
 0044           ;    initial_PORT();
 0044 DDDF              rcall _initial_PORT
 0046 05C0              rjmp L13
 0048           L12:
 0048                   .dbline 54
 0048                   .dbline 55
 0048 08E0              ldi R16,8
 004A F1DF              rcall _Radio_send
 004C                   .dbline 56
 004C 00EB              ldi R16,1200
 004E 14E0              ldi R17,4
 0050 DBDF              rcall _delay
 0052                   .dbline 57
 0052           L13:
 0052                   .dbline 53
 0052 FACF              rjmp L12
 0054           X1:
 0054                   .dbline -2
 0054           L11:
 0054                   .dbline 0 ; func end
 0054 0895              ret
 0056                   .dbend

⌨️ 快捷键说明

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