《单片机原理及应用》黄友锐主编课后习题答案 下载本文

第1章

1-1 什么是单片机?它与一般微型计算机在结构上何区别? 答:单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU即Micro-Controller Unit)。它是在一块芯片上集成了中央处理器(CPU)、存储器(RAM、ROM)、定时器/计数器、中断控制、各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等为一体的器件。

微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。

1-2 MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。

答:MCS-51系列单片机内部资源配置 AT89S53 12KB Flash ROM 32KB Flash ROM 256B 3×16 32 1 9/2 SPI,WDT,2个数据指针 扩展了4位I/O口,双数据指针,WDT。 W77E58 256B+ 3×16 36 1024B 2 12/2 1-3 新型8位单片机,主要在哪几方面发展了?使用新型8位单片机能带来什么好处?

1、运算速度大大提高; 2、RAM、ROM容量增大;

3、精简指令集,指令比51少很多; 4、更多的IO口;

5、更多的其他功能,比如自带AD,DA,自带SPI,自带看门狗,自带大容量EEPROM等等;

6、中断的种类更细更多,有20几个中断向量的比比皆是,定时器/计数器的功能,数量都更多。

简化电路,节省成本,降低功耗,提高系统的可靠性。

第2章

2-1 MCS-51系列单片机内部有哪些主要的逻辑部件?

答: 一个8位CPU;一个片内振荡器及时钟电路;4K字节ROM程序存储器;128字节RAM数据存储器;两个16位定时器/计数器;可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;具有五个中断源、两个优先级嵌套中断结构

1

2-2 MCS-51设有4个8位端口(32条I/O线),实际应用中8位数据信息由哪一个端口传送?16位地址线怎样形成?P3口有何功能?

答:实际应用中8位数据信息由P0口传送。16位地址线由P0口输出低8位地址A7~A0,P2口输出高8位地址A15~A8。P3口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同P1口;当作第二功能使用时,P3.0—RXD串行输入(数据接收)口,P3.1—TXD串行输出(数据发送)口,P3.2—INT0外部中断0输入线,P3.3—INT1外部中断1输入线,P3.4—T0定时器0外部输入,P3.5—T1定时器1外部输入,P3.6—WR外部数据存储器写选通信号输出,P3.7—RD外部数据存储器读选通信号输入。

2-3 MCS-51的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何作用?

答:MCS-51存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统、控制信号和功能。

程序存储器用来存放程序和始终要保留的常数,如经汇编后所编程序的机器码。数据存储器通常用来存放程序运行中所需要的常数或变量,例如模/数转换时实时采集的数据等。

2-4 MCS-51内部RAM区功能结构如何分配?4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?

答:MCS-51系列单片机内部数据存储器:00H ~ 7FH单元组成的低128字节地址空间的RAM区,又分为为工作寄存器区(00H~1FH)、位寻址区(20H~2FH)和用户RAM区(30H~7FH)。 80H ~ FFH(128 ~255)单元组成的高128字节地址空间的特殊功能寄存器(又称SFR)区。对于8032、8052、8752的单片机还有80H~FFH单元组成的高128字节地址空间的RAM区。 4组工作寄存区是由程序状态字PSW(特殊功能寄存器,字节地址为0D0H)中的D4、D3位(RS1和RS0)来决定的。

位寻址区域的字节地址范围是20H~2FH(对应的位地址范围是00H~7FH)。

2-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么?

答:P0字节地址80H,TCON字节地址88H,P1字节地址90H,SCON字节地址98H,P2字节地址A0H,IE字节地址A8H,P3字节地址B0H,IP字节地址B8H,PSW字节地址D0H,ACC字节地址E0H,B字节地址F0H。

2-6 简述程序状态字PSW中各位的含义。 答:CY(PSW·7)进位标志,AC(PSW·6)辅助进位标志,F0(PSW·5)用户标志位,RS1、RS0(PSW·4、PSW·3)寄存器区选择控制位,OV(PSW·2)溢出标志,P(PSW.0)奇偶标志,每个指令周期都由硬件来置位或清“0”,以表示累加器A 中1的位数的奇偶数。

2-7复位后,各内部寄存器的内容是什么?

2

2-8 一个时钟频率为6MHz的单片机应用系统,它的振荡信号周期、时钟周期、机器周期分别是多少?

答:振荡信号周期=1/6us、时钟周期=1/3us、机器周期=2us。

2-9 堆栈有何功能?堆栈指针的作用是什么?二者的关系?为什么在程序设计时,要对SP重新赋值?

答:堆栈的主要功能:保护断点和程序现场,保存用户数据。

堆栈指针的作用是:堆栈指针SP是一个8位特殊功能寄存器,指示出堆栈顶部在内部RAM中的位置。

两者的关系:堆栈指针SP给定当前的栈顶,SP的初始值越小,堆栈深度就越深。

系统复位后,SP初始化为07H,使得堆栈事实上由08H 单元开始。考虑到08H~1FH单元分属于工作寄存器区1~3,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值如60H,SP的初始值越小,堆栈深度就越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。

第3章

3-4: (1)

ORG 0000H

AJMP START

ORG 0100H

START:MOV A, #21H

ADD A, #45H ADD A, #78H SJMP $ END

(2)

ORG 0000H

AJMP START

ORG 0100H

START:MOV A, #78H

ADD A, #45H CLR C;

SUBB A, #21H SUBB A, #09H SJMP $ END

(3)

ORG 0000H

AJMP START

3

ORG 0100H

START:MOV A, #34H

ADD A, #0ABH MOV R0, A MOV A, 12 ADDC A, #21H MOV R1, A SJMP $ END

(3)

ORG 0000H

AJMP START

ORG 0100H START:CLR C;

MOV A, #0BCH SUBB A, #0CDH MOV R0, A MOV A, 1#2AH SUBB A, #0FH MOV R1, A SJMP $ END

3-5:请编程实现:将片内20H存储单元的8位二进制数转换成BCD码,并存放在片外以2000H起始的单元中,2000H单元存放转换后的BCD码的百位,2001H单元存放转换后的BCD码的十位/个位。 ORG 0000H AJMP START ORG 0050H

START:MOV A,20H ;A←被除数 MOV B, #100 ; B←除数100

DIV AB ;A÷B,A←商(百位数BCD码),B←余数 MOVX 2000H,A ;(2000H)←将百位数BCD码 MOV A,B ;A←余数作被除数 MOV B,#10 ;B←除数10 DIV AB ;A÷B,A←商(十位数BCD码),B←余数(个位BCD码) SWAP A ;十位BCD码调整到A中高4位 ADD A,B ;A中压缩成2位BCD码

MOVX 2001H,A ; (2001H)←十位、个位BCD码 SJMP $ END

3-6: 将片内RAM 20H,21H,22H,23H(千/百/十/个位)中的十进制的ascii码转

4

换成bcd码,并压缩放于片内30H,31H两个单元,其中31H中放bcd码的十位/个位,30H中放bcd码的千位/百位。 MOV A, #00H ;这一句不是必须 MOV R0, #20H MOV R1, #21H

XCHD A, @R0 ;A←(20H)

SWAP A ;A高4位←(20H)的BCD码数字 XCHD A, @R1 ;A低4位←(21H)的BCD码数字 MOV 30H,A

MOV A, #00H ;这一句不是必须 MOV R0, #22H MOV R1, #23H

XCHD A, @R0 ;A←(22H)

SWAP A ;A高4位←(22H)的BCD码数字 XCHD A, @R1 ;A低4位←(21H)的BCD码数字 MOV 31H,A

3-7:片内RAM的30H~32H单元中连续存放了6个压缩BCD码,编制程序将它们转换为ASCII码,存入片外3000H开始的连续存储区中

MOV R0,#30H MOV DPTR,3000H

LOOP: MOV A,@R0 SWAP A ANL A,#0FH

ADD A,#30H ;30H= '0' MOVX @DPTR,A INC DPTR

MOV A,@R0 ANL A,#0FH ADD A,#30H

MOVX @DPTR,A INC DPTR

INC R0 CJNE R0,#33H, LOOP

3-9: 从外部RAM 2000H 单元开始存放着100个无符号数,编写程序统计出:(1)最大数;(2)最小数;(6)大于50,小于50,等于50的个数。 (1)

MOV DPTR, #2000H

MOV 30H, #0 ;先用0当做最大数 (求最小数时,用255) MOV R2, #100

LOOP: MOVX A, @DPTR CJNE A, 20H, TTT ;(A)-(20H)

5

TTT: JNC NEXT ;不够减转移 (求最小数时,用JNC NEXT) MOV 30H, A ;够减,这个数是大数,给(20H) NEXT: INC DPTR DJNZ R2, LOOP SJMP $ END (6)

ORG 0600H

MOV DPTR, #2000H MOV R2, #100 ;总数

MOV R3, #0 ; 小于50的数的个数 MOV R4, #0 ; 等于50的数的个数 MOV R5, #0 ; 大于50的数的个数 LOOP:

MOVX A, @DPTR CLR C

SUBB A, #50 JZ EQU_50 JNC BIG

INC R3 ;小于50的个数 JMP NEXT EQU_50:

INC R4 JMP NEXT BIG:

INC R5 NEXT:

INC DPTR

DJNZ R2, LOOP

MOV 30H,R3 ; 小于50的数的个数 MOV 31H,R4 ; 等于50的数的个数 MOV 32H,R5 ; 大于50的数的个数

SJMP $

3-10 MCS-51片外RAM区1000H~1007H单元中存有8个无符号数,编程求其平均值,将结果存于1008H中。%先加,加的结果可能超出8位,所以存储结果于(30H)和(40H)单元中。

MOV DPTR, #1000H MOV R7, #08H

MOV 30H, #00H MOV 40H, #00H SS1:MOVX A, @DPTR

6

ADD A, 30H MOV 30H, A CLR A ADDC A, 40H MOV 40H, A INC DPTR DJNZ R7, SS1 MOV R7, #03H ;移位3次,等于除以8 SS2:CLR C MOV A, 40H RRC A MOV 40H, A MOV A, 30H RRC A MOV 30H, A DJNZ R7, SS2 MOVX @DPTR, A

3-11下面是以数学公式,X值存于片内20H,Y值存于21H单元中。Y=X2(X>0) 0(X=0) 2X(X<0)

MAIN:MOV A,20H

JZ SUL

JB ACC.7,NEG MOV B,A MUL AB SJMP SUL NEG:CLR C

RLC A

SUL:MOV 21H ,A

3-12试编写程序,将外部 RAM 2000H~20FFH数据块,传送到3000H~30FFH区域。

MOV R6,#0FFH MOV R2,#00H

MOV R3,#20H;暂存2000H地址 MOV R4,#00H

MOV R5,#30H;暂存3000H地址 NEXT:MOV DPL,R2 MOV DPH,R3 MOVX A,@DPTR MOV DPL,R4 MOV DPH,R5 MOVX @DPTR,A INC R2 INC R4

7

DJNZ R6,NEXT

3-13:振荡频率:6MHz(机器周期:2us),

(1)1ms延时 ORG 2000H

MOV R7,#125 LOP1: NOP NOP

DJNZ R7,LOP1 RET (2) 100ms延时 ORG 2000H

MOV R6,#100 LOP2: MOV R7,#125 LOP1: NOP NOP DJNZ R7,LOP1 DJNZ R6,LOP2 RET (3)1s延时 ORG 2000H

MOV R5,#10 LOP3: MOV R6,#100 LOP2: MOV R7,#125 LOP1: NOP NOP

DJNZ R7,LOP1 DJNZ R6,LOP2 DJNZ R5,LOP3 RET

3-14:片内RAM30H有一数(0~15),查表求平方值,存入31H中。ORG 1000H

MAIN: MOV DPTR,#TAB

MOV 30H, #13 ;NUMB=0~15 MOV A, 30H MOVC A,@A+DPTR MOV 31H,A SJMP $

TAB: DB 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255

第4章

8

4-4 试编程实现,将INT0设为高优先级中断,且为电平触发方式;T0溢出中断设为低优先级中断,串行口中断为高优先级中断,其余中断源设为禁止状态。

SETB PX0 CLR IT0 CLR PT0 SETB PS

MOV IE,#93H

4-9 试用中断技术设计一个秒闪电路,其功能是发光二极管LED每秒闪亮400ms。主机频率为6MHz。(仿真见exercise4_9.ms11)

题意可理解为LED每次亮400ms,灭600ms。设使用定时器T1,定时时间为100ms,用P1.0作输出,设P1.0为高时灯灭。

ORG 0000H

AJMP START ORG 000BH AJMP T0INT

ORG 0050H

START: MOV SP, #30H

MOV TMOD,#01H ;T0方式1计数, MOV TH1, #3CH

MOV TL1, #0B0H ;定时100ms MOV R0, #04H

SETB F0 ;灯亮(1)、灭(0)的转换标志 MOV IE, #88H SETB P1.0 SETB TR1 SJMP $

ORG 0100H

T0INT: MOV TH1, #3CH MOV TL1, #0B0H DJNZ R0, NEXT

JNB F0, TURNON ;F0为0转 TURNOFF: CPL P1.0 CLR F0 MOV R0, #06H SJMP NEXT TURNON: CPL P1.0 SETB F0

MOV R0, #04H NEXT: RETI END

9

4-1 简述中断、中断源、中断源的优先级及中断嵌套的含义。 答: 当CPU正在处理某项事件的时,如果外界或内部发生了紧急情况,要求CPU暂停正在处理的工作转而去处理这个紧急情况,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。 向CPU提出中断请求的源称为中断源。

当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU在一个时刻只能响应并处理中断优先高的请求。

在实际应用系统中,当CPU正在处理某个中断源,即正在执行中断服务程序时,会出现优先级更高的中断源申请中断。为了使更紧急的级别高的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理级别更高的中断源,待处理完以后,再返回到被中断了的中断服务程序继续执行,但级别相同或级别低的中断源不能中断级别高的中断服务,这就是所谓的中断嵌套。

4-2 MCS-51单片机能提供几个中断源?几个中断优先级?各个中断的源的优先级怎样确定?在同一优先级中各个中断源的优先级怎样确定?

答: MCS-51单片机能提供五个中断源,两个中断优先级。中断优先级是由片内的中断优先级寄存器IP(特殊功能寄存器)控制的。

PS:串行口中断优先级控制位。PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源。

PT1:T1中断优先级控制位。PT1=1,定时器/计数器1定义为高优先级中断源;PT1=0,定时器/计数器1定义为低优先级中断源。

PX1:外部中断1中断优先级控制位。PX1=1,外中断1定义为高优先级中断源;PX1=0,外中断1定义为低优先级中断源。

PT0:定时器/计数器0(T0)中断优先级控制位,功能同PT1。

PX0:外部中断0中断优先级控制位,功能同PX1。

在同一优先级中,循环轮流排队。不分级别高低,所有中断源优先级都一律平等,CPU轮流响应各个中断源的中断请求。 4-3 简述MCS-51单片机中断响应过程。

答:CPU在每个机器周期的S5P2时刻采样中断标志,而在下一个机器周期对采样到的中断进行查询。如果在前一个机器周期的S5P2有中断标志,则在查询周期内便会查询到并按优先级高低进行中断处理,中断系统将控制程序转入相应的中断服务程序。

4-4 MCS-51单片机外部中断有哪两种触发方式?如何选择?对外部中断源的触发脉冲或电平有何要求?

答:MCS-51单片机外部中断有:负边沿触发方式和电平触发方式。外部中断1(INT1)触发方式控制位。如果IT1为1,则外中断1为负边沿触发方式(CPU在每个机器周期的S5P2采样INT1脚的输入电平,如果在一个周期中采样到高电平,在下个周期中采样到低电平,则硬件使IE1置1,向CPU请求中断);如果IT1为0,则外中断1为电平触发方式。采用电平触发时,输入到INT1的外部中断源

10

必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。

4-5 在MCS-51单片机的应用系统中,如果有多个外部中断源,怎样进行处理?

答:当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU在一个时刻只能响应并处理一个中断请求,为此,要进行排队。排队的方式有:

(1)按优先级排队。

(2)循环轮流排队。MCS-51单片机优先级比较简单,只有两级,可以通过优先级控制寄存器设置不同的优先级。当优先级相同时,约定有5个中断源优先级顺序由高到低分别为:外部中断0、定时器/计数器0溢出、外部中断1、定时器/计数器1溢出、串行口中断。

4-6 MCS-51有哪几种扩展外部中断源的方法?各有什么特点? 答:1) 利用定时器作为外部中断使用

特点:把MCS-51的两个定时器/计数器(T0和T1)选择为计数器方式,每当P3.4(T0)或P3.5(T1)引脚上发生负跳变时,T0和T1的计数器加1。可以把P3.4和P3.5引脚作为外部中断请求输入线,而定时器的溢出中断作为外部中断请求标志。

2)采用中断和查询相结合的方法扩充外部中断源

特点:这种方法是把系统中多个外部中断源经过与门连接到一个外部中断输入端(例如INT1),并同时还接到一个I/O口,中断请求由硬件电路产生,而中断源的识别由程序查询来处理,查询顺序决定了中断源的优先级。

4-7 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推

迟对外部中断请求的响应?

答:响应外部中断的典型时间是至少需要3个完整的机器周期。

1、外部中断INT0和INT1的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被其内部的查询电路查询,未产生了一个中断请求。

2、没有满足响应的条件,CPU没有响应中断。

