求高手解决MCS-51单片机的程序改错。利用查表方式求y=x^2(x=0,1,2,3,....9)的程序,找出其中错误的指令。

作者&投稿:阎叛 (若有异议请与网页底部的电邮联系)
单片机习题请求~

1.执行下列程序段中第一条指令后,(1)(P1.7)=_ 0__,(P1.3)=_0___, (P1.2)=__0______;
执行第二条指令后,(2)(P1.5)=__1____,(P1.4)=___1____,(P1.3)=__1_____。
ANL P1,#73H
ORL P1,#38H
2.下列程序段执行后,(A)=__0DH_____,(B)=____11H_____。
MOV A,#0FBH
MOV B,#12H
DIV AB
3.下列程序段执行后,(R0)=_7EH ,(7EH)= FFH____,(7FH)=__3FH___。
MOV R0,#7FH
MOV 7EH,#0
MOV 7FH,#40H
DEC @R0
DEC R0
DEC @R0
4.已知(SP)=09H,(DPTR)=4567H,在执行下列指令后,(SP)=__0BH______,内部RAM(0AH)=_67H__ ___,(0BH)=__45H______
PUSH DPL
PUSH DPH
5.下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问执行下列程序需要多少时间?
MOV R3,#100;1
LOOP:NOP;1
NOP
NOP
DJNZ R3,LOOP;2
RET;2
用了503个机器周期,按12时钟周期计,即要用1。006ms的时间

6.执行下列程序段后,(P1)=___9BH____。
MOV P1,#5DH
CPL P1.1
CPL P1.2
CLR P1.6
SETB P1.7
7.执行下列程序段后,(A)=__8AH_____,(CY)=__1_。
MOV A,#C5H
RL A
这道题要解释一下:RL是不影响CY的,估计应该是RLC,CY为1
8.下列程序段执行后,(R0)=__7FH_____,(7EH)=__00H__,(7FH)=__41H_____。
MOV R0,#7EH
MOV 7EH,#0FFH
MOV 7FH,#40H
1NC @R0
1NC R0
1NC @R0
9.阅读程序说明该程序段的功能
MOV A,R1
MOV B,R2
CJNE A,B,BJ1
BJ1:JC BJ2
MOV A,R2
BJ2:MOV P1,A
作用:将R1和R2中的最小值写到P1口
10. 阅读程序说明该程序段的功能
MOV DPTR,# 0100H
MOV R0,#30H
LOOP:MOVX A,@DPTR
MOV @R0, A
INC DPTR
INC R0
CJNE R0, #61H, LOOP
RET
作用:将内部RAM 0030H~0060H 共49字节的内容复制到以0100H为首址的内部中
11. 将片内RAM 40H单元中的两位压缩BCD码转换成二进制数送到片内RAM50H单元中。
示范程序:
PROCTURN:
MOV A , 40H
ANL A, #0F0H
SWAP A
MOV B, #10
MUL AB
MOV B, A
MOV A, 40H
ANL A, #0FH
ADD A, B
MOV 50H, A
12. 已知片内RAM 40H~4FH单元中存放了8个二进制无符号数,编制程序求它们的累加和,并将其和数存放在R4, R5中。
睇唔明题,即唔确定题意
13.将内RAM 30H单元,31H单元,32H单元中的三个无符号数相加,并将和存入R0(高位)与R1(低位)。
PRO:
MOV A,30H
ADD A,31H
MOV R1,A
ADDC A,#0
MOV R0,A
MOV A,R1
ADD A,32H
MOV R1,A
ADDC A,#0
MOV R0,A

14.利用查表的方法编写Y=X2(X=0, 1, 2,…, 9)的程序。
X DATE 40H
Y DATE 41H
PROC:
MOV DPTR,#TABCHANGE
MOV A,X
MOVC A,@A+DPTR
MOV Y,A
TABCHANGE:
DB 0,1,4 ,9,16, 25, 36, 49, 64,81

三、基本应用
1.MCS-51单片机的时钟周期与振荡周期之间有什么关系, 一个机器周期的时序如何划分。
时钟周期就是振荡周期,一个机器周期分六个状态周期,每个状态分两相
2.MCS-51内部四个并行I/O口各有什么异同 作用是什么。
P0没上拉电阻,当访问外部存储器时 P0 作为数据和地址总线(地址为低8位),P2就作为地址的高8位总线。P3有比较的多的第二功能,如中断,串口接口,等等。相同的是,其不作第二功能使用时,都是通用的IO口。
3.简述MCS-51单片机的中断响应过程
.先将对应的中断的优先级触发器置1,防止响止同级或更低级的中断请求,PC值压入堆栈,跳到中断入口地址(因不同的中断而不同),然后清除中断请求标志(有些要自己清除),中断返回,并使中断的优先级触发器置0。
4.简述串行接口A/D转换器与并行接口A/D转换器各自的特点。
串行的连线小,并行的连多,在频率不高的情况下,并行的转换速度相对串行的高.
5.简述累加器的ACC的作用。
CPU内的通用寄存器,用于存放算术或逻辑运算中的中间结果
6.简述MCS-51单片机中断的优先级。
由IPH和IP两个寄存器决定 优先级越高,越先响应
7.简述51单片机外部ROM与RAM的区分。
外部ROM是用来烧写程序的,一经烧写,在运行时仅供CPU读,其内容不再改变,而RAM则是在CPU运行时,供CPU读写使用的,其值可改变。
8.简述中断和子程序调用的区别。
中断程序的入口地址由硬件决定,响应后返回前要清除中断标志。
9.说明MCS-51单片机汇编语言指令和伪指令的区别。
伪指令是指导汇编程序对源程序进行汇编的,同汇编程序(汇编器)有关,而汇编指令同CPU的指令系统有关
10.说明MCS-51单片机的串行接口能否与标准RS232直接连接,为什么?
不行,电平标准不同,MCS-51用的是TTL电平,而标准RS232是用EIA电平

