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

📄 ac11-1.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module ac11-1.c
                        .area lit(rom, con, rel)
 0000           _SEG7::
 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                   .dbfile d:\MYDOCU~1\ac11-1\ac11-1.c
 000A                   .dbsym e SEG7 _SEG7 A[10:10]kc
 000A           _ACT::
 000A FEFD              .byte 254,253
 000C FBF7              .byte 251,247
 000E                   .dbsym e ACT _ACT A[4:4]kc
                        .area text(rom, con, rel)
 0000                   .dbfile d:\MYDOCU~1\ac11-1\ac11-1.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;              k -> R16,R17
                        .even
 0000           _delay_ms::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 10
 0004           ; #include <iom16v.h>                   
 0004           ; #define uchar unsigned char   
 0004           ; #define uint  unsigned int    
 0004           ; uchar const SEG7[10]={0x3f,0x06,0x5b, 
 0004           ; 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
 0004           ; uchar const ACT[4]={0xfe,0xfd,0xfb,0xf7};
 0004           ; uchar val,DispBuff[4];                
 0004           ; //*************************************
 0004           ; void delay_ms(uint k)         
 0004           ; {
 0004                   .dbline 12
 0004           ; uint i,j;                     
 0004           ;     for(i=0;i<k;i++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 13
 000A           ;     {
 000A                   .dbline 14
 000A           ;        for(j=0;j<1140;j++)
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 15
 0010           L7:
 0010                   .dbline 14
 0010 6F5F              subi R22,255  ; offset = 1
 0012 7F4F              sbci R23,255
 0014           L9:
 0014                   .dbline 14
 0014 6437              cpi R22,116
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C                   .dbline 16
 001C           L3:
 001C                   .dbline 12
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 12
 0020 4017              cp R20,R16
 0022 5107              cpc R21,R17
 0024 90F3              brlo L2
 0026                   .dbline -2
 0026           L1:
 0026 0E940000          xcall pop_gset2
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbsym r i 20 i
 002C                   .dbsym r j 22 i
 002C                   .dbsym r k 16 i
 002C                   .dbend
 002C                   .dbfunc e W_EEP _W_EEP fV
 002C           ;            dat -> R18
 002C           ;            add -> R16,R17
                        .even
 002C           _W_EEP::
 002C                   .dbline -1
 002C                   .dbline 20
 002C           ;        ;
 002C           ;     }
 002C           ; }
 002C           ; //***************写EEPROM子函数*****************
 002C           ; void W_EEP(uint add,uchar dat) 
 002C           ; {
 002C           L11:
 002C                   .dbline 21
 002C           L12:
 002C                   .dbline 21
 002C           ; while(EECR&(1<<EEWE));        
 002C E199              sbic 0x1c,1
 002E FECF              rjmp L11
 0030                   .dbline 22
 0030           ; EEAR=add;                             
 0030 1FBB              out 0x1f,R17
 0032 0EBB              out 0x1e,R16
 0034                   .dbline 23
 0034           ; EEDR=dat;                             
 0034 2DBB              out 0x1d,R18
 0036                   .dbline 24
 0036           ; EECR|=(1<<EEMWE);
 0036 E29A              sbi 0x1c,2
 0038                   .dbline 25
 0038           ; EECR|=(1<<EEWE);      
 0038 E19A              sbi 0x1c,1
 003A                   .dbline -2
 003A           L10:
 003A                   .dbline 0 ; func end
 003A 0895              ret
 003C                   .dbsym r dat 18 c
 003C                   .dbsym r add 16 i
 003C                   .dbend
 003C                   .dbfunc e R_EEP _R_EEP fc
 003C           ;            add -> R16,R17
                        .even
 003C           _R_EEP::
 003C                   .dbline -1
 003C                   .dbline 29
 003C           ; }
 003C           ; //****************读EEPROM子函数*******************
 003C           ; uchar R_EEP(uint add) 
 003C           ; {
 003C           L15:
 003C                   .dbline 30
 003C           L16:
 003C                   .dbline 30
 003C           ; while(EECR&(1<<EEWE));
 003C E199              sbic 0x1c,1
 003E FECF              rjmp L15
 0040                   .dbline 31
 0040           ; EEAR=add;                             
 0040 1FBB              out 0x1f,R17
 0042 0EBB              out 0x1e,R16
 0044                   .dbline 32
 0044           ; EECR|=(1<<EERE);              
 0044 E09A              sbi 0x1c,0
 0046                   .dbline 33
 0046           ; return EEDR;          
 0046 0DB3              in R16,0x1d
 0048                   .dbline -2
 0048           L14:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r add 16 i
 004A                   .dbend
 004A                   .dbfunc e conv _conv fV
 004A           ;              i -> R20
                        .even
 004A           _conv::
 004A 0E940000          xcall push_gset1
 004E 402F              mov R20,R16
 0050                   .dbline -1
 0050                   .dbline 37
 0050           ; }
 0050           ; //****************数据转换子函数*********************
 0050           ; void conv(uchar i)    
 0050           ; {
 0050                   .dbline 38
 0050           ; DispBuff[3]=i/1000;
 0050 28EE              ldi R18,1000
 0052 33E0              ldi R19,3
 0054 042F              mov R16,R20
 0056 1127              clr R17
 0058 0E940000          xcall div16s
 005C 00930300          sts _DispBuff+3,R16
 0060                   .dbline 39
 0060           ; DispBuff[2]=(i%1000)/100;
 0060 28EE              ldi R18,1000
 0062 33E0              ldi R19,3
 0064 042F              mov R16,R20
 0066 1127              clr R17
 0068 0E940000          xcall mod16s
 006C 24E6              ldi R18,100
 006E 30E0              ldi R19,0
 0070 0E940000          xcall div16s
 0074 00930200          sts _DispBuff+2,R16
 0078                   .dbline 40
 0078           ; DispBuff[1]=(i%100)/10;
 0078 14E6              ldi R17,100
 007A 042F              mov R16,R20
 007C 0E940000          xcall mod8u
 0080 1AE0              ldi R17,10
 0082 0E940000          xcall div8u
 0086 00930100          sts _DispBuff+1,R16
 008A                   .dbline 41
 008A           ; DispBuff[0]=i%10;
 008A 1AE0              ldi R17,10
 008C 042F              mov R16,R20
 008E 0E940000          xcall mod8u
 0092 00930000          sts _DispBuff,R16
 0096                   .dbline -2
 0096           L18:
 0096 0E940000          xcall pop_gset1
 009A                   .dbline 0 ; func end
 009A 0895              ret
 009C                   .dbsym r i 20 c
 009C                   .dbend
 009C                   .dbfunc e display _display fV
 009C           ;              p -> R20,R21

⌨️ 快捷键说明

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