单片机综合复习第一部分答案(仅供参考)

更新时间:2024-01-30 19:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 第一部分

1.奇偶校验原理是什么?

答:奇校验规定8位有效数据连同1位附加位中,二进制数“1”的个数为奇数;偶校验规定8位有效数据连同1位附加位中,二进制数“1”的个数为偶数。

2.比特率、波特率是什么?

答:比特率是指每秒传送二进制数的信号数(即二进制数的位数),单位是bps(或b/s);波特率是指每秒传送信号的数量,单位是波特(B)。

3. I2C总线字节传送与应答时数据传送格式是什么?

答:主机发出起始信号后,先发出从机的8位地址信息,该信息前7位是从机芯片的内部地址,第8位是读/写信息

——

(R/W),“1”为读,“0”为写;然后进行和主机之间的读写数据传送;最后又主机发出停止信号,结束数据传送。

4.串行口方式0收发过程?TB8、RB8有什么作用?奇偶校验如何定义?

答:串行口在工作方式0下为8位同步移步寄存器输入/输出方式,波特率固定为fosc/12。方式0下的串行口本身相当于“并入串出”(发送状态)或“串入并出”(接收状态)的移位寄存器。此时,串行数据由RXD(P3.0)逐位移出/移入(低位在先,高位在后);TXD(P3.1)输出移位时钟,频率为系统时钟频率fosc的1/12。发送/接收数据时,每发送/接收8位数据TI/RI自动置1;需要用软件清零TI/RI。

TB8:在方式2、3中,是要发送的第9位数据;在双机通信中,用于对接收到的数据进行奇偶校验;在多机通信中,用作判断地址帧/数据帧,TB8=0表示发送的是数据,TB8=1表示发送的是地址。

RB8:在方式2、3中,用于存放收到的第9位数据;在双机通信中,作为奇偶校验;在多机通信中,用作区别地址帧/数据帧的标志。在方式1时,SM2=0,RB8接收的是停止位。在方式0时,RB8不用。

约定发送采用奇校验时,若发送的8位有效数据中“1”的个数为偶数,则要人为在附加位中添加一个“1”一起发送;若发送的8位有效数据中“1”的个数为奇数,则要人为在附加位中添加一个“0”一起发送。

约定接收采用奇校验时,若接收到的9位数据中“1”的个数为奇数,则表明接收正确,取出8位有效数据即可;若接收到的9位数据中“1”的个数为偶数,则表明接收出错,应当进行出错处理。

采用偶校验时,处理方法与奇校验类似。

5.试述51单片机串行口方式1的接收过程(含RI、SM2不同情况下数据的装载情况)。

答:(详细答案在书本153页)接收过程是在TI=0且REN=1条件下启动,此时接收器开始工作。当接收电路采样到输入信号从1到0的负跳变时,确认是开始位0,就启动接收控制器接收数据。如果接收到的起始位的值不是0,则起始位无效,复位接收电路。如果起始位为0,则开始接收本帧其他各位数据。控制器发出内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全部移入后,在开始操作。操作时,根据状态的不同,可以有以下不同操作:

1若RI=0、SM2=0,则接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止位装入○

RB8,并置RI=1,向CPU发出中断请求信号。

2若RI=0、SM2=1,则只有在停止位为1时才发生上述操作; ○

3若RI=0、SM2=1,且停止位为0,则所接收的数据不装入SBUF,即数据丢失。 ○

4若RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据丢失。 ○

2

6.51单片机的寻址方式有哪些?各寻址空间有哪些?

答: 序号 1 寻址方式 寄存器寻址 R0~R7 A、B、C(CY)、AB(双字节)、DPTR(双字节)、PC(双字节) 内部RAM低128字节(00H~7FH) 2 直接寻址 特殊功能寄存器 内部RAM位寻址区的128个位 特殊功能寄存器中可寻址的位 3 4 5 6 7 备注:

(1)特殊功能寄存器只能用直接寻址方式操作。 (2)各寻址方式例子: 1立即寻址:MOV A,#30H ○

2直接寻址:MOV A,30H ○

3寄存器寻址:MOV A,R0 ○

4寄存器间接寻址:MOV A,@R0 ○

