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

📄 7segled.lis

📁 键盘操作 键盘扫描 用的是单片机mega16
💻 LIS
字号:
                        .module _7segled.c
                        .area code(ram, con, rel)
                        .area lit(rom, con, rel)
 0000           _Seg7_Data::
 0000 3F06              .byte 63,6
 0002 5B4F              .byte 91,'O
 0004 666D              .byte 'f,'m
 0006 7D07              .byte 125,7
 0008 7F6F              .byte 127,'o
 000A 777C              .byte 'w,124
 000C 395E              .byte 57,94
 000E 7971              .byte 'y,'q
 0010 00                .byte 0
 0011                   .dbfile D:\avrvi\democode\key_4\source\lib\7segled.c
 0011                   .dbsym e Seg7_Data _Seg7_Data A[17:17]kc
                        .area data(ram, con, rel)
 0000                   .dbfile D:\avrvi\democode\key_4\source\lib\7segled.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avrvi\democode\key_4\source\lib\7segled.c
 0000                   .dbfunc e Seg7_Led_Init _Seg7_Led_Init fV
                        .even
 0000           _Seg7_Led_Init::
 0000                   .dbline -1
 0000                   .dbline 17
 0000           ; /************************************************
 0000           ; 文件:7segled.c
 0000           ; 用途:七段数码管驱动程序
 0000           ; 注意:外部7.3728M晶振
 0000           ; 创建:2008.1.26
 0000           ; 修改:2008.1.26
 0000           ; Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
 0000           ; ************************************************/
 0000           ; #include "..\config.h"
 0000           ; #pragma data:code
 0000           ; const unsigned char Seg7_Data[]={0x3F,0x06,0x5B,0x4F,0x66,             //0,1,2,3,4
 0000           ;                          0x6D,0x7D,0x07,0x7F,0x6F,             //5,6,7,8,9
 0000           ;                                                0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};  //a,b,c,d,e,f
 0000           ; #pragma data:data
 0000           ; volatile unsigned char Seg7_Led_Buf[4];
 0000           ; void Seg7_Led_Init(void)
 0000           ; {
 0000                   .dbline 18
 0000           ;  Seg7_Data_Ddr=0xff;
 0000 8FEF              ldi R24,255
 0002 87BB              out 0x17,R24
 0004                   .dbline 19
 0004           ;  Seg7_Data_Port=0x00;
 0004 2224              clr R2
 0006 28BA              out 0x18,R2
 0008                   .dbline 20
 0008           ;  Seg7_Bitselect_Port&=~((1<<Seg7_Bit0)|(1<<Seg7_Bit1)|(1<<Seg7_Bit2)|(1<<Seg7_Bit3));
 0008 85B3              in R24,0x15
 000A 8C73              andi R24,60
 000C 85BB              out 0x15,R24
 000E                   .dbline 21
 000E           ;  Seg7_Bitselect_Ddr|=((1<<Seg7_Bit0)|(1<<Seg7_Bit1)|(1<<Seg7_Bit2)|(1<<Seg7_Bit3));
 000E 84B3              in R24,0x14
 0010 836C              ori R24,195
 0012 84BB              out 0x14,R24
 0014                   .dbline 22
 0014           ;  Seg7_Led_Buf[0]=16;
 0014 80E1              ldi R24,16
 0016 80930000          sts _Seg7_Led_Buf,R24
 001A                   .dbline 23
 001A           ;  Seg7_Led_Buf[1]=16;
 001A 80930100          sts _Seg7_Led_Buf+1,R24
 001E                   .dbline 24
 001E           ;  Seg7_Led_Buf[2]=16;
 001E 80930200          sts _Seg7_Led_Buf+2,R24
 0022                   .dbline 25
 0022           ;  Seg7_Led_Buf[3]=16;
 0022 80930300          sts _Seg7_Led_Buf+3,R24
 0026                   .dbline -2
 0026           L1:
 0026                   .dbline 0 ; func end
 0026 0895              ret
 0028                   .dbend
 0028                   .dbfunc e Seg7_Led_Update _Seg7_Led_Update fV
                        .even
 0028           _Seg7_Led_Update::
 0028                   .dbline -1
 0028                   .dbline 29
 0028           ; }
 0028           ; 
 0028           ; void Seg7_Led_Update(void)
 0028           ; {
 0028                   .dbline 30
 0028           ;  Seg7_Data_Port=Seg7_Data[Seg7_Led_Buf[0]];
 0028 80E0              ldi R24,<_Seg7_Data
 002A 90E0              ldi R25,>_Seg7_Data
 002C E0910000          lds R30,_Seg7_Led_Buf
 0030 FF27              clr R31
 0032 E80F              add R30,R24
 0034 F91F              adc R31,R25
 0036 E491              lpm R30,Z
 0038 E8BB              out 0x18,R30
 003A                   .dbline 31
 003A           ;  Seg7_Bit0_En();
 003A                   .dbline 31
 003A A79A              sbi 0x14,7
 003C                   .dbline 31
 003C AF9A              sbi 0x15,7
 003E                   .dbline 31
 003E                   .dbline 31
 003E                   .dbline 32
 003E           ;  Delay100us(60);
 003E 0CE3              ldi R16,60
 0040 0E940000          xcall _Delay100us
 0044                   .dbline 33
 0044           ;  Seg7_Bit0_Dis();
 0044                   .dbline 33
 0044 A79A              sbi 0x14,7
 0046                   .dbline 33
 0046 AF98              cbi 0x15,7
 0048                   .dbline 33
 0048                   .dbline 33
 0048                   .dbline 34
 0048           ;  Seg7_Data_Port=Seg7_Data[Seg7_Led_Buf[1]];
 0048 80E0              ldi R24,<_Seg7_Data
 004A 90E0              ldi R25,>_Seg7_Data
 004C E0910100          lds R30,_Seg7_Led_Buf+1
 0050 FF27              clr R31
 0052 E80F              add R30,R24
 0054 F91F              adc R31,R25
 0056 E491              lpm R30,Z
 0058 E8BB              out 0x18,R30
 005A                   .dbline 35
 005A           ;  Seg7_Bit1_En();
 005A                   .dbline 35
 005A A69A              sbi 0x14,6
 005C                   .dbline 35
 005C AE9A              sbi 0x15,6
 005E                   .dbline 35
 005E                   .dbline 35
 005E                   .dbline 36
 005E           ;  Delay100us(60);
 005E 0CE3              ldi R16,60
 0060 0E940000          xcall _Delay100us
 0064                   .dbline 37
 0064           ;  Seg7_Bit1_Dis();
 0064                   .dbline 37
 0064 A69A              sbi 0x14,6
 0066                   .dbline 37
 0066 AE98              cbi 0x15,6
 0068                   .dbline 37
 0068                   .dbline 37
 0068                   .dbline 38
 0068           ;  Seg7_Data_Port=Seg7_Data[Seg7_Led_Buf[2]];
 0068 80E0              ldi R24,<_Seg7_Data
 006A 90E0              ldi R25,>_Seg7_Data
 006C E0910200          lds R30,_Seg7_Led_Buf+2
 0070 FF27              clr R31
 0072 E80F              add R30,R24
 0074 F91F              adc R31,R25
 0076 E491              lpm R30,Z
 0078 E8BB              out 0x18,R30
 007A                   .dbline 39
 007A           ;  Seg7_Bit2_En();
 007A                   .dbline 39
 007A A19A              sbi 0x14,1
 007C                   .dbline 39
 007C A99A              sbi 0x15,1
 007E                   .dbline 39
 007E                   .dbline 39
 007E                   .dbline 40
 007E           ;  Delay100us(60);
 007E 0CE3              ldi R16,60
 0080 0E940000          xcall _Delay100us
 0084                   .dbline 41
 0084           ;  Seg7_Bit2_Dis();
 0084                   .dbline 41
 0084 A19A              sbi 0x14,1
 0086                   .dbline 41
 0086 A998              cbi 0x15,1
 0088                   .dbline 41
 0088                   .dbline 41
 0088                   .dbline 42
 0088           ;  Seg7_Data_Port=Seg7_Data[Seg7_Led_Buf[3]];
 0088 80E0              ldi R24,<_Seg7_Data
 008A 90E0              ldi R25,>_Seg7_Data
 008C E0910300          lds R30,_Seg7_Led_Buf+3
 0090 FF27              clr R31
 0092 E80F              add R30,R24
 0094 F91F              adc R31,R25
 0096 E491              lpm R30,Z
 0098 E8BB              out 0x18,R30
 009A                   .dbline 43
 009A           ;  Seg7_Bit3_En();
 009A                   .dbline 43
 009A A09A              sbi 0x14,0
 009C                   .dbline 43
 009C A89A              sbi 0x15,0
 009E                   .dbline 43
 009E                   .dbline 43
 009E                   .dbline 44
 009E           ;  Delay100us(60);
 009E 0CE3              ldi R16,60
 00A0 0E940000          xcall _Delay100us
 00A4                   .dbline 45
 00A4           ;  Seg7_Bit3_Dis(); 
 00A4                   .dbline 45
 00A4 A09A              sbi 0x14,0
 00A6                   .dbline 45
 00A6 A898              cbi 0x15,0
 00A8                   .dbline 45
 00A8                   .dbline 45
 00A8                   .dbline -2
 00A8           L5:
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbend
 00AA                   .dbfunc e Seg7_Led_display _Seg7_Led_display fV
 00AA           ;           data -> R20,R21
                        .even
 00AA           _Seg7_Led_display::
 00AA 0E940000          xcall push_gset1
 00AE A801              movw R20,R16
 00B0                   .dbline -1
 00B0                   .dbline 49
 00B0           ; }
 00B0           ; 
 00B0           ; void Seg7_Led_display(unsigned int data)
 00B0           ; {
 00B0                   .dbline 50
 00B0           ;  Seg7_Led_Buf[3]=data/1000;
 00B0 28EE              ldi R18,1000
 00B2 33E0              ldi R19,3
 00B4 8A01              movw R16,R20
 00B6 0E940000          xcall div16u
 00BA 00930300          sts _Seg7_Led_Buf+3,R16
 00BE                   .dbline 51
 00BE           ;  Seg7_Led_Buf[2]=(data%1000)/100;
 00BE 28EE              ldi R18,1000
 00C0 33E0              ldi R19,3
 00C2 8A01              movw R16,R20
 00C4 0E940000          xcall mod16u
 00C8 24E6              ldi R18,100
 00CA 30E0              ldi R19,0
 00CC 0E940000          xcall div16u
 00D0 00930200          sts _Seg7_Led_Buf+2,R16
 00D4                   .dbline 52
 00D4           ;  Seg7_Led_Buf[1]=(data%100)/10;
 00D4 24E6              ldi R18,100
 00D6 30E0              ldi R19,0
 00D8 8A01              movw R16,R20
 00DA 0E940000          xcall mod16u
 00DE 2AE0              ldi R18,10
 00E0 30E0              ldi R19,0
 00E2 0E940000          xcall div16u
 00E6 00930100          sts _Seg7_Led_Buf+1,R16
 00EA                   .dbline 53
 00EA           ;  Seg7_Led_Buf[0]=data%10;
 00EA 2AE0              ldi R18,10
 00EC 30E0              ldi R19,0
 00EE 8A01              movw R16,R20
 00F0 0E940000          xcall mod16u
 00F4 00930000          sts _Seg7_Led_Buf,R16
 00F8                   .dbline 54
 00F8           ;  Seg7_Led_Update();
 00F8 97DF              xcall _Seg7_Led_Update
 00FA                   .dbline -2
 00FA           L9:
 00FA 0E940000          xcall pop_gset1
 00FE                   .dbline 0 ; func end
 00FE 0895              ret
 0100                   .dbsym r data 20 i
 0100                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\avrvi\democode\key_4\source\lib\7segled.c
 0000           _Seg7_Led_Buf::
 0000                   .blkb 4
 0004                   .dbsym e Seg7_Led_Buf _Seg7_Led_Buf A[4:4]c

⌨️ 快捷键说明

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