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

📄 dac.lis

📁 AVR单片机DAC范例程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module DAC.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\icc\examples.avr\mypractice\DAC_prj\DAC.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 00D0              rcall push_gset2
 0002                   .dbline -1
 0002                   .dbline 8
 0002           ; #include <iom16v.h>
 0002           ; #include <macros.h>
 0002           ; #define  uchar unsigned char
 0002           ; #define  uint  unsigned int
 0002           ; //#include "Skey.c"
 0002           ; 
 0002           ; void delay(uint ms)
 0002           ; {
 0002                   .dbline 10
 0002           ;         uint i,j;
 0002           ;       for(i=0;i<ms;i++)
 0002 4427              clr R20
 0004 5527              clr R21
 0006 0BC0              rjmp L5
 0008           L2:
 0008                   .dbline 11
 0008           ;          {
 0008                   .dbline 12
 0008 6627              clr R22
 000A 7727              clr R23
 000C 02C0              rjmp L9
 000E           L6:
 000E                   .dbline 12
 000E           L7:
 000E                   .dbline 12
 000E 6F5F              subi R22,255  ; offset = 1
 0010 7F4F              sbci R23,255
 0012           L9:
 0012                   .dbline 12
 0012 6537              cpi R22,117
 0014 E4E0              ldi R30,4
 0016 7E07              cpc R23,R30
 0018 D0F3              brlo L6
 001A                   .dbline 13
 001A           L3:
 001A                   .dbline 10
 001A 4F5F              subi R20,255  ; offset = 1
 001C 5F4F              sbci R21,255
 001E           L5:
 001E                   .dbline 10
 001E 4017              cp R20,R16
 0020 5107              cpc R21,R17
 0022 90F3              brlo L2
 0024                   .dbline -2
 0024                   .dbline 14
 0024           ;          for(j=0;j<1141;j++);
 0024           ;        }
 0024           ; }
 0024           L1:
 0024 00D0              rcall pop_gset2
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbsym r i 20 i
 0028                   .dbsym r j 22 i
 0028                   .dbsym r ms 16 i
 0028                   .dbend
 0028                   .dbfunc e key_press _key_press fc
 0028           ;              j -> R16
                        .even
 0028           _key_press::
 0028                   .dbline -1
 0028                   .dbline 17
 0028           ; 
 0028           ; uchar key_press()
 0028           ; {
 0028                   .dbline 19
 0028           ;     uchar j;
 0028           ;     DDRD|=0X0F;
 0028 81B3              in R24,0x11
 002A 8F60              ori R24,15
 002C 81BB              out 0x11,R24
 002E                   .dbline 20
 002E           ;       PORTD|=0X0F;
 002E 82B3              in R24,0x12
 0030 8F60              ori R24,15
 0032 82BB              out 0x12,R24
 0034                   .dbline 22
 0034           ;       
 0034           ;       DDRD&=0XF0;
 0034 81B3              in R24,0x11
 0036 807F              andi R24,240
 0038 81BB              out 0x11,R24
 003A                   .dbline 24
 003A           ;       
 003A           ;       j=PIND;
 003A 00B3              in R16,0x10
 003C                   .dbline 25
 003C           ;       j=j&0X0F;//00001111
 003C 0F70              andi R16,15
 003E                   .dbline 26
 003E           ;       if(j==0X0F)
 003E 0F30              cpi R16,15
 0040 11F4              brne L11
 0042                   .dbline 27
 0042           ;       {
 0042                   .dbline 28
 0042           ;         return 0;
 0042 0027              clr R16
 0044 01C0              rjmp L10
 0046           L11:
 0046                   .dbline 31
 0046           ;       }
 0046           ;       else
 0046           ;       {
 0046                   .dbline 32
 0046           ;        return 1;
 0046 01E0              ldi R16,1
 0048                   .dbline -2
 0048           L10:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r j 16 c
 004A                   .dbend
 004A                   .dbfunc e key_scan _key_scan fc
 004A           ;            key -> R20
                        .even
 004A           _key_scan::
 004A 00D0              rcall push_gset2
 004C                   .dbline -1
 004C                   .dbline 38
 004C           ;       }
 004C           ;       
 004C           ; }
 004C           ; 
 004C           ; uchar key_scan()
 004C           ; {
 004C                   .dbline 40
 004C           ;     uchar key;
 004C           ;     delay(10);
 004C 0AE0              ldi R16,10
 004E 10E0              ldi R17,0
 0050 D7DF              rcall _delay
 0052                   .dbline 41
 0052           ;       if(key_press())
 0052 EADF              rcall _key_press
 0054 0023              tst R16
 0056 11F1              breq L14
 0058                   .dbline 42
 0058           ;       {
 0058                   .dbline 43
 0058           ;       key=PIND;
 0058 40B3              in R20,0x10
 005A                   .dbline 44
 005A           ;       key&=0X0F;
 005A 4F70              andi R20,15
 005C                   .dbline 45
 005C           ;       switch(key)
 005C 642F              mov R22,R20
 005E 7727              clr R23
 0060 6730              cpi R22,7
 0062 E0E0              ldi R30,0
 0064 7E07              cpc R23,R30
 0066 99F0              breq L22
 0068 6B30              cpi R22,11
 006A E0E0              ldi R30,0
 006C 7E07              cpc R23,R30
 006E 69F0              breq L21
 0070 6D30              cpi R22,13
 0072 E0E0              ldi R30,0
 0074 7E07              cpc R23,R30
 0076 39F0              breq L20
 0078 6E30              cpi R22,14
 007A E0E0              ldi R30,0
 007C 7E07              cpc R23,R30
 007E 09F0              breq L19
 0080 08C0              rjmp L16
 0082           X0:
 0082                   .dbline 46
 0082           ;       {
 0082           L19:
 0082                   .dbline 48
 0082           ;          case 0X0E: 
 0082           ;              key=0;
 0082 4427              clr R20
 0084                   .dbline 49
 0084           ;                  break;
 0084 07C0              rjmp L24
 0086           L20:
 0086                   .dbline 51
 0086           ;          case 0X0D:
 0086           ;              key=1;
 0086 41E0              ldi R20,1
 0088                   .dbline 52
 0088           ;                  break;
 0088 05C0              rjmp L24
 008A           L21:
 008A                   .dbline 54
 008A           ;                case 0X0B: 
 008A           ;              key=2;
 008A 42E0              ldi R20,2
 008C                   .dbline 55
 008C           ;                  break;
 008C 03C0              rjmp L24
 008E           L22:
 008E                   .dbline 57
 008E           ;          case 0X07:
 008E           ;              key=3;
 008E 43E0              ldi R20,3
 0090                   .dbline 58
 0090           ;                  break; 
 0090 01C0              rjmp L24
 0092           L16:
 0092                   .dbline 60
 0092           ;          default:     
 0092           ;              key=0;              
 0092 4427              clr R20
 0094                   .dbline 61
 0094           ;       }
 0094           L23:
 0094                   .dbline 62
 0094           L24:
 0094                   .dbline 62
 0094           ;         while(key_press());
 0094 C9DF              rcall _key_press
 0096 0023              tst R16
 0098 E9F7              brne L23
 009A                   .dbline 63
 009A           ;       }
 009A 01C0              rjmp L15
 009C           L14:
 009C                   .dbline 65
 009C           ;       else
 009C           ;       {
 009C                   .dbline 66
 009C           ;         key=0;
 009C 4427              clr R20
 009E                   .dbline 67
 009E           ;       }
 009E           L15:
 009E                   .dbline 68
 009E           ;       return key;
 009E 042F              mov R16,R20
 00A0                   .dbline -2
 00A0           L13:
 00A0 00D0              rcall pop_gset2
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbsym r key 20 c
 00A4                   .dbend
 00A4                   .dbfunc e spi_init _spi_init fV
                        .even
 00A4           _spi_init::
 00A4                   .dbline -1
 00A4                   .dbline 72
 00A4           ; }

⌨️ 快捷键说明

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