📄 chengxu.lis
字号:
.module chengxu.c
.area data(ram, con, rel)
0000 _duan::
0000 .blkb 2
.area idata
0000 0001 .byte 0,1
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 0203 .byte 2,3
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 0405 .byte 4,5
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 0607 .byte 6,7
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 0809 .byte 8,9
.area data(ram, con, rel)
000A .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
000A .dbsym e duan _duan A[10:10]c
000A _wei::
000A .blkb 2
.area idata
000A 0804 .byte 8,4
.area data(ram, con, rel)
000C .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
000C .blkb 2
.area idata
000C 0201 .byte 2,1
.area data(ram, con, rel)
000E .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
000E .dbsym e wei _wei A[4:4]c
000E _CNT::
000E .blkb 1
.area idata
000E 00 .byte 0
.area data(ram, con, rel)
000F .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
000F .dbsym e CNT _CNT c
000F _lck::
000F .blkb 2
.area idata
000F 0000 .word 0
.area data(ram, con, rel)
0011 .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
0011 .dbsym e lck _lck i
.area text(rom, con, rel)
0000 .dbfile D:\Proteus\ATMEGA8\TCA230颜色识别\icc\chengxu.c
0000 .dbfunc e delay _delay fV
0000 ; i -> R20
0000 ; j -> R22
0000 ; t -> R16
.even
0000 _delay::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 17
0002 ; #include <iom8v.h>
0002 ; #define uchar unsigned char
0002 ; #define uint unsigned int
0002 ; uchar duan[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; //所需的段的位码
0002 ; //uchar wei[4]={0XFE,0XFD,0XFB,0XF7}; //位的控制端 (开发板)
0002 ; uchar wei[4]={0X08,0X04,0X02,0X01}; //位的控制端 (仿真)
0002 ; uint z,x,c,v, date; //定义数据类型
0002 ; uchar CNT=0;//计数初值
0002 ; uint lck=0;
0002 ; uint Load;
0002 ; /******************************************************************
0002 ;
0002 ; 延时函数
0002 ;
0002 ; ******************************************************************/
0002 ; void delay(uchar t)
0002 ; {
0002 .dbline 19
0002 ; uchar i,j;
0002 ; for(i=0;i<t;i++)
0002 4427 clr R20
0004 07C0 rjmp L5
0006 L2:
0006 .dbline 20
0006 ; {
0006 .dbline 21
0006 6DE0 ldi R22,13
0008 01C0 rjmp L9
000A L6:
000A .dbline 21
000A L7:
000A .dbline 21
000A 6A95 dec R22
000C L9:
000C .dbline 21
000C 2224 clr R2
000E 2616 cp R2,R22
0010 E0F3 brlo L6
0012 .dbline 22
0012 .dbline 22
0012 .dbline 23
0012 .dbline 24
0012 L3:
0012 .dbline 19
0012 4395 inc R20
0014 L5:
0014 .dbline 19
0014 4017 cp R20,R16
0016 B8F3 brlo L2
0018 .dbline -2
0018 L1:
0018 00D0 rcall pop_gset2
001A .dbline 0 ; func end
001A 0895 ret
001C .dbsym r i 20 c
001C .dbsym r j 22 c
001C .dbsym r t 16 c
001C .dbend
001C .dbfunc e xianshi _xianshi fV
.even
001C _xianshi::
001C .dbline -1
001C .dbline 31
001C ; for(j=13;j>0;j--);
001C ; { ;
001C ; }
001C ; }
001C ; }
001C ;
001C ; /**********************************************************************
001C ; 数码管动态扫描
001C ; *********************************************************************/
001C ; void xianshi()
001C ; {
001C .dbline 33
001C ; /*****************数据转换*****************************/
001C ; z=date/1000; //求千位
001C 28EE ldi R18,1000
001E 33E0 ldi R19,3
0020 00910200 lds R16,_date
0024 10910300 lds R17,_date+1
0028 00D0 rcall div16u
002A 10930B00 sts _z+1,R17
002E 00930A00 sts _z,R16
0032 .dbline 34
0032 ; x=date%1000/100; //求百位
0032 28EE ldi R18,1000
0034 33E0 ldi R19,3
0036 00910200 lds R16,_date
003A 10910300 lds R17,_date+1
003E 00D0 rcall mod16u
0040 24E6 ldi R18,100
0042 30E0 ldi R19,0
0044 00D0 rcall div16u
0046 10930900 sts _x+1,R17
004A 00930800 sts _x,R16
004E .dbline 35
004E ; c=date%100/10; //求十位
004E 24E6 ldi R18,100
0050 30E0 ldi R19,0
0052 00910200 lds R16,_date
0056 10910300 lds R17,_date+1
005A 00D0 rcall mod16u
005C 2AE0 ldi R18,10
005E 30E0 ldi R19,0
0060 00D0 rcall div16u
0062 10930700 sts _c+1,R17
0066 00930600 sts _c,R16
006A .dbline 36
006A ; v=date%10; //求个位
006A 2AE0 ldi R18,10
006C 30E0 ldi R19,0
006E 00910200 lds R16,_date
0072 10910300 lds R17,_date+1
0076 00D0 rcall mod16u
0078 10930500 sts _v+1,R17
007C 00930400 sts _v,R16
0080 .dbline 38
0080 ;
0080 ; PORTC=wei[0];
0080 20900A00 lds R2,_wei
0084 25BA out 0x15,R2
0086 .dbline 39
0086 ; PORTB=duan[z];
0086 80E0 ldi R24,<_duan
0088 90E0 ldi R25,>_duan
008A E0910A00 lds R30,_z
008E F0910B00 lds R31,_z+1
0092 E80F add R30,R24
0094 F91F adc R31,R25
0096 2080 ldd R2,z+0
0098 28BA out 0x18,R2
009A .dbline 40
009A ; delay(50);
009A 02E3 ldi R16,50
009C B1DF rcall _delay
009E .dbline 41
009E ; PORTC=wei[1];
009E 20900B00 lds R2,_wei+1
00A2 25BA out 0x15,R2
00A4 .dbline 42
00A4 ; PORTB=duan[x];
00A4 80E0 ldi R24,<_duan
00A6 90E0 ldi R25,>_duan
00A8 E0910800 lds R30,_x
00AC F0910900 lds R31,_x+1
00B0 E80F add R30,R24
00B2 F91F adc R31,R25
00B4 2080 ldd R2,z+0
00B6 28BA out 0x18,R2
00B8 .dbline 43
00B8 ; delay(50);
00B8 02E3 ldi R16,50
00BA A2DF rcall _delay
00BC .dbline 44
00BC ; PORTC=wei[2];
00BC 20900C00 lds R2,_wei+2
00C0 25BA out 0x15,R2
00C2 .dbline 45
00C2 ; PORTB=duan[c];
00C2 80E0 ldi R24,<_duan
00C4 90E0 ldi R25,>_duan
00C6 E0910600 lds R30,_c
00CA F0910700 lds R31,_c+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -