1、#*1 已知一个 2 维数据表格如下,编制程序实现自动查表功能。X 0 1 2 3 4 0B 0C 0D 0E 0FY 11 12 01 AD DD AB 24 4B 7C AAMOV DPTR , #0100HMOVC A , A+DPTRRETDB 11HDB 12H.DB 7CHDB AAH2. 已知 X 被存放在 20H(高八位)和 21H(低八位)单元,Y 被存放在 22H,编制程序实现下 XY。MOV A , 21HADD A , 22HMOV 25H , AMOV A , 20HADDC A , #00HMOV 24H , AMOV A , #00ADDC A , #00MOV
2、23H , A3. 已知两个十进制数:X 和 Y,X 被存放在 20H(高位)和 21H 单元,Y 被存放在 22H,编制程序实现下 XY。法一:MOV A , 21H 法二:MOV R0 , #21HADD A , 22H MOV R1 , #22HDA A MOV A , R0 MOV 21H , A ADD A , R1MOV A , 20H DA AADDC A , #00 MOV R0 , ADA A DEC R0MOV 20H , A MOV A , R0MOV A , #00 ADDC A , #00ADDC A , #00 DA ADA A MOV R0 , AMOV 1FH
3、, A MOV A ,#00ADDC A ,#00DA ADEC R0MOV R0 , A#*4. 已知 X 被存放在 20H(高八位)21H 、22H、23H 单元,Y 被存放在 30H(高八位)31H、32H、33H 单元,编制程序实现下 XY 。MOV A , 23H ADD A ,33HMOV 44H , AMOV A , 22HADDC A , 32HMOV 43H , AMOV A ,21HADDC A , 31HMOV 42H , AMOV A ,20HADDC A , 30HMOV 41H , AMOV A ,#00ADDC A,#00MOV 40H , A5. 已知 X 被存
4、放在 20H(高八位) 、21H 和 22H 单元,Y 被存放在 32H,编制程序实现下 X Y。MOV A , 22HCLR CSUBB A , 32HMOV 32H , AMOV A ,21HSUBB A ,#00HMOV 31H , AMOV A ,20HSUBB A ,#00HMOV 30H , A6. 已知 X 被存放在 20H(高八位)21H 、22H、23H 单元,Y 被存放在 30H(高八位)31H、32H、33H 单元,编制程序实现下 XY 。MOV A ,23HCLR CSUBB A ,33HMOV 43H , AMOV A ,22HSUBB A , 32HMOV 42H
5、, AMOV A ,21HSUBB A ,31HMOV 41H ,AMOV A ,20H#*SUBB A ,30HMOV 40H , A7. 已知 X 被存放在 20H(高八位)21H、22H 单元,Y 被存放在 30H 单元,编制程序实现下 XY。MOV A ,22H MOV B ,30HMUL ABMOV 40H ,BMOV 41H ,AMOV A ,21HMOV B ,30HMUL ABMOV 42H ,BMOV 43H ,AMOV A ,20HMOV B , 30HMUL ABMOV 44H ,BMOV 45H ,AMOV 53H ,41HMOV A ,40HADD A ,43HMOV
6、 52H , AMOV A ,42HADDC A ,45HMOV 51H ,AMOV A,#00HADDC A ,44HMOV 50H ,A8. 已知一个数 X 被存放在 20H(高八位)21H 单元,用移位方法实现 2X。MOV A ,21HCLR CRLC AMOV 21H , AMOV A ,20HRLC AMOV 20H ,AMOV A ,#00HRLC AMOV 1FH ,A9. 已知一个数 X 被存放在 20H(高八位)21H 单元,用移位方法实现 X/2。MOV A ,20HCLR C#*RRC AMOV 30H ,AMOV A ,21HRRC AMOV 31H , A10. 已
7、知一个非正数 X 被存放在 20H(高八位)21H 单元,求该数的补码。 法一: 法二:MOV A ,20H MOV A ,21HXRL A ,#7FH CPL AMOV 22H , A MOV 23H ,AMOV A ,21H MOV A ,20HXRL A ,#0FFH CPL AADD A ,#01H ORL A ,#80HMOV 23H , A ;低八 MOV 22H ,AMOV A ,22H MOV A ,23HADDC A ,#00H ADD A ,#01HMOV 24H ,A ; 高八 MOV 23H , A ;低八MOV A ,22HADDC A ,#00HMOV 22H ,A
8、 ;高八11. 根据 X 的值分别将程序转移到指定处执行X=0 PROG1;X=1 PROG2;X=2 PROG3;X=3 PROG4法一: 法二;CLR C MOV B ,#03HRLC A MUL ABMOV DPTR,#JPTAB MOV DPTR ,#JPTABJMP A+DPTR JMP A+DPTRJPTAB: AJMP PROG1 JPTAB: LJMP PROG1AJMP PROG2 LJMP PROG2AJMP PROG3 LJMP PROG3AJMP PROG4 LJMP PROG412. 一个显示装置如图 1 所示,编制程序实现使指示灯依次顺时针点亮逆时针灭全亮若干秒全灭
9、,周而复始地重复上述过程。L0L7 分别与 P1.0P1.7 相连。图 1 L1L0L2L3L4L5L6L7MAIN: MOV A ,#00HMOV P1 ,A#*MOV R2 ,#8MOV R3 , #8MOV A ,#01HCONT: MOV P1 , ANOPNOPRL AXRL A ,#00000001BDJNZ R2 ,CONTNMIE: MOV P1 ,ANOPNOPRR AXRL A , #00000001BDJNZ R3 ,NMIEQLQM: MOV A, #0FFHMOV P1 ,ANOPNOPMOV A ,#00HMOV P1 , ANOPNOPSJMP MAIN13. 求
10、出无符号单字节数 X、 Y、Z 中的最大数存放在 50H 单元。MOV 50H ,#00MOV R0 ,#20HMOV A ,R0MOV R4 ,#03CONT: CJNE A ,50H ,BDYINC R0MOV A ,R0DJNZ R4 ,CONTRETBDY: JC XYMMOV 50H ,AINC R0MOV A ,R0DJNZ R4 ,CONTXYM: INC R0MOV A , R0DJNZ R4 ,CONTRET14. 把 20H2FH 连续 16 个单元清 0。#*MOV R0 ,#20HMOV R1 ,#16CONT: MOV R0 ,#00HINC R0DJNZ R1 ,C
11、ONTRET15将 20H2FH 连续 16 个单元的内容转移到外部 RAM 的 2000H 单元开始的区域中MOV R0 ,#20H MOV DPTR ,#2000HMOV R4 ,#16CONT: MOV A, R0MOVX DPTR , AINC R0INC DPTRDJNZ R4 ,CONTRET16一个简单的电源开关控制电路如图 2 所示,要求实现 S1 按下第一次,系统上电,第二次按下 S1,系统断电,编制程序实现上述要求 20VACS1P1.0212V85KAD图 2CLR 27H.0CLR 27H.1WAIT : JNB P1.0 ,PRESSEDSJMP WAITPRESSE
12、D: JB 27H.1 ,TURN_OFFSETB P1.2SETB 27H.0SETB 27H.1SJMP WAITTURN_OFF: CLR P1.2CLR 27H.0CLR 27H.1SJMP WAIT17. 假设 UP1.1,V P1.2,WP1.3, X27H.1,Y27H.0 ,ZTF0,QP1.5 ,编制程序实现下列逻辑表达式: WVUQ)(MOV C , P1.2ORL C , P1.3ANL C , P1.1#*MOV 20H.0 , CMOV C , 27H.1ANL C , /27H.0CPL CORL C , 20H.0ORL C , /TF0MOV P1.5 , C1
13、8. 一批八位二进制数据存放在单片机内部 RAM 以 20H 单元开始的区域,数据长度为100 个,编制程序统计该批数据中数值为 65H 的数据的个数,将统计结果存放在 R7 中。MOV R0 , #20HMOV R4 , #100MOV R7 , #00CONT: CJNE R0 ,#65H ,BDYINC R7INC R0DJNZ R4 ,CONTRETBDY: INC R0DJNZ R4 , CONTRET19已知两个十进制数:X 和 Y,X 被存放在 20H(高位)和 21H 单元,Y 被存放在 22H和 23H 单元,编制程序实现下 XY。MOV A , #9AHCLR CSUBB
14、A ,23HMOV 24H ,AMOV A ,#99HSUBB A , 22HMOV 25H , AMOV A ,24HADD A ,21HDA AMOV 31H , AMOV A , 25HADDC A ,20HDA AMOV 30H ,A20已知四位十进制数 X 被存放在 20H(高位)和 21H 单元,请将该数转换为分离式BCD 码形式,并将结果存在 30H、31H 、32H 、33H 单元。MOV A ,21HANL A ,#0FHMOV 33H , AMOV A ,21HANL A ,#0F0H#*SWAP AMOV 32H , AMOV A ,20HANL A ,#0FHMOV 31H , AMOV A ,20HANL A ,#0F0HSWAP AMOV 30H , A