单片机课后习题答案 下载本文

LJMP START ORG 0100H

START: MOV SP,#60H

MOV DPTR,#7F04H ;计数器的初值 MOV A,#70H MOVX @DPTR,A INC DPTR MOV A,#61H MOVX @DPTR,A

MOV DPTR,#7F00H ;写命令字,启动定时器/计数器工作 MOV A,#0C5H MOVX @DPTR,A SJMP $ END

24.假设8155的TIMER IN引脚输入的脉冲频率为1MHz,编写程序在8155的TIMER OUT引脚输出周期为10ms的方波。 解:

设8155有关寄存器端口地址为: 20H 命令寄存器 24H 定时器低字节 25H 定时器高字节

8155输入时钟的周期=1/1×106=1×10-6 (s),8155定时器/计数器的初值=10×10-3/1×10-6=10000=2710H。由于定时器/计数器按方式1工作,所以写入定时器/计数器的初值为6710H。

在8155的TIMEROUT引脚上输出10mS方波的程序如下:

ORG 1000H

MOV R0,#25H MOV A,#10H MOVX @R0,A DEC R0

MOV A,#67H MOVX @R0,A MOV R0,#20H MOV A,#0F0H MOVX @R0,A SJMP $

25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。 解:

电路连接图如图4.25所示。

29

图4.25 4.25题硬件连接电路图

其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。

程序如下:

ORG 0000H LJMP START ORG 0030H

START:MOV SP, #60H

MOV DPTR, #7FFFH ; 数据指针指向8255A控制口

MOV A, #80H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口

MOV A, #0FH ; 置红色发光二极管亮

LP1: MOVX @DPTR, A ; 置红色发光二极管亮 LCALL DELAY ; 调用1S延时子程序 CPL A ; 置发光二极管亮反色 LJMP LP1 ; 循环执行

DELAY: MOV R7,#8 ; 1S延时子程序

D1:MOV R6,#250 D2:MOV R5,#250 D3:DJNZ R5,D3

DJNZ R6,D2 DJNZ R7,D1 RET END

采用定时器T0方式1中断实现1S定时。 1S=50mS×20次。

T0方式1实现50mS定时,初值=216-50mS/1μS=15536=3CB0H

(1S=20mS×50次,初值=216-20mS/1μS=45536=B1E0H)

ORG 0000H LJMP START ORG 000BH LJMP TT0 ORG 1000 H

START:MOV SP, #60H

MOV DPTR, #7FFFH ; 数据指针指向8255A控制口

MOV A, #80H MOVX @DPTR, A ; 工作方式字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口

MOV A, #0FH ; 置红色发光二极管亮 MOV R2, A

MOVX @DPTR, A ; 置红色发光二极管亮 MOV 30H, #00H ; 次数计数单元初值

MOV TL0, #0B0H ; T0赋初值 MOV TH0, #3CH MOV TMOD, #01H ; 定时器/计数器0工作于方式1 SETB TR0 ; 启动T0 SETB ET0 ; 开T0中断 SETB EA ; 开总允许中断

LP1:SJMP LP1 ; 等待定时器中断 TT0:PUSH ACC PUSH PSW

30

INC 30H MOV A, 30H

CJNE A, #20, LP2 MOV A, R2 CPL A

MOV R2, A

MOVX @DPTR, A MOV 30H, #00H

LP2: MOV TL0, #0B0H ; T0赋初值 MOV TH0, #3CH POP PSW POP ACC SETB TR0

RETI END

26.简述RS-232C, RS-422A及RS-485串行通信接口的特点,画出在双机通信情况下,3个串行通信接口的接口电路。 解:

RS-232C采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的,采用负逻辑,其驱动器负载为3k?~7k?。由于RS-232C发送电平与接收电平的差仅为2~3V,所以其共模抑制能力差,再加上双绞线上的分布电容,因此,RS-232C适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。

RS-422由RS-232发展而来,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。RS-422是一种单机发送、多机接收的单向、平衡的通信总线标准。

RS-485是在RS-422的基础上制定的标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485总线标准。它采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平。具有较高的灵敏度,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。