没有了,手抽筋了,哈哈,还有不懂的就Q我:862845600

三.简答题:(每题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 ORG 1000H
2 START:MOV A, 30H
3 ADD A, #01H ----01H 应改成:02H
4 MOVC A, @A + PC
5 MOV 31H, A
6 DB 0, 1, 4, 9, 16
7 DB 25, 36, 49, 64, 81
8 END

第一行错了,51程序入口在0000H

复合机房以后

MCS-51单片机的中断问题!!
答:中断系统中有两个"用户不能使用的"优先级状态触发器;其中一个,置1时,表示正在执行高优先级的中断,屏蔽所有中断请求;还有一个,置1时,表示正在执行低优先级的中断,屏蔽同级中断请求.明白了吧?其实就是说这两个触发器,是用户无法访问到的,是内置且自动赋值的.一旦有高优先级的中断运行了,第一个就...

MCS-51单片机的问题
答:16脚是P3.6,驱动4个TTL负载 另外:P0驱动8个TTL负载 P1驱动4个TTL负载 P2驱动4个TTL负载 P3驱动4个TTL负载

怎样在MCS-51单片机内烧写程序?
答:51系列的单片机得看什么型号,但是每种型号的单片机都有相应的仿真器用来支持在线调试,如果单纯的想把编译好的目标文件下载到芯片内部,可以自己制作下载编程器(ISP)如AT89S51 单片机,下载程序的引脚是P1.5 ,P1.6,P1.7口,外加一根复位线,,也就是上面那位所说的引出4条线来 ISP编程器其实就...

设MCS-51单片机使用的晶振是12MHz,欲使用定时器/计数器1实现50ms定时中...
答:不管使用什么工作方式都是可以完成的,这个取决于你设置的定时/计数器的初值。下面使用方式一和方式二来分别说明。一、使用方式一:晶振频率为12MHz,机器周期为1us,50ms时间需要计数50000次,故计数器初值为(65536-50000),65536是因为方式一中,定时/计数器的最大值为65536(2^16),当然写程序时不...

MCS-51型单片机 它在开机复位后CPU如何确定和改变当前工作寄存器组的...
答:改变 RS0 RS1 的数据就可以改变工作寄存器组,软件给这两个东西赋值就行了.上电复位后,在初始化程序里,对寄存器PSW的RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。默认应该是寄存器组0.当你需要使用工作寄存器时,cpu通过寄存器PSW的RS1、RS0(PSW.4、PSW.3)的设置来选择...

编程题 设MCS-51单片机系统中晶振频率为12MHz,欲使用定时器/计数器1...
答:采用12Mhz晶振的51单片机,软件如下(调试通过)include <reg52.h> define PERIODH (65536l-50000l)/0X100 //设50ms中断1次TH1初值 define PERIODL (65536l-50000l)%0X100 //设50ms中断1次TL1初值 //如果需要极精确的延时,应根据实际编译后的产生的汇编指令,扣除掉中断响应中重装所占用的...

关于MCS-51单片机的问题
答:1.MCS-51有一个全双工的(异 )步串行口 2.MCS-51单片机P0口和P2口除了可以进行数据的输入,输出外,通常孩用来构件系统的(控制总线 )和( 地址总线),( P1)口具有第二引脚功能 3.MCS-51单片机内共有( 128)字节单元的RAM和( 4k)字节单元的ROM 4.MCS-51单片机一个机器周期共有(12 )个震荡周期 ...

mcs-51单片机中,要用到内部时序中断,外部的INT0,INT1两个中断,想要先运...
答:中断本身是无法这样控制的,什么是中断,那是用来解决突发事件的,如果还有先后次序的话就不叫中断了(让人同时触发中断有优先级来处理谁先响应)。所以对此你可以有两种解决办法:1、软件上,不用中断用查询方式。2、硬件上,将逻辑关系设计成只有INT0触发之后才能触发INT1.

51系列单片机是如何进行复位的?
答:在单片机系统的应用中,我们经常需要用到复位技术来实现抗干扰。有的单片机(如8098)有专门的复位指令,某些增强型MCS-51系列单片机虽然没有复位指令,但片内集成了WATCHDOG电路,可以很容易实现复位。而普及型MCS-51系列单片机(如8031和8032)既无复位指令,又不带硬件WATCHDOS,如果不外接硬件WATCHDOG,...

单片机msc-51中编程实现两个一字节压缩型BCD码的减法
答:编程实现两个一字节压缩型BCD码的减法,设被减数地址在R0中,减数地址在R1中,差仍存于被减数地址单元中。注意是单片机中啊。--- 一字节压缩的 BCD 码相减。如:22-55 =-33。注意:-33 的 BCD 补码是 67H。MCS-51 汇编语言程序如下:MOV R2,#22H;被减数 MOV R3,#55H;减数 CLR ...