1.MCS-51汇编语言指令格式中,唯一不可缺少的部分是 B 。 A.标号 B.操作码 C.操作数 D.注释 2.单片机中PUSH和POP指令常用来 C 。 A.保护断点 B.保护现场
C.保护现场,恢复现场 D.保护断点,恢复断点
3.MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是 A 。 A.寄存器间接寻址 B.寄存器寻址 C.基址加变址寻址 D.立即寻址
4.在MCS-51指令中,下列指令中 C 是无条件转移指令。 A.LCALL addr16 B.DJNZ direct, rel C.SJMP rel D.ACALL addr11 5.在编程中使用伪指令的目的是 C 。
A.指示和引导如何进行手工汇编 B.指示和引导编译程序如何汇编 C.指示和引导汇编程序进行汇编 D.指示和引导程序员进行汇编 6. LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D) A.2000H B.2001H C.2002H D.2003H 7. 下面指令将MCS-51的工作寄存器置成3区(B) A.MOV PSW,#13H B.MOV PSW,#18H
C.SETB PSW.4 CLR PSW.3 D. SETB PSW.3 CLR PSW.4 8.MCS-51寻址方式中,立即寻址的寻址空间是(C)。 A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存储器ROM
D.片内RAM的20H~2FH字节中的所有位和部分专用寄存器SFR的位 9.MCS-51寻址方式中,直接寻址的寻址空间是(D)。 A.工作寄存器R0~R7 B.专用寄存器SFR C.程序存储器ROM D.数据存储器256字节范围
10. 是最简单的程序结构,它既无分支,又无循环,在执行时单片机
是按程序中指令的顺序逐条进行的。 (A) A.顺序结构 B.分支结构 C.循环结构 D.子程序 2判断题。
(×)1.MCS-51的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。
(√)2.已知:A=11H B=04H,执行指令DIV AB后,其结果:A=04H,B=1 CY=OV=0。
(√)3.指令LCALL addr16能在64K字节范围内调用子程序。 (×)4.MCS-51单片机的相对转移指令最大负跳距是127B。
(×)5.调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。( × )子序的转返与PC也有关(PC入栈与出栈) 3填空
1.MCS-51有 5 个中断源,有2 个中断优先级,优先级由软件填写特殊功能寄存器 IP 加以选择。
2. 外部中断0的中断入口地址为 0003H ;定时/计数器0的中断入口地址为 000BH ;外部中断1的中断入口地址为 0013H ;定时/计数器1的中断入口地址为 001BH ;串行口中断的中断入口地址为 0023H 。 3.MCS-51系列单片机的定时器/计数器有四种工作方式,其中方式0是 13 位定时/计数器;方式1为 16 位定时/计数器;方式2为 自动重装初值 的 8 位定时/计数器;只有定时器 T0 才能选作组合方式3,此时将形成2个 8 位的定时/计数器。
4. MCS-51单片机中断允许寄存器IE的作用是用来对各中断源进行开放或屏蔽的控制。
5.若MCS-51系列单片机中的中断设定为同一优先级,当它们同时发出中断请求时,CPU处理的顺序(由高到低)为 外部中断0 → 定时器/计数器0 → 外部中断1 → 定时器/计数器1 → 串行口中
断 。
6.MCS—51单片机外部中断请求信号有电平方式和 边沿触发方式 ,在电平方式下,当采集到INT0、INT1的有效信号为 底电平 时,激活外部中断。
7.中断处理的全过程分为以下3个段: 中断请求 、 中断响应 、 中断服务 。
8. 用户在编写中断服务程序时,可在中断入口矢量地址存放一条无条件转移指令,以防止中断服务程序容纳不下。
9.串行口数据缓冲器SBUF是可以直接寻址的专用寄存器。
10.A/D转换器转换数据的传送有定时传送方式、查询方式和中断方式 4编程题
1. 从22H单元开始有一个无符号数据块,其长度在20H单元。求出数据块中最大值,并存入21H单元。
解: ORG 0100H
START: MOV R0,#22H ;数据块首地址送R0 MOV R7,20H ;比较次数送R7 DEC R7
MOV A,@R0 ;取数送A LOOP: INC R0
MOV 60H,@R0 ;取数送60H
CJNE A,60H,NEHT ;(A)与(60H)相比 NEXT: JNC BIE1 (A)≥(60H)转BIR1 MOV A,60H ;(A)<(60H),大数送A
BIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较
MOV 21H,A ;比较结束,大数送21H SJMP $ END
2.从内部RAM 22h单元开始存有一个无符号数数据块,长度n存于20h中。求
出数据块中的最小数,存于21h中。
ORG 0030H
MOV R0, #22H ;数据块起始地址 MOV R1, 20H ;数据个数n MOV 21H,#0FFH ; 最大数 LOOP: MOV A, @R0 ; 取新数 INC R0 ; 为取下一个新数作准备 CJNE A, 21H, LOOP1 ; 与原最大数比较 LOOP1: JNC NEXT ; 大,原最小数保留C=0 ,跳 MOV 21H, A ; 小,改变最小数 NEXT: DJNZ R1, LOOP ;循环 END
3. 单片机集成的定时器可以产生定时中断,利用定时器T0,编写程序,使P1.0控制的发光二极管L0每隔1秒交替点亮或熄灭。 ; P1.0 ---- 发光二极管显示 L0 LED EQU P1.0 ORG 0000H ;复位地址
AJMP MAIN ;开始时跳转转到主程序
ORG 000BH ;T0入口地址 AJMP INT_T0
ORG 0100H MAIN: SETB LED
MOV TMOD,#00000001B ;设置定时器T0工作在方式1(16位) MOV TH0,#0D8H ;设置初值 MOV TL0,#0F0H
CLR TF0 ;先把溢出标志位清零
SETB TR0 ;开始计时 SETB EA ;全局中断打开
SETB ET0 ;定时器/计数器T0溢出中断打开 MOV R7,#00H ;作为定时器累加器使用 SJMP $ ;循环,等待中断
;中断服务子程序 中断服务子程序控制R7的值 定时10ms*100=1S
INT_T0: INC R7 ;计数增量
CLR TF0 ;重新置中断标志位为0 MOV TH0,# 0D8H;重新符初值 MOV TL0,# 0F0H
CJNE R7,#100,RETURN ;让灯明暗相间1s MOV R7,#00H
CPL LED ;让灯明暗交替变化 RETURN: RETI
END
4如下系统中AT89C51单片机外接晶振频率为12MHz。编制一个循环闪烁灯的程序:有8个发光二极管,顺序循环点亮LED1—LED8,每次其中1个灯每隔2秒闪烁1次,共闪烁10次,闪烁点亮10次后,转到下一个闪烁10次,循环不止。
解:根据硬件连接图所示,当P1.0输出高电平时,LED灯亮,否则不亮。其程序如下:
MOV A,#01H ;灯亮初值
SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,A ;点亮 LCALL DELAY ;延时 MOV P1,#00H ;熄灭 LCALL DELAY ;延时 DJNZ R2,FLASH1 ;循环 RET
5 AT89C51单片机外接晶振频率为12MHz。编程完成功能:发光二极管循环显示二进制数00H至0FH。
本程序高电平有效 ORG 0000H
LJMP MAIN ORG 0030H
MAIN: MOV A,#00H L1: MOV P1 ,A
LCALL DELAY
INC A SJMP L1 ORG 0200H
DELAY: MOV R5,#04H F3: MOV R6,#0FFH F2: MOV R7,#0FFH F1: DJNZ R7,F1
法一:本程序 低电平有效显示的是00H到FFH
ORG 0000H
LJMP MAIN ORG 0030H DJNZ R6,F2 DJNZ R5,F3 RET END
MAIN: MOV 40H,#00H L1: MOV A,40H CPL A MOV P1 ,A
LCALL DELAY
INC 40H SJMP L1
ORG 0200H
DELAY: MOV R5,#04H F3: MOV R6,#0FFH F2: MOV R7,#0FFH F1: DJNZ R7,F1
DJNZ R6,F2 DJNZ R5,F3 RET END
法二:本程序 低电平有效显示的是00H到FFH
ORG 0000H
LJMP MAIN ORG 0030H
MAIN: MOV A,#00H L1:
CPL A
MOV P1 ,A
LCALL DELAY
CPL A
INC A
SJMP L1 ORG 0200H
DELAY: MOV R5,#04H F3: MOV R6,#0FFH F2: MOV R7,#0FFH F1: DJNZ R7,F1
DJNZ R6,F2 DJNZ R5,F3 RET
END
6编定一个软件延时1S的子程序,已知fosc=6MHz。 解:(1)1S=2μs*5*100000 5*100000=250*200*10 (2)
ORG 1000H
DELAY1S: MOV R7,#10 T3: MOV R6,#200 T2: MOV R6,#250 T1: DJNZ R5,T1 DJNZ R6,T2 DJNZ R7,T3 RET
7 如下系统中AT89C51单片机通过P0口控制8段数码管,要求在数码管上循环显示数字0~9,要求每个数字的显示时间为1s,试编程实现。(已知单片机的晶振频率为6MHZ))
ORG 0000H LJMP MAIN
ORG 030H
MOV A,#66H MOV A,#7FH MAIN: MOV A,# 3FH CPL A MOV P0,A ACALL DEL
MOV A,# 06H
CPL A MOV P0,A ACALL DEL MOV A,#5BH
CPL A
MOV P0,A ACALL DEL MOV A,#4FH
CPL A
MOV P0,A ACALL DEL
CPL A MOV P0,A ACALL DEL MOV A,#6DH
CPL A MOV P0,A ACALL DEL
MOV A,#7DH CPL A MOV P0,A ACALL DEL MOV A,#07H CPL A MOV P0,A ACALL DEL
CPL A MOV P0,A ACALL DEL MOV A,#6FH CPL A MOV P0,A ACALL DEL AJMP MAIN DEL: MOV R7,#10 T3: MOV R6,#200 T2: MOV R6,#250 T1: DJNZ R5,T1 DJNZ R6,T2 DJNZ R7,T3 RET END
因篇幅问题不能全部显示,请点此查看更多更全内容