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

📄 yss215.lst

📁 用芯片AT89C51做的简单的万年历
💻 LST
字号:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Cross Assembler   A S E M - 5 1   V 1.2
       =====================================================



	Source File:	YSS215.ASM
	Object File:	YSS215.HEX
	List File:	YSS215.LST



 Line  I  Addr  Code            Source

    1:		N      0000	ORG 0
    2:	  0000	80 2E		 SJMP STAR
    3:		N      0013	 ORG 0013H
    4:	  0013	02 00 66	 LJMP XW
    5:		N      001B	ORG 001BH
    6:	  001B	02 01 7A	LJMP TLSTART
    7:		N      0030	 ORG 30H
    8:	  0030			STAR:; CLR RS0        ;主程序,初始化,等待中断
    9:				      ;CLR RS1
   10:	  0030	75 81 30	      MOV SP,#30H
   11:	  0033	75 89 10	      MOV TMOD,#10H
   12:	  0036	D2 BA		      SETB PX1      ;外中断优先级高
   13:	  0038	C2 8A		      CLR IT1       ;外中断申请信号;低电平
   14:	  003A	75 A8 8C	     MOV IE,#8CH     ;开中断
   15:	  003D	75 8D 3C	     MOV TH1,#3CH   ;设置定时器中断次数初值
   16:	  0040	75 8B B0	     MOV TL1,#0B0H
   17:	  0043	75 40 02	     MOV 40H,#2
   18:	  0046	75 20 80	     MOV 20H,#80H
   19:	  0049	75 70 28	     MOV 70H,#40  ;秒
   20:	  004C	75 71 3A	     MOV 71H,#58  ;分
   21:	  004F	75 72 17	     MOV 72H,#23  ;时
   22:	  0052	75 73 04	     MOV 73H,#4   ;天
   23:	  0055	75 74 06	     MOV 74H,#6   ;月
   24:	  0058	75 75 08	     MOV 75H,#08  ;年
   25:	  005B	75 76 14	     MOV 76H,#20  ;年
   26:	  005E	D2 B3		     SETB P3.3
   27:	  0060	D2 B4		     SETB P3.4
   28:	  0062	D2 8E		     SETB TR1
   29:	  0064	80 FE		E01: SJMP E01  ;等待溢出
   30:				;;;;;;;;;;;;;;;;;;
   31:	  0066	C0 E0		XW: PUSH ACC   ;外中断
   32:	  0068	E5 20		    MOV A,20H  ;移动标志位并修改内容
   33:	  006A	20 E6 05	    JB ACC.6,E60
   34:	  006D	23		    RL A
   35:	  006E	F5 20		    MOV  20H,A
   36:	  0070	80 03		     SJMP E20
   37:	  0072	75 20 01	E60:MOV 20H,#1
   38:	  0075	30 B4 FD	E20:JNB P3.4,E20 ;检测JIA下降沿;等待变成1
   39:	  0078	20 B4 FD	E30:JB P3.4,E30  ;等待变成0
   40:	  007B	20 B3 60	    JB P3.3,E37  ;JIA下降沿时,若P3.3为1,退出子程序
   41:				    ; MOV A,20H
   42:	  007E	20 06 4D	    JB 20H.6,E36
   43:	  0081	20 05 3E	    JB 20H.5,E35

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0084	20 04 2F	    JB 20H.4,E34
   45:	  0087	20 03 2A	    JB 20H.3,E33
   46:	  008A	20 02 1B	    JB 20H.2,E32
   47:	  008D	20 01 0C	    JB 20H.1,E31
   48:
   49:	  0090	05 70		    INC 70H      ;修改秒
   50:	  0092	E5 70		    MOV A,70H
   51:	  0094	B4 3C 41	    CJNE A,#60,BTOD
   52:	  0097	75 70 00	    MOV 70H,#0
   53:	  009A	80 3C		    SJMP  BTOD
   54:	  009C	05 71		E31:INC 71H    ;修改分
   55:	  009E	E5 71		    MOV A,71H
   56:	  00A0	B4 3C 35	    CJNE A,#60,BTOD
   57:	  00A3	75 71 00	    MOV 71H,#0
   58:	  00A6	80 30		    SJMP  BTOD
   59:	  00A8	05 72		E32: INC 72H  ;修改时
   60:	  00AA	E5 72		     MOV A,72H
   61:	  00AC	B4 18 29	     CJNE A,#24,BTOD
   62:	  00AF	75 72 00	     MOV 72H,#0
   63:	  00B2	80 24		     SJMP  BTOD
   64:	  00B4	80 30		E33: SJMP YUE  ; 跳转YUE,修改天
   65:	  00B6	05 74		E34:INC 74H    ;修改月
   66:	  00B8	E5 74		    MOV A,74H
   67:	  00BA	B4 0D 1B	    CJNE A,#13,BTOD
   68:	  00BD	75 74 01	    MOV 74H,#1
   69:	  00C0	80 16		     SJMP  BTOD
   70:	  00C2	05 75		E35:INC 75H     ;修改低年
   71:	  00C4	E5 75		    MOV A,75H
   72:	  00C6	B4 64 0F	   CJNE  A,#100,BTOD
   73:	  00C9	75 75 00	   MOV 75H,#0
   74:	  00CC	80 0A		   SJMP BTOD
   75:	  00CE	05 76		E36:INC 76H   ;修改高年
   76:	  00D0	E5 76		   MOV A,76H
   77:	  00D2	B4 64 03	   CJNE  A,#100,BTOD
   78:	  00D5	75 76 00	   MOV 76H,#0
   79:	  00D8	31 25		BTOD:ACALL BTOD5
   80:	  00DA	31 39		    ACALL DISP
   81:	  00DC	80 97		    SJMP E20
   82:	  00DE	D0 E0		E37:POP ACC
   83:	  00E0	32		    RETI
   84:				;;;;;;;;;;;;;;;
   85:	  00E1	75 73 01	AA:MOV 73H,#1  ;中间跳转
   86:	  00E4	80 F2		 SJMP BTOD
   87:				;;;;;;;;;;;;;;;
   88:	  00E6	E5 74		YUE: MOV A,74H
   89:	  00E8	B4 02 2F	   CJNE A,#2,SS
   90:	  00EB	E5 75		   MOV A,75H
   91:	  00ED	B4 00 0C	   CJNE A,#0,ss1;判断75H内是0,向下执行
   92:
   93:	  00F0	E5 76		   MOV A,76H   ;76H,即检验能否被400除
   94:	  00F2	75 F0 04	   MOV B,#4
   95:	  00F5	84		   DIV AB
   96:	  00F6	E5 F0		   MOV A,B
   97:	  00F8	60 0E		   JZ ss2
   98:	  00FA	80 15		   SJMP ss3
   99:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  00FC	E5 75		ss1:MOV A,75H ;75H不为0,验证75H能否被4整除
  101:	  00FE	75 F0 04	    MOV  B,#4
  102:	  0101	84		    DIV AB
  103:	  0102	E5 F0		    MOV A,B
  104:	  0104	60 02		    JZ ss2
  105:	  0106	80 09		    SJMP ss3
  106:
  107:	  0108	05 73		ss2:INC 73H      ;闰年时二月
  108:	  010A	E5 73		    MOV A,73H
  109:	  010C	B4 1E C9	    CJNE A,#30,BTOD
  110:	  010F	80 D0		    SJMP AA
  111:	  0111	05 73		ss3: INC 73H    ;平年时二月
  112:	  0113	E5 73		    MOV A,73H
  113:	  0115	B4 1D C0	    CJNE A,#29,BTOD
  114:	  0118	80 C7		    SJMP AA
  115:	  011A	E5 74		SS: MOV A,74H   ;除二月其它月
  116:	  011C	51 15		    ACALL seg7
  117:	  011E	05 73		    INC  73H
  118:	  0120	B5 73 B5	    CJNE A,73H,BTOD
  119:	  0123	80 BC		    SJMP AA
  120:				;;;;;;;;;;;;;;;
  121:	  0125	78 70		BTOD5: MOV R0,#70H  ;数据转换子程序
  122:	  0127	79 50		       MOV R1,#50H
  123:	  0129	E6		BTOD1: MOV A,@R0
  124:	  012A	75 F0 0A	       MOV B,#10
  125:	  012D	84		       DIV AB
  126:	  012E	A7 F0		       MOV @R1,B
  127:	  0130	C4		      SWAP A
  128:	  0131	47		      ORL A,@R1
  129:	  0132	F7		      MOV @R1,A
  130:	  0133	09		      INC R1
  131:	  0134	08		     INC  R0
  132:	  0135	B8 77 F1	     CJNE R0,#77H,BTOD1
  133:	  0138	22		     RET
  134:				;;;;;;;;;;;;;;;;
  135:	  0139	79 50		DISP: MOV R1,#50H ;显示子程序
  136:	  013B	E7		      MOV A,@R1
  137:	  013C	F5 90		      MOV  P1,A  ;显示秒
  138:	  013E	C2 B2		     CLR P3.2
  139:	  0140	D2 B2		     SETB P3.2
  140:	  0142	00		     NOP
  141:	  0143	09		    INC  R1
  142:	  0144	E7		    MOV A,@R1
  143:	  0145	F5 90		    MOV P1,A   ;显示分
  144:	  0147	C2 B1		    CLR P3.1
  145:	  0149	D2 B1		    SETB P3.1  ;产生锁存信号
  146:	  014B	00		     NOP
  147:	  014C	09		    INC R1
  148:	  014D	E7		   MOV A,@R1
  149:	  014E	F5 90		   MOV P1,A   ;显示时
  150:	  0150	C2 B0		   CLR P3.0
  151:	  0152	D2 B0		   SETB P3.0  ;产生锁存信号
  152:	  0154	00		    NOP
  153:	  0155	09		   INC  R1
  154:	  0156	E7		   MOV A,@R1
  155:	  0157	F5 90		   MOV P1,A   ;显示天

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  0159	C2 A2		   CLR P2.2
  157:	  015B	D2 A2		   SETB P2.2  ;产生锁存信号
  158:	  015D	00		    NOP
  159:	  015E	09		    INC  R1
  160:	  015F	E7		    MOV A,@R1
  161:	  0160	F5 90		    MOV P1,A   ;显示月
  162:	  0162	C2 A1		    CLR P2.1
  163:	  0164	D2 A1		    SETB P2.1   ;产生锁存信号
  164:	  0166	00		    NOP
  165:
  166:	  0167	09		    INC  R1
  167:	  0168	E7		    MOV A,@R1
  168:	  0169	F5 90		    MOV P1,A    ;显示年
  169:	  016B	C2 A0		    CLR P2.0
  170:	  016D	D2 A0		     SETB P2.0  ;产生锁存信号
  171:	  016F	00		    NOP
  172:	  0170	09		    INC  R1
  173:	  0171	E7		    MOV A,@R1
  174:	  0172	F5 90		    MOV P1,A    ;显示年
  175:	  0174	C2 A3		    CLR P2.3
  176:	  0176	D2 A3		    SETB P2.3   ;产生锁存信号
  177:	  0178	00		    NOP
  178:	  0179	22		 RET
  179:				;;;;;;;;;;;;
  180:	  017A			TLSTART: ;SETB RS1   ;定时中断
  181:				        ;CLR RS0
  182:	  017A	C0 E0		       PUSH ACC
  183:	  017C	75 8D 3C	       MOV TH1,#3CH
  184:	  017F	75 8B B0	       MOV TL1,#0B0H
  185:	  0182	D5 40 4A	       DJNZ 40H,E50
  186:	  0185	75 40 02	       MOV    40H,#2
  187:	  0188	31 25		       ACALL BTOD5
  188:	  018A	05 70		       INC  70H    ;够1秒
  189:	  018C	E5 70		       MOV A,70H
  190:	  018E	B4 3C 3A	       CJNE A,#60,BTOD2
  191:	  0191	75 70 00	       MOV 70H,#0
  192:	  0194	05 71		       INC 71H    ;够1分
  193:	  0196	E5 71		       MOV A,71H
  194:	  0198	B4 3C 30	       CJNE A,#60,BTOD2
  195:	  019B	75 71 00	       MOV 71H,#0
  196:	  019E	05 72		       INC  72H   ;够1小时
  197:	  01A0	E5 72		       MOV A,72H
  198:	  01A2	B4 18 26	       CJNE A,#24,BTOD2
  199:	  01A5	75 72 00	       MOV 72H,#0
  200:
  201:				;;;;;;;;;;;
  202:	  01A8	80 2C		 SJMP  YUEE   ;跳到YUEE 判断修改天
  203:				;;;;;;;;;;;;
  204:	  01AA	75 73 01	BB:MOV 73H,#1  ;中间跳转
  205:				  ;SJMP  CC
  206:				;;;;;;;;;;
  207:	  01AD	05 74		CC:INC  74H    ;够1月
  208:	  01AF	E5 74		   MOV A,74H
  209:	  01B1	B4 0D 17	   CJNE A,#13,BTOD2
  210:	  01B4	75 74 01	   MOV 74H,#1
  211:	  01B7	05 75		   INC  75H   ;够1年

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5



 Line  I  Addr  Code            Source

  212:	  01B9	E5 75		   MOV A,75H
  213:	  01BB	B4 64 0D	   CJNE A,#100,BTOD2
  214:	  01BE	75 75 00	   MOV 75H,#0
  215:	  01C1	05 76		   INC 76H    ;够100年
  216:	  01C3	E5 76		   MOV A,76H
  217:	  01C5	B4 64 03	   CJNE A,#100,BTOD2
  218:	  01C8	75 76 00	   MOV 76H,#0
  219:	  01CB	31 25		BTOD2:ACALL  BTOD5
  220:	  01CD	31 39		      ACALL DISP
  221:	  01CF	C2 D3		E50:   CLR RS0
  222:	  01D1	C2 D4		      CLR RS1
  223:	  01D3	D0 E0		      POP ACC
  224:	  01D5	32		      RETI
  225:				;;;;;;;;;;;;;;
  226:	  01D6	E5 74		YUEE:MOV A,74H
  227:	  01D8	B4 02 2F	   CJNE A,#2,KK
  228:	  01DB	E5 75		   MOV A,75H
  229:	  01DD	B4 00 0C	   CJNE A,#0,kk1; 75H为0向下执行
  230:
  231:	  01E0	E5 76		   MOV A,76H   ; 看76H,即检验能否被400整除
  232:	  01E2	75 F0 04	   MOV B,#4
  233:	  01E5	84		   DIV AB
  234:	  01E6	E5 F0		   MOV  A,B
  235:	  01E8	60 0E		   JZ kk2
  236:	  01EA	80 15		   SJMP kk3
  237:	  01EC	E5 75		kk1:MOV A,75H  ;75H不为0 ,只验证75H能不能被4整除
  238:	  01EE	75 F0 04	    MOV  B,#4
  239:	  01F1	84		    DIV AB
  240:	  01F2	E5 F0		    MOV A,B
  241:	  01F4	60 02		    JZ kk2
  242:	  01F6	80 09		   SJMP  kk3
  243:
  244:	  01F8	05 73		kk2:INC 73H     ;闰年时二月
  245:	  01FA	E5 73		    MOV A,73H
  246:	  01FC	B4 1E CC	    CJNE A,#30,BTOD2
  247:	  01FF	80 A9		    SJMP  BB
  248:
  249:	  0201	05 73		kk3: INC 73H    ;平年时二月
  250:	  0203	E5 73		    MOV A,73H
  251:	  0205	B4 1D C3	    CJNE A,#29,BTOD2
  252:	  0208	80 A0		    SJMP BB
  253:	  020A	E5 74		KK: MOV A,74H    ;除二月其它月
  254:	  020C	51 15		   ACALL SEG7
  255:	  020E	05 73		    INC  73H
  256:	  0210	B5 73 B8	   CJNE A,73H,BTOD2
  257:	  0213	80 95		   SJMP BB
  258:				;;;;;;;;;;;;;;;;;
  259:	  0215	83		SEG7:MOVC A,@A+PC
  260:	  0216	22		    RET
  261:	  0217	20 1C 20 1F	TAB: DB 32,28,32,31,32,31,32,32,31,32,31,32
	  021B	20 1F 20 20
	  021F	1F 20 1F 20
  262:				;;;;;;;;;;;;;;;;;
  263:				END
  264:
  265:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 6



 Line  I  Addr  Code            Source

  266:
  267:
  268:
  269:
  270:





                     register banks used:  ---

                     no errors




ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 7





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
AA				  CODE	    00E1	  85
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
BB				  CODE	    01AA	 204
BTOD				  CODE	    00D8	  79
BTOD1				  CODE	    0129	 123
BTOD2				  CODE	    01CB	 219
BTOD5				  CODE	    0125	 121
CC				  CODE	    01AD	 207
CY				  BIT	      D7
DISP				  CODE	    0139	 135
DPH				  DATA	      83
DPL				  DATA	      82
E01				  CODE	    0064	  29
E20				  CODE	    0075	  38
E30				  CODE	    0078	  39
E31				  CODE	    009C	  54
E32				  CODE	    00A8	  59
E33				  CODE	    00B4	  64
E34				  CODE	    00B6	  65
E35				  CODE	    00C2	  70
E36				  CODE	    00CE	  75
E37				  CODE	    00DE	  82
E50				  CODE	    01CF	 221
E60				  CODE	    0072	  37
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
KK				  CODE	    020A	 253
KK1				  CODE	    01EC	 237
KK2				  CODE	    01F8	 244
KK3				  CODE	    0201	 249
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 8



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SEG7				  CODE	    0215	 259
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
SS				  CODE	    011A	 115
SS1				  CODE	    00FC	 100
SS2				  CODE	    0108	 107
SS3				  CODE	    0111	 111
STAR				  CODE	    0030	   8
T0				  BIT	      B4
T1				  BIT	      B5
TAB				  CODE	    0217	 261
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TL0				  DATA	      8A
TL1				  DATA	      8B
TLSTART				  CODE	    017A	 180
TMOD				  DATA	      89
TR0				  BIT	      8C
TR1				  BIT	      8E
TXD				  BIT	      B1
WR				  BIT	      B6
XW				  CODE	    0066	  31
YUE				  CODE	    00E6	  88
YUEE				  CODE	    01D6	 226

⌨️ 快捷键说明

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