《单片机复习试题库完整_(2).doc》由会员分享,可在线阅读,更多相关《单片机复习试题库完整_(2).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 .单片机原理与应用期终考试的复习题库1、单片机与普通计算机的不同之处在于其将(CPU)(储存器 )和(I/O口 )三部分集成于一块芯片上。2、8051与8751的区别是:(C )A、部数据存储但也数目的不同 B、部数据存储器的类型不同 C、部程序存储器的类型不同 D、部的寄存器的数目不同 3、在MCS51单片机中,如果采用6MHz晶振频率,一个机器周期为2u4、部RAM中,位地址为30H的位,该位所在字节的字节地址为26H 5、若A中的容为63H,那么,P标志位的值为0。 分析:P为偶校验位,因为A中1的个数为偶数,所以P=0。 6、判断以下说法是否正确: A、8031的CPU是由RAM和E
2、PROM所组成。错 B、区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址围的低端还是高端。错 C、在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。 对 D、PC可以看成使程序存储器的地址指针。对7、8031单片机复位后,R4所对应的存储单元的地址为(04H ),因上电时PSW=(00F )。这时当前的工作寄存器区是(0 )组工作寄存器区。 8、判断以下有关PC和DPTR的结论正确的是(ABCD) A、DPTR是可以访问的,而PC不能访问。 B、它们都是16位的存储器 C、它们都有加1的功能。 D、DPTR可以分为两个8位的寄存器使用,但PC不能。
3、9、使用8031芯片时,需将/EA引脚接( 低)电平,因为其片无(程序 )存储器。 10、片RAM低128个单元划分为哪3个主要部分?各部分的主要功能是什么? 答:工作寄存器区、位寻址区和通用RAM区(或用户RAM 区)或(数据缓冲区) 11、判断以下说法是否正确 A、 程序计数器PC不能为用户编程时直接使用,因为它没有地址。对 B、 部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。错 C、 8031共有21个特殊功能寄存器,它们的位都是可以用软件设置的,因此,是可以进行位寻址的。错12、PC的值是、当前正在执行指令的下一条指令的地址13、通过堆栈操作实现子程序调用,首先就要把(P
4、C )的容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到(PC )。 14、MCS51单片机程序存储器的寻址围是由程序计数器PC的位数所决定的,因为MCS51的PC是16位的,因此其寻址的围为(64 )KB。 15、当MCS51单片机运行出错或程序陷入死循环时,如何来摆脱困境? 答:软件陷阱、复位 16、判断以下说确的是(B) A、 PC是1个不可寻址的特殊功能寄存器。错B、 单片机的主频越高,其运算速度越快。对 C、 在MCS51单片机中,1个机器周期等于1us。错 D、 特殊功能寄存器SP装的是栈顶首地址单元的容。错17、如果手中仅有一台示波器,可通过观察哪个引脚的状
5、态,来大致判断MCS51单片机正在工作? ALE分析:因为单片机正常工作时,ALE脚输出时钟频率为振荡周期的1/6。 18、判断以下指令的正误: 1)MOV 28H,R2 2)DEC DPTR 3)INC DPTR 4)CLR R0错、错、对、错5)CPL R5 6)MOV R0,R1 7)PUSH DPTR 8)MOV F0,C错、错、错、对 9)MOV F0,ACC.3 10)MOVX A,R1 11)MOV C,30H 12)RLC R0错、对、对、错19、判断以下说法不正确的是(C) A、 立即寻址方式是被操作的数据本身在指令中,而不是它的地址在指令中。对B、 指令周期是执行一条指令的
6、时间。对 C、 指令中直接给出的操作数称为直接寻址。错20、在基址加变址寻址方式中,以(累加器A )作变址寄存器,以( DPTR)或( PC)作基址寄存器。 21、指令格式是由(操作码 )和(操作数 )所组成,也可能仅由(操作码 )组成。 22、假定累加器A中的容为30H,执行指令 1000H:MOVC A,A+PC 后,把程序存储器(1031H )单元的容送入累加器A中。 23、在MCS51中,PC和DPTR都用于提供地址,但PC是为访问(程序 )存储器提供地址,而DPTR是为访问(数据 )存储器提供地址。 24、在寄存器间接寻址方式中,其“间接”表达在(指令中寄存器的容不是操作数,而是操作
7、数的(地址 ))。 25、以下程序段的功能是什么?交换A、B的容PUSH A PUSH B POP A POP B 26、已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后: POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH A RET ORG 4000H DB 10H,80H,30H,50H,30H,50H 请问:A=(50H ),SP=(50H ),(51H)=(30H ),(52H)=(50H )
8、,PC=(5030H )。 27、假定A=83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,R0 CPL A 后,A的容为(0CBH )。 28、假定A=55H,R3=0AAH,在执行指令ANL A,R3后,A=(0 ),R3=( 0AAH)。 29、如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行以下指令后: POP DPH POP DPL POP SP 则:DPH=(3CH ),DPL=(5FH ),SP=(4FH ) 30、假定,SP=60H,A=30H,B=70H
9、,执行以下指令: PUSH A PUSH B 后,SP的容为(62H),61H单元的容为(30H),62H单元的容为(70H)。 31、试编写1个程序,将部RAM中45H单元的高4位清0,低4位置1。 答:MOV A, 45H ANL A, #0FH ORL A, #0FH MOV 45H, A 32、已知程序执行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序执行后: POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH
10、 A RET ORG 3000H DB 10H,80H,30H,80H,50H,80H 请问:A=(80H),SP=(40H),(51H)=(50H),(52H)=(80H),PC=(8050H)。 33、计算下面子程序中指令的偏移量和程序执行的时间(晶振频率为 12MHz)。 MOV R3,#15H ;1个机器周期 DL1:MOV R4,#255 ;1个机器周期 DL2:MOV P1,R3 ;2个机器周期 DJNZ R4,DL2 ;2个机器周期 DJNZ R3,DL1 ;2个机器周期 RET ;2个机器周期 答:15348us 分析:(22)25512)151215348us 34、假定A=
11、83H,(R0)=17H,(17H)=34H,执行以下指令: ANL A,#17H ORL 17H,A XRL A,R0 CPL A 后,A的容为(0CBH )。 35、试编写程序,查找在部RAM的30H50H单元中是否有0AAH这一数据。若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。 答:START: MOV R0,#30H MOV R2,#20H LOOP: MOV A,R0 CJNE A,#0AAH,NEXT MOV 51H,#01H LJMP EXIT NEXT: INC R0 DJNZ R2,LOOPMOV 51H,#00H EXIT: RET 36、试
12、编写程序,查找在部RAM的20H40H单元中出现“00H”这一数据的次数。并将查找到的结果存入41H单元。 答:START: MOV 41H,#0 MOV R0,#20H MOV R2,#20H LOOP: MOV A,R0 JNZ NEXT INC 41H NEXT: INC R0 DJNZ R2,LOOPRET 37、若SP=60H,标号LABEL所在的地址为3456H。LCALL指令的地址为2000H,执行指令如下: 2000H LCALL LABEL 后,堆栈指针SP和堆栈容发生了什么变化?PC的值等于什么?如果将指令LCALL 直接换成ACALL是否可以?如果换成ACALL指令,可调
13、用的地址围是什么? 答:1)SP=SP+1=61H (61H)=PC的低字节=03H SP=SP+1=62H (62H)=PC的高字节=20H 2)PC=3456H 3)可以 4)2KB2048 Byte 38、外部中断1所对应的中断入口地址为(0013H )H。 39、以下说法错误的是:(ABC)A、 各中断发出的中断请求信号,都会标记在MCS51系统的IE寄存器中。 B、 各中断发出的中断请求信号,都会标记在MCS51系统的TMOD寄存器中。 C、 各中断发出的中断请求信号,都会标记在MCS51系统的IP寄存器中。 D、 各中断发出的中断请求信号,都会标记在MCS51系统的TCON与SCO
14、N寄存器中。 40、中断查询确认后,在以下各种8031单片机运行情况中,能立即进行响应的是:( D )A、 当前正在执行高优先级中断处理 B、 当前正在执行RETI指令 C、 当前指令是DIV指令,且正处于取指令的机器周期 D、 当前指令是MOV A,R3 41、8031单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把(PC)的容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(PC),使程序执行转向(程序存储器 ) 中的中断地址区。 42、编写出外部中断1为跳沿触发的中断初始化程序。 答:SETB IT1 SETB EX1 SETB EA43、在MCS51中,
15、需要外加电路实现中断撤除的是:( D )A、定时中断 B、脉冲方式的外部中断 C、外部串行中断 D、电平方式的外部中断 44、以下说确的是:(ACD)A、 同一级别的中断请求按时间的先后顺序响应。 B、 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。 C、 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。 D、 同级中断不能嵌套。 45、中断服务子程序返回指令RETI和普通子程序返回指令RET有什么区别? 答:RETI指令在返回的同时清除相应的优先级触发器,以允许下次中断 46、某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求C
16、PU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序与中断服务程序(转至相应的中断处理程序的入口即可)。 答:若仅在/INT0引脚接3个外部中断源. ORG 0000H LJMP MAIN ORG 0003H LJMP INT_EX0 ORG 0030H MAIN: CLR IT0 ; 采用低电平有效中断 SETB EX0 ;允许外部中断0 SETB EA; 插入用户程序 WAIT: MOV PCON,#01H ;单片机进入休眠方式等待中断 NOP LJMP WAIT ;以下为外部中断0服务子程序 INT_EX0
17、: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 1000H INT_IR1: ;插入相应中断处理程序 RETI ;中断返回 ORG 1100H INT_IR2: ;插入相应中断处理程序 RETI ;中断返回 ORG 1200H INT_IR3: ;插入相应中断处理程序 RETI ;中断返回 47、 如果采用晶振的频率为3MHz,定时器/计数器工作方
18、式0、1、2下,其最大的定时时间为多少? 解答:因为机器周期 , 所以定时器/计数器工作方式0下,其最大定时时间为 ; 同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。 48、 定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关? 答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。 49、 定时/计数器用作定时器时,对外界计数频率有何限制? 答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。 50、采
19、用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。 解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。编写程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2 MOV T
20、L0,#156 ;计数100个脉冲的初值赋值 MOV TH0,#156 SETB GATE ;打开计数门 SETB TR0 ;启动T0,开始计数 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 CLR F0 ;设置下一轮为定时方式的标志位 WAIT: AJMP WAIT IT0P: CLR EA ;关中断 F0,COUNT ;F0=1,转计数方式设置 MOV TMOD,#00H ;定时器/计数器T0为定时方式0 MOV TH0,#0FEH ;定时1ms初值赋值 MOV TL0,#0CH SETB EA RETI COUNT: MOV TMOD,#06H MOV TL0,#15
21、6 SETB EA RETI 51、 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合? 答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。 52、 编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400s,占空比为10:1的矩形脉冲。 解答:根据题意,从P1.0输出的矩形脉冲的高低电平的时间为10:1,则高低电平的时间分别为363.63s和36.37s。如果系统采用6MHz晶振的话, ,因此高低电平输出取整,则约为364s和36s。编写程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN
22、: MOV TMOD,#02H ;定时器/计数器T0为定时方式2 MOV TL0,#4AH ;定时364s初值赋值 SETB TR0 ;启动T0,开始计数 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 SETB P1.0 WAIT: AJMP WAIT IT0P: CLR EA CLR P1.0 ;关中断 MOV R0,#9 DLY: DJNZ R0,DLY ;延时26s MOV TL0,#4AH ;定时364s初值赋值 SETB P1.0 SETB EA RETI 53、 一个定时器的定时时间有限,如何实现两个定时器的串行定时,来实现较长时间的定时? 答:方式一,在第一个
23、定时器的中断程序里关闭本定时器的中断程序,设置和打开另一个定时器;在另一个定时器的中断程序中关闭本定时中断,设置和打开另一个定时器。这种方式的定时时间为两个定时器定时时间的和。 方式二,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由P1.0接INT0产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。 54、当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭? 答:由T1(P3.5)口控制定时器T1的启动和关闭。 55、定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6MHz,求允许测量的最
24、大脉冲宽度是多少? 答:采用方式1定时工作方式。最大脉冲宽度为131.072ms。 56、编写一段程序,功能要求为:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。 解答:将P1.1的输入脉冲接入INT0,即使用T0计数器完成对P1.1口的脉冲计数。编写程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P MAIN: JNB P1.0,MAINMOV TMOD,#05H ;定时器/计数器T0为计数方式1 SETB TR0 ;启动T0,开始计数 SETB
25、ET0 ;允许T0中断 SETB EA ;CPU开中断 WAIT: P1.2,WAIT CLR EA CLR TR0 MOV R1,TH0 MOV R0,TL0 AJMP $ IT0P: INC R2 RETI 57、 THX与TLX(X=0,1)是普通寄存器还是计数器?其容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新? 答:THX与TLX(X=0,1)是由特殊功能寄存器构成的计数器,其容可以随时用指令更改,更改后的新值是立即刷新。但在读THX、TLX的值时,应该先读THX值,后读TLX,再读THX。若两次读得THX相同,则可确定读得的容正确。若前后两次读得的TH
26、X有变化,再重复上述过程。 58、 判断以下的说法是否正确? (1) 特殊功能寄存器SCON,与定时器/计数器的控制无关。(对) (2) 特殊功能寄存器TCON,与定时器/计数器的控制无关。(错)(3) 特殊功能寄存器IE,与定时器/计数器的控制无关。 (错) (4) 特殊功能寄存器TMOD,与定时器/计数器的控制无关。(错)59、串行数据传送的主要优点和用途是什么? 答:优点:串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。用途:主要用于多个单片机系统之间的数据通信。 60、简述串行口接收和发送数据的过程。 答:以方式一为例。发送:数据位由TXT端输出,发送1帧信息为10为,当CP
27、U执行1条数据写发送缓冲器SBUF的指令,就启动发送。发送开始时,部发送控制信号/SEND变为有效,将起始位想TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。8位数据位全部完毕后,置1中断标志位TI,然后/SEND信号失效。接收:当检测到起始位的负跳变时,则开始接收。承受时,定时控制信号有2种,一种是位检测器采样脉冲,它的频率是RX时钟的16倍。也就是在1位数据期间,有16个采样脉冲,以波特率的16倍的速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较
28、好地消除干扰引起的影响,以保证可靠无误的开始承受数据。 61、 帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式( 1 )。 62、 串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定? 答:串行口有3种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率, 方式1的波特率=2SMOD/32定时器T1的溢出率 方式2的波特率=2SMOD/64fosc 方式3的波特率=2SMOD/32定时器T1的溢出率 63、 假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停
29、止位,请画出传送字符“A”的帧格式。答: 起始位0 1 0 0 0 0 0 0 校验位 停止位 64、判断以下说法是否正确: (1) 串行口通信的第9数据位的功能可由用户定义。(对) (2) 发送数据的第9数据位的容在SCON寄存器的TB8位预先准备好的。(对) (3) 串行通讯发送时,指令把TB8位的状态送入发送SBUF。(错) (4) 串行通讯接收到的第9位数据送SCON寄存器的RB8中保存。(对) (5) 串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出设定。(对) 65、通过串行口发送或接收数据时,在程序中应使用:(选(3)) (1)MOVC指令 (2)MOVX指令 (3)M
30、OV指令 (4)XCHD指令 66、为什么定时器/计数器T1用做串行口波特率发生器时,采用方式2?若已知时钟频率、通讯波特率,如何计算其初值? 解答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了重装参数的操作。 已知时钟频率、通讯波特率,根据公式: ,计算出初值。 67、串行口工作方式1的波特率是:( 3 ) (1) 固定的,为 。 (2) 固定的,为 。 (3) 可变的,通过定时器/计数器T1的溢出率设定。 (4) 固定的,为 。 68、在串行通讯中,收发双方对波特率的设定应该是( 相等 )的。 69、若晶体振荡器为11.0592MHz,串行口工作
31、于方式1,波特率为4800b/s,写出用T1作为波特率发生器的方式控制字和计数初值。 解答:初值计算:查阅P148表7-2可得,FAH 控制字:ANL TMOD,#0F0H ORL TMOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV SCON,#40H 70、简述利用串行口进行多机通讯的原理。 解答:参考P146页。 71、使用8031的串行口按工作方式1进行串行数据通讯,假定波特率为2400b/s,以中断方式传送数据,请编写全双工通讯程序。 解答:自己解答72、使用8031的串行口按工作方式3进行串行数据通讯,假定波特率为1200b/s,第9数据位作奇偶校验位
32、,以中断方式传送数据,请编写通讯程序。 解答:自己解答 73、某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。 解答:串口每秒钟传送的字符为:1800/60=30个字符/秒 所以波特率为:30个字符/秒10位/个字符=300b/s 74、为什么MCS-51串行口的方式0帧格式没有起始位(0)和停止位(1)? 解答:串行口的方式0为同步移位寄存器输入输出方式,常用于外接移位寄存器,以扩展并行I/O口,一般不用于两个MCS-51之间的串行通信。该方式以fosc/12的固定波特率从低为位到高位
33、发送或承受数据。 75、单片机存储器的主要功能是存储(程序)和(数据)。 76、试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H。 解:此题主要考察了对外部存储器的读、写操作,同学们只要记住正确使用MOVX指令就可以了。编程思路:首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中。 ORG 0000H
34、MAIN: MOV DPTR,#2001H ;设置数据指针的初值 MOVX A,DPTR ;读取2001H的值 SWAP A ANL A,#0F0H ;屏蔽掉低四位 MOV 30H,A ;保存A INC DPTR ;指针指向下一个 MOVX A,DPTR ;读取2002H的值 ANL A,#0FH ;屏蔽掉高四位 ORL A,30H ;进行拼装 MOVX DPTR,A ;保存到2002H END 77、假设外部数据存储器2000H单元的容为80H,执行以下指令后: MOV P2,#20H MOV R0,#00H MOVX A,R0 累加器A中的容为(80H)。 78、编写程序,将外部数据存储器
35、中的4000H40FFH单元全部清零。 解:此题主要考察了对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了。 ORG 0000H MAIN: MOV A,#0 ;送预置数给A MOV R0,#0FFH ;设置循环次数 MOV DPTR,#4000H ;设置数据指针的初值 LOOP: MOVX DPTR,A ;当前单元清零 INC DPTR ;指向下一个单元 DJNZ R0,LOOP ;是否完毕 END 79、在MCS-51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突? 解:因为控制信号线的不同: 外扩的RAM芯片既能读出又能写入,
36、所以通常都有读写控制引脚,记为OE和WE。外扩RAM的读、写控制引脚分别与MCS-51的RD和WR引脚相连。 外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51单片机的PSEN相连。 80、区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:(3,4 )(1)看其位于地址围的低端还是高段 (2)看其离MCS-51芯片的远近 (3)看其芯片的型号是ROM还是RAM (4)看其是与RD信号连接还是与PSEN信号连接 81、在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的(片选)端提供信号。
37、82、请写出图8-18中4片程序存储器27128各自所占的地址空间。 解:图中采用了译码法。4片地址分别为0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。 83、起止围为0000H-3FFFH的存储器的容量是(16)KB。 解:此题属于常识题,在第十一题时将有解答。 84、在MCS-51中,PC和DPTR都用于提供地址,但PC是为了访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。 85、11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。 解:通过总结所学知识,我们得到以下几个信息:2KB的存储器需要
38、11根地址线,地址为0000H-07FFH;4KB的存储器需要12根地址线,地址为0000H-0FFFH; 8KB的存储器需要13根地址线,地址为0000H-1FFFH;16KB的存储器需要14根地址线,地址为0000H-3FFFH;32KB的存储器需要15根地址线,地址为0000H-7FFFH;64KB的存储器需要16根地址线,地址为0000H-FFFFH(以上存储器的首地址均默认为0000H)。 86、32KB RAM存储器的首地址若为2000H,则末地址为(9FFF)H。 解:由上题总结得出,32KB RAM存储器的大小为0000H-7FFFH,所以只要在后面加上2000H即得到正确答案
39、。 87、I/O接口和I/O端口有什么区别?I/O接口的功能是什么? 解:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。I/O接口是指单片机与外设间的I/O接口芯片。 I/O接口功能:一.实现和不同外设的速度匹配;二.输出数据缓存;三.输入数据三态缓冲。 88、常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式? 解:一.独立编址方式:独立编址方式就是I/O地址空间和存储器地址空间分开编址。独立编址的优点是I/O地址空间和存储器地址空间相互独立,界限分明。但是,却需要设置一套专门的读写I/O的指令和控制信号。二.统一编址
40、方式:这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。 89、I/O数据传送有哪几种传送方式?分别在哪些场合下使用? 解:一.同步传送方式:同步传送又称为有条件传送。当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。二.查询传送方式:查询传送方式又称为有条件传送,也称异步传送。单片机通过查询得知外设准备好后,再进行数据传送。异步传送
41、的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。为了提高单片机的工作效率,通常采用中断方式。三.中断传送方式:中断传送方式是利用MCS-51本身的中断功能和I/O接口的中断功能来实现I./O数据的传送。单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。中断服务完成后又返回主程序继续执行。因此,采用中断方式可以大大提高单片机的工作效率。 90、编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,(已知8255A各端口的地址为7FFCH-7FFFH)。 解:此题主要考察对8255A的C口的操作。其
42、方式控制字的高位为0时,低四位对C口进行置位。由题目我们得到了方式控制字的地址为7FFFH。 ORG 0000H MAIN: MOV DPTR,#7FFFH ;控制字寄存器地址送DPTR MOV A,#0EH ;将PC7置0 MOVX DPTR,A MOV A,#09H ;将PC4置1 MOVX DPTR,A END 91、8255A的方式控制字和C口按位置位/复位控制字都可以写入8255A的同一控制寄存器,8255A是如何区分这两个控制字的? 解:8255A通过它们的最高位来进行判断,最高位为1时,这时8255A认为这是方式控制字,否则认为是C口按位置位/复位控制字 92、8155H的端口都
43、有哪些?哪些引脚决定端口的地址?引脚TIMERIN和TIMEROUT的作用是什么? 解: 8155H的端口有以下几种:命令/状态寄存器、A口、B口、C口、计数器和RAM单元。引脚IO/M、A2、A1、A0决定端口地址。TIMERIN是计数器输入线,输入的脉冲上跳沿用于对8155H片的14位计数器减一。TIMEROUT为计数器输入线。当14位计数器减为0时就可以在该引线上输出脉冲或方波,输出的信号的形状与所选的计数器工作方式有关。 93、判断以下说法是否正确,为什么? (1)由于8155H不具有地址锁存功能,因此在与8031的接口电路中必须加地址锁存器。 (2)在8155H芯片中,决定端口和RA
44、M单元编址的信号线是AD7-AD0和WR。 (3)8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。 (4)8255A的B口可以设置成方式2。 解:(1)8155H具有地址锁存功能; (2)引脚IO/M、A2、A1、A0决定端口地址和RAM单元编址; (3)8255A不具有三态缓冲器; (4)8255A的B口只可以设置成方式0和方式1。 94、现有一片8031,扩展了一片8255A,若把8255A的B口用做输入,B口的每一位接一个开关,A口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出B口某一位接高电平时,A口相应位发光二极管被点亮的程序。 解:由于电路图比较简单,在这
45、里就画了,大家可以参考图9-10,A口每一位接二极管的正极,二极管的负极接低。B口每一位接一开关,开关直接接地。这样我们只需要将读到的B口的值送给A口就可以满足题目要求了。 ORG 0000H MIAN: MOV A,#10000010B ;A口出,B口入 MOV DPTR,#0FF7FH ;控制地址送DPTR MOVX DPTR,A ;送方式控制字 MOV DPTR,#0FF7DH ;B口地址送DPTR MOVX A,DPTR ;读开关信息 MOV DPTR,#0FF7CH ;A口地址送DPTR MOVX DPTR,A ;将信息反溃到二极管 END 95、假设8155H的TIMERIN引脚输
46、入的频率为4MHz?问8155H的最大定时时间是多少? 解:8155H记数器的初值围是:3FFFH-2H。当频率为4MHz,初值为3FFFH时,最大定时时间为:16383/4E+6=0.00409575S 96、MCS-51的并行接口的扩展有多种方式,在什么情况下,采用扩展8155H比较适宜?什么情况下,采用扩展8255A比较适合?解:8255A具有3个8位的并行I/O口,3种工作方式,可通过编程改变其功能,因而使用灵活方便,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8155H芯片包含有256B的RAM存储器(静态),2个可编程的八位并行口PA和PB,1个可编程的6位并行口PC,以与1个14位减法定时器/计数器。所以它经常用于单片机的外围接口芯片。 97、