3、没有由硬件生成一条长调用指令转到相应的服务程序入口。

第5章

5-1 MCS-51单片机定时/计数器作定时和计数用时,其计数脉冲分别由谁提供? 定时: 计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。

计数:外部输入脉冲计数,接相应的外部输入引脚T0(P3.4)或T1(P3.5)

5-2 MCS-51单片机内设有几个定时/计数器?它们是由哪些特殊功能寄存器组成? 答:MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。

11

定时/计数器T0由特殊功能寄存器TH0、TL0(字节地址分别为8CH和8AH)构成,定时/计数器T1由特殊功能寄存器TH1、TL1(字节地址分别为8DH和8BH)构成。其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时器控制寄存器TCON。TMOD主要是用于选定定时器的工作方式,TCON主要是用于控制定时器的启动和停止。

5-3定时/计数器作定时器用时,其定时时间与哪些因素有关?作计数器用时,对外界计数频率有何限制?

答:①定时器/计数器作定时用时,其定时时间与下面因素有关:晶体振荡器的频率、机器周期、计数器的长度、定时器/计数器初值。

②用做\计数器\时,对外部输入端T0、T1上1到0的跳变进行加1计数。在计数状态下,每个机器周期的S5P2时刻采样外部输入,当第一个机器周期采样为高电平,而在第二个机器周期采样为低电平时,内部计数器加1。新的计数值在紧接着采样到跳变后的下一机器周期的S3P1出现在计数器中。由于检测一个1到0的跳变需要2个机器周期,即24个振荡周期,因此外部计数的最快速率为振荡频率的1/24。外部输入信号的速率向下可以不受限制,但是脉冲宽度必须保证在其电平变化之前能被采样到一次,即至少保持一个完整的机器周期,否则,将会由于采样不到而出现漏计现象。

3-1 设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?

MOV A,59H ;A=50H MOV R0,A ;R0=50H MOV A,#00H ;A=00H MOV @R0,A ;50H=00H MOV A,#25H ;A=25H MOV 51H,A ;51H=25H MOV 52H,#70H ;52H=70H A=25H R0=50H 50H=00H 51H=25H

3-2 访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 答:访问外部数据存储器指令有:

MOVX @DPTR,A MOV DPTR,#0100H MOV @DPTR,A MOVX A,@DPTR MOV DPTR,#0200H MOV A,@DPTR MOVX A,@Ri MOVX A,@R0 MOVX @Ri,A MOVX @R1,A 访问程序存储器指令有: MOVC A,@A+PC

MOVC A,@A+DPTR

3-3 设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?

PUSH 30H ;61H=24H

PUSH 31H ;62H=10H SP=62H POP DPL ;DPL=10H

POP DPH ;DPH=24H SP=60H MOV 30H,#00H ;30H=00H

12

MOV 31H,#0FFH ;31H=0FFH 3-4 设(A)=40H,(R1)=23H,(40H)=05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?

XCH A,R1 ;A=23H R1=40H XCHD A,@R1 ;A=25H 40H=03H 3-5 两个四位BCD码数相加,被加数和加数分别存于50H,51H和52H,53H单元中(千位、百位在低地址中,十位、个位在高地址中),和存放在54H,55H和56H中(56H用来存放最高位的进位),试编写加法程序。

ORG 0000H LJMP START ORG 0100H START: MOV A,53H ADD A,51H DA A

MOV 55H,A MOV A,52H ADDC A,50H DA A MOV 56H,C SJMP $ END

3-6 设(A)=01010101B,(R5)=10101010B,分别写出执行下列指令后结果。

ANL A , R5 ; 00000000B ORL A , R5 ; 11111111B XRL A , R5 ; 11111111B

3-7指令SJMP rel中,设rel=60H,并假设该指令存放在2114H和2115H单元中。当该条指令执行后,程序将跳转到何地址?

答: 2116H+60H=2176H

3-8 简述转移指令AJMP addr11、SJMP rel、 LJMP addr16及JMP @A+DPTR的应用场合。

答:AJMP addr11 为2K字节范围内的无条件转跳指令,把程序的执行转移到指定的地址。SJMP rel是无条件转跳指令,执行时在PC加2后,把指令中补码形式的偏移量值加到PC上,并计算出转向目标地址。转向的目标地址可以在这条指令前128字节到后127字节之间。

LJMP addr16执行这条指令时把指令的第二和第三字节分别装入PC的高位和低位字节中,无条件地转向指定地址。转移的目标地址可以在64K程序存储器地址空间的任何地方,不影响任何标志。

JMP @A+DPTR 指令的功能是把累加器中8位无符号数与数据指针DPTR中的16位数相加,将结果作为下条指令地址送入PC,利用这条指令能实现程序的散转。

3-9 试分析下列程序段,当程序执行后,位地址00H,01H中的内容将为何值?P1口的8条I/O线为何状态?

CLR C ;CY=0

13

MOV A,#66H ;A=66H JC LOOP1

CPL C ;CY=1 SETB 01H ;20H.1=1 LOOP1: ORL C, ACC.0 ;CY=1 JB ACC.2,LOOP2 ; CLR 00H

LOOP2: MOV P1,A ;P1=01100110B SJMP $

20H.0=0 20H.1=1 P1=66H

3-10 查指令表,写出下列两条指令的机器码,并比较一下机器码中操作数排列次序的特点。

MOV 58H,80H

85(80)(58) 直接寻址字节送直接寻址字节: 汇编时源操作数在目标操作数之前。

MOV 58H,#80H

75(58)(80) 立即数送直接寻址字节: 汇编时目标操作数在原操作数之前。

第4章

4-1 什么是单片机的程序设计语言。

答:单片机的程序设计语言是指计算机能理解和执行的语言,人与CPU、MCU交流的语言。MCS-51系列单片机的程序设计语言,按照语言的结构及其功能可以分为三种:机器语言、汇编语言、高级语言。 4-2 单片机的程序设计包括哪几个步骤。 答:程序设计步骤如下:

(1) 分析问题。即仔细分析任务书中要实现的功能和性能指标。 (2) 确定算法。即找到解决问题思路、方法。

(3) 分配内存单元。即确定数据结构。这一步往往与算法同时考虑。 (4) 根据算法和数据结构,画出程序流程图。

(5) 根据流程图编写汇编语言源程序。编辑录入,保存为*.ASM文件。 (6) 汇编。排除语法错误。 (7) 调试(DEBUG)。找出错误并更正,再调试,直至通过。 (8) 编写相关说明文档。

4-3 画出单片机的三种基本程序结构。 答:

14

A B 是 条件成立吗? 否 条件成立吗? 是 否 A B A

顺序结构流程图 分支结构流程图 循环结构流程图

4-4 单片机的分支结构程序指令有哪几条?

答:分支结构程序指令有JB、JNB、JC、JNC、JZ、JNZ、CJNE、JBC 4-5 什么是单片机的程序嵌套?生活中有哪些现象与单片机的嵌套类似? 答:一个程序中还会调用别的程序,这称为程序嵌套。

生活例子:在学习,有电话了,去接电话,水开了,放下电话去关掉电水壶,接着打电话,打完电话,接着学习。

4-6 能否从一个子程序内部使用转移指令直接跳转到另一个子程序执行?

答:可以,为了保证正确地从子程序2返回子程序1,再从1返回主程序,每次调用子程序时必须将下条指令地址保存起来,返回时按后进先出原则依次取出旧PC值。

4-7 能否使用转移指令从主程序跳到子程序?

答:不可以,当主程序需要执行某子程序的功能时,只需执行一条调用指令。而并非使用转移指令

4-8 能否使用转移指令从子程序跳到主程序?

答:不可以,子程序的最后一条指令应该是返回指令RET或RETI,以确保子程序能够正确返回主程序。执行RET指令时单片机将原来存在堆栈中的断点地址弹出给PC,保证子程序返回主程序中调用子程序的地方继续执行主程序。 子程序从子程序的标号开始,到RET或RETI指令结束。 RET指令是一般子程序的返回指令。

RETI指令是中断服务子程序的返回指令。 4-9 画出主程序的一般流程图。 答:主程序流程图

15

上电/复位 初始化模块 人机接口(键盘显示)模块 输入模块 运算模块 输出模块

4-10 画出子程序的一般流程图。 答:子程序流程图

4-11 子程序的规范化设计包括那几个部分? 答:子程序的规范化设计包括:

(1) 子程序名称。给子程序起名字,起名的原则是子程序名能够反映子程序功能,该名字就是子程序的入口地址标识符。

(2) 子程序功能,对子程序的功能给予简要的描述。

(3) 入口参数,子程序所要运算或处理的数据(加工前的原料),在调用子程序之前,主程序要先准备好入口参数。 (4)出口参数,子程序运算或处理的结果(加工完成的数据),子程序结束之前,最终结果(出口参数)存放在约定的RAM单元,供主程序取用。 (5) 资源占用情况,指出该子程序运行时所使用的片内工作寄存器(R0~R7)、SFR(特殊功能寄存器)、片内RAM单元及片外RAM单元,以便在主程序调用该子程序之前,考虑将这些资源中的哪些字节保护入栈。

4-12 在片内RAM地址40H到4FH的存储单元中存有16个无符号数,找出其中的最大值,放入50H单元,请用“循环结构”和“分支结构”编程。 答:流程图:

开始

初始化: R2=15赋判断次

数,R0指针指向40H单元

指针加1

B @R0+1 判断A>B? N 16

Y

Y

源程序:

ORG 0000H

LJMP MAIN ORG 0100H MAIN:

MOV R2,#0FH MOV R0,#40H MOV A,@R0 SUB:

INC R0

MOV B,@R0 CJNE A,B,NEXT NEXT:

JC NEXT1 DJNZ R2,SUB JMP LAST

NEXT1:

MOV A,B DJNZ R2,SUB

17

JMP LAST LAST:

MOV 50H,A

SJMP $

4-13 将片内若干个RAM单元的内容复制到片外RAM单元,请用“主程序”调用“子程序”编程,要求子程序入口参数为:R0存放片内RAM起始地址,DPTR存放片外RAM起始地址,R1存放字节数。请分别编写主程序和子程序。 答:流程图

主程序

初始化常数 R0←40H

DPTR←0200H

R1←10H

调用复制子程序

结束

源程序:

ORG 0000H LJMP MAIN ORG 0100H MAIN:

MOV R1,#10H MOV R0,#40H

MOV DPTR,#0000H LCALL COPY SJMP $ COPY:

NEXT: MOV A,@R0

MOVX @DPTR,A INC R0 INC DPL

DJNZ R1,NEXT

子程序 开始 R0单元送DPTR 指针加1 R1-1=0? N Y 返回 18

RET

第5章

5-1 简述中断、中断源、中断源的优先级及中断嵌套的含义。 答: 当CPU正在处理某项事件的时,如果外界或内部发生了紧急情况,要求CPU暂停正在处理的工作转而去处理这个紧急情况,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。 向CPU提出中断请求的源称为中断源。

当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU在一个时刻只能响应并处理中断优先高的请求。

在实际应用系统中,当CPU正在处理某个中断源,即正在执行中断服务程序时,会出现优先级更高的中断源申请中断。为了使更紧急的级别高的中断源及时得到服务,需要暂时中断(挂起)当前正在执行的级别较低的中断服务程序,去处理级别更高的中断源,待处理完以后,再返回到被中断了的中断服务程序继续执行,但级别相同或级别低的中断源不能中断级别高的中断服务,这就是所谓的中断嵌套。

5-2 MCS-51单片机能提供几个中断源?几个中断优先级?各个中断的源的优先级怎样确定?在同一优先级中各个中断源的优先级怎样确定?

