📄 dac.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 + -