RS-232的双机通信接口电路如图4.26-1所示。

图4.26-1 4.26题硬件连接电路图

RS-422和RS-485的双机通信接口电路如图4.26-2所示。

图4.26-2 4.26题硬件连接电路图 27.叙述单片机外扩CPLD/FPGA的方法。

31

为保证系统可靠性,单片机与CPLD/FPGA两部分之间功能应设计为相对独立。单片机与CPLD/FPGA的扩展接口方式一般有两种,即总线方式与独立方式:

(1)总线方式。所谓总线方式,是指MCS-51单片机按外部总线时序与CPLD/FPGA进行数据与控制信息通信,其特点是:

① 速度快。

② 节省CPLD芯片的I/O口线。

③ 相对于非总线方式,总线方式连接具有单片机编程简捷,控制可靠等特点。 ④ 在CPLD/FPGA中通过逻辑切换,单片机易于扩展SRAM或ROM。

这种方式有许多实用之处,如利用类似于微处理器系统的DMA的工作方式,首先由CPLD/FPGA与接口的高速A/D等器件进行高速数据采样,并将数据暂存于SRAM中,采样结束后,通过切换,使单片机与SRAM以总线方式进行数据传送,以便发挥单片机强大的数据处理能力。

(2)独立方式。所谓独立方式,是指MCS-51单片机与CPLD/FPGA之间不需要按外部总线时序进行通信,而是各自相对独立地完成自己的通信功能。与总线接口方式不同,几乎所有单片机都能以独立接口方式与CPLD/FPGA进行通信,其通信的时序方式可由所设计的软件自由决定,形式灵活多样。其最大的优点是CPLD/FPGA中的接口逻辑无须遵循单片机内固定总线方式的读/写时序。CPLD/FPGA的逻辑设计与接口和单片机程序设计可以分先后相对独立地完成。事实上,目前许多流行的单片机已无总线工作方式,如89C2051、97C2051、Z84系列、PICI 6C5X系列等。

28. 简述PSD器件的特点,画出8051外扩PSD器件的电路图。

主要特点:

(1)19个可调配置的I/O引脚:PA(PA0~PA7)、PB(PB0~PB7)、PC(PC0~PC2)。可作为单片机I/O端口扩展,锁存地址输出;,漏极开路或CMOS输出。

(2)PSD3xx的数据总线AD0~AD15为16位,通过对PADA、PADB的配置,既可与8位单片机相连工作于8位数据方式,也可与16位单片机相连工作于16位数据方式。

(3)两个可编程阵列PADA和PADB采用可重复编程的COMSEPROM技术制造,用户可编程可擦除,共有40个乘积项和多达16个输入及24个输出。

(4)256k位的UVEPRPM,可配置为32k×8或16k×16两种方式,可为优化地址译码而划分为8个相等的可映射存储块;存储块结构为4k×8或2k×16两种方式;存储块的选择由PADA的输出来决定。90ns的EPROM访问时间(包括输入锁存和PAD地址译码时间)。

(5)16k位的SRAM,可配置为2k×8或1k×1两种方式6;90ns的SRAM访问时间(包括输入锁存和PAD地址译码时间)。

(6)可实现配置加密和PAD译码加密,从而克服了传统电路的缺点,使得电路和程序无法破译。

(7)由PC机上运行PSDsoft软件实现对PSD系列芯片的配置、编程等软件设计。 除此之外,PSD4xxx系列在基本性能增加的基础上,还增加了4MB闪存、2个组合PLD、微控制器总线接口、JTAG接口、ISP、IAP、页寄存器、电源管理单元等。

8051外扩PSD器件的电路:

MCS-51单片机与PSD的接口电路如图4.3.17所示。8051用对外部程序存储器访问信号PSEN访问PSD311中的程序存器,用WR、RD与PSD311的读写端对应相连,ALE信号与PSD311的ALE信号对应相连。8051是8位数据/地址复用方式,其数据/地址线可接与PSD311的AD0~AD7相连,此时PA口作I/O端口。因为地址译码空间为64K,所以PC口用作I/O端口,而不作A16~A18地址的输入,时把PSD311的复位信号设为高有效。

32