答: MCS-51单片机能提供五个中断源,两个中断优先级。中断优先级是由片内的中断优先级寄存器IP(特殊功能寄存器)控制的。

PS:串行口中断优先级控制位。PS=1,串行口定义为高优先级中断源;PS=0,串行口定义为低优先级中断源。

PT1:T1中断优先级控制位。PT1=1,定时器/计数器1定义为高优先级中断源;PT1=0,定时器/计数器1定义为低优先级中断源。

PX1:外部中断1中断优先级控制位。PX1=1,外中断1定义为高优先级中断源;PX1=0,外中断1定义为低优先级中断源。

PT0:定时器/计数器0(T0)中断优先级控制位,功能同PT1。

PX0:外部中断0中断优先级控制位,功能同PX1。

在同一优先级中,循环轮流排队。不分级别高低,所有中断源优先级都一律平等,CPU轮流响应各个中断源的中断请求。 5-3 简述MCS-51单片机中断响应过程。

答:CPU在每个机器周期的S5P2时刻采样中断标志,而在下一个机器周期对采样到的中断进行查询。如果在前一个机器周期的S5P2有中断标志,则在查询周期内便会查询到并按优先级高低进行中断处理,中断系统将控制程序转入相应的中断服务程序。

5-4 MCS-51单片机外部中断有哪两种触发方式?如何选择?对外部中断源的触发脉冲或电平有何要求?

答:MCS-51单片机外部中断有:负边沿触发方式和电平触发方式。外部中断1(INT1)触发方式控制位。如果IT1为1,则外中断1为负边沿触发方式(CPU在每个机器周期的S5P2采样INT1脚的输入电平,如果在一个周期中采样到高电平,

19

在下个周期中采样到低电平,则硬件使IE1置1,向CPU请求中断);如果IT1为0,则外中断1为电平触发方式。采用电平触发时,输入到INT1的外部中断源必须保持低电平有效,直到该中断被响应。同时在中断返回前必须使电平变高,否则将会再次产生中断。

5-5 在MCS-51单片机的应用系统中,如果有多个外部中断源,怎样进行处理?

答:当系统有多个中断源时,就可能出现同时有几个中断源申请中断,而CPU在一个时刻只能响应并处理一个中断请求,为此,要进行排队。排队的方式有:

(1)按优先级排队。

(2)循环轮流排队。MCS-51单片机优先级比较简单,只有两级,可以通过优先级控制寄存器设置不同的优先级。当优先级相同时,约定有5个中断源优先级顺序由高到低分别为:外部中断0、定时器/计数器0溢出、外部中断1、定时器/计数器1溢出、串行口中断。

5-6 MCS-51有哪几种扩展外部中断源的方法?各有什么特点? 答:1) 利用定时器作为外部中断使用

特点:把MCS-51的两个定时器/计数器(T0和T1)选择为计数器方式,每当P3.4(T0)或P3.5(T1)引脚上发生负跳变时,T0和T1的计数器加1。可以把P3.4和P3.5引脚作为外部中断请求输入线,而定时器的溢出中断作为外部中断请求标志。

2)采用中断和查询相结合的方法扩充外部中断源

特点:这种方法是把系统中多个外部中断源经过与门连接到一个外部中断输入端(例如INT1),并同时还接到一个I/O口,中断请求由硬件电路产生,而中断源的识别由程序查询来处理,查询顺序决定了中断源的优先级。

5-7 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推

迟对外部 中断请求的响应?

答:响应外部中断的典型时间是至少需要3个完整的机器周期。

1、外部中断INT0和INT1的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被其内部的查询电路查询,未产生了一个中断请求。

2、没有满足响应的条件,CPU没有响应中断。

3、没有由硬件生成一条长调用指令转到相应的服务程序入口。

第6章

6-1 8051单片机内设有几个可编程的定时器/计数器?它们可以有4种工作方式,如何选择和设定?各有什么特点? 答:MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定

20

时器T1

M1 M0:定时器/计数器四种工作方式选择

6-2 8051单片机内的定时/计数器T0、T1工作在模式3时,有何不同?

答:方式3对定时器T0和定时器T1是不相同的。若T1设置为方式3,则停止工作。方式3只适用于T0。 当T0设置为方式3时,将使TL0和TH0成为两个相互独立的8位计数器, TL0利用了T0本身的一些控制方式,它的操作与方式0和方式1类似。而TH0被规定为用作定时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。在这种情况下TH0控制了T1的中断。

6-3 已知单片机时钟振荡频率为6MHz,利用T0定时器,在P1.1引脚上输出连续方波,波形如下:

P1. 100μs 150μs 计算定时常数:

100us 方式0 Tc=FE0E; 方式1 Tc=FFCE; 方式2 Tc=CE 150us 方式0 Tc=FD15; 方式1 Tc=FFB5; 方式2 Tc=B5

方法一:采用方式一,定时器中断。

开始 开始

Y N 初始化T0,设置 20H.0=1? 工作方式 T0赋初值150us T0赋初值100us 开T0中断, 设置标志位 20H.0 P1.1=0 P1.1=1

开定时器T0, P1.1=1 取反20H.0 取反20H.0

等待中断 中断返回 中断返回 主程序流程图: 中断子程序流程图: 21

源程序:

LJMP TINT0 ORG 0100H START:

MOV TMOD,#01H MOV TL0,#0CEH MOV TH0,#0FFH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P1.1 SJMP $ TINT0:

JNB 20H.0,NEXT MOV TL0,#0B5H MOV TH0,#0FFH CLR P1.1 CPL 20H.0 SJMP LAST NEXT:

MOV TL0,#0CEH MOV TH0,#0FFH SETB P1.1 CPL 20H.0 LAST:RETI

方法二: 采用方式2 定时器中断 加延时程序源程序:

LJMP START ORG 000BH LJMP TINT0 ORG 0100H START:

MOV TMOD,#02H MOV TL0,#0CEH MOV TH0,#0CEH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P1.1 SJMP $

