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

📄 main.lis

📁 meg16 的所有功能实例
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0088 2BBA              out 0x1b,R2
 008A                   .dbline 86
 008A           ;  
 008A           ;  if(DISP_NUM==1)
 008A 80910400          lds R24,_DISP_NUM
 008E 8130              cpi R24,1
 0090 09F4              brne L8
 0092                   .dbline 87
 0092           ;     PORTA|=0x80;              //PA口接LED的段码 
 0092 DF9A              sbi 0x1b,7
 0094           L8:
 0094                   .dbline 89
 0094 80910400          lds R24,_DISP_NUM
 0098 8F5F              subi R24,255    ; addi 1
 009A 80930400          sts _DISP_NUM,R24
 009E                   .dbline 90
 009E 8430              cpi R24,4
 00A0 19F4              brne L10
 00A2                   .dbline 91
 00A2 2224              clr R2
 00A4 20920400          sts _DISP_NUM,R2
 00A8           L10:
 00A8                   .dbline -2
 00A8           L7:
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbend
                        .area vector(rom, abs)
                        .org 76
 004C 0C945500          jmp _timer0comp
                        .area text(rom, con, rel)
 00AA                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管秒表系统\main.c
 00AA                   .dbfunc e timer0comp _timer0comp fV
                        .even
 00AA           _timer0comp::
 00AA 0E940000          xcall push_lset
 00AE                   .dbline -1
 00AE                   .dbline 96
 00AE           ;  
 00AE           ;  DISP_NUM++;                  //先显示低位,再显示高位
 00AE           ;  if(DISP_NUM==4)
 00AE           ;     DISP_NUM=0;
 00AE           ; }
 00AE           ; 
 00AE           ; #pragma interrupt_handler timer0comp:20
 00AE           ; void timer0comp (void)
 00AE           ; {
 00AE                   .dbline 97
 00AE           ;  if(Nixie_State == START)
 00AE 20900700          lds R2,_Nixie_State
 00B2 2220              tst R2
 00B4 69F4              brne L13
 00B6                   .dbline 98
 00B6           ;      {
 00B6                   .dbline 99
 00B6           ;        if(time_10ms<9999)
 00B6 80910500          lds R24,_time_10ms
 00BA 90910600          lds R25,_time_10ms+1
 00BE 8F30              cpi R24,15
 00C0 E7E2              ldi R30,39
 00C2 9E07              cpc R25,R30
 00C4 28F4              brsh L15
 00C6                   .dbline 100
 00C6           ;                {
 00C6                   .dbline 101
 00C6           ;                time_10ms++;
 00C6 0196              adiw R24,1
 00C8 90930600          sts _time_10ms+1,R25
 00CC 80930500          sts _time_10ms,R24
 00D0                   .dbline 102
 00D0           ;                } 
 00D0           L15:
 00D0                   .dbline 103
 00D0           ;        }
 00D0           L13:
 00D0                   .dbline 107
 00D0           ;  
 00D0           ;  
 00D0           ;  
 00D0           ;  DISP_DATA[0]=time_10ms/1000;
 00D0 28EE              ldi R18,1000
 00D2 33E0              ldi R19,3
 00D4 00910500          lds R16,_time_10ms
 00D8 10910600          lds R17,_time_10ms+1
 00DC 0E940000          xcall div16u
 00E0 00930000          sts _DISP_DATA,R16
 00E4                   .dbline 108
 00E4           ;  DISP_DATA[1]=(time_10ms/100)-(DISP_DATA[0]*10);
 00E4 202E              mov R2,R16
 00E6 8AE0              ldi R24,10
 00E8 829D              mul R24,R2
 00EA 1001              movw R2,R0
 00EC 24E6              ldi R18,100
 00EE 30E0              ldi R19,0
 00F0 00910500          lds R16,_time_10ms
 00F4 10910600          lds R17,_time_10ms+1
 00F8 0E940000          xcall div16u
 00FC 2801              movw R4,R16
 00FE 4218              sub R4,R2
 0100 5308              sbc R5,R3
 0102 40920100          sts _DISP_DATA+1,R4
 0106                   .dbline 109
 0106           ;  DISP_DATA[3]=time_10ms%10;
 0106 2AE0              ldi R18,10
 0108 30E0              ldi R19,0
 010A 00910500          lds R16,_time_10ms
 010E 10910600          lds R17,_time_10ms+1
 0112 0E940000          xcall mod16u
 0116 00930300          sts _DISP_DATA+3,R16
 011A                   .dbline 110
 011A           ;  DISP_DATA[2]=((time_10ms%100)-DISP_DATA[3])/10;
 011A 24E6              ldi R18,100
 011C 30E0              ldi R19,0
 011E 00910500          lds R16,_time_10ms
 0122 10910600          lds R17,_time_10ms+1
 0126 0E940000          xcall mod16u
 012A 1801              movw R2,R16
 012C 40900300          lds R4,_DISP_DATA+3
 0130 5524              clr R5
 0132 2418              sub R2,R4
 0134 3508              sbc R3,R5
 0136 2AE0              ldi R18,10
 0138 30E0              ldi R19,0
 013A 8101              movw R16,R2
 013C 0E940000          xcall div16u
 0140 00930200          sts _DISP_DATA+2,R16
 0144                   .dbline 112
 0144           ;  
 0144           ;  Display();
 0144 88DF              xcall _Display
 0146                   .dbline -2
 0146           L12:
 0146 0E940000          xcall pop_lset
 014A                   .dbline 0 ; func end
 014A 1895              reti
 014C                   .dbend
 014C                   .dbfunc e main _main fV
                        .even
 014C           _main::
 014C                   .dbline -1
 014C                   .dbline 116
 014C           ; } 
 014C           ; 
 014C           ; void main(void)
 014C           ; {
 014C                   .dbline 117
 014C           ;  DDRA=0XFF;
 014C 8FEF              ldi R24,255
 014E 8ABB              out 0x1a,R24
 0150                   .dbline 118
 0150           ;  PORTA=0X00;
 0150 2224              clr R2
 0152 2BBA              out 0x1b,R2
 0154                   .dbline 119
 0154           ;  DDRB=0X0F;
 0154 8FE0              ldi R24,15
 0156 87BB              out 0x17,R24
 0158                   .dbline 120
 0158           ;  PORTB=0X00;
 0158 28BA              out 0x18,R2
 015A                   .dbline 123
 015A           ;  
 015A           ;  //按键0端口初始化
 015A           ;  DDRD &=~0x04;                //设置PD2为输入                                                         
 015A 8A98              cbi 0x11,2
 015C                   .dbline 124
 015C           ;  PORTD|=0x04;         //设置PD2为上拉
 015C 929A              sbi 0x12,2
 015E                   .dbline 126
 015E           ;  
 015E           ;  INT0_Init();                 //TART初始化
 015E 50DF              xcall _INT0_Init
 0160                   .dbline 129
 0160           ;  
 0160           ;  //t/c0初始化(10ms)
 0160           ;  TCCR0=0X0d;
 0160 8DE0              ldi R24,13
 0162 83BF              out 0x33,R24
 0164                   .dbline 130
 0164           ;  TCNT0=0X00;
 0164 2224              clr R2
 0166 22BE              out 0x32,R2
 0168                   .dbline 131
 0168           ;  OCR0=0X48;
 0168 88E4              ldi R24,72
 016A 8CBF              out 0x3c,R24
 016C                   .dbline 132
 016C           ;  TIMSK=0X02;
 016C 82E0              ldi R24,2
 016E 89BF              out 0x39,R24
 0170                   .dbline 134
 0170           ;  
 0170           ;  time_10ms=0;
 0170 3324              clr R3
 0172 30920600          sts _time_10ms+1,R3
 0176 20920500          sts _time_10ms,R2
 017A                   .dbline 137
 017A           ;  
 017A           ;  //asm("sei");
 017A           ;  SEI();                       //全局中断使能
 017A 7894              sei
 017C                   .dbline 139
 017C           ;  
 017C           ;  Nixie_State = STOP;
 017C 81E0              ldi R24,1
 017E 80930700          sts _Nixie_State,R24
 0182                   .dbline 140
 0182           ;  for(;;)
 0182           L22:
 0182                   .dbline 141
 0182                   .dbline 143
 0182                   .dbline 140
 0182                   .dbline 140
 0182 FFCF              xjmp L22
 0184           X0:
 0184                   .dbline -2
 0184           L21:
 0184                   .dbline 0 ; func end
 0184 0895              ret
 0186                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\数码管秒表系统\main.c
 0000           _DISP_DATA::
 0000                   .blkb 4
 0004                   .dbsym e DISP_DATA _DISP_DATA A[4:4]c
 0004           _DISP_NUM::
 0004                   .blkb 1
 0005                   .dbsym e DISP_NUM _DISP_NUM c
 0005           _time_10ms::
 0005                   .blkb 2
 0007                   .dbsym e time_10ms _time_10ms i
 0007           _Nixie_State::
 0007                   .blkb 1
 0008                   .dbsym e Nixie_State _Nixie_State c

⌨️ 快捷键说明

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