MCS-51作业讲解
MCS51单片机讲义C语言编程,清华大学出版社第四章

TF0:MCS-51 片内定时器/计数器 T1 溢出中断申请标志位。当启动 T0 计数 后,定时器/计数器 T0 从初值开始加 1 计数,当最高位产生溢出时,TF0 由硬 件 置“1”,向 CPU 申请中断,CPU 响应 T0 中断时,TF0 由硬件清“0”,TF0 也 可 由软件清 0(查询方式)。 TFl:MCS-51 片内的定时器所数器 T1 的溢出中断申请标志 位,功能和 TF0 类同。 TR1 和 TR0 这 2 个位与中断无关,仅与定时器/计数器 T1 和 T0 有关,它们 的功能在后续章节介绍。 当 MCS-51 复位后,TCON 被清 0。则 CPU 关中断,所有中断请求被禁止。 SCON 为串行口控制寄存器,字节地址为 98H, SCON 的低二位为串行口的接 收中断和发送中断标志,其格式如下表 4.3: 表 4.3 SCON 中的中断请求标志位 位 D7 D6 D5 D4 D3 D2 D1 D0 SCON TI RI 位地址 99H 9 8H 各位的功能如下: TI:MCS-51 串行口的发送中断标志位,在串行口以方式 0 发 送时,每当发 送完 8 位数据,TI 由硬件置“1”;若以方式 1、方式 2 或方式 3 发送时,在发 送停止位的开始时,TI 由硬件置“1”,TI=l 表示串行口发送正在向 CPU 申请 中断,要发送的数据一旦写入串行口的数据缓冲器班 SBUF,单片机内部的 硬件 就立即启动发送器继续发送。值得注意的是 CPU 响应发送器中断请求,转向执 行 中断服务程序时 TI 并不清“0”,T1 必须由用户的断服务程序清 0,即中断服务 程序中必须用 TI 清“0”的指令。 RI:串行口接收中断标志位,若串行口接收器允 许接收,并以方式 0 工作, 每当接收到第 8 位数据时 RI 由硬件置“1”,;若以 方式 1、2、3 工作,且 SM2=0 时,每当接收器接收到停止位的中间时 RI 由硬件置 “l,当串行口干以方式 2 或方式 3 进行工作,且 SM2=1 时仅当接收到的第 9 位 数据 RB8 为 1 后,同时还 要在接收到停止位的中间时,RI 由硬件置“l”,RI 为 1,表示串行口接收器正 在向 CPU 申请中断,同样 RI 必须由用户的中断服务程序 清 0。 SCON 其它各位后续章节介绍。 MCS-51 复位后,SCON 也被清零。 4.2.2 中断控制 MCS-51 的 CPU 对中断源的开放或屏蔽,由片内的中断允许寄存器 IE 控制, IE 的字节地址为 A8H,其格式如下表 4.4: 表 4.4 IE 中的中断允许标志位 位 D7 D6 D5 D4 D3 D2 D1 D0 IE EA ES ET1 EX1 ET0 EX0 位地址 AFH ACH ABH AAH A9H A8H EA:MCS-51 的 CPU 的总的开放中断标志位。EA=1,CPU 开放中断,但五个中 断 源的中断请求是否允许,还要由 IE 中的低 5 位所对应的 5 个中断请求允许控 制位 的状态来决定;EA=0,CPU 屏蔽所有的中断申请。 ES:中行口中断允许位。ES=1,允许串行口中断;ES=0 禁止串行口中断。 ET1 :定时器/计数器 T1 的溢出中断允许位。ETl=1 允许 Tl 中断;ETl=0 禁止 ETl 中断。 EXl:外部中断 1 中断允许位。 EXl=1 允许外部中断 1 中断;EXl=0 禁止 外 部中断 1 中断。 ET0:定时器/计数器 0 的溢出中断允许位。ET0=1 允许 T0 中 断;ET0=0 禁 止 T0 中断。 EX0:外部中断 0 中断允许位。EX0=1 允许外部中断 0 中断,EX0=0 禁止外 部中断 0 中断。 MCS-51 复位以后,IE 被清 0,由用户程序 置“1”,或清“0”EI 相应的位, 实现允许或禁止各中断源的中断申请。若使某一 个中断源允计中断必须同时使 CPU 开放中断。更新 IE 的内容,可由位操作指令来实 现,也可用字节操作指令 实现。 4.2.3 中断优先级 MCS-51 有两个中断允许优先级,对于每一个中断请求源可编程为高优先级 中断 或低优先级中断,可实现二级中断嵌套,二级中断嵌套的过程如图 4.2。 CPU执 行 主 程 序 CPU执 行 低 级 中断服务程序 求 请 断 中 级 高级 低 应 响 中断 请求 CPU执 行 高 级 中断服务程序 中 断 请 求 低级 中断 请求 响 应 高 级 返 返 回 主 程 序 回
MCS-51作业讲解