22

TIN

CLR TR0 CLR P1.1

LCALL DELAY CPL 20H.0 SETB TR0 SJMP LAST NEXT:

SETB P1.1 CPL 20H.0 LAST:RETI

DELAY: MOV R7,#8

DELAY1:DJNZ R7,DELAY1 RET

Y 初始化T0,设置 工作方式 P1.1=0,关定时器 开T0中断, 设置标志位20H.0 开始 N P1.1=1 调用50us延时 取反20H.0 开定时器T0, P1.1=1 取反20H.0,开定时器 返回 等待中断 返回 中断子程序流程图 主程序流程图

6-4 定时器/计数器的工作方式2有什么特点?适用于什么应用场合?

23

答:方式2把TL0配置成一个可以自动恢复初值的8位计数器,TH0作为常数缓冲器,TH0由软件预置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中。

方式2常用于定时控制,作串行口波特率发生器。

6-5 定时器/计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度是多少? 答:采用方式1可得到最大量程。最大脉宽=2us×65536

6-6 定时器/计数器作为外部中断源使用时,需要如何初始化,以T0为例通过程序说明。 答: 初始化

MOV TMOD,#06H

MOV TL0,#0FFH MOV TH0,#0FEH SETB TR0 SETB EA SETB ET0

第7章习

7-1 波特率的含义是什么?

答:所谓波特率是每秒钟传送信号的数量,单位为波特(Baud )。 7-2 什么是串行异步通信?它有哪些特征? 答:通信时接收器和发送器有各自的时钟。

特征:异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单,缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率 7-3 单片机的串行接口由哪些功能部件组成?各有什么作用? 答:MCS-51单片机串行口主要由两个物理上独立的串行数据缓冲寄存器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。

作用:SBUF为串行口的收发缓冲寄存器,它是可寻址的专用寄存器,其中包含了发送寄存器SBUF (发送)和接收寄存器SBUF (接收),可以实现全双工通信。

7-4 简述串行接口接收和发送数据的过程。

答:发送:发送操作是在TI=0下进行的,此时发送缓冲寄存器“SBUF(发送)”相当于一个并入串出的移位寄存器。CPU 通过指令MOV SBUF,A ,将数据写入“SBUF(发送)”,立即启动发送,将8 位数据以设定波特率从RXD 输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位,并可向CPU 发出中断请求。 接收:接收过程是在RI=0且REN=1条件下启动的,此时接收缓冲寄存器“SBUF (接收)”相当于一个串入并出的移位寄存器。接收时,先置位允许接收控制位REN,此时,RXD为串行数据输入端。当RI=0 和REN=1 同时满足时,开始接收。当接收到第8 位数据时,将数据移入接收缓冲寄存器“SBUF(接收)” ,并由硬件置位RI ,同时向CPU 发出中断请求。CPU 查到RI=1 或响应中断后,通过指令MOV A,SBUF,将“ SBUF (接收)”接收到的数据读入累加器A 。

7-5 8051 串行接口有几种工作方式?有几种帧格式?各工作方式的波特率如何

24

确定?

答:方式0、1、2、3. 8帧 10帧 11帧 三种格式。 波特率:

① 方式0的波特率固定为系统晶振频率的1/12 ,其值为fosc/12 。其中,fosc为系统主机晶振频率。

② 方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:

波特率?(2SMOD/64)?fosc 即:当SMOD =l 时,波特率为fosc/32;当脚SMOD=0时,波特率为fosc/64。

③ 方式1 和方式3 的波特率由定时器Tl 的溢出率控制。因而波特率是可变的。

定时器TI 作为波特率发生器,相应公式如下:

2波特率=(SMOD32)?定时器T1溢出率

T1溢出率=T1计数率/产生溢出所需的周期数

=(fosc/12)/(2k?TC)

式中K:定时器T1的位数,K的值等于8、13、16;

TC:定时器T1的预置初值。

第8章

8-1 MCS-51单片机外部程序存储器和数据存储器地址范围都是0000H ~ FFFFH,在实际使用时如何区分?

答:访问(读)ROM时(程序存储器),通过PSEN引脚有效选中程序存储器,PC指针指向程序存储器的地址指针。访问外部RAM(数据存储器),通过RD、WR引脚有效选中数据存储器(DPTR为外部RAM存储器的地址指针)

8-2 访问8051片外数据存储器MOVX指令采用的是 间接 寻址方式。访问片外程序存储器MOVC指令采用的是 基址加变址 寻址方式。

8-3 MCS-51单片机可以外接64KB的程序存储器和64KB数据存储器。这两种片外存储器地址重叠而不发生总线冲突,主要依靠单片机引脚上的那些信号来区分?

答:同8-1.

8-4 给8031单片机扩展一片2716和6116,请画出系统连接图。 方法一:

地址自定:(其中一种解法如下) 设2716地址:0000H—07FFH 6116地址:0000H—07FFH (不用译码器)

P2.0~P2.2 8051 P0.0~P0.7 地址 锁存器373 A8~A10 A8-A10 25

A0-A7 A0~A7

方法二:采用部分译码 如: 2716的地址0000H—07FFH 6116的地址0800H—08FFH C P2.5 B P2.4 Y0 A 74LS P2.3 138 Y1 +5V P2.2 A8-A10 CE P2.0—8051 地址锁存器 A0~A7 G P0.0~P0.7 2716 ALE D0~D7 OE PSEN RD WR

A8~A10 CE A0~A7 6116 D0~D7 WE OE 26

方法三:采用全译码 如: 2716的地址0000H—07FFH 6116的地址0800H—08FFH C P2.5 B P2.4 Y0 A 74LS P2.3 138 Y1 G +5V P2.6 G2A G2B P2.7 A8~A10 CE P2.0-P2A8-A10 CE 8051 A0~A7 地址锁存器 A0~A7 G P0.0~P0.7 6116 2716 D0~D7 ALE D0~D7 WE OE PSEN OE RD WR

