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

📄 int_2.lis

📁 16个单片机c语言实验程序
💻 LIS
字号:
                        .area vector(rom, abs)
                        .org 72
 0048 0C940900          jmp _ext_int2_isr
                        .module int_2.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\16实验程序\外部中断\int_2.c
                        .area vector(rom, abs)
                        .area text(rom, con, rel)
 0000                   .dbfile D:\16实验程序\外部中断\int_2.c
 0000                   .dbfunc e s_ms _s_ms fI
 0000           ;             ms -> R16,R17
                        .even
 0000           _s_ms::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; //外部中断程序
 0000           ; //使用外部中断INT2
 0000           ; //按键9,0,a,b输入,led显示
 0000           ; #include <iom16v.h>  
 0000           ; #pragma interrupt_handler ext_int2_isr:19 
 0000           ;  //指定外部中断函数
 0000           ; #define uint unsigned int 
 0000           ; #define uchar unsigned char 
 0000           ; 
 0000           ; 
 0000           ; s_ms(uint ms)
 0000           ; {
 0000                   .dbline 13
 0000           ; for(;ms>1;ms--);
 0000 02C0              xjmp L5
 0002           L2:
 0002                   .dbline 13
 0002           L3:
 0002                   .dbline 13
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006           L5:
 0006                   .dbline 13
 0006 81E0              ldi R24,1
 0008 90E0              ldi R25,0
 000A 8017              cp R24,R16
 000C 9107              cpc R25,R17
 000E C8F3              brlo L2
 0010           X0:
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbsym r ms 16 i
 0012                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\16实验程序\外部中断\int_2.c
 0000           _i::
 0000                   .blkb 1
                        .area idata
 0000 01                .byte 1
                        .area data(ram, con, rel)
 0001                   .dbfile D:\16实验程序\外部中断\int_2.c
 0001                   .dbsym e i _i c
                        .area text(rom, con, rel)
 0012                   .dbfile D:\16实验程序\外部中断\int_2.c
 0012                   .dbfunc e ext_int2_isr _ext_int2_isr fV
 0012           ;             aa -> R20
                        .even
 0012           _ext_int2_isr::
 0012 0A92              st -y,R0
 0014 1A92              st -y,R1
 0016 2A92              st -y,R2
 0018 3A92              st -y,R3
 001A 4A92              st -y,R4
 001C 5A92              st -y,R5
 001E 6A92              st -y,R6
 0020 7A92              st -y,R7
 0022 8A92              st -y,R8
 0024 9A92              st -y,R9
 0026 0A93              st -y,R16
 0028 1A93              st -y,R17
 002A 2A93              st -y,R18
 002C 3A93              st -y,R19
 002E 8A93              st -y,R24
 0030 9A93              st -y,R25
 0032 AA93              st -y,R26
 0034 BA93              st -y,R27
 0036 EA93              st -y,R30
 0038 FA93              st -y,R31
 003A 0FB6              in R0,0x3f
 003C 0A92              st -y,R0
 003E 0E940000          xcall push_xgsetF000
 0042                   .dbline -1
 0042                   .dbline 19
 0042           ; }
 0042           ; 
 0042           ; unsigned char i=1;
 0042           ; // External Interrupt 0 service routine
 0042           ; void ext_int2_isr(void)
 0042           ; {
 0042                   .dbline 20
 0042           ;   uchar aa=1;
 0042 41E0              ldi R20,1
 0044                   .dbline 21
 0044           ;   PORTD=~i++;
 0044 20900000          lds R2,_i
 0048 3324              clr R3
 004A 822D              mov R24,R2
 004C 8F5F              subi R24,255    ; addi 1
 004E 80930000          sts _i,R24
 0052 2094              com R2
 0054 22BA              out 0x12,R2
 0056 15C0              xjmp L8
 0058           L7:
 0058                   .dbline 23
 0058           ;   while(aa)       //判断端口是否恢复高电平,有延时抗干扰
 0058           ;   {
 0058                   .dbline 24
 0058           ;   aa=!(PINB&(1<<2));
 0058 B299              sbic 0x16,2
 005A 03C0              rjmp L10
 005C           X1:
 005C 61E0              ldi R22,1
 005E 70E0              ldi R23,0
 0060 02C0              xjmp L11
 0062           L10:
 0062 6627              clr R22
 0064 7727              clr R23
 0066           L11:
 0066 462F              mov R20,R22
 0068                   .dbline 25
 0068           ;   if(aa==0)
 0068 6623              tst R22
 006A 59F4              brne L12
 006C           X2:
 006C                   .dbline 26
 006C           ;     {
 006C                   .dbline 27
 006C           ;       s_ms(15000);
 006C 08E9              ldi R16,15000
 006E 1AE3              ldi R17,58
 0070 C7DF              xcall _s_ms
 0072                   .dbline 28
 0072           ;       aa=!(PINB&(1<<2));
 0072 B299              sbic 0x16,2
 0074 03C0              rjmp L14
 0076           X3:
 0076 61E0              ldi R22,1
 0078 70E0              ldi R23,0
 007A 02C0              xjmp L15
 007C           L14:
 007C 6627              clr R22
 007E 7727              clr R23
 0080           L15:
 0080 462F              mov R20,R22
 0082                   .dbline 29
 0082           ;       }
 0082           L12:
 0082                   .dbline 30
 0082           ;   }
 0082           L8:
 0082                   .dbline 22
 0082 4423              tst R20
 0084 49F7              brne L7
 0086           X4:
 0086                   .dbline -2
 0086           L6:
 0086                   .dbline 0 ; func end
 0086 0E940000          xcall pop_xgsetF000
 008A 0990              ld R0,y+
 008C 0FBE              out 0x3f,R0
 008E F991              ld R31,y+
 0090 E991              ld R30,y+
 0092 B991              ld R27,y+
 0094 A991              ld R26,y+
 0096 9991              ld R25,y+
 0098 8991              ld R24,y+
 009A 3991              ld R19,y+
 009C 2991              ld R18,y+
 009E 1991              ld R17,y+
 00A0 0991              ld R16,y+
 00A2 9990              ld R9,y+
 00A4 8990              ld R8,y+
 00A6 7990              ld R7,y+
 00A8 6990              ld R6,y+
 00AA 5990              ld R5,y+
 00AC 4990              ld R4,y+
 00AE 3990              ld R3,y+
 00B0 2990              ld R2,y+
 00B2 1990              ld R1,y+
 00B4 0990              ld R0,y+
 00B6 1895              reti
 00B8                   .dbsym r aa 20 c
 00B8                   .dbend
 00B8                   .dbfunc e main _main fV
                        .even
 00B8           _main::
 00B8                   .dbline -1
 00B8                   .dbline 35
 00B8           ; }
 00B8           ; 
 00B8           ; 
 00B8           ; void main(void)
 00B8           ; {
 00B8                   .dbline 36
 00B8           ; DDRD=0xff;
 00B8 8FEF              ldi R24,255
 00BA 81BB              out 0x11,R24
 00BC                   .dbline 37
 00BC           ; PORTD=0XFF;
 00BC 82BB              out 0x12,R24
 00BE                   .dbline 38
 00BE           ; DDRB=0xf0;
 00BE 80EF              ldi R24,240
 00C0 87BB              out 0x17,R24
 00C2                   .dbline 39
 00C2           ; PORTB=0x0f;
 00C2 8FE0              ldi R24,15
 00C4 88BB              out 0x18,R24
 00C6                   .dbline 41
 00C6           ; 
 00C6           ; SREG=0x80;    //开全局中断
 00C6 80E8              ldi R24,128
 00C8 8FBF              out 0x3f,R24
 00CA                   .dbline 43
 00CA           ; 
 00CA           ; GICR=0x20;   //开外部中断int_2,对应按键K9,K0,KA,KB
 00CA 80E2              ldi R24,32
 00CC 8BBF              out 0x3b,R24
 00CE           L17:
 00CE                   .dbline 44
 00CE           ; while (1);
 00CE           L18:
 00CE                   .dbline 44
 00CE FFCF              xjmp L17
 00D0           X5:
 00D0                   .dbline -2
 00D0           L16:
 00D0                   .dbline 0 ; func end
 00D0 0895              ret
 00D2                   .dbend
 00D2           ; }

⌨️ 快捷键说明

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