5变址寻址:MOVC A,@A+DPTR; MOVC A,@A+PC; JMP @A+DPTR; ○

6相对寻址:JZ rel; JC rel; ○

7位寻址:MOV C,00H ○

7.若(SP)=30H,标号“XADD”表示的实际地址为1111H,PC的当前值为2222H。执行指令 LCALL XADD 后返回地址为多少?(SP)=?

答:返回地址为:2225H;(SP)=30H;

说明:调用子程序时,断点将会自动存入堆栈中,而断点就是单片机调用完子程序后下一条将执行的指令的入口地址,而指令LCALL XADD为三个字节的指令,所以返回的地址为:2222H+3=2225H;执行指令LCALL XADD后,堆栈指针将指回原来调用子程序前的位置。

8. 以80C31为主机,用1片6264扩展片外RAM,1片27128扩展片外ROM,试画出接口电路,说明CPU控制信号作用、译码方式和芯片地址范围。

答:(题目很变态,不会做。个人认为书本第50页中的“应用实例”(译码方式为全译码方式)比较重要,因为作业题2.8与其类似)

9.设计81C55实现的的键盘及显示接口,若在最左一位显示3,如何设计程序?设计有无健按下的识别程序? 答:

10.基本型单片机有SFR是什么?如何分布?哪些可以位寻址?

寄存器间接寻址 立即寻址 变址寻址 相对寻址 位寻址 内部RAM(采用@R0,@R1或SP) 外部RAM(采用@R0,@R1或@DPTR) ROM程序存储器(常数) 程序存储器(@A+PC,@A+DPTR) (只限于访问ROM) ROM(PC当前值的-128~127字节) 可寻址位(内部RAM、20H~2FH单元位和部分SFR位) 3

答:SFR区是专用寄存器区(也称特殊功能寄存器区),位于内部RAM高128单元。程序计数器PC虽然也是专用寄存器,但它在物理上是独立的,没有地址,故不可寻址,它不属于内部RAM的SFR区。其他可寻址的(共21个)寄存器离散分布于80H~0FFH。

寄存器符号 ACC B PSW SP DPL DPH IE IP P0 P1 P2 地址 E0H F0H D0H 81H 82H 83H A8H B8H 80H 90H A0H 寄存器名称 累加器 B寄存器 程序状态字 堆栈指示器 数据指针低8位 数据指针高8位 中断允许控制寄存器 中断优先控制寄存器 I/O口0 I/O口1 I/O口2 寄存器符号 P3 PCON SCON SBUF TCON TMOD TL0 TL1 TH0 TH1 地址 B0H 87H 98H 99H 88H 89H 8AH 8BH 8CH 8DH 寄存器名称 I/O口3 电源控制及波特率选择寄存器 串行口控制寄存器 串行口数据缓冲区 定时器控制寄存器 定时器方式控制寄存器 定时器0低8位 定时器1低8位 定时器0高8位 定时器1高8位 备注:数据指针即是DPTR。

上表中,寄存器地址能被8整除的都是可以位寻址的(即十六进制地址的最后一位数是“8”或“0”的) 即:ACC,B,PSW,IE,IP,P0,P1,P2,P3,SCON,TCON;

11. 8031、8032、8051单片机的供应状态如何?系统复位时,各寄存器状态是怎样的?

答:8031、8032、8051单片机都是总线型单片机,它们的资源配置如下

芯片型号 80C31 80C32 80C51 类型 基本型 增强型 基本型 ROM 无 无 4KB掩模 RAM 128B 256B 128B 并口 4个 4个 4个 串口 1个 1个 1个 定时/计数器 2个 3个 2个 中断源 5个 6个 5个 单片机复位后,部分寄存器复位状态如下:

寄存器 PC B SP P0~P3 IE TCON TH0、TH1 SBUF 备注:比较需要注意的是SP和P0~P3的值。

12. 51单片机中断标志如何复位?

答:(中断标志复位应该是指中断撤销)定时/计数器中断标志、下降沿触发的外部中断标志是在中断响应后硬件自动清除的;串口中断标志是需要软件清除的;低电平触发的外部中断标志由于与外部信号的电平相反,不能由单片机硬件自动清零,也不能软件清零,只能通过使外部信号变为1来撤销申请。

