MCS-51单片机试题

三.简答题:(每题8分共24分)
1. MCS-51单片机中断的开放和关闭是如何控制的?如果要对定时器T1开放中断,可以用什么指令实现?
2. 设程序执行前F0=0,RS1,RS0=00B,请问机器执行如下程序后PSW中各位的状态是什么?程序如下:
MOV A,#0FH
ADD A,#F8H (要求写出过程)
3. 简述80C51单片机的I/O口的功能和特点;

四:程序分析与系统设计(1,2.3每题8分,4题12分,共36分)
1. 设内部RAM的30H单元的内容为40H,即(30H)=40H,还知(40H)=10H,(10H)=00H,端口P1=CAH,问执行以下指令后,各有关寄存器,存储单元和端口的内容是什么?(即R0,R1,A,B,P1,40H,30H及10H单元)
MOV R0, #30H
MOV A, @R0
MOV R1, A
MOV B, @R1
MOV @R1, P1
MOV P2, P1
MOV 10H, #20H
MOV 30H, 10H
2.若要完成以下的数据传送,应如何用MCS-51指令来实现?
(1).R1的内容传送到R0.
(2).外部RAM20H的内容传送到R0.
(3)外部RAM 20H的内容传送到内部RAM 20H单元.
3.设变量X存放于VAR单元,函数Y存放在RUNC单元.试按照下式编程给Y 赋值.
4. 编写程序:利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。

谁能帮我做做?
程序题第3题的公式没显示出来,是个分段函数,
Y=1 x>0
Y=0 x=0
Y=-1 x<0

三.简答题:(每题8分共24分)
1. MCS-51单片机中断的开放和关闭是如何控制的?如果要对定时器T1开放中断,可以用什么指令实现?
答:通过对中断允许寄存器IE进行设置,可以控制中断的开放和关闭。
执行:
SETB ET1
SETB EA
即可开放T1中断。

2. 设程序执行前F0=0,RS1,RS0=00B,请问机器执行如下程序后PSW中各位的状态是什么?程序如下:
MOV A,#0FH
ADD A,#F8H (要求写出过程)
PSW中有四位标志位,随着运算指令发生变化。
MOV A,#0FH P=0,C不变,V不变,Ac不变
ADD A,#F8H (要求写出过程)
0000 1111
+ 1111 1000
-------------------
1 0000 0111 P=1,C=1,V=0,Ac=1
ACC=03H

3. 简述80C51单片机的I/O口的功能和特点;

输入、输出;
准双向口,输入之前,应先输出1。

四:程序分析与系统设计(1,2.3每题8分,4题12分,共36分)
1. 设内部RAM的30H单元的内容为40H,即(30H)=40H,还知(40H)=10H,(10H)=00H,端口P1=CAH,问执行以下指令后,各有关寄存器,存储单元和端口的内容是什么?(即R0,R1,A,B,P1,40H,30H及10H单元)
MOV R0, #30H (R0)=30H
MOV A, @R0 (A) =((R0))=(30H)=40H
MOV R1, A (R1)=40H
MOV B, @R1 (B)=((R1))=(40H)=10H
MOV @R1, P1 ((R1))即(40H)=CAH
MOV P2, P1 (P2)=CAH
MOV 10H, #20H (10H)=20H
MOV 30H, 10H (30H)=(10H)=20H

2.若要完成以下的数据传送,应如何用MCS-51指令来实现?
(1).R1的内容传送到R0.
MOV A, R1
MOV R0, A

(2).外部RAM20H的内容传送到R0.
MOV DPTR, #20H
MOVX A, @DPTR
MOV R0, A

(3)外部RAM 20H的内容传送到内部RAM 20H单元.
MOV DPTR, #20H
MOVX A, @DPTR
MOV 20H, A

3.设变量X存放于VAR单元,函数Y存放在RUNC单元.试按照下式编程给Y 赋值.
?????

4. 编写程序:利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
START:
MOV TMOD, #01H
MOV TH0, #0D8H
MOV TL0, #0F0H
SETB TR0
MOV IE, #82H
SJMP $

T0_INT:
MOV TH0, #0D8H
MOV TL0, #0F0H
CPL P1.0
RETI
END

;完
-------------------------
补充:
3.设变量X存放于VAR单元,函数Y存放在RUNC单元.试按照下式编程给Y 赋值.
Y=1 x>0
Y=0 x=0
Y=-1 x<0
答:
MOV A, VAR ;取数
JZ LING ;为零转移
JB ACC.1, FU ;为负转移
MOV RUNC, #1 ;正
SJMP WAN ;转移到“完”
FU:
MOV RUNC, #255 ;255就是-1
SJMP WAN
LING:
MOV RUNC, #0
WAN:
SJMP $ ;原地转移

