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

📄 start.lis

📁 利用时间片思想设计的一个AVR单片机的时钟程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module Start.c
                        .area data(ram, con, rel)
 0000           _SysCount::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile G:\Demo/Define.h
 0001                   .dbsym e SysCount _SysCount c
 0001           _TimeCount::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile G:\Demo/Define.h
 0002                   .dbsym e TimeCount _TimeCount c
 0002           _ScanKeyFlag::
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile G:\Demo/Define.h
 0003                   .dbsym e ScanKeyFlag _ScanKeyFlag c
 0003           _DispTimeFlag::
 0003                   .blkb 1
                        .area idata
 0003 00                .byte 0
                        .area data(ram, con, rel)
 0004                   .dbfile G:\Demo/Define.h
 0004                   .dbsym e DispTimeFlag _DispTimeFlag c
 0004           _TimeAddFlag::
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile G:\Demo/Define.h
 0005                   .dbsym e TimeAddFlag _TimeAddFlag c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\Demo/Define.h
 0000                   .dbfile G:\Demo/LCD_1602.h
 0000                   .dbfunc e LCD_init _LCD_init fV
                        .even
 0000           _LCD_init::
 0000                   .dbline -1
 0000                   .dbline 48
 0000           ; #include      <iom16v.h>                                                                          
 0000           ; #include      <macros.h>
 0000           ; 
 0000           ; #include      "Define.h"
 0000           ; #include      "LCD_1602.h"
 0000           ; #include      "Deal.h"
 0000           ; 
 0000           ; 
 0000           ; #pragma interrupt_handler Timer1:9
 0000           ; void  Timer1(void)
 0000           ; {     SysTCNT = SysTime;
 0000           ;       ScanKeyFlag = 1;
 0000           ;       
 0000           ;       SysCount++;
 0000           ;       if( SysCount == 50 )
 0000           ;       {       DispTimeFlag = 1;       SysCount = 0;   }
 0000           ; 
 0000           ;       TimeCount++;
 0000           ;       if( TimeCount == 100 )
 0000           ;       {       TimeAddFlag = 1;        TimeCount = 0;  }
 0000           ; }
 0000           ; 
 0000           ; void  main(void)
 0000           ; {     SysIntial();
 0000           ;       //LCD_write_string(0,0,"Welcome");
 0000           ;       while(1)
 0000           ;       {       
 0000           ;               if( ScanKeyFlag == 1 )
 0000           ;               {       if( ScanKey() == 1 )
 0000           ;                       {       DealKey();      }
 0000           ;                       ScanKeyFlag = 0;        
 0000           ;               }
 0000           ;               
 0000           ;               if( DispTimeFlag == 1 )
 0000           ;               {       DispTime();     
 0000           ;                       DispTimeFlag = 0;       
 0000           ;               }
 0000           ;               
 0000           ;               if( TimeAddFlag == 1 )
 0000           ;               {       TimeAdd();      TimeAddFlag = 0;        }
 0000           ;       }       
 0000           ; }
 0000           ; 
 0000           ; void  SysIntial(void)
 0000           ; {     InitalKey();
 0000           ;       LCD_init();
 0000           ;       
 0000           ;       SysTCNT = SysTime;                                                      //计算溢出个数
 0000                   .dbline 49
 0000           ;       SysTIMSK |= 1 << TOIE1;                                         //开启系统时钟溢出中断
 0000 D19A              sbi 0x1a,1
 0002                   .dbline 49
 0002 D998              cbi 0x1b,1
 0004                   .dbline 50
 0004           ;       SREG |= 0x80;                                   //enable grobal interrupt
 0004 D29A              sbi 0x1a,2
 0006                   .dbline 50
 0006 DA98              cbi 0x1b,2
 0008                   .dbline 51
 0008           ;       SysTCCR = SysIspEn;
 0008 D39A              sbi 0x1a,3
 000A                   .dbline 51
 000A DB98              cbi 0x1b,3
 000C                   .dbline 53
 000C           ; }
 000C           ; }
 000C 8AB3              in R24,0x1a
 000E 806F              ori R24,240
 0010 8ABB              out 0x1a,R24
 0012                   .dbline 55
 0012           ; }
 0012           ; }
 0012 09E1              ldi R16,25
 0014 10E0              ldi R17,0
 0016 34D1              xcall _delay_nms
 0018                   .dbline 57
 0018           ; }
 0018           ; }
 0018 2227              clr R18
 001A 3327              clr R19
 001C 08E2              ldi R16,40
 001E 10E0              ldi R17,0
 0020 16D0              xcall _LCD_write_char
 0022                   .dbline 58
 0022           ; }
 0022 2227              clr R18
 0024 3327              clr R19
 0026 0CE0              ldi R16,12
 0028 10E0              ldi R17,0
 002A 11D0              xcall _LCD_write_char
 002C                   .dbline 59
 002C           ; }
 002C 2227              clr R18
 002E 3327              clr R19
 0030 01E0              ldi R16,1
 0032 10E0              ldi R17,0
 0034 0CD0              xcall _LCD_write_char
 0036                   .dbline 60
 0036           ; }
 0036 2227              clr R18
 0038 3327              clr R19
 003A 06E0              ldi R16,6
 003C 10E0              ldi R17,0
 003E 07D0              xcall _LCD_write_char
 0040                   .dbline -2
 0040           L2:
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbend
 0042                   .dbfunc e LCD_en_write _LCD_en_write fV
                        .even
 0042           _LCD_en_write::
 0042                   .dbline -1
 0042                   .dbline 64
 0042           ; }
 0042           ; }
 0042           ; }
 0042           ; }
 0042                   .dbline 64
 0042 D99A              sbi 0x1b,1
 0044                   .dbline 65
 0044           ; }
 0044 02E0              ldi R16,2
 0046 10E0              ldi R17,0
 0048 02D1              xcall _delay_nus
 004A                   .dbline 66
 004A           ; }
 004A D998              cbi 0x1b,1
 004C                   .dbline -2
 004C           L3:
 004C                   .dbline 0 ; func end
 004C 0895              ret
 004E                   .dbend
 004E                   .dbfunc e LCD_write_char _LCD_write_char fc
 004E           ;      data_temp -> R22,R23
 004E           ;   command_temp -> R20,R21
 004E           ;           data -> R12,R13
 004E           ;        command -> R10,R11
                        .even
 004E           _LCD_write_char::
 004E 0E940000          xcall push_gset4
 0052 6901              movw R12,R18
 0054 5801              movw R10,R16
 0056                   .dbline -1
 0056                   .dbline 80
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056           ; }
 0056                   .dbline 82
 0056           ; }
 0056           ; }
 0056 A501              movw R20,R10
 0058                   .dbline 83
 0058           ; }
 0058 B601              movw R22,R12
 005A                   .dbline 85
 005A           ; }
 005A           ; }
 005A 5CD0              xcall _LCD_wait_Ready
 005C 0130              cpi R16,1
 005E 11F4              brne L5
 0060                   .dbline 86
 0060           ; }
 0060                   .dbline 86
 0060 01E0              ldi R16,1
 0062 55C0              xjmp L4
 0064           L5:
 0064                   .dbline 88
 0064           ; }
 0064           ; }
 0064 DA98              cbi 0x1b,2
 0066                   .dbline 89
 0066           ; }
 0066 AA20              tst R10
 0068 91F4              brne L7
 006A BB20              tst R11
 006C 81F4              brne L7
 006E           X0:
 006E                   .dbline 90
 006E           ; }
 006E                   .dbline 90
 006E DB9A              sbi 0x1b,3
 0070                   .dbline 91
 0070           ; }
 0070 0000              nop
 0072                   .dbline 92
 0072           ; }
 0072 8BB3              in R24,0x1b
 0074 8F70              andi R24,15
 0076 8BBB              out 0x1b,R24
 0078                   .dbline 93
 0078           ; }
 0078 0000              nop
 007A                   .dbline 95
 007A           ; }
 007A           ; }
 007A CB01              movw R24,R22
 007C 807F              andi R24,240
 007E 9070              andi R25,0
 0080 2BB2              in R2,0x1b
 0082 3324              clr R3
 0084 282A              or R2,R24
 0086 392A              or R3,R25
 0088 2BBA              out 0x1b,R2
 008A                   .dbline 96
 008A           ; }
 008A 0000              nop
 008C                   .dbline 97
 008C           ; }
 008C 0FC0              xjmp L8
 008E           L7:
 008E                   .dbline 99
 008E           ; }
 008E           ; }
 008E                   .dbline 99
 008E DB98              cbi 0x1b,3
 0090                   .dbline 100
 0090           ; }
 0090 0000              nop
 0092                   .dbline 101
 0092           ; }
 0092 8BB3              in R24,0x1b
 0094 8F70              andi R24,15
 0096 8BBB              out 0x1b,R24
 0098                   .dbline 102
 0098           ; }
 0098 0000              nop
 009A                   .dbline 104
 009A           ; }
 009A           ; }
 009A CA01              movw R24,R20
 009C 807F              andi R24,240
 009E 9070              andi R25,0
 00A0 2BB2              in R2,0x1b
 00A2 3324              clr R3
 00A4 282A              or R2,R24
 00A6 392A              or R3,R25
 00A8 2BBA              out 0x1b,R2
 00AA                   .dbline 105
 00AA           ; }
 00AA 0000              nop
 00AC                   .dbline 106
 00AC           ; }
 00AC           L8:
 00AC                   .dbline 107
 00AC           ; }
 00AC CADF              xcall _LCD_en_write
 00AE                   .dbline 109
 00AE           ; }
 00AE           ; }
 00AE 440F              lsl R20
 00B0 551F              rol R21
 00B2 440F              lsl R20
 00B4 551F              rol R21
 00B6 440F              lsl R20
 00B8 551F              rol R21
 00BA 440F              lsl R20
 00BC 551F              rol R21
 00BE                   .dbline 110
 00BE           ; }
 00BE 660F              lsl R22
 00C0 771F              rol R23
 00C2 660F              lsl R22
 00C4 771F              rol R23
 00C6 660F              lsl R22
 00C8 771F              rol R23
 00CA 660F              lsl R22
 00CC 771F              rol R23
 00CE                   .dbline 112
 00CE           ; }
 00CE           ; }
 00CE 8BB3              in R24,0x1b
 00D0 8F70              andi R24,15
 00D2 8BBB              out 0x1b,R24
 00D4                   .dbline 113
 00D4           ; }
 00D4 AA20              tst R10
 00D6 59F4              brne L9
 00D8 BB20              tst R11
 00DA 49F4              brne L9
 00DC           X1:
 00DC                   .dbline 114
 00DC           ; }
 00DC                   .dbline 115
 00DC           ; }
 00DC CB01              movw R24,R22
 00DE 807F              andi R24,240
 00E0 9070              andi R25,0
 00E2 2BB2              in R2,0x1b
 00E4 3324              clr R3
 00E6 282A              or R2,R24
 00E8 392A              or R3,R25
 00EA 2BBA              out 0x1b,R2
 00EC                   .dbline 116
 00EC           ; }
 00EC 08C0              xjmp L10
 00EE           L9:
 00EE                   .dbline 118
 00EE           ; }
 00EE           ; }
 00EE                   .dbline 119
 00EE           ; }
 00EE CA01              movw R24,R20
 00F0 807F              andi R24,240
 00F2 9070              andi R25,0
 00F4 2BB2              in R2,0x1b
 00F6 3324              clr R3
 00F8 282A              or R2,R24
 00FA 392A              or R3,R25
 00FC 2BBA              out 0x1b,R2
 00FE                   .dbline 120
 00FE           ; }
 00FE           L10:
 00FE                   .dbline 121
 00FE           ; }
 00FE A1DF              xcall _LCD_en_write
 0100                   .dbline 123
 0100           ; }
 0100           ; }
 0100 DA9A              sbi 0x1b,2
 0102                   .dbline 124
 0102           ; }
 0102 0000              nop
 0104                   .dbline 125
 0104           ; }
 0104 88E0              ldi R24,8
 0106 2BB2              in R2,0x1b
 0108 2826              eor R2,R24
 010A 2BBA              out 0x1b,R2
 010C                   .dbline 127
 010C           ; }
 010C           ; }
 010C 0027              clr R16
 010E                   .dbline -2
 010E           L4:
 010E 0E940000          xcall pop_gset4
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbsym r data_temp 22 i
 0114                   .dbsym r command_temp 20 i
 0114                   .dbsym r data 12 i
 0114                   .dbsym r command 10 i
 0114                   .dbend
 0114                   .dbfunc e LCD_wait_Ready _LCD_wait_Ready fc
 0114           ;           temp -> R16,R17
                        .even
 0114           _LCD_wait_Ready::
 0114                   .dbline -1
 0114                   .dbline 131
 0114           ; }
 0114           ; }

⌨️ 快捷键说明

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