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

📄 main.lis

📁 meg16 的所有功能实例
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管秒表系统\main.c
 0000                   .dbfunc e INT0_Init _INT0_Init fV
                        .even
 0000           _INT0_Init::
 0000                   .dbline -1
 0000                   .dbline 51
 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:              Nixie Light Test.
 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           ; **描述:这是一个秒表实验,最大支持99.99秒。由按键K0完成启动计时和停止计时。
 0000           ; **涉及知识点:
 0000           ; **          T/C0的CTC工作模式
 0000           ; **          INT0的下降沿中断工作模式
 0000           ; *******************************************************************************************************/
 0000           ; #include<iom16v.h>
 0000           ; #include<macros.h>
 0000           ; 
 0000           ; #define               fose    7372800
 0000           ; 
 0000           ; #define       START   0
 0000           ; #define       STOP    1
 0000           ; #define       CLEAR   3
 0000           ; unsigned char Nixie_State;
 0000           ; unsigned int time_10ms;
 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];           //显示的数字
 0000           ; 
 0000           ; void Display(void);
 0000           ; 
 0000           ; void INT0_Init()
 0000           ; {
 0000                   .dbline 52
 0000           ;  GIFR |=0X40;              //清楚标志位
 0000 8AB7              in R24,0x3a
 0002 8064              ori R24,64
 0004 8ABF              out 0x3a,R24
 0006                   .dbline 54
 0006           ;  //MCUCR|=0X03;                          //上升沿触发中断     
 0006           ;  MCUCR|=0X02;MCUCR&=~0X01; //下降沿触发中断   
 0006 85B7              in R24,0x35
 0008 8260              ori R24,2
 000A 85BF              out 0x35,R24
 000C                   .dbline 54
 000C 85B7              in R24,0x35
 000E 8E7F              andi R24,254
 0010 85BF              out 0x35,R24
 0012                   .dbline 55
 0012           ;  GICR |=0X40;                            //使能外部中断0
 0012 8BB7              in R24,0x3b
 0014 8064              ori R24,64
 0016 8BBF              out 0x3b,R24
 0018                   .dbline -2
 0018           L1:
 0018                   .dbline 0 ; func end
 0018 0895              ret
 001A                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C940D00          jmp _int0_isr
                        .area text(rom, con, rel)
 001A                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管秒表系统\main.c
 001A                   .dbfunc e int0_isr _int0_isr fV
                        .even
 001A           _int0_isr::
 001A 2A92              st -y,R2
 001C 3A92              st -y,R3
 001E 8A93              st -y,R24
 0020 2FB6              in R2,0x3f
 0022 2A92              st -y,R2
 0024                   .dbline -1
 0024                   .dbline 60
 0024           ; }
 0024           ; 
 0024           ; #pragma interrupt_handler int0_isr:2
 0024           ; void int0_isr(void)
 0024           ; {
 0024                   .dbline 62
 0024           ;  
 0024           ;  if((PIND&0x04)!=0x00)  //读取按键状态
 0024 829B              sbis 0x10,2
 0026 01C0              rjmp L3
 0028                   .dbline 63
 0028           ;     {
 0028                   .dbline 64
 0028           ;       return;
 0028 10C0              xjmp L2
 002A           L3:
 002A                   .dbline 66
 002A           ;       }
 002A           ;  if(Nixie_State ==STOP)
 002A 80910700          lds R24,_Nixie_State
 002E 8130              cpi R24,1
 0030 49F4              brne L5
 0032                   .dbline 67
 0032           ;       {
 0032                   .dbline 68
 0032           ;       time_10ms = 0;
 0032 2224              clr R2
 0034 3324              clr R3
 0036 30920600          sts _time_10ms+1,R3
 003A 20920500          sts _time_10ms,R2
 003E                   .dbline 69
 003E           ;       Nixie_State = START;
 003E 20920700          sts _Nixie_State,R2
 0042                   .dbline 70
 0042           ;       }
 0042 03C0              xjmp L6
 0044           L5:
 0044                   .dbline 72
 0044                   .dbline 73
 0044 81E0              ldi R24,1
 0046 80930700          sts _Nixie_State,R24
 004A                   .dbline 74
 004A           L6:
 004A                   .dbline -2
 004A           L2:
 004A 2990              ld R2,y+
 004C 2FBE              out 0x3f,R2
 004E 8991              ld R24,y+
 0050 3990              ld R3,y+
 0052 2990              ld R2,y+
 0054                   .dbline 0 ; func end
 0054 1895              reti
 0056                   .dbend
 0056                   .dbfunc e Display _Display fV
                        .even
 0056           _Display::
 0056                   .dbline -1
 0056                   .dbline 81
 0056           ;  else
 0056           ;       {
 0056           ;       Nixie_State = STOP;
 0056           ;       }
 0056           ;       
 0056           ; }
 0056           ; 
 0056           ; //显示函数,DISP_NUM决定显示哪个LED
 0056           ; //采用共阴LED动态显示方法,定时中断函数里面调用
 0056           ; void Display(void)            
 0056           ; {
 0056                   .dbline 82
 0056           ;  PORTA=0x00;                                                          //清除显示再位选
 0056 2224              clr R2
 0058 2BBA              out 0x1b,R2
 005A                   .dbline 83
 005A           ;  PORTB=BitTab[DISP_NUM];                                      //PB口接位选
 005A 80E0              ldi R24,<_BitTab
 005C 90E0              ldi R25,>_BitTab
 005E E0910400          lds R30,_DISP_NUM
 0062 FF27              clr R31
 0064 E80F              add R30,R24
 0066 F91F              adc R31,R25
 0068 2080              ldd R2,z+0
 006A 28BA              out 0x18,R2
 006C                   .dbline 84
 006C           ;  PORTA=DispTab[DISP_DATA[DISP_NUM]];          //PA口接LED的段码
 006C 80E0              ldi R24,<_DISP_DATA
 006E 90E0              ldi R25,>_DISP_DATA
 0070 E0910400          lds R30,_DISP_NUM
 0074 FF27              clr R31
 0076 E80F              add R30,R24
 0078 F91F              adc R31,R25
 007A E081              ldd R30,z+0
 007C FF27              clr R31
 007E 80E0              ldi R24,<_DispTab
 0080 90E0              ldi R25,>_DispTab
 0082 E80F              add R30,R24
 0084 F91F              adc R31,R25
 0086 2080              ldd R2,z+0

⌨️ 快捷键说明

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