;真完了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-07
哇,头回见这么多分的,楼主可要讲信用啊

难得见到个爽快的,以后有问题没分也给你答。

三.简答题:(每题8分共24分)
1. MCS-51单片机中断的开放和关闭是如何控制的?如果要对定时器T1开放中断,可以用什么指令实现?

;****中断设置******
;IE EQU 0A8H ; EA--EPCA_LVD--EADC_SPI--ES--ET1--EX1--ET0--EX0 中断开关
;IP EQU 0E8H ; *--PPCA_LVD--PADC_SPI--PS--PT1--PX1--PT0--PX0 一级优先
IPH EQU 0B7H ; *--PPCA_LVDH--PADC_SPIH--PSH--PT1H--PX1H--PT0H--PX0H 二级优先

SETB ET1 ; 开T1中断
CLR ET1 ;关T1中断
SETB EA ;开总中断
对定时器T1开放中断,可以用指令 SETB ET1 ; 开T1中断

2. 设程序执行前F0=0,RS1,RS0=00B,请问机器执行如下程序后PSW中各位的状态是什么?程序如下:
MOV A,#0FH
ADD A,#F8H (要求写出过程)

这是PSW的位情况
;PSW EQU 0D0H ; CY--AC--F0--RS1--RS0--OV--F1--P

MOV 指令主要影响PSW的P
ADD 指令主要影响PSW的P,CY,AC

MOV A,#0FH P=0,C不变,V不变,Ac不变
A=0000 1111B

ADD A,#0F8H (注意是0F8H,要不然编译出错)
0000 1111B (0FH)
+ 1111 1000B (0F8H)
-------------------
1 0000 0111B (03H) P=1,C=1,V=0,Ac=1
结果溢出, ACC=03H,C=1

3. 简述80C51单片机的I/O口的功能和特点;

80C51单片机的I/O口有4个,分别是P0,P1,P2,P3
P0是双向口,主要用用数据输入和输出,没有上拉电阻,
P1,P2,P3是准输入口,(当然也可以输出用)有内部上拉电阻,其中P3口还有特殊功能。

四:程序分析与系统设计(1,2.3每题8分,4题12分,共36分)
1. 设内部RAM的30H单元的内容为40H,即(30H)=40H,还知(40H)=10H,(10H)=00H,端口P1=CAH,问执行以下指令后,各有关寄存器,存储单元和端口的内容是什么?(即R0,R1,A,B,P1,40H,30H及10H单元)
MOV R0#30H (R0)=30H 直接寻址
MOV A@R0 (A) =((R0))=(30H)=40H 间接寻址,地址30H中的数为40H
MOV R1,A (R1)=40H 直接寻址
MOV B, @R1 (B)=((R1))=(40H)=10H 间接寻址 地址40H中的数为10H
MOV @R1, P1 ((R1))=(40H)=0CAH
MOV P2, P1 (P2)=0CAH
MOV 10H, #20H (10H)=20H 直接寻址 地址10H中的数为20H

MOV 30H, 10H (30H)=(10H)=20H 直接寻址 地址30H中的数等于地址10H中的数20H

2.若要完成以下的数据传送,应如何用MCS-51指令来实现?
(1).R1的内容传送到R0.

MOV A, R1
MOV R0, A

(2).外部RAM20H的内容传送到R0.

MOV DPTR,#20H
MOVX A,@DPTR
MOV R0,A

(3)外部RAM 20H的内容传送到内部RAM 20H单元.
MOV DPTR,#20H
MOVX A,@DPTR
MOV 20H,A

3.设变量X存放于VAR单元,函数Y存放在RUNC单元.试按照下式编程给Y 赋值.
按照下式?没看到。

4. 编写程序:利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。

OUTPUT BIT P1.0
ORG 0000H
SJMP START
ORG 000BH
LJMP TIMER0_INT
ORG 0030H
START:
MOV TMOD, #01H ;T0为16位重装
MOV TH0, #0D8H ;初值
MOV TL0, #0F0H ;初值
SETB TRO
SETB ET0 ;开T0中断
SETB EA ;总中断
SJMP $

ORG 0100H
TIMER0_INT:
MOV TH0, #0D8H
MOV TL0, #0F0H
CPL OUTPUT
RETI

END
相似回答