单片机原理及应用习题答案 联系客服

发布时间 : 星期四 文章单片机原理及应用习题答案更新完毕开始阅读05f89f130b4e767f5acfcebe

P2.3P2.2P2.1P2.074LS3738031P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ALED7D6D5D4D3D2D1D0GQ7Q6Q5Q4Q3Q2Q1Q0OE2716A10A9A8CE6116A10A9A8CEA7D7A6D6A5D5A4D4A3IC1D3A2D2A1D1A0D0OEA7D7A6D6A5D5A4D4A3IC2D3A2D2A1D1A0D0OEWEEAPSENRDWR习题6.3图 一片2716和一片6116的扩展6.4. 以译码编址方式,把4片RAM 6116组成8KB的数据存储器,请画出逻辑连接图,并说明各芯片地址范围。

解:由于RAM 6116的容量为2KB,所以扩展8KB外部RAM需要4片6116,此处采用译码法进行片选如图所示,各芯片对应的存储地址空间为:

IC0:0000H~07FFH(Y0) IC1:0800H~0FFFH(Y1) IC2:1000H~17FFH(Y2)IC3:1800H~1FFFH(Y3)

74LS139P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.48051P0.3P0.2P0.1P0.0ALEGBAY0Y1Y2Y374LS373IC0IC2IC2IC3D7D6D5D4D3D2D1D0GQ7Q6Q5Q4Q3Q2Q1Q0OEA10D7A9D6A8D5A7D4A6D3A5D2A46116D1A3D0A2RAMCEA1WEA0OEA10D7A9D6A8D5A7D4A6D3A5D2A46116D1A3D0A2RAMCEA1WEA0OEA10D7A9D6A8D5A7D4A6D3A5D2A46116D1A3D0A2RAMCEA1WEA0OEA10D7A9D6A8D5A7D4A6D3A5D2A46116D1A3D0A2RAMCEA1WEA0OERDWR习题6.4图 用译码法扩展8KB RAM电路习题7

7.1.8031与8255A能否构成完整的单片机应用系统?为什么? 答:不能,因为8031无内部程序存储器, 必须外扩一个程序存储器。

7.2.用8255A芯片扩展单片机的I/O口,8255的A口作输入,A口的每一位接一个开关,用B口作为输出,输出的每一位接一个发光二极管。现要求某个开关接1时,相应位上的发光二极管就亮(输出低电

平0)。试写出相应的程序。设8255的A口地址为70H,B口地址为71H,C口地址为72H,控制口地址为73H。

解:参考程序如下:

START:MOV R1,#73H

;置A口输入,B口、C口输出,方式0

MOV A,#90H

MOVX @R1,A MOV R0,#70H

MOVX A,@R0 CPL A INC R0

MOVX @R0,A AJMP START

;从A口读入

;B口输出 ;循环

…10k×8K0+5V……P0D0~D7ALEGCEQ0Q1Q7D0~D7A0A1CS8051RDWRRSTPA0PA1PA2PA3PA4PA5PA6PA78255APB0PB1PB2RDPB3WRPB4RESETPB5PB6PB7K71200Ω×818051单片机与8255A的连接7.3.试用8155芯片扩展8031应用系统的RAM、并行I/O口和定时器/计数器,设计接口电路,确定口地址,并编写初始化程序。

解:8155与8031的接口电路如图所示, 8155的CE接8031的P2.0,8155的IO/M端接8031

的P2.1。

⑴ 当P2.1=0,P2.0=0时锁存的地址指向8155的RAM,其地址范围为0000H~00FFH对于8031来说,8155的RAM是外部RAM,不需要初始化编程,只要使用MOVX指令即可实现。

⑵ 当P2.1=1,P2.0=0时锁存的地址指向I/O口,各端口的地址分配为(设未用的位为低电平)

AD7P0.7PA命令状态寄存器:0200H AD6P0.6A口:02001H

B口:0202H C口:0203H

计数器的低8位TL:0204H 计数器的高8位TH:0205H

初始化编程举例如下:设要求选择8155的A口为基本输入口,B口为基本输出口,C口为基本输入口,并立即启动计数器工作,则应写的控制字为C2H。格式如下:

MOV DPTR,#0200H MOV A,#0C2H MOVX @DPTR,A

习题7.3图 8155与8031的接口电路

RST80518031 P0.5P0.4P0.3P0.2P0.1P0.0P2.1P2.0ALERDWRAD5AD4AD3AD2AD1AD0PBPC…+5V8155IO/MCEALERDWRVccTIMERINRESETTIMEROUTVss7.4.已知8031外部扩展了4KB RAM,所占地址范围是0000H~0FFFH。扩展一片8155,其内部RAM和I/O口地址分配见本章中的8155与8031的连接。试编写一程序,要求:

(1)8155 A口中输入数据分别存入外部RAM 20H单元和8031内部RAM 30H单元;

(2)把8155中RAM FC40H单元的内容从B口输出。 解: MOV DPTR,#0FEF8H

MOV A,#0C2H ;写控制字,A口为输入,B口为输出

MOVX @DPTR,A MOV DPTR,#0FEF9H MOVX A,@DPTR ;从A口输入

MOV R0,#20H MOVX @R0,A ;存入外部RAM20H单元 MOV 30H,A ;存入内部RAM30H单元 MOV DPTR,#0FC40H

MOVX A,@DPTR MOV DPTR,#0FEFAH MOVX @DPTR,A

;8155中RAM FC40H单元的内容从B口输出 RET

END

7.5.试将8031单片机外接一片EPROM 27128和一片8155 RAM/IO扩展芯片组成一个应用系统: (1)画出扩展系统的电路连接图,并指出程序存储器、扩展数据存储器和I/O端口的地址范围。 (2)编写程序,将8031内部RAM以DATA1开始的数据区中共16个数与外部RAM以DATA2开始的数据区中16个数据进行交换。

解:(1)27128是16KB的EPROM,8155P2.5~P2.0A13是有3个并行I/O口并带有256字节静态RAMP0D7Q7A8A7和一个14位定时器/计数器的可编程接口芯D0373Q0ALEGEA027128片,扩展系统硬件连接图如图题7.5图所示。EPROM27128程序存储器地址范围为0000H~3FFFH。PSENOECE8155的RAM地址范围为0000H~00FFH,各8031端口地址为:

AD7PA命令状态寄存器:4000H

AD08155ALEPBA口:40001H

EARDRDPCWRWR

B口:4002H P2.6IO/MTINC口:4003H

P2.7CETOUT计数器的低8位TL:4004H 计数器的高8位TH:4005H 题7.5图

(2)数据块交换程序:

MOV R0,#DATA1 ;内部RAM指针 MOV DPTR,#DATA2;外部RAM指针 MOV

R1,#10H ;数据长度

LOOP: MOVX A,@DPTR ;取外部RAM一个字节 MOV B,A

;暂存

MOV A,@R0 ;取内部RAM一个字节 MOVX @DPTR,A ;写到外部RAM中

MOV @R0 ,B ;将外部RAM字节数写入内部RAM中 INC R0

;修改地址指针

INC DPTR

DJNZ

R1,LOOP

;未完,则继续

RET END

MOV MOV MOV MOVX MOV MOV MOVX INC MOV MOVX INC MOVX

P2,#83H R0,#0FFH A,#80H @R0,A R0,#0FCH A,#88H @R0,A R0 A,#83H @R0,A R0 @R0,A

;送字母“C”的字段码到PC口 ;送字母“b”的字段码到PB口 ;送字母“A”的字段码到PA口

;8255A初始化(PA、PB、PC均为方式0输出) ;指向8255A的PA口

;P2和R0组成16位地址指针指向8255A控制口

7.6.利用图7.18所示静态显示电路,要求从左到右显示“AbC”试编程实现。 解: DISP:

RET

7.7.利用图7.19所示动态显示电路,要求从左到右显示“good by”(g可用9代替),试编写实现。 解:根据图7.19共阴结构,LED显示器左到右显示“good by”的字段段和字位码如下表示:

表7.7 8位动态显示状态及其字段码、字位码 字段码 字位码 显示的状态 6FH 7FH 9 5CH BFH O 5CH DFH O 5EH EFH d 00H F7H 暗 7CH FBH b 2EH FDH y 00H FEH 暗 由于字段码口和字位码口的驱动器都是反向器,因此8155的PA口和PB口送出的数据应为其反码。LED的显示是从最左位开始,逐位向右,则字位码的变化是依此右移。

设8155的命令状态口、PA口、PB口和PC口的地址为8B00H~8B03H,R1作为显示缓冲区的地址指针,R2存放LED的字位码。

显示程序如下: DIPP:

MOV DPTR,#8B00H MOV A,#03H

MOVX @DPTR,A ;8155初始化 MOV R1,#00H MOV A,R2

;字段码在TAB中位置指针赋初值

MOV R2,#80H ;送已取反的字位码初值

LOOP: MOV DPTR,#8B01H;指向8155PA口

MOVX @DPTR,A ;送字位码 INC DPTR

;指向8155PB口

;调整偏离量 ;字段码取反

;查表得字段码

MOV A,R1 ADD A,#0EH CPL A

MOVC A,@A+PC