📄 ac11-1.lis
字号:
.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 + -