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

📄 dac.lis

📁 nRF24L01详细编程资料
💻 LIS
字号:
                        .module DAC.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\OLED\DAC.c
 0000                   .dbfunc e InitDAC _InitDAC fV
                        .even
 0000           _InitDAC::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; //ICC-AVR application builder : 2006-02-12 14:00:00
 0000           ; // Target : ATmega48
 0000           ; // Crystal: 1.000Mhz
 0000           ; // Author:  jackyan
 0000           ; 
 0000           ; #include "iom48v.h"
 0000           ; #include "macros.h"
 0000           ; #include "Defs.h"
 0000           ; #include "var.h"
 0000           ; 
 0000           ; void WriteDA(ubyte bright);
 0000           ; 
 0000           ; #define DAsync        BIT0
 0000           ; #define DAsclk        BIT1
 0000           ; #define DAout         BIT2
 0000           ; 
 0000           ; void InitDAC(void)
 0000           ; {
 0000                   .dbline 19
 0000           ;       WriteDA(Bright);
 0000 00910000          lds R16,_Bright
 0004 01D0              rcall _WriteDA
 0006                   .dbline -2
 0006           L1:
 0006                   .dbline 0 ; func end
 0006 0895              ret
 0008                   .dbend
 0008                   .dbfunc e WriteDA _WriteDA fV
 0008           ;            cnt -> R20
 0008           ;           temp -> R22
 0008           ;         bright -> R16
                        .even
 0008           _WriteDA::
 0008 00D0              rcall push_gset2
 000A                   .dbline -1
 000A                   .dbline 23
 000A           ; }
 000A           ; 
 000A           ; void WriteDA(ubyte bright)
 000A           ; {
 000A                   .dbline 25
 000A           ;       ubyte cnt;
 000A           ;       ubyte temp=0;
 000A 6627              clr R22
 000C                   .dbline 27
 000C           ; 
 000C           ;       set(DDRB,DAsync);
 000C                   .dbline 27
 000C 209A              sbi 0x4,0
 000E                   .dbline 27
 000E                   .dbline 27
 000E                   .dbline 28
 000E           ;       set(DDRB,DAsclk);
 000E                   .dbline 28
 000E 219A              sbi 0x4,1
 0010                   .dbline 28
 0010                   .dbline 28
 0010                   .dbline 29
 0010           ;       set(DDRB,DAout);
 0010                   .dbline 29
 0010 229A              sbi 0x4,2
 0012                   .dbline 29
 0012                   .dbline 29
 0012                   .dbline 30
 0012           ;       temp=bright>>4;
 0012 602F              mov R22,R16
 0014 6295              swap R22
 0016 6F70              andi R22,#0x0F
 0018                   .dbline 31
 0018           ;       cnt=8;          
 0018 48E0              ldi R20,8
 001A 08C0              rjmp L4
 001C           L3:
 001C                   .dbline 33
 001C           ;       while(cnt>0)
 001C           ;               {
 001C                   .dbline 34
 001C           ;                       clr(PORTB,DAsync);
 001C                   .dbline 34
 001C 2898              cbi 0x5,0
 001E                   .dbline 34
 001E                   .dbline 34
 001E                   .dbline 35
 001E           ;                       set(PORTB,DAsclk);
 001E                   .dbline 35
 001E 299A              sbi 0x5,1
 0020                   .dbline 35
 0020                   .dbline 35
 0020                   .dbline 36
 0020           ;                       clr(PORTB,DAout);
 0020                   .dbline 36
 0020 2A98              cbi 0x5,2
 0022                   .dbline 36
 0022                   .dbline 36
 0022                   .dbline 37
 0022           ;                       if (chk(temp,BIT7))
 0022 67FD              sbrc R22,7
 0024                   .dbline 38
 0024                   .dbline 38
 0024 2A9A              sbi 0x5,2
 0026                   .dbline 38
 0026           L6:
 0026                   .dbline 38
 0026                   .dbline 39
 0026 660F              lsl R22
 0028                   .dbline 40
 0028 4A95              dec R20
 002A                   .dbline 41
 002A                   .dbline 41
 002A 2998              cbi 0x5,1
 002C                   .dbline 41
 002C                   .dbline 41
 002C                   .dbline 42
 002C           L4:
 002C                   .dbline 32
 002C 2224              clr R2
 002E 2416              cp R2,R20
 0030 A8F3              brlo L3
 0032                   .dbline 44
 0032           ;                               set(PORTB,DAout);
 0032           ;                       temp<<=1;
 0032           ;                       cnt--;
 0032           ;                       clr(PORTB,DAsclk);      //0
 0032           ;               }
 0032           ; 
 0032           ;       bright<<=4;
 0032 802F              mov R24,R16
 0034 8F70              andi R24,#0x0F
 0036 8295              swap R24
 0038 082F              mov R16,R24
 003A                   .dbline 45
 003A           ;       temp=bright|0x0f;
 003A 682F              mov R22,R24
 003C 6F60              ori R22,15
 003E                   .dbline 46
 003E           ;       cnt=8;          
 003E 48E0              ldi R20,8
 0040 08C0              rjmp L9
 0042           L8:
 0042                   .dbline 48
 0042           ;       while(cnt>0)
 0042           ;               {
 0042                   .dbline 49
 0042           ;                       clr(PORTB,DAsync);
 0042                   .dbline 49
 0042 2898              cbi 0x5,0
 0044                   .dbline 49
 0044                   .dbline 49
 0044                   .dbline 50
 0044           ;                       set(PORTB,DAsclk);
 0044                   .dbline 50
 0044 299A              sbi 0x5,1
 0046                   .dbline 50
 0046                   .dbline 50
 0046                   .dbline 51
 0046           ;                       clr(PORTB,DAout);
 0046                   .dbline 51
 0046 2A98              cbi 0x5,2
 0048                   .dbline 51
 0048                   .dbline 51
 0048                   .dbline 52
 0048           ;                       if (chk(temp,BIT7))
 0048 67FD              sbrc R22,7
 004A                   .dbline 53
 004A                   .dbline 53
 004A 2A9A              sbi 0x5,2
 004C                   .dbline 53
 004C           L11:
 004C                   .dbline 53
 004C                   .dbline 54
 004C 660F              lsl R22
 004E                   .dbline 55
 004E 4A95              dec R20
 0050                   .dbline 56
 0050                   .dbline 56
 0050 2998              cbi 0x5,1
 0052                   .dbline 56
 0052                   .dbline 56
 0052                   .dbline 57
 0052           L9:
 0052                   .dbline 47
 0052 2224              clr R2
 0054 2416              cp R2,R20
 0056 A8F3              brlo L8
 0058                   .dbline 59
 0058           ;                               set(PORTB,DAout);
 0058           ;                       temp<<=1;
 0058           ;                       cnt--;
 0058           ;                       clr(PORTB,DAsclk);      //0
 0058           ;               }
 0058           ; 
 0058           ;       set(PORTB,DAsync);
 0058                   .dbline 59
 0058 289A              sbi 0x5,0
 005A                   .dbline 59
 005A                   .dbline 59
 005A                   .dbline 60
 005A           ;       set(PORTB,DAsclk);
 005A                   .dbline 60
 005A 299A              sbi 0x5,1
 005C                   .dbline 60
 005C                   .dbline 60
 005C                   .dbline 61
 005C           ;       set(PORTB,DAout);
 005C                   .dbline 61
 005C 2A9A              sbi 0x5,2
 005E                   .dbline 61
 005E                   .dbline 61
 005E                   .dbline -2
 005E           L2:
 005E 00D0              rcall pop_gset2
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r cnt 20 c
 0062                   .dbsym r temp 22 c
 0062                   .dbsym r bright 16 c
 0062                   .dbend

⌨️ 快捷键说明

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