③ 位地址7CH与字节地址7CH如何区别?位地址 7CH具体在片内RAM中什么位置?
答:位地址7CH与字节地址7CH靠所使用的指令 或指令中所使用的寄存器来区别,当使用 位指令或指令中使用“C”寄存器时表明此 时的地址是位地址,其余情况均为字节地 址。 位地址7CH具体在片内RAM2FH单元中D4位。
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
⒍ MCS-51单片机如何实现工作寄存器组 R0-R7的选择?
答:用户可通过改变PSW中的RS1和RS0的 两位的值选择相应的工作寄存器组。
⒎什么是时钟周期、机器周期、指令周期?当 单片机时钟频率为12 MHz时,一个机器周期 是多少?ALE引脚的输出频率是多少?
答:时钟周期:指为单片机提供时钟信号的振 荡源的周期.
(原R0 )交换 MOV @R1,A;使A(原R0中数)→@R1 NOCHA:INC R0;调节地址指针
INC R1 DJNZ R3,LOOP1;内循环结束判别 DJNZ R2,LOOP0;外循环结束判别
RET
MOV R0,#51H MOV R5,#07H MOV R4,#00H MOV A, @R0 INC R0 LP: ADD A, @R0 JNC LP1 INC R4 CLR C LP1:INC R0 DJNZ R5,LP
⒉在以3000H为首地址的外部单元中,存放了14 个ASCII码表示的0~9之间的数,试编写程序 将它们转换为BCD码,并以压缩型BCD码的 形式存放在以2000H为首地址的外部单元中. MOV DPTR,#2000H MOV P2,#20H MOV R0,#00H MOV R3,#07H LOOP: MOVX A,@R0
51作业(指令系统)

指令系统作业一、基础知识1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM中50H、51H、52H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H2.执行下列程序后,A和B寄存器的内容是多少?MOV SP,#3AHMOV A,#20HMOV B,#30HPUSH ACCPUSH BPOP ACCPOP B3.假定外部RAM2000H单元的内容为80H,那么执行下列程序后,A的内容是多少?MOV P2,#20HMOV R0,#00HMOVX A,@R04.假定累加器A的内容为30H。
1000H:MOVC A,@A十PC执行指令后,把程序存储器的哪个单元的内容送累加器A中?5.假定DPTR的内容为8100H,累加器的内容为40H,执行下列指令后,送入的是程序存储器的哪个元的内容?MOVC A,@A十DPTR6.假定(SP)=60H,(ACC)=30H,(B)=70H,(60H)=0FDH,执行下列程序后,SP、60H、61H、62H的内容各是多少?PUSH ACCPUSH B7.假定(SP)=62H,(60H)=0FDH,(61H) =50H,(62H)=7AH,执行下列程序后SP、60H、61H、62H及DPTR的内容各是多少?8.假定(A)=85H,(R0)=20H,(20H) =0AFH,下列执行指令后累加器A的内容及Cy、AC、OV、P的内容是多少?9.假定(A)=85H,(20H)= 0FEH,(Cy)= 1,执行下列指令后累加器A的内容及Cy、AC、OV、P的内容是多少?ADD A,20H10.假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)= 40H,(40H)=00H,执行下列指令后,上述寄存器和存储单元的内容是多少?INC AINC R3INC 30HINC @ R011.假定(A)=56H,(R5)=67H,执行下列指令后A和Cy的内容是多少?A DD A, R5DA A12.假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)= 40H,(40H)=0FFH,执行下列指令后,上述寄存器和存储单元的内容是多少?DEC ADEC R7DEC 30HDEC @R113.分析下列指令序列,写出它所实现的逻辑表达式。
单片机原理及应用与C51程序设计(第三版)第8章作业

单片机原理及应用与C51程序设计(第三版)第8章作业习题1. 什么是MCS-51单片机的最小系统?答:所谓最小系统,是指一个真正可用的单片机的最小配置系统。
对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。
2. 简述半导体存储器的分类?答:半导体存储器按读写工作方式可分为两种:只读存储器ROM(Read Only Memory)和随机读写存储器RAM(Random Access Memory)。
只读存储器ROM 有MROM-掩膜型ROM, PROM-可编程ROM, EPROM-可擦除的PROM, E2PROM -电擦除的PROM, Flash Memory-快擦型存储器; 随机读写存储器RAM有静态RAM-SRAM, 动态RAM-DRAM, 非易失性RAM-NVRAM。
3. 简述存储器扩展的一般方法。
答:存储器芯片与单片机扩展连接具有共同的规律。
即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。
另外,电源线接电源线,地线接地线。
4. 什么是部分译码法?什么是全译码法?它们各有什么特点?用于形成什么信号?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。
全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。
这种译码方法中存储器芯片的地址空间是唯一确定的,但译码电路要相对复杂。
译码形成存储器芯片的片选信号线CE。
5. 采用部分译码为什么会出现地址重叠情况,它对存储器容量有何影响?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。
参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。
也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。
清华大学出版社MCS51单片机第七章作业讲解

第七章作业讲解7-31)8255各口地址(有重叠)PA口0XXX XXXX XXXX XX00 BPB口0XXX XXXX XXXX XX01 BPC口0XXX XXXX XXXX XX10 B控制寄存器0XXX XXXX XXXX XX11 B若选X=1,则各端口地址对应为7FFCH、7FFDH、7FFEH、7FFFH 方式控制字为90H程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR,#7FFFHMOV A,#90HMOVX @DPTR,ALOOP: MOV DPTR,#7FFCHMOVX A,@DPTRCPL AINC DPTRMOVX @DPTR,ASJMP LOOPEND7-58155各口地址(有重叠)P2 P0RAM:控制寄存器: 0XXX XXX0 0000 0000 B (7E00H)………………………………. (7EXXH) 控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH)IO口寄存器:控制寄存器: 0XXX XXX1 XXXX X000 B (7F00)PA口: 0XXX XXX1 XXXX X001 B (7F01)PB口: 0XXX XXX1 XXXX X010 B (7F02)PC口: 0XXX XXX1 XXXX X011 B (7F03)TL寄存器: 0XXX XXX1 XXXX X100 B (7F04)TH寄存器: 0XXX XXX1 XXXX X101 B (7F05)1)命令字应该为0000 1110B=0EH(PA口为方式0输入,PB和PC均为方式0输出)诊断程序编制方法:先对B口写XXH,检查A口读入是否为XXH,。
正确则循环点亮C口发光管。
程序:ORG 0000HLJMP MAINORG 0030HMAIN: MOV DPTR,#7F00H ;命令口MOV A,#0EHMOVX @DPTR,AMOV DPTR,#7F02H ;写B口MOV A.#XXHMOVX @DPTR,AMOV DPTR,#7F01H ;读A口MOVX A,@DPTRCJNE A,#XXH,ERRMOV DPTR,#7F03H ;C口循环点亮LED灯NOMAL: M OV R7,#06HMOV A,#01HLOOP: MOVX @DPTR,A;LCALL DELAYRL ADJNZ R7,LOOPSJMP NOMALERR: MOV DPTR,#7F03HMOV A.#3FHMOVX @DPTR,ASJMP FINISHDELAY: MOV R7,#0FFHDJNZ R7,$RETFINISH : END2)RAM:控制寄存器: 0XXX XXX0 0000 0000 B (7E00H)………………………………. (7EXXH)控制寄存器: 0XXX XXX0 1111 1111 B (7EFFH)诊断程序编制方法:依次对256个字节循环检测(先对某RAM单元写入XXH,再读取该单元是否为XXH。
MCS-51单片机定时器-计数器常见习题解答

MCS-51 单片机定时器/计数器常见习题解答1、根据定时器/计数器0 方式1 逻辑结构图,分析门控位GATE 取不同值时,启动定时器的工作过程。
答:当GATE=0:软件启动定时器,即用指令使TCON 中的TR0 置1 即可启动定时器0。
GATE=1:软件和硬件共同启动定时器,即用指令使TCON 中的TR0 置1 时,只有外部中断INT0 引脚输入高电平时才能启动定时器0。
2、当定时器/计数器的加1 计数器计满溢出时, 溢出标志位TF1 由硬件自动置1,简述对该标志位的两种处理方法。
答:一种是以中断方式工作,即TF1 置1 并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1 清0;另一种以查询方式工作,即通过查询该位是否为1 来判断是否溢出,TF1 置1 后必须用软件使TF1 清0。
3、设MCS-51 单片机fosc=12MHz,要求T0 定时150µs,分别计算采用定时方式0、方式1 和方式2 时的定时初值。
答:方式0 的定时初值:IF6AH方式1 的定时初值:FF6AH方式2 的定时初值:6AH4、设MCS-51 单片机fosc=6MHz,问单片机处于不同的工作方式时,最大定时范围是多少?答:方式0 的最大定时范围:131,072µs方式1 的最大定时范围:16,384µs方式2 的最大定时范围:512µs5、设MCS-51 的单片机晶振为6MHZ,使用T1 对外部事件进行计数,每计数200 次后,T1 转为定时工作方式,定时5ms 后,又转为计数方式,如此反复的工作,试编程实现。
答:#includebit F0=0;void main() {TMOD=0x60; TL1=56;TH1=56;TR1=1;ET1=1;EA =1; While(1);}void serve() interrupt 3 {if (!F0){ TMOD=0x10;TL1=63036%16;TH1=63036/16;F0=~F0;}else{TMOD=0x60;TL1=56;TH1=56;F0=~F0;}}6、用方式0 设计两个不同频率的方波,P1.0 输出频率为200Hz,P1.1 输出频率为100Hz,晶振频率12MHz。
MCS51讲义

第一章MCS-51 硬件结构1.1引言单片计算机是把CPU(中央处理单元)、一定容量的存储器和若干输入、输出接口等部件集成在一块硅片上的微型计算机,简称单片机。
自1976年美国Intel公司推出第一代单片机系列MCS-48以来,单片机技术蓬勃发展,质量和性能逐年提高,应用领域日益扩大。
目前世界上各大半导体公司所开发并生产的单片机系列,各具特色,阵容强大,品种齐全。
已有几十个系列,数百余品种,可满足各类系统设计的需求。
单片机一问世,就以体积小、功能全、应用便捷和价格低等优点赢得了市场的的欢迎和用户青睐。
目前单片机正在过程控制、数据收集、智能仪表、机电一体化、家用电器以及网络技术等领域中发挥着重要的控制作用。
所有单片机也称微控制器。
微控制器1.2MCS-51 系列早期的MCS-51微控制器具有以下基本特点:(1)8位CPU;(2)片内带振荡器,振荡频率f osc范围1.2~12MHz ,可有时钟输出;(3)128字节片内数据存储器(MCS-52及以上有256字节片内数据存储器);(4)程序存储器寻址范围:64K字节;(5)片外数据程序存储器寻址范围:64K字节;(6)21个字节专用特殊功能寄存器(SFR)(52子序列有26字节,SFR是51系列单片机的重要内部结构,其他51子序列单片机都基于SFR扩展更为强大的功能);(7)4个8位并行I/O接口:P0、P1、P2、P3;(8)1个全双工串行I/O接口,可多机通信;(9)2个(52子序列,3个)16位定时器/计数器;(10)中断系统有5个(52子序列,6个)中断源,可编程为两个优先级;(11)111条指令,含乘法和除法指令;(12)具有独特的位寻址、位处理能力(13)片内采用单总线结构;(14)用单一+5V电源;(15)此外,89C51及89C52还分别有4K或8K字节EEPROM作为程序存储器。
而52子序列是51单片机的最早衍生品,其片内数据存储器增至256个字节;在SFR内增加了一个16位定时器/计数器T2,其功能更为强大和实用,并增加了一个与T2相关的中断源;其他性能均与51子序列相同。
MCS-51作业解答PPT教学课件

(6) ADD A, R0 有溢出
(7) ADD A, 30H (8) ADD A, #30H
同(6) (9) ADDC A, 30H
有辅助进位 (10)SUBB A, #30H
2020/12/10
(A)= AAH , (PSW)= 04H
3-8 已知(A)=7AH, (R0)=30H, (30H)=A5H, (PSW)=80H, 写出分别执行下列各条指令后A
和PSW(Cy,AC,F0,RS1,RS0,OV,-,P)的结果
(1) XCH A, R0 (2) XCH A, 30H (3) XCH A, @R0
同(2) (4) XCHD A, @R0 (5) SWAP A
CPL C
;(C)= 1
SETB 01H
;(01H)=1
LOOP1:ORL C, ACC.0 ; (C)= 1
JB ACC.2, LOOP2 ;jump to LOOP2
CLR 00H
LOOP2:MOV P1, A ; (P1)= 66H
位地址00H的内容不变, 位地址01H的内容为 1
2020/12/10
DJNZ R7, LOOP
SJMP $
2020/12/10
b1y0wky
习题4-13 将外部RAM 1000H开始的100个数据 传送到外部RAM 2000H开始的连续单元
MOV DPTR, #1000H ; 数据起始地址
MOV R7, #100
; 数据个数
LOOP:MOVX A , @DPTR
PUSH DPH
by8wky
习题4-11 内部RAM 30H开始有若干无符号数,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.举例说明你所知道的MCS-51有哪些典型产
品,它们有何区别?
答:有8031、8051、8751。 8051内部有4KB ROM; 8751内部有4KB EPROM 8031片内无ROM; 除此之外,三者的内部结构及引脚完全相同。
2.MCS-51单片机内部包含哪些主要逻辑功能
部件?
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
⒋以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
ALE信号输出,在其后沿将P0口输出的低
8位地址锁存于外部地址锁存器中; ② 访问外部memory的过程中,ALE端仍以 不变的频率周期性的输出正脉冲信号,且
fALE=1/6fosc ,所以可用作对外输出的时钟
信号和定时作用;
③当片内有EPROM时,可作为编程脉冲输入
端使用。
PSEN:外部程序memory(EPROM)选通
址都是0000~FFFFH,但CPU对它们的访问 是相互独立的,不会产生二意性,即CPU 给出一个地址,不会同时选中二个存储单 元。因为数据存储器在硬件上有RD或WR信 号选通,软件上有MOVX类指令访问。而程 序存储器在硬件上有PSEN信号选通,软件 上有MOVC类指令访问。
③ 位地址7CH与字节地址7CH如何区别?位地址 7CH具体在片内RAM中什么位置? 答:位地址7CH与字节地址7CH靠所使用的指令
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
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
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单片机的程序存储器和数据存储器共
处同一地址空间为什么不会发生总线冲突? 答:虽然数据存储器的地址与程序存储器的地
⒏在内部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
LP1:DJNZ R2,LP
MOV MAX,A
RET
⒐试编程将内部RAM中41H~43H单元中的 数左移4位,移出部分送40H单元.
MOV 40H,#00H
MOV R4,#04H
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
ANL
W.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
信号线,当CPU读取外部程序时,
PSEN每个机器周期两次有效。
⒍ MCS-51单片机如何实现工作寄存器组
R0-R7的选择?
答:用户可通过改变PSW中的RS1和RS0的 两位的值选择相应的工作寄存器组。
⒎什么是时钟周期、机器周期、指令周期?当
单片机时钟频率为12 MHz时,一个机器周期
是多少?ALE引脚的输出频率是多少? 答:时钟周期:指为单片机提供时钟信号的振
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@)
或指令中所使用的寄存器来区别,当使用
位指令或指令中使用“C”寄存器时表明此
时的地址是位地址,其余情况均为字节地
址。
位地址7CH具体在片内RAM2FH单元中D4位。
第三章习题与思考题
2.设内部RAM中59H单元的内容为50H,写 出当执行下列程序断后寄存器A,R0和内 部RAM中50H、51H单元的内容为何值?
答:有8位CPU、4KB的ROM、可寻址64KB的程 序存储器和数据存储器、128B的片内RAM
和21个SFR、两个16位的定时/计数器、
4个8位的I/O并行口、一个全双工异步 串行口、5个中断源,两个中断优先级、 一个内部时钟发生器。
3. MCS-51单片机内256B的数据存储器可分为几
个区?分别作什么用?
答:分为二大部分四个不同的区: ⑴ 00H~7FH单元组成低128字节的片内RAM区, 其中00H~1FH共32个单元通常作为工作寄存 器区; 20H ~2FH共16个字节,这些单元可 以构成布尔处理机的存储器空间; 30H~7FH 共80个单元为用户RAM区,作堆栈或数据缓冲 区。 ⑵ 80H~FFH单元组成高128字节的专用寄存器 (SFR)区。
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=十位数和个位数地址指针
荡源的周期.
机器周期T机:指CPU完成某些基本操作的 所需要的时间。
指令周期T指:指令周期是指执行一条指令
所需要的时间。
当单片机时钟频率为12 MHz时:
T机= 12T振=fosc/12=1us 。
fALE=fosc/6=2MHz
补充作业:
①开机复位后,CPU使用的是哪组工作寄存器? 它们的地址是什么?CPU如何确定和改变当
5. MCS一51单片机的EA、ALE、PSEN信号各自的 功能是什么? 答:EA的主要作用是选择程序memory。
当EA=0时CPU只能访问片外memory;
当EA=1时,如果PC﹤﹦0FFFH时,则CPU
访问片内ROM ,否则CPU自动转向外部
EPROM。
ALE有三个作用。
① 当CPU访问外部memory初时,产生正脉冲
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
8.要完成以下的数据传送,应如何用
MCS-51指令实现?
(4)片外RAM 1000H单元的内容送片内
RAM 20H单元;
MOV
DPTR, #1000H;
MOVX A, @DPTR;
MOV
20H, A;
⒑已知:(A)=83H,(R0)=17H,
(17H)=34H,
请写出下列程序段执行后A中的内容。
LOOP1:MOV A,@R0 ;取相邻两单元中的数 MOV 30H,A ; 低地址内容→30H