13.画出内部定时器/计数器的内部结构?分析其工作原理?控制信号如何确定?各方式有何特点?工作方式2、3

值 0000H 00H 07H 0FFH 0××00000 00H 00H 不定 寄存器 ACC PSW DPTR IP TMOD TL0、TL1 SCON PCON 值 00H 00H 0000H ×××00000 00H 00H 00H 0×××0000 4

时,将 T0 、T1有何特点?

答:(定时/计数器的内部结构图在书本135页,个人认为了解即可。最重要的是理解第138、139、141页中的三个结构图。工作原理的话···看书吧,不懂的问高手:大神罗彬、大侠梓炜、大虾晓滨)定时/计数器的工作方式选择如下表:

M1 M0 00 01 10 11 工作方式 方式0,13位定时/计数器 方式1,16位定时/计数器 方式2,自动重装的8位定时/计数器 方式3 定时/计数器0,分成两个8位计数器 定时/计数器1,停止计数 备注:只有定时/计数器0可以工作在方式3;

需要重点掌握的控制信号有:

(1)IE(中断允许控制寄存器,128页)中的各个中断控制位;

(2)TCON(定时器控制寄存器,137页)中的各个控制位,其中IE1、IE0比较次要; (3)SCON(串行口控制寄存器,151页)中的各个控制位;

(4)IP(中断优先控制寄存器,129页)各个控制位,参考126页中的结构图更有利于理解; (5)TMOD(定时器工作方式寄存器,136页),重点,需要记住各个位作用以及位置,因为TMOD 的地址为89H,不能按位寻址,只能对整个寄存器编程。

(6)定时/计数器各种工作方式初值的计数,理解应用定时/计数器的程序的编写; (7)各个中断源的自然优先级及其入口地址(129页); (8)记住并掌握串行口4种工作方式波特率的计数公式

(9)PCON(电源控制寄存器,152页)中设置波特率是否加倍的SMOD;

14.51单片机内部定时计数器在作计数器使用时,读数有何要求?

答:计数时钟下降沿有效。由于采用一个下降沿需要两个机器周期,因此外部计数时钟的最高频率是fosc/24(其中fosc是系统时钟频率)。

15. 89C51中可以用作间接寻址的寄存器有哪些?

答:R0、R1、SP、DPTR;

16. 51单片机堆栈区只可设置在哪里?组织原则是什么?SP始终指向哪里?SP的地址是多少?

答:(62页)堆栈通常设置在内部RAM的30H~7FH之间(当系统复位后,SP的内容为07H)。堆栈的原则是“后进先出”。SP的内容就是堆栈“栈顶”的存储单元地址,即始终指向栈顶单元。

17. 当RS1RS0=10时,当前工作寄存器组是第几组?对应R0的地址为多少?如何改变寄存器组?

答:(59页)第2组,对应R0的地址为10H,寄存器组的选择由程序状态寄存器PSW中RS1、RS0位的状态组合来确定。

18.利用51单片机内部定时/计数器T0方式2实现外部脉冲宽度的测量,TMOD该如何设置,编写给T0 TMOD赋值又不影响T1TMOD原来设置的指令序列。

答:分析:(136页)用于计算外部脉冲宽度,即定时/计数器的计数启动要受到外部的影响,工作在定时器模式,工作方式为方式2,所以GATE=1,C/T=0,M1M0=10。

T0的TMOD赋值程序段如下:

5

ANL TMOD,#F0H ;按位“与”运算,将TMOD中关于T0的设置清零 ORL TMOD,00001010B ;按位“或”运算,保留T1的设置,更改T0的设置

19.51单片机的中断申请标志是如何复位的? 外部中断如何定义?如何撤销?

答:答案在12题。

20. 已知10010110是一个补码,真值为多少?,若为BCD码,则其真值为多少?-89的补码是多少?

答:10010110的真值为-21。若为BCD码,其真值为96。-89的补码为10100111。

21. 键盘扫描有哪些方法?对于非编码键盘,如何去抖?行列扫描的原理是怎样的?

