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

📄 main.lis

📁 meg16 的所有功能实例
💻 LIS
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _BitTab::
 0000                   .blkb 2
                        .area idata
 0000 FEFD              .byte 254,253
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 FBF7              .byte 251,247
                        .area data(ram, con, rel)
 0004                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0004                   .dbsym e BitTab _BitTab A[4:4]c
 0004           _DispTab::
 0004                   .blkb 2
                        .area idata
 0004 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0006                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0006                   .blkb 2
                        .area idata
 0006 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0008                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0008                   .blkb 2
                        .area idata
 0008 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 000A                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 000A                   .blkb 2
                        .area idata
 000A 7D07              .byte 125,7
                        .area data(ram, con, rel)
 000C                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 000C                   .blkb 2
                        .area idata
 000C 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000E                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 000E                   .dbsym e DispTab _DispTab A[10:10]c
 000E           _DISP_DATA::
 000E                   .blkb 2
                        .area idata
 000E 0200              .byte 2,0
                        .area data(ram, con, rel)
 0010                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0010                   .blkb 2
                        .area idata
 0010 0009              .byte 0,9
                        .area data(ram, con, rel)
 0012                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0012                   .dbsym e DISP_DATA _DISP_DATA A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0000                   .dbfunc e Delay_us _Delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _Delay_us::
 0000                   .dbline -1
 0000                   .dbline 48
 0000           ; /****************************************Copyright (c)**************************************************
 0000           ; **                               ADEmbed Development Co.,LTD.                                    
 0000           ; **                                 http://www.adembed.com
 0000           ; **--------------File Info-------------------------------------------------------------------------------
 0000           ; ** File name:                 main.c
 0000           ; ** Last modified Date:  2008-12-13
 0000           ; ** Last Version:              1.0
 0000           ; ** Descriptions:              StopWatch.
 0000           ; ** 
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Created by:                        junbolu
 0000           ; ** Created date:              2008-12-13
 0000           ; ** Version:                           1.0
 0000           ; ** Descriptions:              
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Modified by:
 0000           ; ** Modified date:
 0000           ; ** Version:
 0000           ; ** Descriptions:
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; **ICC-AVR application builder : 2008-12-13
 0000           ; **Target : M16
 0000           ; **Crystal: 7.3728Mhz
 0000           ; **PA0~PA7口接LED的段码
 0000           ; **PB0~PB3口接LED的位选
 0000           ; **描述:这是一个LED数码管测试程序。采用共阴LED数码管,动态显示固定数字2009。
 0000           ; **      没有一点多余的代码,清晰明了。
 0000           ; **
 0000           ; **涉及知识点:
 0000           ; **          DO输出
 0000           ; **          for 循环的应用
 0000           ; **          数组的简单应用
 0000           ; *******************************************************************************************************/
 0000           ; 
 0000           ; #include<iom16v.h>
 0000           ; #include<macros.h>
 0000           ; 
 0000           ; unsigned char DISP_NUM;                                                       //显示的位数
 0000           ; unsigned char BitTab[]={0xFE,0xFD,0xFB,0xF7}; //三位位选码
 0000           ; unsigned char DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //LED字形码
 0000           ; unsigned char DISP_DATA[4]={2,0,0,9};             //显示的数字
 0000           ; 
 0000           ; void Display(void);
 0000           ; 
 0000           ; void Delay_us(unsigned int time)
 0000           ; {
 0000           L2:
 0000                   .dbline 49
 0000           L3:
 0000                   .dbline 49
 0000           ; while(time--);
 0000 1801              movw R2,R16
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006 2220              tst R2
 0008 D9F7              brne L2
 000A 3320              tst R3
 000C C9F7              brne L2
 000E           X0:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r time 16 i
 0010                   .dbend
 0010                   .dbfunc e Delay_ms _Delay_ms fV
 0010           ;           time -> R20,R21
                        .even
 0010           _Delay_ms::
 0010 0E940000          xcall push_gset1
 0014 A801              movw R20,R16
 0016                   .dbline -1
 0016                   .dbline 53
 0016           ; }
 0016           ; 
 0016           ; void Delay_ms(unsigned int time)
 0016           ; {
 0016 03C0              xjmp L7
 0018           L6:
 0018                   .dbline 55
 0018                   .dbline 56
 0018 00E1              ldi R16,10000
 001A 17E2              ldi R17,39
 001C F1DF              xcall _Delay_us
 001E                   .dbline 57
 001E           L7:
 001E                   .dbline 54
 001E           ; while(time--)
 001E 1A01              movw R2,R20
 0020 4150              subi R20,1
 0022 5040              sbci R21,0
 0024 2220              tst R2
 0026 C1F7              brne L6
 0028 3320              tst R3
 002A B1F7              brne L6
 002C           X1:
 002C                   .dbline -2
 002C           L5:
 002C 0E940000          xcall pop_gset1
 0030                   .dbline 0 ; func end
 0030 0895              ret
 0032                   .dbsym r time 20 i
 0032                   .dbend
 0032                   .dbfunc e Display _Display fV
                        .even
 0032           _Display::
 0032                   .dbline -1
 0032                   .dbline 62
 0032                   .dbline 63
 0032 2224              clr R2
 0034 2BBA              out 0x1b,R2
 0036                   .dbline 64
 0036 80E0              ldi R24,<_BitTab
 0038 90E0              ldi R25,>_BitTab
 003A E0910000          lds R30,_DISP_NUM
 003E FF27              clr R31
 0040 E80F              add R30,R24
 0042 F91F              adc R31,R25
 0044 2080              ldd R2,z+0
 0046 28BA              out 0x18,R2
 0048                   .dbline 65
 0048 80E0              ldi R24,<_DISP_DATA
 004A 90E0              ldi R25,>_DISP_DATA
 004C E0910000          lds R30,_DISP_NUM
 0050 FF27              clr R31
 0052 E80F              add R30,R24
 0054 F91F              adc R31,R25
 0056 E081              ldd R30,z+0
 0058 FF27              clr R31
 005A 80E0              ldi R24,<_DispTab
 005C 90E0              ldi R25,>_DispTab
 005E E80F              add R30,R24
 0060 F91F              adc R31,R25
 0062 2080              ldd R2,z+0
 0064 2BBA              out 0x1b,R2
 0066                   .dbline 68
 0066 80910000          lds R24,_DISP_NUM
 006A 8F5F              subi R24,255    ; addi 1
 006C 80930000          sts _DISP_NUM,R24
 0070                   .dbline 69
 0070 8430              cpi R24,4
 0072 19F4              brne L10
 0074                   .dbline 70
 0074 2224              clr R2
 0076 20920000          sts _DISP_NUM,R2
 007A           L10:
 007A                   .dbline -2
 007A           L9:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e main _main fV
                        .even
 007C           _main::
 007C                   .dbline -1
 007C                   .dbline 74
 007C           ;       {
 007C           ;       Delay_us(10000);
 007C           ;       }
 007C           ; }
 007C           ; 
 007C           ; //显示函数,DISP_NUM决定显示哪个LED
 007C           ; void Display(void)            
 007C           ; {
 007C           ;  PORTA=0x00;                                                          //清除显示再位选
 007C           ;  PORTB=BitTab[DISP_NUM];                                      //PB口接位选
 007C           ;  PORTA=DispTab[DISP_DATA[DISP_NUM]];          //PA口接LED的段码
 007C           ;  
 007C           ; 
 007C           ;  DISP_NUM++;                                                          //先显示低位,再显示高位
 007C           ;  if(DISP_NUM==4)
 007C           ;     DISP_NUM=0;
 007C           ; }
 007C           ; 
 007C           ; void main(void)
 007C           ; {
 007C                   .dbline 75
 007C           ;  DDRA=0XFF;
 007C 8FEF              ldi R24,255
 007E 8ABB              out 0x1a,R24
 0080                   .dbline 76
 0080           ;  PORTA=0X00;
 0080 2224              clr R2
 0082 2BBA              out 0x1b,R2
 0084                   .dbline 77
 0084           ;  DDRB=0X0F;
 0084 8FE0              ldi R24,15
 0086 87BB              out 0x17,R24
 0088                   .dbline 78
 0088           ;  PORTB=0X00;
 0088 28BA              out 0x18,R2
 008A                   .dbline 80
 008A           ;  
 008A           ;  DISP_NUM=0;
 008A 20920000          sts _DISP_NUM,R2
 008E                   .dbline 81
 008E           ;  for(;;)
 008E           L13:
 008E                   .dbline 82
 008E                   .dbline 83
 008E 08EC              ldi R16,200
 0090 10E0              ldi R17,0
 0092 B6DF              xcall _Delay_us
 0094                   .dbline 84
 0094 CEDF              xcall _Display
 0096                   .dbline 85
 0096                   .dbline 81
 0096                   .dbline 81
 0096 FBCF              xjmp L13
 0098           X2:
 0098                   .dbline -2
 0098           L12:
 0098                   .dbline 0 ; func end
 0098 0895              ret
 009A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管测试\main.c
 0000           _DISP_NUM::
 0000                   .blkb 1
 0001                   .dbsym e DISP_NUM _DISP_NUM c

⌨️ 快捷键说明

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