8-5试画出MCS-51系列8051最小应用系统的原理结构图。

答:8051最小应用系统如图所示。这种最小应用系统只要将单片机的时钟电

路和复位电路接上,同时EA接高电平,系统就可以工作。此类应用系统只能用XTAL1 作一些小型的控制单元。其应用特点是: C2 P1

XTAL2 C3 (1)全部I/O口线均可供用户用。 P2

+5V RESET

(2)内部存储器容量有限(只有4KB地址空间)。 P3 R(3)应用系统开发具有特殊性。

8-6 如何构造MCS-51单片机扩展的系统总线?

高八位地址线 P2

地址锁 P0 低八位地址线 存器 8051 G

八位数据线

ALE RD RD控制总线 WR WR PSEN

见课本P129-P130

27

C1

8051 8751

P0

第9章习题参考答案

9-1设计用P1、P2口扩展4×4矩阵键盘、4位共阴极LED硬件电路。 P14 P15

P16 P17

7407×3 +5V 10K×4

LED 8051

C D E F

P13 1K 8 9 A B P12 4 5 6 7 P11 0 1 2 3

P10 P20 P21 P22 P23 P24 P25 P26 P27

9-2已知一单片机应用系统如9-12图所示。试回答问题并编写显示程序,以1秒为间隔,

a b c d e f g dp 28

亮暗相间,显示“88888888”。

9-4 若8255芯片的片选端与8051的P2.7相连,A1A0端与地址总线A1A0相连,现要求8255工作在方式0,A口作为输入,B口作为输出,且将C口的第6位PC5置1,请编写初始化工作程序。 答:

9-5 已知系统的连接如图9-12所示,试编写程序实现下列功能:(1)编写上电显示程序,显示“123456”。(2)编写主程序,功能为:当有键按下(0~7号)时,都显示键号; 无键按下,保持原有显示状态。 答:主程序流程图: 开始

初始化8155

初始化显示缓存区 调用显示子程序

调用键盘子程序

N

有健按下

Y

计算键值送显示缓存

主程序图(与教材略有不同,

P2.6 ALE RD WR P2.7 8051 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 8155 +5V AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 10K×3 请自行分析)

CS gg ALE RD WR IO/M PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 7407×3 +5V 10K×4 +5V 10K×4 a b c d e f g dp

LED + RESET 1K PC3 PC2 PC1 PC0 PA0 PA1 PA2 PA3 硬件电路图(与教材略有不同,请自行分析) 18 19 1A 1B 1C 1D 1E 1F 10 11 12 13 14 15 16 17 8 9 A B C D E F 0 1 2 3 4 5 6 7 29 流程图: 键盘扫描

开始

粗扫

N 有键按下 Y

R5 FFH

R3 4行,R4 8列,R5 FFH,R6 FEH 返回 R6 PA

读PC A Y

N A低4位全为1 R5=R5+1 R6左移一位 R6

A左移 C R5+1=R5

Y CY=0 N

R4-1=0 N 返回 Y

R5+8=R5 R5=FFH

N R3-1=0 返回 Y

R5=FFH

返回

键盘子程序图(与教材略有不同,请自行分析) 另外,显示子程序略

30

方案二:(注意键值的不同) P2.6 CS PB0 ALE PB1 RD ALE PB2 RD PB3 WR WR PB4 P2.7 PB5 IO/M PB6 7407×3 PB7 +5V +5V 1 8051 0K×4 10K×4 P0.0 P0.1 AD0 AD1 P0.2 P0.3 AD2 P0.4 AD3 P0.5 AD4 AD5 p d g f e d c b a

P0.6 P0.7 AD6 AD7 LED

8155 10K×3

+5V + RESET 3 7 B F 13 17 1B 1K PC3 1F 2 6 A E 12 16 1A 1E PC2

1 5 9 D 11 15 19 1D PC1 PC0 0 4 8 C 10 14 18 1C PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7

硬件电路图(与教材略有不同,请自行分析)

开始 粗扫 N 有健按下 Y R5=FF R3=4行,R4=8列,R5=FFH,R6=FEH 返回 PA=R6 读PC赋给A Y N A低四位全为1 R5=R5+1 R5+R3=R5 A左移一位 C R6左移一位 N N CY=0 R4-1=0 Y Y R5=FFH 31

键盘子程序图(与教材略有不同,请自行分析) 另外,显示子程序流程图略

9-6 如何消除键的抖动?对于一般的小键盘来说,为什么不能双键或多键同时按下?

答:方法一:软件延时

方法二:硬件防抖动电路(R-S触发器)

因为单键按下,一个键只代表一个功能,当双键或多建同时按下时,程序视为非法按键。

(除按键不够用,扩展双键或多键同时按下的功能)

9-7什么是LED数码显示器?它有几种接法?如何得到显示段码? 答:①施加电压有电流流过使之发光的二极管。

(一个发光二极管发光时电流约为10~20mA,管压降2.0V左右) 8个LED发光二极管封装在一起,组成一个8段码 ②8段码有两种接法按结构:共阳极,共阴极 按显示:动态显示,静态显示

③以共阴极为例,公共端接地,某段上加上高电平,则亮,否则灭,从而得到相应符号的段码

9-8 什么是D/A 转换器?

答:将数字信号变成模拟信号的器件。 9-9 DAC0832主要特性参数有哪些? 答:课本P162

9-10 DAC0832与8051单片机连接时有哪些控制信号?其作用是什么? 答;控制信号WR1 WR2 IlE CS 作用教材P163

9-13 A/D 转换器DAC0809的编程要点是什么?

答:根据硬件连接电路和ADC0809的时序图,确定每个通道的地址,启动某路得ADC开始转换,利用软件延时,查询或中断的方式,读取转换结果值。 9-16 具有8 位分辨率的A/D转换器,当输入0~5V电压时,其最大量化误差是多少?

答:5/256=0.02V=20mV

32