答:(独立键盘的扫描方法要看电路连接而定)矩阵式键盘扫描控制方式有: (1)程序扫描方式;(2)定时控制扫描方式;(3)中断控制方式; 按键消抖有两种方式:一种是硬件消抖,另一种是靠软件延时来消抖;

硬件消抖就是在电路中加入硬件电路来对按键出现的抖动信号进行处理,常见的方式有加入触发器电路,或者采用滤波电路。

软件消抖的方式,就是当单片机检测到有按键按下后,则调用一个延时10ms子程序,延时后再来确认该键是否确实按下,从而消除抖动带来的不良影响。

(行列扫描程序在230页,程序的第一条指令时错误的,应改为:MOV P1,#0F0H) 行列扫描的原理是:

1、读取列线的编号。先置行线低电平,置列线高电平。然后读取行列线的值(即程序中的P1。如果有按键按下的话,其中一条列线将会被拉低为低电平,即为“0”),将数值取反,再将行线的值屏蔽掉后,检测列线的值是否不为零,(因为如果有按键按下的话,数值取反后,列线的值是不为零的),若不为零,则说明有按键按下,即需继续获取行线的编码。若为零,则跳出键盘扫描程序。

2、读取行线的编号。与获取列线的编号类似。

3、延时消抖后,再读取一遍列线、行线的编号,确定按键是否确实按下。

4、确定有按键按下后,利用列线、行线的编号计数出被按下按键的编号,并执行相应程序指令。

22.中断优先级是什么?中断响应时间是什么?,什么情况下中断受阻?

答:中断优先级是不同中断源对应的不同优先权等级。从中断申请到执行第一条中断服务程序的最短时间是3个机器周期(优先权扫描1个机器周期,LCALL指令2个机器周期),在没有执行同级或更高级别的中断服务子程序的情况下,中断响应最长的等待时间不超过8个机器周期。(131页)

23.设计51单片机与81C55实现的的键盘及显示接口,说明8155RAM及I/O口地址为多少?(设地址译码无关位为1),试完成8155的初始化,请设计循环动态显示程序。

答:

24.设计将内部RAM起始地址为50H的数据串传送到外部RAM中起始地址为8000H的存储区域,直到发现?$ ?字符停

6

止传送。

答:(字符‘$’的值为24H)

ORG 0000H LJMP MAIN ORG 0100H MOV R0,#50H MOV DPTR,#8000H MOV A,@R0 MOV @DPTR,A INC R0 INC DPTR

CJNE @R0,#24H,TMD SJMP $ END

MAIN: TMD:

25.中断控制器IE、IP如何设置?地址为多少?

答:如何设置(128~129页),地址:IE的地址为A8H,IP的地址为B8H。

26. 单片机系统扩展时,地址与数据总线是如何分离的?依靠什么信号来实现?设计扩展2片27256、2片6116的电路图。

答:单片机系统扩展时,数据总线为单片机的P0口。而P0又是一个分时复用的地址/数据线,所以地址总线的低8位地址线为P0口,高8位地址线为P2口。而单片机的P0口与地址锁存器的输入端相连接,地址锁存器的输出端与所扩展的存储器的低8位地址A0~A7相连接。地址锁存允许端ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。

扩展电路·····关于6116的扩展电路在202页。

27. 51单片机系统读外部ROM由什么信号选通?在外部ROM中取数只能采用什么方式寻址?有哪些指令来实现?

—————

答:PSEN是读外部ROM的选通信号;只能采用变址寻址方式;对应的读取外部ROM的指令有: MOVC A,@A+DPTR MOVC A,@A+PC

28. MCS-51单片机系统晶振为12MH,则时钟周期、机器周期、最长指令执行时间为多少?

答:时钟周期约为0.083us;机器周期为1us;最长指令执行时间为4us(即4个机器周期)(70页)

29.地址线12根可选多少个存储单元?4KB ROM的首地址为6000H,则末地址为多少?.

答:可选2

30.访问片外RAM时采用哪些指令?是什么寻址方式?选通信号是什么?访问片外ROM时采用什么指令?是什么哪些方式?选通信号是什么?

12

个存储单元;末地址为6FFFH。

7

答:访问片外RAM时采用的指令有:

(1)MOVX A,@Ri (2)MOVX A,@DPTR (3)MOVX @Ri,A (4)MOVX @DPTR,A

是寄存器间接寻址方式,片外RAM的选通信号不确定(也许是ALE);访问片外ROM是采用的指令有: (1)MOVC A,@A+DPTR (2)MOVC A,@A+PC

—————

是变址寻址方式,选通信号是PSEN。

31. MOVX A,@R0能将访问64KB的存储器吗?如何编写指令序列来实现?

答:不能。(因为RO只是一个字节(即8位)的存储单元,最多能访问256B的存储器)。 访问64KB的存储器可以采用指令: (1)MOVX A,@DPTR (读外RAM) (2)MOVX @DPTR,A (写外RAM)

32. IC总线是如何来选通扩展器件? 如何确定寻址字节?

答:IC总线中的器件既可以作为主控器,也可以作为被控器,系统中每个器件均具有唯一的地址,各器件之间通过寻址确定数据交换方。主机发出起始信号后,先发出从机的8位地址信息,该信息前7位是从机芯片的内部地址,第8

——

2

2

位是读/写信息(R/W),“1”为读,“0”为写。

33. JC rel发生跳转时,目标地址如何计算? RETI,RET指令时如何操作的?二者有何区别?用在哪里?

答:目标地址为PC=(PC)+2+rel;(因为JC rel为两字节指令)。

RETI,RET指令时,向把栈顶的一个数弹出赋给PC的高8位,然后调整栈顶位置,在把栈顶的一个数弹出赋给PC的低8位,再次调整栈顶位置。(区别是······RETI比RET多了一个“I”)RET是(普通)子程序返回指令,而RETI是中断服务子程序返回指令。RET用于恢复断点,使程序返回主程序继续执行。RETI用于恢复断点和清除中断优先级状态触发器。

34. MOV A,P1和ANL A,P1指令,源操作数P1分别来自哪里?

答:前者来自P1口的状态(即单片机P1引脚的状态,受外部电路影响而改变的),后者来自特殊功能寄存器I/O口1(地址为80H)。

35.在访问外部数据存储器时,DPH,DPL,A是如何进行输入输出的?从时序上予以分析。

答:DPL(地址低8位)的数据从P0传送到地址锁存器的输入端锁存,再从地址锁存器的输出端传送到外部数据存储器,而DPH(地址高8位)的数据直接从P2口传送到外部数据存储器。外部数据存储器地址与DPH,DPL相对应的存储单元的内容从P0口读入,然后再从P0口传送到累加器A。

36. 51单片机串行口各方式的波特率分别是如何确定的?

答:串行口各方式的波特率为:

(1)方式0的波特率 =fosc/12; (固定的)

8

SMOD

(2)方式1的波特率 =(2

SMOD

/32)×(T1溢出率)

/64)×fosc (固定的) /32)×(T1溢出率)

