📄 m4094.lis
字号:
.module m4094.c
.area text(rom, con, rel)
0000 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
.area data(ram, con, rel)
0000 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0000 _table2::
0000 .blkb 2
.area idata
0000 81B7 .byte 129,183
.area data(ram, con, rel)
0002 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0002 .blkb 2
.area idata
0002 C292 .byte 194,146
.area data(ram, con, rel)
0004 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0004 .blkb 2
.area idata
0004 B498 .byte 180,152
.area data(ram, con, rel)
0006 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0006 .blkb 2
.area idata
0006 88B3 .byte 136,179
.area data(ram, con, rel)
0008 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
000A .dbsym e table2 _table2 A[10:10]c
000A _led_buffer::
000A .blkb 2
.area idata
000A 0003 .byte 0,3
.area data(ram, con, rel)
000C .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
000C .blkb 2
.area idata
000C 0000 .byte 0,0
.area data(ram, con, rel)
000E .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
000E .dbsym e led_buffer _led_buffer A[4:4]c
.area text(rom, con, rel)
0000 .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
0000 .dbfunc e update_display_dp _update_display_dp fV
0000 ; byte_counter -> R20
0000 ; bit_count -> R22
0000 ; temp_i -> R10
0000 ; k -> R12,R13
.even
0000 _update_display_dp::
0000 00D0 rcall push_xgsetF03C
0002 6801 movw R12,R16
0004 .dbline -1
0004 .dbline 11
0004 ; /*4094显示模式
0004 ; 基于实验板接线方式
0004 ; */
0004 ; #include "d4094.h"
0004 ;
0004 ;
0004 ; uchar table2[10]={0x81,0xB7,0xC2,0x92,0xB4,0x98,0x88,0xB3,0x80,0x90};
0004 ; uchar led_buffer[4]={0,3};
0004 ;
0004 ; void update_display_dp(uint k)
0004 ; {
0004 .dbline 12
0004 ; uchar bit_count=0;
0004 6627 clr R22
0006 .dbline 13
0006 ; uchar byte_counter=0;
0006 4427 clr R20
0008 .dbline 14
0008 ; uchar temp_i=0;
0008 AA24 clr R10
000A .dbline 16
000A ;
000A ; led_buffer[3]=k/1000;
000A 28EE ldi R18,1000
000C 33E0 ldi R19,3
000E 8601 movw R16,R12
0010 00D0 rcall div16u
0012 00930D00 sts _led_buffer+3,R16
0016 .dbline 17
0016 ; led_buffer[2]=(k%1000)/100;
0016 28EE ldi R18,1000
0018 33E0 ldi R19,3
001A 8601 movw R16,R12
001C 00D0 rcall mod16u
001E 24E6 ldi R18,100
0020 30E0 ldi R19,0
0022 00D0 rcall div16u
0024 00930C00 sts _led_buffer+2,R16
0028 .dbline 18
0028 ; led_buffer[1]=(k%100)/10;
0028 24E6 ldi R18,100
002A 30E0 ldi R19,0
002C 8601 movw R16,R12
002E 00D0 rcall mod16u
0030 2AE0 ldi R18,10
0032 30E0 ldi R19,0
0034 00D0 rcall div16u
0036 00930B00 sts _led_buffer+1,R16
003A .dbline 19
003A ; led_buffer[0]=k%10;
003A 2AE0 ldi R18,10
003C 30E0 ldi R19,0
003E 8601 movw R16,R12
0040 00D0 rcall mod16u
0042 00930A00 sts _led_buffer,R16
0046 .dbline 21
0046 ;
0046 ; CLR_STR_4094;//led_str_off;
0046 AE98 cbi 0x15,6
0048 .dbline 22
0048 ; CLR_CLK_4094;//led_clk_off;
0048 AD98 cbi 0x15,5
004A .dbline 24
004A ;
004A ; for(byte_counter=0;byte_counter<4;byte_counter++)
004A 1CC0 rjmp L8
004C L5:
004C .dbline 25
004C ; {
004C .dbline 26
004C ; bit_count=8;
004C 68E0 ldi R22,8
004E .dbline 27
004E ; temp_i=table2[led_buffer[byte_counter]];
004E 80E0 ldi R24,<_led_buffer
0050 90E0 ldi R25,>_led_buffer
0052 E42F mov R30,R20
0054 FF27 clr R31
0056 E80F add R30,R24
0058 F91F adc R31,R25
005A E081 ldd R30,z+0
005C FF27 clr R31
005E 80E0 ldi R24,<_table2
0060 90E0 ldi R25,>_table2
0062 E80F add R30,R24
0064 F91F adc R31,R25
0066 A080 ldd R10,z+0
0068 09C0 rjmp L10
006A L9:
006A .dbline 30
006A ;
006A ; while(bit_count>0)
006A ; {
006A .dbline 31
006A ; if((temp_i&0x01)==0)
006A A0FC sbrc R10,0
006C 02C0 rjmp L12
006E X0:
006E .dbline 32
006E ; {
006E .dbline 33
006E ; CLR_DATA_4094;//led_d_off;
006E AC98 cbi 0x15,4
0070 .dbline 34
0070 ; }
0070 01C0 rjmp L13
0072 L12:
0072 .dbline 36
0072 ; else
0072 ; {
0072 .dbline 37
0072 ; SET_DATA_4094;//led_d_on;
0072 AC9A sbi 0x15,4
0074 .dbline 38
0074 ; }
0074 L13:
0074 .dbline 39
0074 ; temp_i=(temp_i>>1);
0074 A694 lsr R10
0076 .dbline 42
0076 ;
0076 ;
0076 ; SET_CLK_4094;//led_clk_on;
0076 AD9A sbi 0x15,5
0078 .dbline 44
0078 ;
0078 ; CLR_CLK_4094;//led_clk_off;
0078 AD98 cbi 0x15,5
007A .dbline 46
007A ;
007A ; bit_count--;
007A 6A95 dec R22
007C .dbline 48
007C ;
007C ; }
007C L10:
007C .dbline 29
007C 80E0 ldi R24,0
007E 8617 cp R24,R22
0080 A0F3 brlo L9
0082 X1:
0082 .dbline 50
0082 ;
0082 ; }
0082 L6:
0082 .dbline 24
0082 4395 inc R20
0084 L8:
0084 .dbline 24
0084 4430 cpi R20,4
0086 10F3 brlo L5
0088 X2:
0088 .dbline 51
0088 ; SET_STR_4094;
0088 AE9A sbi 0x15,6
008A .dbline -2
008A L1:
008A .dbline 0 ; func end
008A 00C0 rjmp pop_xgsetF03C
008C .dbsym r byte_counter 20 c
008C .dbsym r bit_count 22 c
008C .dbsym r temp_i 10 c
008C .dbsym r k 12 i
008C .dbend
008C ;
008C ;
008C ; }
008C ;
008C ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -