收藏 分享(赏)

单片机原理及应用_张毅刚new.doc

上传人:dzzj200808 文档编号:2277504 上传时间:2018-09-09 格式:DOC 页数:22 大小:213KB
下载 相关 举报
单片机原理及应用_张毅刚new.doc_第1页
第1页 / 共22页
单片机原理及应用_张毅刚new.doc_第2页
第2页 / 共22页
单片机原理及应用_张毅刚new.doc_第3页
第3页 / 共22页
单片机原理及应用_张毅刚new.doc_第4页
第4页 / 共22页
单片机原理及应用_张毅刚new.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、第一章13:单片机与普通计算机的不同之处在于其将( ) ( )和( )三部分集成于一块芯片上。答:CPU、存储器、 I/O 口18:8051 与 8751 的区别是:A、内部数据存储但也数目的不同 B、内部数据存储器的类型不同C、内部程序存储器的类型不同 D、内部的寄存器的数目不同答:C第二章24:在 MCS51 单片机中,如果采用 6MHz 晶振,1 个机器周期为( ) 。答:2us 。析:机器周期为振荡周期的 1/6。26:内部 RAM 中,位地址为 30H 的位,该位所在字节的字节地址为( ) 。答:26H27:若 A 中的内容为 63H,那么,P 标志位的值为( ) 。答:0析:P 为

2、偶校验位,因为 A 中 1 的个数为偶数,所以 P=0。28:判断下列说法是否正确:A、8031 的 CPU 是由 RAM 和 EPROM 所组成。B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。C、在 MCS-51 中,为使准双向的 I/O 口工作在输入方式,必须保证它被事先预置为 1。D、PC 可以看成使程序存储器的地址指针。答:错、错、对、对29:8031 单片机复位后,R4 所对应的存储单元的地址为( ) ,因上电时 PSW=( ) 。这时当前的工作寄存器区是( )组工作寄存器区。答:04H、00H、0211:判断以下有关 PC 和 DPTR 的结

3、论是否正确?A、DPTR 是可以访问的,而 PC 不能访问。B、它们都是 16 位的存储器C、它们都有加 1 的功能。D、DPTR 可以分为两个 8 位的寄存器使用,但 PC 不能。答:对、对、对、对213:使用 8031 芯片时,需将/EA 引脚接( )电平,因为其片内无( )存储器。答:低、程序214:片内 RAM 低 128 个单元划分为哪 3 个主要部分?各部分的主要功能是什么?答:工作寄存器区、位寻址区、数据缓冲区215:判断下列说法是否正确A、 程序计数器 PC 不能为用户编程时直接使用,因为它没有地址。B、 内部 RAM 的位寻址区,只能供位寻址使用,而不能供字节寻址使用。C、

4、8031 共有 21 个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。答:对、错、错216:PC 的值是A、当前正在执行指令的前一条指令的地址 B、当前正在执行指令的地址C、当前正在执行指令的下一条指令的地址 D、控制器中指令寄存器的地址答:C217:通过堆栈操作实现子程序调用,首先就要把( )的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到( ) 。答:PC、PC219:MCS51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的,因为 MCS51 的PC 是 16 位的,因此其寻址的范围为( )KB。答:64220:当 MC

5、S51 单片机运行出错或程序陷入死循环时,如何来摆脱困境?答:软件陷阱、复位221:判断下列说法是否正确?A、 PC 是 1 个不可寻址的特殊功能寄存器。B、 单片机的主频越高,其运算速度越快。C、 在 MCS51 单片机中,1 个机器周期等于 1us。D、 特殊功能寄存器 SP 内装的是栈顶首地址单元的内容。答:错、对、错、错222:如果手中仅有一台示波器,可通过观察哪个引脚的状态,来大致判断 MCS51 单片机正在工作?答:ALE析:因为单片机正常工作时,ALE 脚输出时钟频率为振荡周期的 1/6。第三章31:判断下列指令的正误:1)MOV 28H,R2 2)DEC DPTR 3)INC

6、DPTR 4)CLR R05)CPL R5 6) MOV R0,R1 7)PUSH DPTR 8)MOV F0,C9)MOV F0,ACC.3 10)MOVX A,R1 11)MOV C,30H 12)RLC R0答:错、错、对、错错、错、错、对错、对、对、错32:判断下列说法是否正确。A、 立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。B、 指令周期是执行一条指令的时间。C、 指令中直接给出的操作数称为直接寻址。答:对、对、错33:在基址加变址寻址方式中,以( )作变址寄存器,以( )或( )作基址寄存器。答:累加器 A,DPTR、PC37:指令格式是由( )和( )所组成

7、,也可能仅由( )组成。答:操作码、操作数、操作码38:假定累加器 A 中的内容为 30H,执行指令1000H:MOVC A,A+PC后,把程序存储器( )单元的内容送入累加器 A 中。答:1031H39:在 MCS51 中,PC 和 DPTR 都用于提供地址,但 PC 是为访问( )存储器提供地址,而 DPTR是为访问( )存储器提供地址。答:程序、数据310:在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的( ) 。答:地址311:下列程序段的功能是什么?PUSH APUSH BPOP APOP B答:交换 A、B 的内容312:已知程序执行前有 A=02

8、H,SP=52H, (51H)=FFH,(52H)=FFH。下述程序执行后:POP DPHPOP DPLMOV DPTR,#4000HRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A,A+DPTRPUSH ARETORG 4000HDB 10H,80H,30H,50H,30H,50H请问:A=( ) ,SP= ( ) , ( 51H)=( ) , (52H)=( ) ,PC=( ) 。答:A=50H , SP=50H , (51H)=30H , (52H)=50H , PC=5030H314:假定 A=83H, (R0 )=17H, (17H)=

9、34H,执行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A 的内容为( ) 。答:0CBH315:假定 A=55H,R3=0AAH ,在执行指令 ANL A,R3 后,A=( ) ,R3=( ) 。答:0、0AAH316:如果 DPTR=507BH,SP=32H, (30H)=50H, (31H)=5FH, (32H)=3CH,则执行下列指令后:POP DPHPOP DPLPOP SP则:DPH=( ) ,DPL= ( ) ,SP=( )答:DPH=3CH , DPL=5FH , SP=4FH317:假定,SP=60H,A=30H , B=70H,执行下列指令

10、:PUSH APUSH B后,SP 的内容为( ) ,61H 单元的内容为( ) ,62H 单元的内容为( ) 。答:62H , 30H , 70H第四章46:试编写 1 个程序,将内部 RAM 中 45H 单元的高 4 位清 0,低 4 位置 1。答:MOV A, 45HANL A, #0FHORL A, #0FHMOV 45H, A47:已知程序执行前有 A=02H,SP=42H, (41H)=FFH,(42H)=FFH。下述程序执行后:POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A

11、,A+DPTRPUSH ARETORG 3000HDB 10H,80H,30H,80H,50H,80H请问:A=( ) ,SP= ( ) , ( 51H)=( ) , (52H)=( ) ,PC=( ) 。答:A=80H , SP=40H , (51H)=50H , (52H)=80H , PC=8050H48:计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz) 。MOV R3,#15H ;1 个机器周期DL1:MOV R4,#255 ;1 个机器周期DL2:MOV P1,R3 ;2 个机器周期DJNZ R4,DL2 ;2 个机器周期DJNZ R3,DL1 ;2 个机器周期

12、RET ;2 个机器周期答:15348us析:(22)25512)151215348us49:假定 A=83H, (R0 )=17H, (17H)=34H,执行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A 的内容为( ) 。答:0CBH410:试编写程序,查找在内部 RAM 的 30H50H 单元中是否有 0AAH 这一数据。若有,则将 51H 单元置为“01H” ;若未找到,则将 51H 单元置为“00H” 。答:START: MOV R0,#30HMOV R2,#20HLOOP: MOV A,R0CJNE A,#0AAH,NEXTMOV 51H,#01H

13、LJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET411:试编写程序,查找在内部 RAM 的 20H40H 单元中出现“00H”这一数据的次数。并将查找到的结果存入 41H 单元。答:START: MOV 41H,#0MOV R0,#20HMOV R2,#20HLOOP: MOV A,R0JNZ NEXTINC 41HNEXT: INC R0DJNZ R2,LOOPRET412:若 SP=60H,标号 LABEL 所在的地址为 3456H。LCALL 指令的地址为 2000H,执行指令如下:2000H LCALL LABEL后,堆栈指针

14、 SP 和堆栈内容发生了什么变化?PC 的值等于什么?如果将指令 LCALL 直接换成ACALL 是否可以?如果换成 ACALL 指令,可调用的地址范围是什么?答:1)SP=SP+1=61H (61H)=PC 的低字节=03HSP=SP+1=62H (62H)=PC 的高字节=20H2)PC=3456H3)可以4)2KB2048 Byte第五章54:外部中断 1 所对应的中断入口地址为( )H。答:0013H55:下列说法错误的是:A、 各中断发出的中断请求信号,都会标记在 MCS51 系统的 IE 寄存器中。B、 各中断发出的中断请求信号,都会标记在 MCS51 系统的 TMOD 寄存器中。

15、C、 各中断发出的中断请求信号,都会标记在 MCS51 系统的 IP 寄存器中。D、 各中断发出的中断请求信号,都会标记在 MCS51 系统的 TCON 与 SCON 寄存器中。答:ABC57:中断查询确认后,在下列各种 8031 单片机运行情况中,能立即进行响应的是:A、 当前正在执行高优先级中断处理B、 当前正在执行 RETI 指令C、 当前指令是 DIV 指令,且正处于取指令的机器周期D、 当前指令是 MOV A,R3答:D58:8031 单片机响应中断后,产生长调用指令 LCALL,执行该指令的过程包括:首先把( )的内容压入堆栈,以进行断点保护,然后把长调用指令的 16 位地址送(

16、) ,使程序执行转向( ) 中的中断地址区。答:PC、PC、程序存储器59:编写出外部中断 1 为跳沿触发的中断初始化程序。答:SETB IT1SETB EX1SETB EA510:在 MCS51 中,需要外加电路实现中断撤除的是:A、定时中断 B、脉冲方式的外部中断C、外部串行中断 D、电平方式的外部中断答:D512:下列说法正确的是:A、 同一级别的中断请求按时间的先后顺序响应。B、 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。C、 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。D、 同级中断不能嵌套。答:ACD513:中断服务子程序返回

17、指令 RETI 和普通子程序返回指令 RET 有什么区别?答:RETI 指令在返回的同时清除相应的优先级触发器,以允许下次中断514:某系统有 3 个外部中断源 1、2、3,当某一中断源变为低电平时,便要求 CPU 进行处理,它们的优先处理次序由高到低依次为 3、2、1,中断处理程序的入口地址分别为 1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可) 。答:若仅在/INT0 引脚接 3 个外部中断源,电路如图 510(P115)ORG 0000HLJMP MAINORG 0003HLJMP INT_EX0ORG 0030HMAIN: CLR IT

18、0 ; 采用低电平有效中断SETB EX0 ;允许外部中断 0SETB EA; 插入用户程序WAIT: MOV PCON,#01H ;单片机进入休眠方式等待中断NOPLJMP WAIT;以下为外部中断 0 服务子程序INT_EX0:JNB P1.0,NEXT1 ;判断是不是 1 号中断LJMP INT_IR1 ;跳转到 1 号中断处理程序NEXT1: JNB P1.1,NEXT2 ;判断是不是 2 号中断LJMP INT_IR2 ;跳转到 2 号中断处理程序NEXT2: LJMP INT_IR3 ;跳转到 3 号中断处理程序ORG 1000HINT_IR1:;插入相应中断处理程序RETI ;中

19、断返回ORG 1100HINT_IR2:;插入相应中断处理程序RETI ;中断返回ORG 1200HINT_IR3:;插入相应中断处理程序RETI ;中断返回第六章 MCS-51 的定时 /计数器1 如果采用晶振的频率为 3MHz,定时器/计数器工作方式 0、1、2 下,其最大的定时时间为多少?解答:因为机器周期)(410326sfTOSCcy ,所以定时器/计数器工作方式 0 下,其最大定时时间为 9.8213 mMAX;同样可以求得方式 1 下的最大定时时间为 262.144ms;方式 2 下的最大定时时间为 1024ms。2 定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因

20、素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号 12 分频后提供。定时时间与时钟频率和定时初值有关。3 定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认 1 次负跳变要花 2 个机器周期,即 24 个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的 1/24。4采用定时器/计数器 T0 对外部脉冲进行计数,每计数 100 个脉冲后,T0 转为定时工作方式。定时 1ms后,又转为计数方式,如此循环不止。假定 MCS-51 单片机的晶体振荡器的频率为 6MHz,请使用方式 1实现,要求编写出程序。解答:定时器/计数器 T0 在计数和定时工作完成

21、后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器 T0 的工作方式。编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器 T0 为计数方式 2MOV TL0,#156 ;计数 100 个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动 T0,开始计数SETB ET0 ;允许 T0 中断SETB EA ;CPU 开中断CLR F0 ;设置下一轮为定时方式的标志位WAI

22、T: AJMP WAITIT0P:CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器 T0 为定时方式 0MOV TH0,#0FEH ;定时 1ms 初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式 2 有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式 2 具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。6. 编写程序,要求使用 T0,采用方式 2 定时,在 P1.0 输出周期为 400

23、s,占空比为 10:1 的矩形脉冲。解答:根据题意,从 P1.0 输出的矩形脉冲的高低电平的时间为 10:1,则高低电平的时间分别为 363.63s和 36.37s。如果系统采用 6MHz 晶振的话, sTcy,因此高低电平输出取整,则约为 364s 和36s。编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#02H ;定时器/计数器 T0 为定时方式 2MOV TL0,#4AH ;定时 364s 初值赋值SETB TR0 ;启动 T0,开始计数SETB ET0 ;允许 T0 中断SETB EA ;CPU 开中断SETB P1

24、.0WAIT: AJMP WAITIT0P:CLR EACLR P1.0 ;关中断MOV R0,#9DLY:DJNZ R0,DLY ;延时 26sMOV TL0,#4AH ;定时 364s 初值赋值SETB P1.0SETB EARETI7. 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时?答:方式一,在第一个定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。方式二,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由 P1.0 接 I

25、NT0 产生) ,另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。8. 当定时器 T0 用于方式 3 时,应该如何控制定时器 T1 的启动和关闭?答:由 T1(P3.5)口控制定时器 T1 的启动和关闭。9. 定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为 6MHz,求允许测量的最大脉冲宽度是多少?答:采用方式 1 定时工作方式。最大脉冲宽度为 131.072ms。10. 编写一段程序,功能要求为:当 P1.0 引脚的电平正跳变时,对 P1.1 的输入脉冲进行计数;当 P1.2 引脚的电平负跳变时,停止计数,并将

26、计数值写入 R0、R1(高位存 R1,低位存 R0)。解答:将 P1.1 的输入脉冲接入 INT0,即使用 T0 计数器完成对 P1.1 口的脉冲计数。编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: JNB P1.0,MAINMOV TMOD,#05H ;定时器/计数器 T0 为计数方式 1SETB TR0 ;启动 T0,开始计数SETB ET0 ;允许 T0 中断SETB EA ;CPU 开中断WAIT: JB P1.2,WAITCLR EACLR TR0MOV R1,TH0MOV R0,TL0AJMP $IT0P:INC R2RETI11.

27、 THX 与 TLX(X=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新?答:THX 与 TLX(X=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。但在读 THX、TLX 的值时,应该先读 THX 值,后读 TLX,再读 THX。若两次读得 THX 相同,则可确定读得的内容正确。若前后两次读得的 THX 有变化,再重复上述过程。12. 判断下列的说法是否正确?(1) 特殊功能寄存器 SCON,与定时器/计数器的控制无关。 (对)(2) 特殊功能寄存器 TCON,与定时器/计数器的控制无

28、关。 (错)(3) 特殊功能寄存器 IE,与定时器/计数器的控制无关。 (错)(4) 特殊功能寄存器 TMOD,与定时器/计数器的控制无关。 (错)第七章 MCS-51 的串行口1串行数据传送的主要优点和用途是什么?答:串行数据传送的主要优点是硬件接口简单,接口端口少(2 个) 。主要用于多个单片机系统之间的数据通信。2简述串行口接收和发送数据的过程。答:以方式一为例。发送:数据位由 TXT 端输出,发送 1 帧信息为 10 为,当 CPU 执行 1 条数据写发送缓冲器 SBUF 的指令,就启动发送。发送开始时,内部发送控制信号/SEND 变为有效,将起始位想 TXD输出,此后,每经过 1 个

29、 TX 时钟周期,便产生 1 个移位脉冲,并由 TXD 输出 1 个数据位。8 位数据位全部完毕后,置 1 中断标志位 TI,然后/SEND 信号失效。接收:当检测到起始位的负跳变时,则开始接收。接受时,定时控制信号有 2 种,一种是位检测器采样脉冲,它的频率是 RX 时钟的 16 倍。也就是在 1 位数据期间,有 16 个采样脉冲,以波特率的 16 倍的速率采样 RXD 引脚状态,当采样到 RXD 端从 1 到 0的跳变时就启动检测器,接收的值是 3 次连续采样,取其中 2 次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。3帧格式为

30、1 个起始位,8 个数据位和 1 个停止位的异步串行通信方式是方式( 1 ) 。4 串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有 3 种工作方式:方式 0、方式 1、方式 2、方式 3;有 3 种帧格式,方式 2 和 3 具有相同的帧格式;方式 0 的发送和接收都以 fosc/12 为固定波特率,方式 1 的波特率=2 SMOD/32定时器 T1 的溢出率方式 2 的波特率=2 SMOD/64fosc方式 3 的波特率=2 SMOD/32定时器 T1 的溢出率5 假定串行口串行发送的字符格式为 1 个起始位,8 个数据位,1 个奇校验位,1 个停止位,请画出传

31、送字符“A”的帧格式。起始位 0 1 0 0 0 0 0 0 校验位 停止位6判断下列说法是否正确:(1) 串行口通信的第 9 数据位的功能可由用户定义。 (对)(2) 发送数据的第 9 数据位的内容在 SCON 寄存器的 TB8 位预先准备好的。 (对)(3) 串行通讯发送时,指令把 TB8 位的状态送入发送 SBUF。 (错)(4) 串行通讯接收到的第 9 位数据送 SCON 寄存器的 RB8 中保存。 (对)(5) 串行口方式 1 的波特率是可变的,通过定时器/计数器 T1 的溢出设定。 (对)7通过串行口发送或接收数据时,在程序中应使用:(选(3))(1)MOVC 指令 (2)MOVX

32、 指令 (3)MOV 指令 (4)XCHD 指令8为什么定时器/计数器 T1 用做串行口波特率发生器时,采用方式 2?若已知时钟频率、通讯波特率,如何计算其初值?解答:因为定时器/计数器在方式 2 下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了重装参数的操作。已知时钟频率、通讯波特率,根据公式: )256(13XfOSCSMD波 特 率 ,计算出初值。9串行口工作方式 1 的波特率是:( 3 )(1) 固定的,为 2/OSCf。(2) 固定的,为 6。(3) 可变的,通过定时器/计数器 T1 的溢出率设定。(4) 固定的,为 4/SCf。10在串行通讯中,收发双方对波特率的设定

33、应该是( 相等 )的。11若晶体振荡器为 11.0592MHz,串行口工作于方式 1,波特率为 4800b/s,写出用 T1 作为波特率发生器的方式控制字和计数初值。解答:初值计算:查阅 P148 表 7-2 可得,FAH控制字:ANL TMOD,#0F0HORL TMOD,#20HMOV TH1,#0FAHMOV TL1,#0FAHMOV SCON,#40H12简述利用串行口进行多机通讯的原理。解答:参考 P146 页。13使用 8031 的串行口按工作方式 1 进行串行数据通讯,假定波特率为 2400b/s,以中断方式传送数据,请编写全双工通讯程序。解答:略14使用 8031 的串行口按工

34、作方式 3 进行串行数据通讯,假定波特率为 1200b/s,第 9 数据位作奇偶校验位,以中断方式传送数据,请编写通讯程序。解答:略15某 8031 串行口,传送数据的帧格式为 1 个起始位(0) ,7 个数据位,1 个偶校验位和 1 个停止位(1)组成。当该串行口每分钟传送 1800 个字符时,试计算出波特率。解答:串口每秒钟传送的字符为:1800/60=30 个字符/秒所以波特率为:30 个字符/秒10 位/个字符=300b/s16为什么 MCS-51 串行口的方式 0 帧格式没有起始位(0)和停止位(1)?解答:串行口的方式 0 为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展

35、并行 I/O 口,一般不用于两个 MCS-51 之间的串行通信。该方式以 fosc/12 的固定波特率从低为位到高位发送或接受数据。第八章习题解答1.单片机存储器的主要功能是存储(程序)和(数据) 。2.试编写一个程序(例如将 05H 和 06H 拼为 56H) ,设原始数据放在片外数据区 2001H 单元和 2002H 单元中,按顺序拼装后的单字节数放入 2002H。解:本题主要考察了对外部存储器的读、写操作,同学们只要记住正确使用 MOVX 指令就可以了。编程思路:首先读取 2001H 的值,保存在寄存器 A 中,将寄存器 A 的高四位和低四位互换,再屏蔽掉低四位然后将寄存器 A 的值保存

36、到 30H 中,然后再读取 2002H 的值,保存在寄存器 A 中,屏蔽掉高四位,然后将寄存器 A 的值与 30H 进行或运算,将运算后的结果保存在 2002H 中。ORG 0000HMAIN: MOV DPTR,#2001H ;设置数据指针的初值MOVX A,DPTR ;读取 2001H 的值SWAP AANL A,#0F0H ;屏蔽掉低四位MOV 30H,A ;保存 AINC DPTR ;指针指向下一个MOVX A,DPTR ;读取 2002H 的值ANL A,#0FH ;屏蔽掉高四位ORL A,30H ;进行拼装MOVX DPTR,A ;保存到 2002HEND3.假设外部数据存储器 2

37、000H 单元的内容为 80H,执行下列指令后:MOV P2,#20HMOV R0,#00HMOVX A,R0累加器 A 中的内容为(80H) 。4.编写程序,将外部数据存储器中的 4000H40FFH 单元全部清零。解:本题主要考察了对外部数据块的写操作;编程时只要注意循环次数和 MOVX 指令的使用就可以了。ORG 0000HMAIN: MOV A,#0 ;送预置数给 AMOV R0,#0FFH ;设置循环次数MOV DPTR,#4000H ;设置数据指针的初值LOOP: MOVX DPTR,A ;当前单元清零INC DPTR ;指向下一个单元DJNZ R0,LOOP ;是否结束END5.

38、在 MCS-51 单片机系统中,外接程序存储器和数据存储器共 16 位地址线和 8 位数据线,为何不会发生冲突?解:因为控制信号线的不同:外扩的 RAM 芯片既能读出又能写入,所以通常都有读写控制引脚,记为 OE 和 WE。外扩 RAM 的读、写控制引脚分别与 MCS-51 的 RD 和 WR 引脚相连。外扩的 EPROM 在正常使用中只能读出,不能写入,故 EPROM 芯片没有写入控制引脚,只有读出引脚,记为 OE,该引脚与 MCS-51 单片机的 PSEN 相连。6.区分 MCS-51 单片机片外程序存储器和片外数据存储器的最可靠的方法是:(1)看其位于地址范围的低端还是高段(2)看其离

39、MCS-51 芯片的远近(3)看其芯片的型号是 ROM 还是 RAM(4)看其是与 RD 信号连接还是与 PSEN 信号连接解:本题的答案是 3,4。7.在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的(片选)端提供信号。8.请写出图 8-18 中 4 片程序存储器 27128 各自所占的地址空间。解:图中采用了译码法。4 片地址分别为 0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。9起止范围为 0000H-3FFFH 的存储器的容量是(16)KB 。解:本题属于常识题,在第十一题时将有解答。10.在 MCS-51 中, PC 和

40、 DPTR 都用于提供地址,但 PC 是为了访问(程序)存储器提供地址,而 DPTR是为访问(数据)存储器提供地址。11.11 根地址线可选(2KB)个存储单元,16KB 存储单元需要(14)根地址线。解:通过总结所学知识,我们得到以下几个信息:2KB 的存储器需要 11 根地址线,地址为 0000H-07FFH; 4KB 的存储器需要 12 根地址线,地址为 0000H-0FFFH;8KB 的存储器需要 13 根地址线,地址为 0000H-1FFFH;16KB 的存储器需要 14 根地址线,地址为0000H-3FFFH;32KB 的存储器需要 15 根地址线,地址为 0000H-7FFFH;

41、64KB 的存储器需要 16 根地址线,地址为 0000H-FFFFH(以上存储器的首地址均默认为 0000H) 。12.32KB RAM 存储器的首地址若为 2000H,则末地址为(9FFF )H。解:由上题总结得出,32KB RAM 存储器的大小为 0000H-7FFFH,所以只要在后面加上 2000H 即得到正确答案。13.现有 8031 单片机、74LS373 锁存器、 1 片 2764EPROM 和 2 片 6116RAM,请使用他们组成一个单片机系统,要求:(1)画出硬件电路连线图,并标注主要引脚;(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。解:(1)电路图如

42、下所示:(2)2764 的地址为 C000H-DFFFH;第一个 6116 的地址为 A000H-A7FFH;第二个 6116 的地址为 6000H-67FFH;事实上,由于采用的是线选法,导致了地址不连续,地址空间利用不充分。建议在实际工作中要具体情况具体分析。在两种地址分配中选一种较好的来应用。U4 74LS3733 4 7 8 13 14 17 181112 5 6 9 12 15 16 19D0 D1 D2 D3 D4 D5 D6 D7OCGQ0 Q1 Q2 Q3 Q4 Q5 Q6 Q7U28031313938373635343332212223242526272817162930EA

43、/VPP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PU5HM611687654321232219182021910111314151617A0A1A2A3A4A5A6A7A8A9A10CSOEWED0D1D2D3D4D5D6D7U3276410987654325242123220222711112131516171819A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPPO0O1O2O3O4O5O6O7U6HM61168765432123221918202191

44、0111314151617A0A1A2A3A4A5A6A7A8A9A10CSOEWED0D1D2D3D4D5D6D714.使用 89C51 芯片外扩一片 E2PROM2864,要求 2864 兼作程序存储器和数据存储器,且首地址为8000H。要求:(1)确定 2864 芯片的末地址;(2)画出 2864 片选端的地址译码电路;(3)画出该应用系统的硬件连接图。解:(1)2864 为 8KB 的存储器,如果首地址为 8000H,则其末地址为 9FFFH,理由参考第 12 题;(2)电路图如下所示:P2.6N1U2803131 39383736353433322122232425262728171

45、62930EA/VP P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PP2.6 P2.7U174LS13812364515141312111097ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y7P2.7+5vP2.5P2.5(3)电路图如下所示:U474LS373347813141718111256912151619D0D1D2D3D4D5D6D7OCGQ0Q1Q2Q3Q4Q5Q6Q7N1U174LS13812364515141312111097ABCG1G2AG2BY0Y1Y2Y3

46、Y4Y5Y6Y7U2803131 3938373635343332212223242526272817162930EA/VP P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PP2.6N1P2.7P2.7U3286410987654325242123220222711121315161718191A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEWED0D1D2D3D4D5D6D7READYP2.6+5vP2.5P2.5第九章习题解答1.I/O 接口和 I/O 端口有什么区别

47、?I/O 接口的功能是什么?解:I/O 端口简称 I/O 口,常指 I/O 接口电路中具有端口地址的寄存器或缓冲器。I/O 接口是指单片机与外设间的 I/O 接口芯片。I/O 接口功能:一.实现和不同外设的速度匹配;二 .输出数据缓存;三.输入数据三态缓冲。2.常用的 I/O 接口编址有哪两种方式?它们各有什么特点? MCS-51 的 I/O 端口编址采用的是哪种方式?解:一.独立编址方式:独立编址方式就是 I/O 地址空间和存储器地址空间分开编址。独立编址的优点是I/O 地址空间和存储器地址空间相互独立,界限分明。但是,却需要设置一套专门的读写 I/O 的指令和控制信号。二.统一编址方式:这

48、种编址方式是把 I/O 端口的寄存器与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的 I/O 指令,直接使用访问数据存储器的指令进行 I/O 操作,简单、方便且功能强大。MCS-51 单片机使用的是 I/O 和外部数据存储器 RAM 统一编址的方式。3.I/O 数据传送有哪几种传送方式?分别在哪些场合下使用?解:一.同步传送方式:同步传送又称为有条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。二.查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知外设准备好后,再进行数据传送

49、。异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。为了提高单片机的工作效率,通常采用中断方式。三.中断传送方式:中断传送方式是利用 MCS-51 本身的中断功能和 I/O 接口的中断功能来实现 I./O 数据的传送。单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,采用中断方式可以大大提高单片机的工作效率。4.编写程序,采用 8255A 的 C 口按位置位 /复位控制字,将 PC7 置 0,PC4 置 1, (已知 8255A 各端口的地址为 7FFCH-7FFFH) 。解:本题主要考察对 8255A 的 C 口的操作。其方式控制字的高位为 0 时,低四位对 C 口进行置位。由题目我们得到了方式控制字的地址为 7FFFH。ORG 0000HMAIN: MOV DPTR,#7FFFH ;控制字寄存器地址送 DPTRMOV A,#0EH ;将 PC7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报