1、1 将 30H、31H 单元内容与 T0 计数器的 TL0、TH0 交换。保持其它 R 和 M 不变。MOV A,TL0XCH A,30HMOV TL0,AMOV A,TH0XCH A, 31HMOV TH0,A2、将 30H、31H 单元内容与 5C30H、5C31H 交换。保持其它 R 和 M 不变。MOV DPTR,#5C30HMOVX A,DPTRXCH A,30HMOVX DPTR,AINC DPTRMOVX A,DPTRXCH A,31HMOVX DPTR,A3、将 30H、31H 单元内容与 R0 指向的两字节单元交换。保持其它 R 和 M 不变。MOV A,R0XCH A,30
2、HMOV R0,AINC R0MOV A,R0XCH A,31HMOV R0,A4、将 30H、31H 单元内容与 DPTR 指向的两字节单元交换。保持其它 R 和 M 不变。MOVX A,DPTRXCH A,30HMOVX DPTR,AINC DPTRMOVX A,DPTRXCH A,31HMOVX DPTR,A5 将 30H、31H 单元内容存入 5C30H、5C31H 单元。保持其它 R 和 M 不变。MOV A,30HMOV DPTR,#5C30HMOVX DPTR,AMOV A,31HINC DPTRMOVX DPTR,A6、将 30H、31H 单元内容加上数 03C4H 后存入5C
3、30H、5C31H 单元。MOV A,30HADD A,#0C4HMOV DPTR,#5C30HMOVX DPTR,AMOV A,31HADDC A,#03INC DPTRMOVX DPTR,A7 将 30H、31H 单元内容减去数 03C4H 后存入5C30H、5C31H 单元。CLR CMOV A,30HSUBB A,#0C4HMOV DPTR,#5C30HMOVX DPTR,AMOV A,31HSUBB A,#3INC DPTRMOVX DPTR,A8 将 30H、31H 单元内容除以 2 后存入 5C30H、5C31H单元。MOV A,31HCLR CRRC AMOV DPTR,#5C
4、31HMOVX DPTR,AMOV A,30HRRC AMOV DPTR,#5C30HMOVX DPTR,A9 将 30H、31H 单元内容乘以 2 后存入 5C30H、5C31H单元。MOV A,30HCLR CRLC AMOV DPTR,#5C30HMOVX DPTR,AMOV A,31HRLC AINC DPTRMOVX DPTR,A10 将 30H、31H 单元内容减 1。保持其它 R 和 M 不变。MOV A,30HJNZ DELOWDEC 31HDELOW:DEC 30H11 将 30H、31H 单元内容加 1。保持其它 R 和 M 不变。INC 30HMOV A,30HJNZ O
5、KINC 31HOK:.12 将外部 RAM 中的 5C30H、5C31H 单元内容乘以 2。保持其它 R 和 M 不变。MOV DPTR,#5C30HCLR CMOVX A,DPTR,RLC AMOVX DPTR,AINC DPTRMOVX A,DPTRRLC AMOVX DPTR,A13 将外部 RAM 中的 5C30H、5C31H 单元内容除以 2。保持其它 R 和 M 不变。MOV DPTR,#5C31HMOVX A,DPTRCLR CRRC AMOVX DPTR,ADEC DPLMOVX A,DPTRRRC AMOVX DPTR,A14 将 30H 的低半字节和 31H 单元的高半字
6、节交换。MOV A,31HSWAP AMOV R0, #30HXCHD A,R0SWAP AMOV 31H,A 15 将 30H 的高半字节和 31H 单元的高半字节交换。MOV A,30HXCH A,31HMOV R0, #31HXCHD A,R0MOV 30H,A16 将 30H、31H 单元的 4 位 16 进制数的中间两位数交换。MOV A,30HSWAP AMOV R0,#31HXCHD A,R0SWAP AMOV 30H,A 17 如果 INT0 为低,则,位 30H 改为它的值与 P0 口最低位的“反”相“与”后的值;否则,清 30H 位。JB P3.2,L0MOV C,30HA
7、NL C,/P0.0MOV 30H,CSJMP $L0:CLR 30H18 如果 INT0 为低,则,位 30H 改为它的值与 P0 口最高位的“反”相“或”后的值;否则,清 30H 位。JB P3.2,L0MOV C,30HORL C,/P0.7MOV 30H,CSJMP $L0:CLR 30H19 如果 INT0 为高,则,位 30H 改为它的值与 P0 口最低位相“或”后的值;否则,取反 30H 位。JNB P3.2,L0MOV C,30HORL C,/P0.0MOV 30H,CSJMP $L0:CPL 30H20 如果 INT0 为低,则,A 的最低位与 A 的最高位对调;否则,清除
8、A。JB P3.2,L0MOV C,ACC.0MOV 0,CMOV C,ACC.7MOV ACC.0,CMOV C,0MOV ACC.7,CSJMP $L0:CLR A21 如果 INT1 为高,则,A 的最低位改为它的值与 A 的最高位的“反”相“与”后的值;否则,取反 A。JNB P3.3,L0MOV C,ACC.0ANL C,/ACC.7MOV ACC.0,CSJMP $L0:CPL A22 改变 30H 单元为加上数 0F7H 后的值,如果产生进位,则,设置 F0 标志;否则,清除 F0 标志。MOV A,30HADD A,#0F7HMOV 30H,AJC L0CLR F0SJMP $
9、L0:SETB F023 改变 30H 单元为减去数 0F7H 后的值,如果产生进位,则,设置 F0 标志;否则,清除 F0 标志。CLR CMOV A,30HSUBB A,#0F7HMOV 30H,AJC L0CLR F0SJMP $L0:SETB F024 如果 30H 内容等于数 80H,则,P1.0 置位;否则,P1.0 清零。保持其它 R 和 M 不变。MOV A,30HCJNE A,#80H,L0CLR P1.0SJMP $L0:SETB P1.025 改变 30H、31H 单元内容为乘以 2 后的值,如果产生进位,则,工作寄存器换用寄存器组 1。CLR CMOV A,30HRLC
10、 AMOV 30H,AMOV A,31HRLC AMOV 31H,AJNC CONCLR RS1SETB RS0SJMP $CON:26 改变 30H、31H 单元内容为除以 2 后的值,如果余数为 1,则,工作寄存器换用寄存器组 3。MOV A,31HCLR CRRC AMOV 31H,AMOV A,30HRRC AMOV 30H,AJNC L0SETB RS1SETB RSOSJMP $L0:27、已知晶振频率为 8MHZ,编一个子程序,延时 150微秒。保持其它 R 和 M 不变。DELAY:MOV R7,#10HNOPL1:NOPNOPNOPNOPDJNZ R7,L1RET28、已知晶
11、振频率为 6MHZ,编一个子程序,延时 30微秒。保持其它 R 和 M 不变。DELAY:MOV R7,#06HL1: DJNZ R7,L1RET29 将从 10H 开始的 64 单元内容异或数 5AH。保持其它R 和 M 不变。MOV R2, #40HMOV R0,#10HMOV A,#5AHLOOPC:XRL A,ROMOV RO,AINC RODJNZ R2,LOOPC30 将由 R0 寻址的 32 个单元内容清为零。保持其它 R和 M 不变。CLR AMOV R2,#20HLOOPC:MOV R0,AINC RODJNZ R2,LOOPC31 将由 R0 寻址的 32 个单元内容移到
12、R1 寻址的单元中。保持其它 R 和 M 不变。MOV R2, #20HLOOPC:MOV A,R0MOV R1,AINC R0INC R1DJNZ R2,LOOPC32 将由 R0 寻址的 16 个单元内容改为与 R1 寻址的单元相“异或”后的值。保持其它 R 和 M 不变。MOV R2,#10HLOOPC:MOV A,R0XRL A,R1MOV R0,AINC R0INC R1DJNZ R2,LOOPC33、将由 R0 寻址的 32 个单元内容改为与 R1 寻址的单元相“或”后的值。保持其它 R 和 M 不变。MOV R2, #20HLOOPC MOV A,R0ORL A,R1MOV R0
13、,AINC R0INC R1DJNZ R2,LOOPC34 将由 DPTR 寻址的 100 个单元中找出第一个内容为00H 的单元,其地址存入 30H、31H。MOV R2,#64HL1:MOVX A,DPTRJZ L0INC DPTRDJNZ R2,L1SJMP $L0:MOV 30H,DPLMOV 31,DPH35、将从 5C00H 开始的 100 个单元内容移到 5E00H 开始的单元中。MOV R7,#64HMOV DPTR,#5C00HMOV P2,#5EHMOV R0,#0LOOPC:MOVX A,DPTRMOVX R0,AINC R0INC DPTRDJNZ R7,LOOPC36
14、 将从 5C00H 开始的 100 个单元内容改为与 5E00H 开始的单元相“或”后的值。MOV R7,#64HMOV DPTR,#5C00HMOV P2,#5EHMOV R0,#0LOOPC:MOVX A,DPTRMOV B,AMOVX A,R0ORL A,BMOVX DPTR,AINC R0INC DPTRDJNZ R7,LOOPC37 将从 5C00H 开始的 100 个单元内容改为与 5E00H 开始的单元相“异或”后的值。36 把 orl 改为 xrl。38、将从 5C00H 开始的 100 个单元中找出第一个内容为00H 的单元,其地址存入 30H、31H与 34 题题极其相似只
15、需在开头添一句 mov dptr,#5c00h。39 将从 5C00H 开始的 100 个单元中找出第一个内容为00H 的单元,其地址存入 30H、31H。MOV DPTR,#5C00HMOV R2,#64HL1:MOVX A,DPTRJNZ L0INC DPTRDJNZ R2,L1SJMP $L0:MOV 30H,DPLMOV 31,DPH42 将从 5C00H 开始的 100 个单元中找出第一个偶数和存该数的单元,数存入 40H,地址存入 30H,31H。MOV R2,#64HMOV DPTR,#5C00HLOOPC:MOVX A,DPTRJNB ACC.0,L0INC DPTRDJNZ
16、R2,LOOPCSJMP $L0:MOV 40H,AMOV 30H,DPLMOV 31H,DPH43 将从 5C00H 开始的 100 个单元中找出第一个奇数和存该数的单元,数存入 40H,地址存入 30H,31H。MOV R2,#64HMOV DPTR,#5C00HLOOPC:MOVX A,DPTRJB ACC.0,L0INC DPTRDJNZ R2,LOOPCSJMP $L0:MOV 40H,AMOV 30H,DPLMOV 31H,DPH49 将 R0 指向的二字节带符号数除以 2。INC R0MOV A,R0MOV C,ACC.7RRC AMOV R0,ADEC R0MOV A,R0RR
17、C AMOV R0,A50、将数 35H 送往片外 RAM1234H 单元。MOV DPTR,#1234HCLR AMOVC A,A+DPTRMOV DPL,#35HMOVX DPTR,A51 将 1000H 单元开始的 100 个单元的数据转移到 2000H 开始的单元中.ORG 0000HMOV DPTR, #1000HMOV P2,#20HMOV R0,#00HLOOP:MOVX A,DPTRMOVX R0,AINC DPTRINC R0CJNE R0,#64H ,LOOPSJMP $52、将片外数据存储器中 7000H70FFH 单元全部清零ORG 1000HMOV DPTR,#700
18、0HCLR AMOV R0,ALOOP:MOVX DPTR,ADJNZ R0,LOOPSJMP $1 单片机对中断优先级的处理原则是什么?(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;(2)一种中断源(不管是高优先级还是低优先级)一旦得到响应,与它同级的中断源不能再中断它。2MCS-51 单片机内部有几个定时 /计数器?它们由哪些寄存器组成?MCS-51 单片机内部有两个 16 位可编程的定时/计数器,简称定时器 0(T0)和定时器 1(T1) 。它们分别由方式寄存器 TMOD、控制寄存器 TCON 和数据寄存器 TH0、TL0 ,TH1、TL1 组成。
19、3MCS-51 单片机内部包括哪些主要逻辑功能部件?1 个 8 位 CPU1 个片内振荡器及时钟电路4KB ROM 程序存储器,256BRAM21 个特殊功能寄存器2 个 16 位定时/计数器4 个 8 位并行 I/O 口及 1 个可编程全双工串行接口可寻址 64KB 的外部程序存储器空间可寻址 64KB 的外部数据存储器空间5 个中断源、两个优先级中断嵌套中断结构4、MCS-51 单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分?时钟周期是单片机最基本的时间单位。机器周期则是完成某一个规定操作所需的时间。一个机器周期为 6 个时钟周期,共 12 个振荡周期性,依次表示为
20、S1P1、S1P2、S6P1、S6P2。震荡周期:为单片机提供定时信号的震荡源的周期时钟周期:又称为状态周期/时间,是震荡周期的两倍机器周期:完成一个基本操作所需的时间指令周期:执行一条指令所占用的全部时间12*震荡周期=6*时钟周期 =机器周期5、简述 MCS-51 单片机的中断响应过程。CPU 在每个机器周期的 S5P2 期间顺序采样每个中断源,在下一个机器周期 S6 区间按优先级顺序查询中断标志,如查询到某个中断定标志为 1,将在接下来的机器周期 S1 期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入 PC,以便进入相应的中断服务程序。一旦响应中断,CPU 首先置位相应的中断“优先级触发器” ,然后由硬件执行一条长调用指令,把当前的 PC 值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入 PC,于是 CPU 接着从中断服务程序的入口处开始执行。对于有些中断源,CPU 在响应中断后会自动清除中断标志。