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

📄 pxsjpjs.lst

📁 电子时钟的单片机设计
💻 LST
📖 第 1 页 / 共 2 页
字号:

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:	PXSJPJS.ASM
	Object File:	PXSJPJS.HEX
	List File:	PXSJPJS.LST



 Line  I  Addr  Code            Source

    1:		N      0000	        org     0000h
    2:	  0000	02 00 30	        ljmp    main
    3:				;***************************;
    4:				;         主程序	    ;
    5:				;***************************;
    6:		N      0030	        org     0030h
    7:	  0030			main:
    8:	  0030	75 28 00		mov   28h,#00h		 ;标记位总清零
    9:	  0033	75 20 2E		mov   20h,#2eh	         ;显示缓冲低位
   10:	  0036	75 21 2E		mov   21h,#2eh
   11:	  0039	75 22 2E	        mov   22h,#2eh
   12:	  003C	75 23 2F	        mov   23h,#2fh           ;显示缓冲高位(让23单元显示P.)
   13:	  003F	12 01 70	key:    lcall dirv
   14:				;-------------------------;
   15:				;         读键            ;
   16:				;-------------------------;
   17:	  0042			kl0:
   18:	  0042	74 0F		       mov   a,#0fh
   19:	  0044	F5 A0		       mov   p2,a
   20:	  0046	E5 A0		       mov   a,p2               ;p2口低四位为键扫描输入,高四位数出
   21:	  0048	30 E0 0F	       jnb   acc.0,kl1          ;判断有无键按下
   22:	  004B	30 E1 0C	       jnb   acc.1,kl1          ;判断有无键按下
   23:	  004E	30 E2 09	       jnb   acc.2,kl1          ;判断有无键按下
   24:	  0051	30 E3 06	       jnb   acc.3,kl1          ;判断有无键按下
   25:	  0054	12 01 70	       lcall dirv
   26:	  0057	02 00 42	       ljmp  kl0                ;无键按下继续
   27:	  005A	12 01 70	kl1:   lcall dirv               ;20h单元位0为1处于最高位带小数点显示
   28:	  005D	74 0F		kl12:  mov   a,#0fh
   29:	  005F	F5 A0		       mov   p2,a
   30:	  0061	E5 A0		       mov   a,p2               ;p2口低四位为键扫描输入,高四位数出
   31:	  0063	30 E0 11	       jnb   acc.0,kl2
   32:	  0066	30 E1 0E	       jnb   acc.1,kl2
   33:	  0069	30 E2 0B	       jnb   acc.2,kl2
   34:	  006C	30 E3 08	       jnb   acc.3,kl2          ;判断有无键按下
   35:	  006F	C2 51		       clr   51h               ;清除键按下标记:28h单元位1为1则键按下
   36:	  0071	12 01 70	       lcall dirv
   37:	  0074	02 00 42	       ljmp  kl0               ;为抖动没键按下继续
   38:	  0077	30 51 03	kl2:   jnb   51h,ke1y          ;28h单元位1为1则键按下已经处理过反回
   39:	  007A	02 00 42	       ljmp  kl0
   40:	  007D	D2 51		ke1y:  setb  51h               ;打上键按下标记:28h单元位1为1则键按下
   41:	  007F	7A EF		       mov   r2,#0efh          ;确实有键开始扫描键值
   42:	  0081	7C 00		       mov   r4,#00h
   43:	  0083			pk1:  ; mov   a,p2               ;p2口低四位为键扫描输入,高四位数出

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0083	EA		       mov   a,r2
   45:	  0084	F5 A0		       mov   p2,a
   46:	  0086	E5 A0		       mov   a,p2               ;p2口低四位为键扫描输入,高四位数出
   47:	  0088	79 00		       mov   r1,#00h            ;r1中为键行数
   48:	  008A	30 E0 15	       jnb   acc.0,pk20          ;判有无键按下
   49:	  008D	12 00 B4	       lcall kll2
   50:	  0090	30 E1 0F	       jnb   acc.1,pk20          ;判有无键按下
   51:	  0093	12 00 B4	       lcall kll2
   52:	  0096	30 E2 09	       jnb   acc.2,pk20          ;判有无键按下
   53:	  0099	12 00 B4	       lcall kll2
   54:	  009C	30 E3 03	       jnb   acc.3,pk20          ;判有无键按下
   55:	  009F	02 00 A9	       ljmp  pk2
   56:	  00A2	74 00		pk20:  mov   a,#00h
   57:	  00A4	2C		       add   a,r4
   58:	  00A5	29		       add   a,r1
   59:	  00A6	02 00 BB	       ljmp  pk5               ;扫到键值去散转处理
   60:	  00A9	0C		pk2:   inc   r4
   61:	  00AA	EA		       mov   a,r2
   62:	  00AB	30 E7 04	       jnb   acc.7,pk3         ;判断4个键是否扫描完
   63:	  00AE	23		       rl    a
   64:	  00AF	FA		       mov   r2,a
   65:	  00B0	01 83		       ajmp  pk1               ;16个键没扫完继续
   66:	  00B2	01 42		pk3:   ajmp  kl0               ;16个键全扫完为误动作反回
   67:
   68:	  00B4	F8		kll2:  mov   r0,a
   69:	  00B5	E9		       mov   a,r1
   70:	  00B6	24 04		       add   a,#04h              ;加一行四个键
   71:	  00B8	F9		       mov   r1,a
   72:	  00B9	E8		       mov   a,r0
   73:	  00BA	22		       ret
   74:
   75:				;------------------------------;
   76:				;       键状态判断子程序       ;
   77:				;------------------------------;
   78:	  00BB	90 00 C5	pk5:    mov   dptr,#tb0         ;散转处理
   79:	  00BE	FA		        mov   r2,a
   80:	  00BF	2A		        add   a,r2
   81:	  00C0	50 02		        jnc   pk6
   82:	  00C2	05 83		        inc   dph
   83:	  00C4	73		pk6:    jmp   @a+dptr
   84:	  00C5	01 E8		tb0:    ajmp  k11                ;键7
   85:	  00C7	01 F1		        ajmp  k12                ;键8
   86:	  00C9	01 FA		        ajmp  k13                ;键9
   87:	  00CB	21 03		        ajmp  k14                ;键/
   88:
   89:	  00CD	21 06		        ajmp  k21                ;键4
   90:	  00CF	21 0F		        ajmp  k22                ;键5
   91:	  00D1	21 18		        ajmp  k23                ;键6
   92:	  00D3	21 21		        ajmp  k24                ;键x
   93:
   94:	  00D5	21 24		        ajmp  k31                ;键1
   95:	  00D7	21 2D		        ajmp  k32                ;键2
   96:	  00D9	21 36		        ajmp  k33                ;键3
   97:	  00DB	21 3F		        ajmp  k34                ;键-
   98:
   99:	  00DD	21 42		        ajmp  k41                ;键c

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  00DF	21 57		        ajmp  k42                ;键0
  101:	  00E1	21 60		        ajmp  k43                ;键=
  102:	  00E3	21 63		        ajmp  k44                ;键+
  103:
  104:	  00E5	02 00 42	        ljmp  kl0
  105:
  106:	  00E8			k11:                            ;键7
  107:	  00E8	12 01 66	        lcall zy
  108:	  00EB	75 20 07	        mov   20h,#07h
  109:	  00EE	02 00 42	        ljmp  kl0
  110:	  00F1			k12:                            ;键8
  111:	  00F1	12 01 66		lcall zy
  112:	  00F4	75 20 08	        mov   20h,#08h
  113:	  00F7	02 00 42	        ljmp  kl0
  114:	  00FA			k13:                            ;键9
  115:	  00FA	12 01 66		lcall zy
  116:	  00FD	75 20 09	        mov   20h,#09h
  117:	  0100	02 00 42		ljmp  kl0
  118:	  0103			k14:                            ;键/
  119:	  0103	02 00 42		ljmp  kl0
  120:
  121:	  0106			k21:                            ;键4
  122:	  0106	12 01 66		lcall zy
  123:	  0109	75 20 04	        mov   20h,#04h
  124:	  010C	02 00 42		ljmp  kl0
  125:	  010F			k22:                            ;键5
  126:	  010F	12 01 66		lcall zy
  127:	  0112	75 20 05	        mov   20h,#05h
  128:	  0115	02 00 42		ljmp  kl0
  129:	  0118			k23:                            ;键6
  130:	  0118	12 01 66		lcall zy
  131:	  011B	75 20 06	        mov   20h,#06h
  132:	  011E	02 00 42		ljmp  kl0
  133:	  0121			k24:                            ;键x
  134:	  0121	02 00 42		ljmp  kl0
  135:
  136:	  0124			k31:                            ;键1
  137:	  0124	12 01 66		lcall zy
  138:	  0127	75 20 01	        mov   20h,#01h
  139:	  012A	02 00 42		ljmp  kl0
  140:	  012D			k32:                            ;键2
  141:	  012D	12 01 66		lcall zy
  142:	  0130	75 20 02	        mov   20h,#02h
  143:	  0133	02 00 42		ljmp  kl0
  144:	  0136			k33:                            ;键3
  145:	  0136	12 01 66		lcall zy
  146:	  0139	75 20 03	        mov   20h,#03h
  147:	  013C	02 00 42		ljmp  kl0
  148:	  013F			k34:                            ;键-
  149:	  013F	02 00 42		ljmp  kl0
  150:
  151:	  0142			k41:                            ;键c
  152:	  0142	E5 20		        mov   a,20h
  153:	  0144	C3		        clr   c
  154:	  0145	94 0A		        subb  a,#0ah
  155:	  0147	50 09		        jnc    k410	        ;够减》a

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  0149	E5 20		        mov   a,20h              ;不够减《a
  157:	  014B	24 0A		        add   a,#0ah
  158:	  014D	F5 20		        mov   20h,a
  159:	  014F	02 01 54		ljmp  k412
  160:	  0152	F5 20		k410:   mov   20h,a
  161:	  0154	02 00 42	k412:	ljmp  kl0
  162:	  0157			k42:                            ;键0
  163:	  0157	12 01 66		lcall zy
  164:	  015A	75 20 00	        mov   20h,#00h
  165:	  015D	02 00 42		ljmp  kl0
  166:	  0160			k43:                            ;键=
  167:	  0160	02 00 42		ljmp  kl0
  168:	  0163			k44:                            ;键+
  169:	  0163	02 00 42	        ljmp  kl0
  170:				;***********************;
  171:				;      光标左移		;
  172:				;***********************;
  173:	  0166	85 22 23	zy:    mov    23h,22h
  174:	  0169	85 21 22	       mov    22h,21h
  175:	  016C	85 20 21	       mov    21h,20h
  176:	  016F	22		       ret		   ;退出
  177:				;******************;
  178:				;      显示	   ;
  179:				;******************;
  180:	  0170			dirv:

⌨️ 快捷键说明

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