(3)方式2的波特率 =(2

SMOD

(4)方式3的波特率 =(2

37. 51单片机执行片内ROM与外部ROM中是如何确定的? 。

——

——

答:(55页)由程序存储器地址允许输入端EA/Vpp来确定。当EA为高电平时,CPU执行片内程序存储器(即ROM)

——

指令,但当PC中的值超过0FFFH(即超出4KB时),将自动转向执行片外程序存储器指令。当EA为低电平时,CPU只执

——

行片外程序存储器指令。(对于8031,由于其无片内ROM,故EA必须接低电平)。

38. 寄存器寻址与寄存器间接寻址能相互传送吗?片内RAM二单元能直接传送吗?片外RAM二单元能直接传送吗?

答:寄存器寻址与寄存器间接寻址不能相互传送。片内RAM二单元可以直接传送。片外RAM二单元不能直接传送。

39. IC数据传输格式是怎样的? SDA ,SCL在数据传输时有何要求?

答:IC数据传输格式是怎样的?(答案在第3题)。IC总线的技术条件规定,在时钟线SCL为高电平期间,数据线SDA上的数据状态必须保持稳定。只有在时钟线SCL为低电平期间,SDA线上的数据才允许发送变化。

备注:IC起始信号:在SCL为高电平期间,SDA出现下降沿,表明数据传送开始; IC停止信号:在SCL为高电平期间,SDA出现上升沿,表明数据传送结束;

40. 堆栈指针SP占据片内哪个单元?当执行完指令RET后, SP内容如何变化?

答:堆栈指针SP占据片内RAM的30H~70H单元;SP的内容会减2(因为执行完指令RET时,程序断点要出栈,断点占两个字节)。

41. KK: MOV R2,#3 ;2个机器周期 DEL3: PUSH 02H ; 2个机器周期 DEL4: DJNZ R2,DEL4 ; 2个机器周期 POP 02H ; 2个机器周期 DJNZ R2,DEL3 ; 2个机器周期 RET ; 1个机器周期 KK子程序是如何运行的?如何计算执行时间?

答:如何运行·····看程序吧。执行时间共····最有可能的答案是无数个机器周期。因为执行 “DJNZ R2,DEL4”指令循环跳出后,R2的值为零,再执行“DJNZ R2,DEL3”指令后,原数值为零的R2再减1,则是变成了FFH(不为零),满足跳转条件,又跳回到DEL3,在“DJNZ R2,DEL4”指令循环跳出后,R2的值又变回了零·······,如此循环下去,子程序KK变成了死循环。所以执行时间为无数个机器周期。

42. 阅读懂单片机MOVX操作时序,与其接口一起搞清信号传输原理与时序。

答:MOVX指令用于访问外部数据存储器。(书本201页~203页)。

43.单片机定时计数器启动受哪些信号控制?

答:单片机定时计数器启动受哪些信号控制由计数器门控位GATE来确定。GATE=0,则外部输入信号对计数器不

—————

222

2

2

产生影响,只要启动控制位TRx=1(x=1或0),计数器就开始计数;GATE=1,则外部中断输入INTx(x=1或0)为高

9

—————

电平时,且启动控制位TRx=1(x=1或0),计数器才开始计数,这种设置可以用于测量INTx引脚输入高电平的脉冲宽度。

44.设计0809、0832与51单片机接口,说明接口芯片完成的功能,各接口信号线的作用?设计转换程序?

答:0809是一个8位逐次逼近型A/D转换器,其连接原理图在247页。0832是一个8位T形电阻网络D/A转换器,其连接原理图在240页。

43. 80C51各中断源的中断入口地址为多少?

答:80C51中断入口地址如下表所示:

入口地址 0000H 0003H 000BH 0013H 001BH 0023H 中断源 非中断源,程序复位后开始执行程序的地址 外部中断0 定时/计数器0 外部中断1 定时/计数器1 串行通信口 备注:复位入口占3个字节,各个中断源的入口地址占8个字节。(66页)

44. 当P1做输入时该如何编写指令来实现?读引脚与读锁存器是怎么回事?

答:(这题与34题类似),当P1做输入时的指令有很多。具体来说,用的MOV传送指令时是读引脚,而用到其他指令访问P1时,是读锁存器。

45. 什么是直接寻址?什么是变址寻址?什么是相对寻址?

答:(参考第6题)

直接寻址是指令中直接给出操作数所在单元的地址;

变址寻址是以DPTR或PC为基址寄存器,累加器A为变址寄存器,把两者内容相加,结果作为操作数的地址的寻址方式

相对寻址是以PC的内容作为基地址,加上指令中给定的偏移量,所得结果作为转移地址送PC寄存器的寻址方式。偏移量是8位带符号数的补码,真值在-128~+127之间。以下一条指令的PC值为起点,转移访问范围在-128~+127。

46编写程序:用定时计数器方式1,分别采用中断与查询方式判别溢出,实现对外部脉冲的计数,当计满10个脉冲就将P1.1输出信号取反1次。

答:因为题目没有说明用哪个定时/计数器,所以这里以定时/计数器0为例编程 (1)查询方式

MAIN :

ORG 0000H LJMP MAIN ORG 0100H

MOV TMOD,#05H ;设置定时/计数器0计数模块,方式1 MOV TH0,#0FFH MOV TL0,#0F6H

10

WAIT:

(1)中断方式

ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0100H MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#0F6H SETB EA SETB ET0 SETB TR0 AJMP $

MOV TL0,#0F6H CPL P1.1 RETI END SETB TR0 JNB TF0,$ CLR TF0

MOV TH0,#0FFH MOV TL0,#0F6H CPL P1.1 AJMP WAIT END

MAIN :

WAIT :

INT_T0 : MOV TH0,#0FFH

47编写程序:把片内RAM 00H的内容拆开,高4位送外RAM 3001H低4位,低4位送3002H低4位,3001H、3002H高4位置1

答:程序代码如下:

ORG 0000H LJMP MAIN ORG 0100H MOV R0,#00H MOV A,@R0 SWAP A ORL A,#0F0H

MAIN :

11

48编写程序:将外部RAM中起始地址为2220H-2230H的数据串,传送到内部RAM中起始地址为20H-30H的存储区域中。 答:程序代码如下:

49.RETI指令的具体功能是什么? 答:(答案在33题) 50. CPU是如何查询中断的?

答:CPU收到中断申请后,会依据预先安排好的中断编号查找到中断程序的入口地址,然后转到该位置去执行中断服务子程序。(123页)

51. MOVX @Ri,A 使用时要注意什么?

答:MOVX @Ri,A指令以Ri为简址寄存器,将A的内容写入到外部RAM由Ri所指向的单元,寻址空间为256字节的片外RAM。指令执行时,由Ri所指定的低8位地址由P0口输出。

52编写程序:模拟I2C总线的停止信号的程序,设晶振为6MHz,不考虑CLR BIT, SETB BIT 2条指令执行的时序差异。 答:(书本168页) STOP :

CLR SDA NOP NOP SETB SCL NOP NOP NOP NOP NOP

ORG 0000H LJMP MAIN ORG 0100H

MOV DPTR,#2220H MOV R0,#20H MOVX A,@DPTR MOV @R0,A INC DPTR INC R0

CJNE R0,#31H,SS SJMP $ END

MOV DPTR,#3001H MOVX @DPTR,A MOV A,@R0 ORL A,#0F0H INC DPTR MOVX @DPTR,A SJMP $ END

MAIN : SS :

12

53编写程序:用中断方式定时计数器产生1Khz,占空比40%的矩形波,设晶振12Mhz.

答:分析可知在该矩形波的一个周期(1ms)中,有400us高电平,600us低电平(机器周期为:1us)。 程序代码如下:(以定时/计数器0为例,工作方式1,查询方式,初值计数方面不作说明)

ORG 0000H LJMP MAIN ORG 0100H MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#70H

SETB P1.0 :矩形波输入引脚暂定为P1.0,输出400us高电平 SETB TR0 JNB TF0,$ CLR TF0

MOV TH0,#0FDH MOV TL0,#0A8H

CLR P1.0 ;输出600us低电平 JNB TF0,$ CLR TF0 AJMP RRR END

SETB SDA RET

MAIN : RRR :

以上程序以查询方式实现,若用中断方式实现,程序相对比较复杂。

54.设计ADC0809接口电路,要求全译码来实现片选,分析其接口设计原理,分别用查询与中断方式读数,完成8个模拟量的A/D循环转换,结果滚动覆盖原来的值.

答:·············不会。

55. D/A、A/D转换器的性能指标有哪些?如何定义的?

答:(237页)D/A转换的主要性能指标有:D/A转换时间、分辨率、D/A转换精度; (243页)A/D转换的主要性能指标有:量程、分辨率、转换时间与转换速率;

56. 单片机应用设计中提高系统可靠性的措施有哪些?

答:(书本297页)。

57. MOVC 、MOVX指令是什么指令?产生什么信号?如何使用?

答:MOVC、MOVX指令是寄存器间接寻址指令。产生什么信号????···不知道,(83页)。

58.设计一个共阳极8位动态显示电路,是分析其工作原理?若a—dp依次接Q7—Q0,则显示“P.”的字段码为多少?试编制完成8位LED循环100次显示的子程序。

答:(书本216页),其字段码为38H。

42.DAC0832有哪几种连接方式?设计两片DAC0832双缓冲方式转换电路,选片采用全译码方式,分析其接口原理?计算其各个口地址,若DAC转换精度为±0.1%,计算转换最大输出误差、满输出电压,若有二路数据x、y值分别存在片外地

13

址1120H、1130H开始的数据存储器中,编写绘制此组数据关系曲线图的汇编语言子程序。

答:DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。(书本242页)。

59.设计8031串行口扩展1个16位的并行输入口,要从16位并行口输入数据,存入到内部RAM区。

答:(做到这题,发觉宋跃哥哥很可爱,把书本翻烂了,依然找不到一副关于8031的原理图········)。

60.分别利用中断方式和查询方式设计程序,要求采用定时/计数器T0方式1,使P1.7引脚输出周期为8s的方波,设系统时钟为6M。

答:(由题目可知,题目木有告诉我们方波的占空比,所以···默认为50%,机器周期为:2us) (1)查询方式

MAIN :

WAIT:

(1)中断方式

ORG 0000H LJMP MAIN ORG 000BH LJMP INT_T0 ORG 0100H MOV R0,#40 MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 ORG 0000H LJMP MAIN ORG 0100H MOV R0,#40

MOV TMOD,#01H ;设置定时/计数器0工作方式1,定时时间为0.1秒,40次为4秒 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TF0

MOV TH0,#03CH MOV TL0,#0B0H DJNZ R0,WAIT MOV R0,#40 CPL P1.7 AJMP WAIT END

MAIN :

14

WAIT :

61. 80C51系列指的是什么?寻址方式是什么?

答:各厂商以8051为基核开发出的CHMOS工艺单片机产品统称为8051系列。寻址方式就是寻找操作数的方式。

62.单片微型计算机是如何构成的?

答:一台微型计算机主要由微处理器CPU、存储器、输入/输出接口电路及系统总线、外围设备和电源构成。(350页)

63. 28.读锁存器和读引脚是怎回事?。 答:(答案在44题)。

64. 51单片机的伪指令主要有哪些?如何使用?

答:51单片机的伪指令主要有(105页): (1)起始地址设定伪指令ORG; (2)汇编结束伪指令END; (3)字节数据定义伪指令DB; (4)字数据定义伪指令DW; (5)空间定义伪指令DS; (6)定义常值为符号伪指令EQU; (7)位地址符号定义伪指令BIT;

65.DA A 指令如何用?

答:DA A指令为十进制调整指令(87页),这条指令对累加器A参与的BCD码加法运算结果进行十进制调整,使累加器A中的内容调整为两位压缩型BCD码的数,同时PSW中的CY表示结果的百位值。(使用时注意,它只能跟在加法指令之后。)

66.设计程序:把22H单元开始存放的8个无符号数进行求和,并将结果存入00H单元中 答:(00H存放结果的高8位,01H存放结果的低8位) 程序代码如下:

ORG 0000H LJMP MAIN ORG 0100H MOV R0,#22H MOV R1,#00H MOV R2,#08H CLR A CLR C JC NADD2 INC R0

AJMP $

MOV TL0,#0F6H DJNZ R0,WAIT MOV R0,#40 CPL P1.7 RETI END

INT_T0 : MOV TH0,#0FFH

MAIN :

NADD1 : ADD A,@R0

15

67.设系统时钟频率为12 MHz。利用查询方式设计程序,使P1.5引脚上输出周期为20ms的方波.

答:(题目没有给出占空比,所以占空比默认为50%。以定时/计数器0为例编写程序,工作方式1,机器周期为1us) 程序代码如下:

ORG 0000H LJMP MAIN ORG 0100H MOV TMOD,#01H MOV TH0,#0D8H MOV TL0,#0F0H CLR P1.0 SETB TR0 JNB TF0,$ CLR TF0

MOV TH0,#0D8H MOV TL0,#0F0H CPL P1.0 SJMP RRR END

CJNZ R2,NADD1 MOV R0,#01H MOV @R0,A SJMP $ CLR C INC R0

CJNZ R2,NADD1 MOV R0,#01H MOV @R0,A SJMP $ END

NADD2 : INC @R1

MAIN : RRR :

本文来源:https://www.bwwdw.com/article/bwmw.html

Top