MCS-51作业讲解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MOV @R0,A;交换R0与R1指向单元的数
XCH A,30H ;将@R1中的数(A)与30H (原R0 )交换
MOV @R1,A;使A(原R0中数)→@R1
NOCHA:INC INC R0;调节地址指针 R1
DJNZ R3,LOOP1;内循环结束判别
DJNZ R2,LOOP0;外循环结束判别 RET
信号线,当CPU读取外部程序时,
PSEN每个机器周期两次有效。
⒍ MCS-51单片机如何实现工作寄存器组
R0-R7的选择?
答:用户可通过改变PSW中的RS1和RS0的 两位的值选择相应的工作寄存器组。
⒎什么是时钟周期、机器周期、指令周期?当
单片机时钟频率为12 MHz时,一个机器周期
是多少?ALE引脚的输出频率是多少? 答:时钟周期:指为单片机提供时钟信号的振
答:有8位CPU、4KB的ROM、可寻址64KB的程 序存储器和数据存储器、128B的片内RAM
和21个SFR、两个16位的定时/计数器、
4个8位的I/O并行口、一个全双工异步 串行口、5个中断源,两个中断优先级、 一个内部时钟发生器。
3. MCS-51单片机内256B的数据存储器可分为几
个区?分别作什么用?
INC
R1
DJNZ R3,LOOP1;内循环结束判别 DJNZ R2,LOOP0;外循环结束判别
RET
MOV R0,#51H MOV R5,#07H MOV R4,#00H
MOV R3,A
MOV R5,#04H LP2: MOV A,R4 RRC A MOV R4,A
MOV A, @R0
INC R0
MOV A,R3
CLR C
LP1:INC DPTR DJNZ R5,LP MOV R3,A MOV R5,#04H LP2:MOV A, R4 RRC A
RRC A
MOV R3,A
CLR
C
DJNZ R5,LP2 MOV BUF2,R3 RET
⒌试编写程序,将内部RAM中DATA1单元开始
的20个单字节数据依次与DATA2单元为起 始地址的20个单字节数据进行交换. MOV R0,#DATA1 MOV @R0 ,A INC R0 INC R1 DJNZ R2,LP1 RET
第二章习题与思考题
1.举例说明你所知道的MCS-51有哪些典型产
品,它们有何区别?
答:有8031、8051、8751。 8051内部有4KB ROM; 8751内部有4KB EPROM 8031片内无ROM; 除此之外,三者的内部结构及引脚完全相同。
2.MCS-51单片机内部包含哪些主要逻辑功能
部件?
MOV A,@R0 MUL AB
INC R0 ADD A,@R0
XCH
A,B
ADDC A,#00H MOV @R0,A RET
⒉在以3000H为首地址的外部单元中,存放了14 个ASCII码表示的0~9之间的数,试编写程序 将它们转换为BCD码,并以压缩型BCD码的 形式存放在以2000H为首地址的外部单元中. MOV DPTR,#2000H
前工作寄存器组?
答:开机复位后,CPU使用第0组工作寄存器,
地址是00H~07H,可通过对PSW状态字寄存
器中RS1 及RS0两位的设置来确定和改变
CPU当前使用的工作寄存器组。
② MCS-51单片机的程序存储器和数据存储器共
处同一地址空间为什么不会发生总线冲突? 答:虽然数据存储器的地址与程序存储器的地
A, @DPTR
指令有何不同?
答: MOVC A,@A+DPTR 指令访问的对象是
程序存储器,操作数在(A+DPTR)所指 向的存储单元中;而MOVX A, @DPTR指 令访问的对象是外部数据存储器,操作 数在DPTR所指向的存储单元中。
7.试分析下列程序段,当程序执行后,位地 址00H和01H中的内容将为何值?P1口的 8条I/O线为何状态? CLR C; (01H)=1 MOV A, #66H; (00H) 保持原有内容 JC LOOP1; CPL C; P1=66H SETB 01H; LOOP1: ORL C, ACC.0; JB ACC.2, LOOP2; „„
LP: ADD A, @R0 JNC LP1 INC R4
MOV A,R3
RRC A MOV R3,A CLR C
CLR C LP1:INC R0
DJNZ R5,LP2 RET
DJNZ R5,LP
⒎编写将一个单字节十六进制数转换为十进制
数的子程序.
入口:A←十六进制数
出口:R0=十位数和个位数地址指针
⒏在内部RAM的BLOCK开始的单元中有一无
符号数据块,数据块长度存入LEN单元.试编 程求其中的最大数并存入MAX单元中.
MOV R0,#BLOCK MOV R2,LEN SJMP LP1
LP2:JNC LP1
MOV A,@R0
DEC
R2
MOV A,@R0
LP: INC R0
CLR C CJNE A,@R0,LP2
ANL
ORL
C,P1.1
C,PSW.5
MOV
PSW.5,C
第四章 习题与思考题(P
73)
⒈ 若有两个符号数x,y分别存放在内部存储 器50H、51H单元中,试编写一个程序实现 x×10+y,结果存入52H,53H单元中.
CLR C INC R0
MOV R0,#50H MOV B,#10 MOV @R0,A INC R0
LOOP1:MOV A,@R0 ;取相邻两单元中的数 MOV 30H,A ; 低地址内容→30H
MOV A,@R1 ;高地址内容→A中
CJNE A,30H,NEXT ;两数比较,不等转NEXT SJMP NOCHA ;相等转NOCHA(不交换位置) NEXT:JNC NOCHA;C=0则(A)>(30H)不交换, 转NOCHA(@R1>R0@) MOV @R0,A;交换R0与R1指向单元的数 XCH A,30H ;将@R1中的数(A)与30H (原R0 )交换 MOV @R1,A;使A(原R0中数)→@R1 NOCHA:INC R0;调节地址指针
ANL A,#17H ;(A)=03H ORL 17H,A ;(17H)=37H
XRL A,@R0 ;(A)=34H
CPL A
;(A)=0CBH
13.请用位操作指令编写实现下面逻辑表达式的程序。
⑴ PSW.5=P1.3×Acc.2+B.5×P1.1
MOV ANL MOV MOV
C,P1.3 C,Acc.2 PSW.5,C C,B.5
Biblioteka Baidu
MOV P2,#20H
MOV R0,#00H
MOV R3,#07H
LOOP: MOVX A,@R0
INC
R0
SUBB MOV MOVX INC
A,#30H B,A A,@R0 R0
SUBB A,#30H SWAP A ORL A,B MOVX @DPTR,A INC DPTR DJNZ RET R3,LOOP
答:分为二大部分四个不同的区: ⑴ 00H~7FH单元组成低128字节的片内RAM区, 其中00H~1FH共32个单元通常作为工作寄存 器区; 20H ~2FH共16个字节,这些单元可 以构成布尔处理机的存储器空间; 30H~7FH 共80个单元为用户RAM区,作堆栈或数据缓冲 区。 ⑵ 80H~FFH单元组成高128字节的专用寄存器 (SFR)区。
⒋以BUF1为起始地址的外部数据存储器区中, 存放有16个单字节无符号二进制数,试编写 一程序,求其平均值并送BUF2单元. MOV DPTR,#BUF
MOV R5,#0FH
MOV R4,#00H
MOV A, @DPTR
INC DPTR
LP: ADD A, @DPTR
JNC LP1
INC R4
MOV R4,A
荡源的周期.
机器周期T机:指CPU完成某些基本操作的 所需要的时间。
指令周期T指:指令周期是指执行一条指令
所需要的时间。
当单片机时钟频率为12 MHz时:
T机= 12T振=fosc/12=1us 。
fALE=fosc/6=2MHz
补充作业:
①开机复位后,CPU使用的是哪组工作寄存器? 它们的地址是什么?CPU如何确定和改变当
MOV A,59H;
(A)=50H (R0)=50H
MOV R0,A;
MOV A,#00; MOV @R0, A;
(A)=00H
(50H)=00H (A)=25H
MOV A, #25H; MOV 51H, A;
(51H)=25H
MOV 52H, #70H; (52H)=70H
⒋ MOVC
A,@A+DPTR 与 MOVX
或指令中所使用的寄存器来区别,当使用
位指令或指令中使用“C”寄存器时表明此
时的地址是位地址,其余情况均为字节地
址。
位地址7CH具体在片内RAM2FH单元中D4位。
第三章习题与思考题
2.设内部RAM中59H单元的内容为50H,写 出当执行下列程序断后寄存器A,R0和内 部RAM中50H、51H单元的内容为何值?
5. MCS一51单片机的EA、ALE、PSEN信号各自的 功能是什么? 答:EA的主要作用是选择程序memory。
当EA=0时CPU只能访问片外memory;
当EA=1时,如果PC﹤﹦0FFFH时,则CPU
访问片内ROM ,否则CPU自动转向外部
EPROM。
ALE有三个作用。
① 当CPU访问外部memory初时,产生正脉冲
LP1:DJNZ R2,LP
MOV MAX,A
RET
⒐试编程将内部RAM中41H~43H单元中的 数左移4位,移出部分送40H单元.
MOV 40H,#00H
MOV R4,#04H
址都是0000~FFFFH,但CPU对它们的访问 是相互独立的,不会产生二意性,即CPU 给出一个地址,不会同时选中二个存储单 元。因为数据存储器在硬件上有RD或WR信 号选通,软件上有MOVX类指令访问。而程 序存储器在硬件上有PSEN信号选通,软件 上有MOVC类指令访问。
③ 位地址7CH与字节地址7CH如何区别?位地址 7CH具体在片内RAM中什么位置? 答:位地址7CH与字节地址7CH靠所使用的指令
⒊采样的5个值分别存放在R0、R1、R2、R3、
R4中,求出它们的中间值,并存放在R2中.
解:设R0~R4的地址分别为00H~04H
MOV R2,#4H;置外循环计数器 LOOP0:MOV R0,#00H ;置内循环地址指针初值
MOV R1,#01H ;下一存储单元地址指针
MOV R3,R2 ;置内循环计数器初值
BINBCD1:MOV B,#100 DIV AB ;A=百位数,
B=余数(十位及个位数)
MOV @R0,A ;百位数存入RAM INC R0
MOV A,#10 ;
XCH A,B ;
DIV
AB
; A=十位数,B=个位数,
(A、B中高4位一定为0)
SWAP A
ADD A,B ;数组合到A MOV @R0,A ;存入RAM
ALE信号输出,在其后沿将P0口输出的低
8位地址锁存于外部地址锁存器中; ② 访问外部memory的过程中,ALE端仍以 不变的频率周期性的输出正脉冲信号,且
fALE=1/6fosc ,所以可用作对外输出的时钟
信号和定时作用;
③当片内有EPROM时,可作为编程脉冲输入
端使用。
PSEN:外部程序memory(EPROM)选通
LOOP1:MOV A,@R0 ;取相邻两单元中的数 MOV 30H,A ; 低地址内容→30H
MOV A,@R1 ;高地址内容→A中
CJNE A,30H,NEXT ;两数比较,不等转NEXT SJMP NOCHA ;相等转NOCHA(不交换位置) NEXT:JNC NOCHA;C=0则(A)>(30H)不交换, 转NOCHA(@R1>R0@)
8.要完成以下的数据传送,应如何用
MCS-51指令实现?
(4)片外RAM 1000H单元的内容送片内
RAM 20H单元;
MOV
DPTR, #1000H;
MOVX A, @DPTR;
MOV
20H, A;
⒑已知:(A)=83H,(R0)=17H,
(17H)=34H,
请写出下列程序段执行后A中的内容。
MOV R1,#DATA2
MOV R2,#20
LP1: MOV A,@R0
XCH A, @R1
⒍某场歌手赛,共有10个评委,试编译程序,输入
10个评分,去掉最高分和最低分,求平均分 (均为BCD码).
MOV R2,#10;置外循环计数器 LOOP0:MOV R0,#50H ;置内循环地址指针初值 MOV R1,#51H ;下一存储单元地址指针 MOV R3,R2 ;置内循环计数器初值
相关文档
最新文档