并口是单片机并口下载的内部资源还是外部资源

&>&51单片机并行口及其应用.ppt
51单片机并行口及其应用.ppt
上传大小:2.46MB
51单片机并行口及其应用.pptMCS51单片机内部并行口及应用
综合评分:0
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
51单片机并行口及其应用.ppt
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
51单片机并行口及其应用.ppt您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
51单片机C语言应用与开发(第3章).ppt 43页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
3.3 定时器/计数器
3.3.3 定时器/计时器的初始化 例3-2 假定某单片机系统的时钟频率为11.0592MHz,要利用该单片机的定时器0产生50ms的定时时间,请计算定时器初值,并确定定时器0的工作方式。 第3章
51单片机的内部资源
定时时间=C×T=50×10-3
T=12×1/(11.)
C=50×10-3×11.=0
由于8位、13位定时器都没这么大的数,只能用16位定时器,因此,定时器只能工作于方式1。
TC=M-C==C00 3.4 串行通信
在计算机系统中,CPU和外部有2种通信方式:并行通信和串行通信。所谓串行通信,就是数据一位一位的传送。8051单片机内部有一个全双工的串行通信口,可接收数据也可发送数据。
51单片机的内部资源 3.4 串行通信
3.4.1 串行接口的工作方式
8051单片机的串行接口共有4种工作方式,工作方式的选择由串行口控制寄存器SCON中的SMO、SM1来进行设置。 1.方式0
方式0是同步移位寄存器输入/输出方式,主要用于扩展并行I/O接口。移位数据的发送和接收以8位为一组,低位在前,高位在后。方式0实际上是把串行口变为并行口使用,实现数据的移位输入或输出。 第3章
51单片机的内部资源 3.4 串行通信
3.4.1 串行接口的工作方式
方式1是异步通信方式,TXD为数据发送引脚,RXD为数据接收引脚,其数据帧依次为起始位1位、数据位8位、停止位1位,共10位数据。
3.方式2与方式3
方式2与方式3是串行通信方式,其数据帧依次为起始位1位、数据位8位、可编程位1位、停止位1位,共11位数据。不同的仅在于波特率。 第3章
51单片机的内部资源 3.4 串行通信
3.4.2 串行接口控制寄存器
1.串行口控制寄存器(SCON)
SCON是一个可寻址的专用寄存器,用于串行数据通信的控制,其格式如下所示: 第3章
51单片机的内部资源 3.4 串行通信
3.4.2 串行接口控制寄存器
2.电源控制寄存器(PCON)
PCON主要是为了80C51的电源控制而设置的专用寄存器,不能进行位寻址,其最高位SMOD与串行接口工作有关,其余各位用于电源管理。SMOD是串行接口波特率的倍增位,在串行接口方式1、2、3下,波特率与SMOD有关。
3.中断允许寄存器(IE)
51单片机的内部资源 3.4 串行通信
3.4.3 串行接口应用
51系列单片机的工作方式0是同步操作。因此可以通过外接串入-并出或者并入-串出器件实现I/O口的扩展,常用的器件为移位寄存器。
串行接口方式0的应用有两种,即串行接口变为串入-并出的输出口和串行接口变为并入-串出的输入口。串行接口方式0的数据输出可以采用中断方式、查询方式,两种方式都要借助于TI标志。
51单片机的内部资源 3.4 串行通信
3.4.3 串行接口应用
例3-3 利用AT89C51的串行口设计4位静态数码管显器,要求4位显示器上交替显示“ABCD”和“1234”,显示间隔时间为1S,电路图如图4-4所示。
解:(1) 利用查询方式处理的程序代码如下:
51单片机的内部资源 3.4 串行通信
3.4.3 串行接口应用
#define unchar unsigned char
sbit P3_3=P3^3;
char code tab[ ]={0x88,0x83,0xC6,0xA1,
0xF9,0xA4,0xB0,0x99};
//ABCD与1234的字型码
void timer(uchar);
{ uchar i,a=3;
for(;;)
P3_3=1; 第3章
51单片机的内部资源 3.4 串行通信
51单片机的内部资源 3.4 串行通信
51单片机的内部资源 3.4 串行通信 (2) 利用中断方式进行处理的程序代码如下
#define uchar unsigned char
sbit P3_3=P3^3;uchar a=3;
char code tab[]
正在加载中,请稍后...《单片机原理及应用》思考题与习题参考答案 单片机原理及应用》绪论0.1 解: 单片微型计算机(Single-Chip Microcomputer) ,简称单片机。就是将微处理器(CPU) 、 存储器(存放程序或数据的 ROM 和 RAM) 、总线、定时器/计数器、输入/输出接口(I/O 口) 和其他多种功能器件集成在一块芯片上的微型计算机。 单片机的主要特点有: (1)可靠性高(2)便于扩展(3)控制功能强(4)低电压、低功 耗(5)片内存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广 泛、易于产品化等特点 0.2 解: 当前单片机的主要产品有:Intel 的 8051 系列、Motorola 的 M68HC 系列、Philips(飞 利浦)的 80C51 系列、台湾义隆公司(EMC)EM78 系列单片机、美国 Microchip 公司的 PIC 单片机系列、 Atmel 公司的 AT90 系列单片机 Ubicom 公司的 Scenix 单片机、 日本爱普生科技 公司的 Epson 单片机、Zilog 公司的 Z86 系列、美国国家半导体公司 NSCOP8 单片机、台湾 Winbond(华邦)的 W78 系列等。 MCS-51 为主流产品。 MSP430 的功能较强。 是一种特低功耗的 Flash 微控制器。 主要用于三表及超低功耗场合。 EM78 系列单片机采用高速 CMOS 工艺制造,低功耗设计为低功耗产品,价格较低。具 有三个中断源、 R-OPTION 功能、 唤醒功能、 I/O 多功能 I/O 口等。 具有优越的数据处理性能, 采用 RISC 结构设计。 Microship 单片机是市场份额增长较快的单片机。它的主要产品是 PIC 系列 8 位单片机。 CPU 采用 RISC 结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。 Motorola 是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特 点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 AVR 是增强 RISC 内载 Flash 的单片机,单片机内部 32 个寄存器全部与 ALU 直接连接, 突破瓶颈限制,每 1MHz 可实现 1MIPS 的处理能力,为高速、低功耗产品。端口有较强的负 载能力,可以直接驱动 LED。支持 ISP、IAP,I/O 口驱动能力较强。 Scenix 单片机除传统的 I/O 功能模块如并行 I/O、UART、SPI、I2C、A/D、PWM、PLL、 DTMF 等,增加了新的 I/O 模块(如 USB、CAN、J1850、虚拟 I/O 等) 。其特点是双时钟设 置,指令运行速度较快,具有虚拟外设功能,柔性化 I/O 端口,所有的 I/O 端口都可单独编 程设定。 Epson 单片机主要为日本爱普生科技公司生产的 LCD 配套。其单片机的特点是 LCD 驱 动部分性能较好,低电压、低功耗。 Z8 单片机是 Zilog 公司的主要产品,采用多累加器结构,有较强的中断处理能力。价格 低。 COP8 单片机片内集成了 16 位 A/D,内部使用了抗电磁干扰 EMI(Electro Magnetic Interference)电路,在看门狗电路及单片机的唤醒方式上都有独到之处。程序加密控制功能 也比较好。 W78 系列与标准的 8051 兼容,W77 系列为增强型 51 系列,对 8051 的时序作了改进, 在同样时钟频率下,速度提高 2.5 倍。Flash ROM 容量从 4KB 到 64KB,有 ISP 功能。 0.3 解: (1)第一阶段( 年) :制造工艺落后,集成度低,而且采用了双片形式。典 型的代表产品有 Fairchild 公司的 F8 系列。其特点是:片内只包括了 8 位 CPU,64B 的 RAM 和两个并行口,需要外加一块 3851 芯片(内部具有 1KB 的 ROM、定时器/计数器和两个并行 口)才能组成一台完整的单片机。 (2) 第二阶段 ( 年) 在单片芯片内集成 CPU、 : 并行口、 定时器/计数器、 RAM 和 ROM 等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有 Intel 公司的 MCS-48 系列。其特点是,片内集成有 8 位的 CPU,1KB 或 2KB 的 ROM,64B 或 128B 的 RAM,只有并行接口,无串行接口,有 1 个 8 位的定时器/计数器,中断源有 2 个。片外寻址 范围为 4KB,芯片引脚为 40 个。 (3)第三阶段( 年) 8 位单片机成熟的阶段。其存储容量和寻址范围增大, : 而且中断源、并行 I/O 口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串 行通信接口。在指令系统方面增设了乘除法、位操作和比较指令。其特点是,片内包括了 8 位的 CPU,4KB 或 8KB 的 ROM,128B 或 256B 的 RAM,具有串/并行接口,2 个或 3 个 16 位的定时器/计数器,有 5~7 个中断源。片外寻址范围可达 64KB,芯片引脚为 40 个。代表 产品有 Intel 公司的 MCS-51 系列,Motorola 公司的 MC6805 系列,TI 公司的 TMS7000 系列, Zilog 公司的 Z8 系列等。 (4)第四阶段(1983 年至今) 16 位单片机和 8 位高性能单片机并行发展的时代。16 : 位机的工艺先进,集成度高,内部功能强,运算速度快,而且允许用户采用面向工业控制的 专用语言,其特点是,片内包括了 16 位的 CPU,8KB 的 ROM,232B 的 RAM,具有串/并 行接口,4 个 16 位的定时器/计数器,有 8 个中断源,具有看门狗(Watchdog) ,总线控制部 件, 增加了 D/A 和 A/D 转换电路, 片外寻址范围可达 64KB。 代表产品有 Intel 公司的 MCS-96 系列,Motorola 公司的 MC68HC16 系列,TI 公司的 TMS9900 系列,NEC 公司的 783××系 列和 NS 公司的 HPC16040 等。然而,由于 16 位单片机价格比较贵,销售量不大,大量应用 领域需要的是高性能、大容量和多功能的新型 8 位单片机。 近年来出现的 32 位单片机,是单片机的顶级产品,具有较高的运算速度。代表产品有 Motorola 公司的 M68300 系列和 Hitachi(日立)公司的 SH 系列、ARM 等。 0.4 解: 面对工控领域对象,嵌入到工控应用系统中,实现嵌入式应用的计算机称之为嵌入式计 算机系统,简称嵌入式系统。单片机从体系结构到指令系统都是按照嵌入式应用特点专门设 计的,能最好的满足对控制对象、应用系统的嵌入、现场的可靠运行以及非凡的控制品质要 求。 0.5 解: 选择原则: 选择原则:主要从指令结构、运行速度、程序存储方式和功能等几个方面选择单片机。 MCS-51 为主流产品。 Motorola 是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声 低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 Microship 单片机是市场份额增长较快的单片机。它的主要产品是 PIC 系列 8 位单片机。 其特点是运行速度快,低价位,适用于量大、档次低、价格敏感的产品。 美国德州仪器(TI)公司生产的 MSP430 系列单片机是一种特低功耗的 Flash 微控制器。 主要用于三表及超低功耗场合。 在嵌入式系统低端的单片机领域,Intel 公司的 MCS-51 形成了既具有经典性又不乏生命 力的一个单片机系列。许多半导体厂家、电器公司以 MCS-51 系列中的 8051 为基核,推出了 许多兼容性的 CHMOS 单片机----80C51 系列。 此外,还有 Zilog、EM78、Senix、NEC、Epson、NS、三星、富士通、华邦、Philips、 ARM 等单片机。第1章1.1 解: MCS-51 为主流产品。 MSP430 的功能较强。 是一种特低功耗的 Flash 微控制器。 主要用于三表及超低功耗场合。 EM78 系列单片机采用高速 CMOS 工艺制造,低功耗设计为低功耗产品,价格较低。具 有三个中断源、 R-OPTION 功能、 唤醒功能、 I/O 多功能 I/O 口等。 具有优越的数据处理性能, 采用 RISC 结构设计。 PIC 系列 8 位单片机是 Microship 公司的产品。CPU 采用 RISC 结构,运行速度快,价格 低适于用量大、档次低、价格敏感的产品。 Motorola 是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特 点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 AVR 是增强 RISC 内载 Flash 的单片机,单片机内部 32 个寄存器全部与 ALU 直接连接, 突破瓶颈限制,每 1MHz 可实现 1MIPS 的处理能力,为高速、低功耗产品。端口有较强的负 载能力,可以直接驱动 LED。支持 ISP、IAP,I/O 口驱动能力较强。 1.2 解: MCS-51 单片机在片内集成了中央处理器(CPU) 、程序存储器(ROM) 、数据存储器 (RAM) 、定时器/计数器、并行 I/O 接口、串行 I/O 接口和中断系统等几大单元。 CPU 是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻 辑运算,其操作顺序在控制器控制下进行。控制器是由程序计数器 PC(Program Counter) 、 指令寄存器 IR(Instruction Register) 、指令译码器 ID(Instruction Decoder) 、定时控制逻辑和 振荡器 OSC 等电路组成。CPU 根据 PC 中的地址将欲执行指令的指令码从存储器中取出,存 放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下对 ID 译码后的信号 进行分时,以产生执行本条指令所需的全部信号。 程序存储器(ROM)用于存储程序、常数、表格等。 数据存储器(RAM)用于存储数据。 8051 内部有两个 16 位可编程序的定时器/计数器 T0 和 T1,均为二进制加 1 计数器。可 用于定时和对外部输入脉冲的计数。 8051 的中断系统主要由中断允许控制器 IE 和中断优先级控制器 IP 等电路组成。可实现 对 5 个中断源的管理。8051 的中断系统主要由中断允许控制器 IE 和中断优先级控制器 IP 等 电路组成。其中,IE 用于控制 5 个中断源中哪些中断请求被允许向 CPU 提出,哪些中断源 的中断请求被禁止;IP 用于控制 5 个中断源的中断请求的优先权级别。 I/O 接口是 MCS-51 单片机对外部实现控制和信息交换的必经之路,用于信息传送过程 中的速度匹配和增加它的负载能力。可分为串行和并行 I/O 接口。 1.3 解: 80C51 单片机有 4 个 I/O 端口,每个端口都是 8 位双向口,共占 32 根引脚。每个端口都 包括一个锁存器(即专用寄存器 P0~P3) 、一个输入驱动器和输入缓冲器。通常把 4 个端口 称为 P0~P3。 在无片外扩展的存储器的系统中, 4 个端口的每一位都可以作为双向通用 I/O 这 端口使用。在具有片外扩展存储器的系统中,P2 口作为高 8 位地址线,P0 口分时作为低 8 位地址线和双向数据总线。 1.4 解: 控制线一共有 6 条: (1)ALE/ PROG :地址锁存允许/编程线,配合 P0 口引脚的第二功能使用。在访问片外存储 器时, 8051CPU在 P0.7~P0.0 引脚上输出片外存储器低8位地址的同时在 ALE/ PROG 上输 出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空 出 P0.7~P0.0 引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051 自动在 ALE/ PROG 上输出频率为 fosc/6 的脉冲序列。 该脉冲序列可用作外部时钟源或作为定 时脉冲源使用。 (2)EA /Vpp:允许访问片外存储器/编程电源线,可以控制 8051 使用片内ROM还是使用 片外ROM。若 EA =0,则允许使用片内ROM;若 EA =1则允许使用片外ROM。PSEN : (3 ) 片外ROM选通线, 在执行访问片外ROM的指令MOVC时, 8051 自动在 PSEN上产生一个负脉冲,用于为片外ROM芯片的选通。其他情况下 PSEN 线均为高电平封锁状 态。 (4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。 1.5解: 5 指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。 程序:一系列指令的有序集合称为程序。 程序在计算机中是按序执行的,CPU 通过程序计数器 PC 控制程序的执行顺序,一般情 况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处 执行。CPU 根据程序计数器 PC 中的地址将欲执行指令的指令码从存储器中取出,存放在 IR 中,ID 对 IR 中的指令码进行译码,定时控制逻辑在 OSC 配合下对 ID 译码后的信号进行分 时,产生执行本条指令所需的全部信号,完成本条指令的执行。 1.6 解: (1)80C51在结构上的特点 80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为 Harvard 结构。 (2)在物理和逻辑上的地址空间 存储器上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、 片外数据存储器。 在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片 内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 (3)访问格式 访问片内RAM采用MOV格式 访问片外RAM采用MOVX格式 1.7 解: 堆栈是一个特殊的存储区。 主要功能是暂时存放数据和地址, 通常用来保护断点和现场。 它的特点是按照“先进后出”的存取数据。堆栈指针 SP 是一个 8 位寄存器,是用于指示堆 栈的栈顶地址的寄存器,它决定了堆栈在内部 RAM 中的物理位置。 1.8 解: 8051有 21 个特殊功能寄存器(PC 除外) ,它们被离散地分布在内部 RAM 的 80H~ FFH 地址单元中, 共占据了 128 个存储单元, 其中有 83 位可以位寻址。 特殊功能寄存器 SFR 的分布和功能见教材 P18 表 1.2.2。 1.9 解: 8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都 是8位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展 存储器的系统中,这四个端口的每一位都可以作为双向通用I/O端口使用。在作为一般的 通用I/O输入时,都必须先向锁存器写入“1” ,使输出驱动场效应管FET截止,以免误 读数据。各自特点如下: (1)P0 口为双向 8 位三态 I/O 口,它既可作为通用 I/O 口,又可作为外部扩展时的数据 总线及低 8 位地址总线的分时复用口。作为通用 I/O 口时,输出数据可以得到锁存,不需外 接专用锁存器; 输入数据可以得到缓冲, 增加了数据输入的可靠性。 每个引脚可驱动 8 个 TTL 负载。 (2)P1 口为 8 位准双向 I/O 口,内部具有上拉电阻,一般作通用 I/O 口使用,它的每一 位都可以分别定义为输入线或输出线,作为输入时,锁存器必须置 1。每个引脚可驱动 4 个 TTL 负载。 (3)P2 口为 8 位准双向 I/O 口,内部具有上拉电阻,可直接连接外部 I/O 设备。它与地 址总线高 8 位复用,可驱动 4 个 TTL 负载。一般作为外部扩展时的高 8 位地址总线使用。 (4)P3 口为 8 位准双向 I/O 口,内部具有上拉电阻,它是双功能复用口,每个引脚可 驱动 4 个 TTL 负载。作为通用 I/O 口时,功能与 P1 口相同,常用第二功能。作为第二功能 使用时,各位的作用见教材 P23 表 1.2.5 所示。 1.10 解: 数据指针 DPTR 是 16 位的专用寄存器,它由两个 8 位的寄存器 DPH(高 8 位)和 DPL (低 8 位)组成。专门用来寄存片外 RAM 及扩展 I/O 口进行数据存取时的地址。编程时, 既可以按 16 位寄存器来使用,也可以按两个 8 位寄存器来使用(即高位字节寄存器 DPH 和 低位字节寄存器 DPL) 。 DPTR 主要是用来保存 16 位地址,当对 64KB 外部数据存储器寻址时,可作为间址寄存 器使用, 1.11 解:程序状态字 PSW 是 8 位寄存器,用于存放程序运行的状态信息,PSW 中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加 以改变。各个标志位的意义如下:PSW.7(Cy) :进位标志位。 PSW.6(AC) :辅助进位标志位,又称为半进位标志位。 PSW.5(F0) :用户标志位。 PSW.4、PSW.3(RS1 和 RS0) :寄存器组选择位。 PSW.2(OV) :溢出标志位。 PSW.1(空缺位) :此位未定义。 PSW.0(P) :奇偶校验位。 1.12 解: 开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CP U通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。 1.13 解: 8051 片内数据存储器有256B寻址空间。存储器空间的地址范围为:00H―-FFH 在这个存储器空间又可分为: 基本的数据存储区:00H―-7FH,可划分为工作寄存器、位寻址区、堆栈与数据 缓冲区。 SFR空间:80H――FFH 1.14 解: 片内RAM低128单元划分及主要功能如下: (1)工作寄存器组(00H――1FH) 这是一个用寄存器直接寻址的区域,内部数据RAM区的0―31,共32个单元。它 是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0――R7。 (2)位寻址区(20H――2FH) 16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实 现位寻址。主要用于位寻址。 (3)堆栈与数据缓冲区(30H――7FH) 用于设置堆栈、存储数据。 1.15 解: 程序存储器通过 EA /Vpp 引脚选择。若 EA =0,则允许使用片内ROM;若 EA =1则 允许使用片外ROM。 数据存储器通过指令区分:访问片内RAM采用MOV指令,访问片外RAM采用MO VX指令。 1.16 解: 时钟周期又称为振荡周期,由单片机内部振荡电路 OSC 产生,定义为 OSC 时钟频率的 倒数。时钟周期又称为节拍(用 P 表示) 。时钟周期是时序中的最小单位。一个状态有两个 节拍, 机器周期定义为实现特定功能所需的时间。MCS-51 的机器周期由 12 个时钟周期构成。 执行一条指令所需要的时间称为指令周期,指令周期是时序中的最大单位。由于机器执 行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不尽相同。MCS-51 的指 令可能包括 1~4 个不等的机器周期。 当 MCS-51 的主频为 12MHz 时,一个机器周期为 1?s。执行一条指令需要的最长时间为 4?s。 1.17 解: 8051 单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它 一些特殊功能寄存器有影响,它们的复位状态如下: 寄存器 PC ACC B PSW SP DPTR P0―P3 TMOD 复位时内容 0000H 00H 00H 00H 07H 0000H FFH ××000000B 寄存器 TCON TL0 TH0 TH1 TL1 SCON SBUF PCON 复位时内容 0×H 00H 00H 00H 00H 不确定 0×××0000B单片机复位方法有:上电自动复位,按键电平复位和外部脉冲三种方式。第2章2.1 解: 8051 的指令系统由 111 条指令组成。如果按字节数分类,有 49 条单字节指令 46 条双字 节指令和 16 条三字节指令,以单字节指令为主;如果按照指令执行时间分类,有 64 条单周 期指令、45 条双周期指令和2条四周期指令,以单周期指令为主。 8051 的指令系统具有以下特点: (1)存储效率高、执行速度快,可以进行直接地址到直接地址的数据传送,能把一个并行 I/O 口中的内容传送到内部 RAM 单元中而不必经过累加器 A 或工作寄存器 Rn。这样可以大 大提高传送速度和缓解累加器 A 的瓶颈效应。 (2) 用变址寻址方式访问程序存储器中的表格, 将程序存储器单元中的固定常数或表格字 节内容传送到累加器 A 中。这为编成翻译算法提供了方便。 (3)在算术运算指令中设有乘法和除法指令 (4)指令系统中一些对 I/O 口进行操作的指令具有“读――修改――写”的功能。这一功 能指:在执行读锁存器的指令时, CPU 首先完成将锁存器的值通过缓冲器 BUF2 度入内部, 进 行修改、改变,然后重新写到锁存器中去。这种类型指令包含所有的逻辑操作和位操作指令。 (5)8051 单片机内部有一个布尔处理器,对为地址空间具有丰富的位操作指令。布尔操 作类指令有 17 条,包括布尔传送指令、布尔状态控制指令、布尔逻辑操作指令、布尔条件转 移指令。 2.2 解: MCS-51 单片机指令系统按功能可分为 5 类: (1)数据传送指令 (2)算术运算指令 (3)逻辑运算和移位指令 (4)控制转移指令 (5)位操作指令 MCS-51 单片机的指令系统提供了七种寻址方式,其对应的寻址范围如下表: 寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址 R0~R7;A、B、DPTR、C @R0、@R1、SP @R0、@R1、@DPTR @A+PC、@A+DPTR PC+偏移量 使用的变量 寻址范围 程序存储器 内部 RAM 低 128 个字节; 特殊功能寄存器 SFR 内部 RAM、堆栈指针 SP 外部 RAM 程序存储器 程序存储器 内部 RAM 低 128B 位寻址区 可位寻址的特殊功能寄存器位2.3 解: 访问特殊功能寄存器,应采用直接寻址、位寻址方式。 访问外部数据存储器,应采用寄存器间接寻址方式。 在 0~255B 范围内,可用寄存器 R0、R1 间接寻址: MOVX A,@R0 或 MOVX A,@R1 MOVX @R0,A 或 MOVX @R1,A 在 0~64KB 范围内,可用 16 位寄存器 DPTR 间接寻址: MOVX A,@DPTR MOVX @DPTR,A 2.4 解: 这条指令是在进行 BCD 码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对 BCD 码的加法运算结果自动进行修正的,使其仍为 BCD 码表达形式。 在计算机中, 遇到十进制调整指令时, 中间结果的修正是由 ALU 硬件中的十进制修正电 路自动进行的。 用户不必考虑何时该加 “6” 使用时只需在上述加法指令后面紧跟一条 , “DA A”指令即可。 2.5 解: 虽然内部 RAM 位寻址区的位地址范围 00H~7FH 与低 128 个单元的单元地址范围 00H~ 7FH 形式完全相同,但是在应用中可以通过指令的类型区分单元地址和位地址。 位寻址的操作只适用于下列位指令,而直接寻址操作对这些指令是无效的。 CLR bit MOV C,bit MOV bit,C SETB bit ANLC,/bit JNB bit,rel CPL bit JB bit,rel ANL C,bit 2.6 解: 在实际应用中,可从寻址范围和指令长度两个方面来选择长跳转指令 LJMP 和短跳转指 令 AJMP、长调用指令 LCALL 和短调用指令 ACALL。 长跳转 LJMP 在 64KB 范围内转移, 而短跳转 AJMP 只能在 2KB 空间转移。 长调用 LCALL 调用位于 64KB 程序空间的子程序, 而短调用 ACALL 调用位于 2KB 程序空间范围的子程序。 AJMP、ACALL 指令代码长度为2个字节;LJMP、LCALL 指令代码长度为3个字节。 2.7 解: 指令的转移范围不同。 SJMP 是 256B 范围内的相对转移指令, AJMP 是 2KB 范围内的无条件短跳转指令, LJMP 是 64KB 范围内的无条件长跳转指令。 2.8 解: MOVC A , @A+DPTR:访问外部程序存储器指令,功能为程序存储器内容送累加 器。 MOVX A , @DPTR:访问外部数据存储器指令,功能为外部数据存储器内容送累加器 指令. 2.9 解: 使用@A+DPTR 基址变址寻址时,DPTR 为常数且是表格的首地址,A 为从表格首址到 被访问字节地址的偏移量。 使用@A+PC 基址变址寻址时,PC 仍是下条指令首地址,而 A 则是从下条指令首地址到 常数表格中的被访问字节的偏移量。 2.10 解: 结果为: (A)=30H (R0)=50H (50H)=00H (51H)=30H 2.11 解: 结果为: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH DPTR=2410H SP=60H 2.12 解: 指令 源操作数的寻址方式 执行指令后的结果 MOV A,40H 直接寻址 (A)=50H MOV R0,A 寄存器寻址 (R0)=50H MOV P1,#80H 立即寻址 (P1)=80H MOV @R0,20H 寄存器间接寻址 (50H)=30H MOV DPTR,#2000H 立即寻址 (DPTR)=2000H MOV 40H,30H 直接寻址 (40H)=40H MOV R0,30H 直接寻址 (R0)=40H MOV D0H,R0 直接寻址 (D0H)=40H MOV 10H,#10H 立即寻址 (10H)=10H MOV A,@R0 寄存器间接寻址 (A)=50H MOV P2,P1 寄存器寻址 (P2)=80H 2.13 解: (1)R1 的内容传送到 R0 ; MOV A, R1 MOV R0, A (2)片外 RAM 20H 单元内容送 R0 ; MOV DPTR, #0020H MOVX A, @DPTR MOV R0, A (3)片外 RAM 20H 单元的内容送片内 RAM 20H 单元; MOV DPTR, #0020H MOVX A, @DPTR MOV 20H, A (4)片外 RAM 1000H 单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, @DPTR MOV 20H, A (5)ROM 2000H 单元的内容送 R0 单元; MOV A, #00H MOV DPTR, #2000H MOVC A,@A+DPTR MOV R0H, A (6)ROM 2000H 单元的内容送片内 RAM 20H 单元; MOV A, #00H MOV DPTR, #2000H MOVC A,@A+DPTR MOV 20H, A (7)ROM 2000H 单元的内容送片外 RAM 20H 单元。 MOV A, #00H MOV DPTR, #2000H MOVC A,@A+DPTR MOV DPTR, #0020H MOVX @DPTR, A2.14 解: ORG 0000H LJMP START ORG 0030H START: MOV A,22H ADD A,32H DA A MOV 42H,A MOV A,23H ADDC A,33H DA A MOV 43H,A 2.15 解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R7,#20H MOV R1,#40H MOV DPTR,#3000H LOOP:MOV A,@R1 2.16 解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#30H MOV R1,#00H MOV R2,#00H MOV R3,#07H LP2: MOV A,@R0 ADD A,R2 MOV R2,A JNC LP1 INC R1 LP1: INC R0 2.17 解: ORG 0000H LJMP START ORG 0030H START: MOV DPTR,#2001H MOVX A,@DPTR MOV 30H,A MOV DPTR,#2002H MOVX A,@DPTR ADD A,30H MOV B,A MUL AB MOV R1,A CJNE A,#10,NET1 MOV DPTR,#2000H MOVX @DPTR,A 2.18 解: ORG LJMP ORG MOV 0000H MAIN 0030h DPTR,#2000HSJMP $ ENDMOVX @DPTR,A INC R1 INC DPTR DJNZ R7,LOOP SJMP $ ENDLP3:DJNZ R3,LP2 MOV R3,#03H CLR C MOV A,R1 RRC A MOV R1,A MOV A,R2 RRC A MOV R2,A DJNZ R3,LP3 MOV 3AH,R2 SJMP $ ENDNET1:NET2:NET3:SJMP NET3 JNC NET2 CLR C MOV A,R1 SUBB A,#10 MOV DPTR,#2000H MOVX @DPTR,A SJMP NET3 MOV A,R1 ADD A,#10 MOV DPTR,#2000H MOVX @DPTR,A SJMP $ ENDMAIN:MOV MOVX MOV MOVA,#OFFH @DPTR,A DPTR,#2100H A,#34H MOVX @DPTR,A MOV DPTR,#2008H MOV A,#33H MOVX @DPTR,A MOV DPTR,#2108H MOV A,#44H MOVX @DPTR,A MOV DPTR,#200EH MOV A,#0EEH MOVX @DPTR,A MOV DPTR,#210EH MOV A,#32H MOVX @DPTR,A MOV DPTR,#2000H MOV R1,#30H MOV R2,#15 LOOP: MOVX A,@DPTR MOV @R1,A INC DPTR INC R1 DJNZ R2,LOOP MOV R1,#30H MOV DPTR,#2100H MOV R2,#15 MOV R0,#40H LOOP2: 2.19 解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#100 MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV DPTR,#2000H LOOP: MOVX A,@DPTR CJNE A,#00H,NET1 INC R3 INC DPTR 2.20 解:MOVX A,@DPTR CLR C ADDC A,@R1 INC LOOP1 MOV @R0,@01 SJMP LOOP4 LOOP1: MOV @R0,#00 LOOP4: INC R0 MOV @R0,A INC R1 INC DPTR INC R0 DJNZ R2,LOOP2 MOV R0,#40H MOV DPTR,#2200H MOV R2,#30 LOOP3: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,LOOP3 SJMP $ ENDDJNZ R2,LOOP SJMP NET3 NET1: JC NET2 INC R4 INC DPTR DJNZ R2,LOOP SJMP NET3 NET2: INC R5 INC DPTR DJNZ R2,LOOP NET3: SJMP $ END ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#1000H MOV A,#22H MOVX @DPTR,A MOV DPTR,#1030H MOV A,#33H MOVX @DPTR,A MOV DPTR,#1000H MOV R2,#31H MOV R0,#30H LOOP: 2.21 解: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR,#2040H MOV R2,#50 CLR 7FH DEC R2 LS: MOVX A,@DPTR MOV 20H,A INC DPTR MOVX A,@DPTR MOV 21H,A MOV A,20H 2.22 解: ORG LJMP ORG MAIN: LCALL SUBONE AJMP $ ; SUBONE use dptr,a,30h,31h SUBONE: MOV DPTR,#2000H LOOP: MOVX A,@DPTR XRL A,#41H 0000H MAIN 0030HMOVX MOV INC INC DJNZ MOV MOV MOV LOOP1: MOVX INC DJNZ SJMP ENDA,@DPTR @R0,A DPTR R0 R2,LOOP DPTR,#1000H A,#00 R2,#31H @DPTR,A DPTR R2,LOOP1 $CJNE A,21H,LOOP LOOP: JNC LOOP1 MOV A,20H MOVX @DPTR,A DEC DPTR MOV A,21H MOVX @DPTR,A INC DPTR SETB 7FH LOOP1: DJNZ R2,LS JB 7FH,MAIN SJMP $ END JNZ TT MOV A,30H MOV DPTR,#20A0H MOVX @DPTR,A MOV DPTR,#20A1H MOV A,31H MOVX @DPTR,A RET TT: INC MOV MOV DPTR 30H,DPH 31H,DPL MOV CJNE 2.23 解:A,31H A,@00H,LOOPRET ENDORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#20 MOV R1,#30H MOV DPTR,#2000H TT: MOVX A,@DPTR CLR C SUBB A,#30H SWAP A MOV 41H,A INC DPTR MOVX A,@DPTR CLR C SUBB A,#30H MOV @R1,A 2.24 解: ORG LJMP ORG MAIN: MOV MOV MOVX MOV MOV MOVX MOV MOV MOV MOV 2.25 解: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#2030H MOV A,#03H MOVX @DPTR,A MOV DPTR,#2031H DPTR,#2400H A,#07H @DPTR,A DPTR,@2450H A,#06H @DPTR,A 30H,#24H 31H,#00H 32H,#25H 33H,#00H 0000H MAIN 0030HTT1:MOV A,41H XCHD A,@R1 MOV @R1,A INC R1 INC DPTR DJNZ R2,TT MOV DPTR,#3000H MOV R1,#30H MOV R2,#0AH MOV A,@R1 MOVX @DPTR,A INC R1 INC DPTR DJNZ R2,TT1 SJMP $ ENDMOV LOOP: MOV MOV MOVX MOV MOV MOVX INC INC DJNZ AJMP ENDR2,#51H DPH,30H DPL,31H A,@DPTR DPH,32H DPL,33H @DPTR,A 31H 33H R2,LOOP $MOV A,#05H MOVX @DPTR,A MOV DPTR,#2030H MOVX A,@DPTR LCALL SQR MOV R1,A MOV DPTR,#2031H SQR:TAB:MOVX A,@DPTR LCALL SQR ADD A,R1 MOV DPTR,#2040H MOVX @DPTR,A AJMP $ INC A MOVC A,@A+PC RET DB 0,1,4,9,16,25 DB 36,49,64,81,100 DB 121,144,169,196,225 END 第3章3.1 解: 当 CPU 正在处理某件事情的时候,外部发生的某一事件请求 CPU 迅速去处理, CPU 暂 时中止当前的工作, 转去处理所发生的事件, 处理完该事件以后, 再回到原来被中止的地方, 继续原来的工作。这种过程为中断,实现这种服务的部件称为中断系统。 功能:①实时处理,能对外界异步发生的事件作出及时的处理。②完全消除了 CPU 在查 询方式中的等待现象,大大提高了 CPU 的工作效率。③实现实时控制。 3.2 解: 中断优先级是 CPU 响应中断的先后顺序。中断优先处理的原则是: (1)先响应优先级高的中断请求,再响应优先级低的中断请求。 (2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。 (3)如果同级的多个中断请求同时出现,CPU 则按单片机内部的自然优先级顺序响应各 中断请求。 单片机内部自然优先级顺序(由高到低)为: 外部中断 0→定时器 0 中断→外部中断 l→定时器 1 中断→串行接口中断。 3.3 解: (1)80C51 有以下中断源: ① ① 外部中断 0( INT 0 )请求,低电平有效。② ② 外部中断 1( INT1 )请求,低电平有效。 ③ ③ T0:定时器/计数器 0 溢出中断请求。 T1:定时器/计数器 1 溢出中断请求。 ④ ④ ⑤ ⑤ TI/RI:串行接口中断请求。 (2)通过对特殊功能寄存器 TCON、SCON、IE、IP 的各位进行置位或复位等操作,可实现对 各种中断的控制功能。 3.4 解: 中断系统的初始化步骤如下: (1)开相应中断源的中断允许; (2)设定所用中断源的中断优先级; (3)若为外部中断,则应规定中断触发方式(低电平或负边沿触发) 。 3.5 解: 单片机一旦响应中断请求, 就由硬件完成以下功能: ? (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置 1; (2) 执行硬件中断服务子程序调用, 并把当前程序计数器 PC 的内容压入堆栈,保护 断点,寻找中断源; ? (3) 清除相应的中断请求标志位(串行口中断请求标志 RI 和 TI 除外) ? ; (4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入 PC, 从 而转入相应的中断服务程序。 (5)中断返回,程序返回断点处继续执行。 3.6 解: (1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应 中断,则 CPU 按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内 部的自然优先级顺序(外部中断 0→定时器 0 中断→外部中断 l→定时器 1 中断→串行接口 中断)响应中断。 CPU 响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断 处理、中断返回,程序返回断点处继续执行。 (2)由中断允许寄存器 IE 控制开放和禁止中断。 欲开放某一中断, 则应先开放总中断允 许(EA 置 1) ,然后开放相应中断的中断允许(相应位置 1) ;若要要禁止中断,则 EA 置 O 即可。 (3)由中断优先级控制寄存器 IP 控制中断优先级,相应位置 1,则设为高级中断,置 0 则为低级。其中:PS 为串行中断优先级,PTl(0)为定时中断 1(0)优先级,PXl(0)外部中断 1(0)优先级。 3.7 解: (1)有中断源发出中断请求。 (2)中断总允许控制位 EA=l, CPU 开放总中断。 (3)申请中断的中断源的中断允许位为 1,即该中断没有被屏蔽。 (4)无同级或更高级中断正在服务。 (5)当前指令周期已经结束。 (6)若现行指令为 RETI 或访问 IE 或 IP 指令时, 读指令以及紧接着的另一条指令已执行 完毕。 满足以上条件,则 CPU 响应响应中断元的中断请求。 3.8 解:INT1 为低电平触发的中断系统初始化程序如下: ORG 0000H LJMP MAIN ORG 0013H LJMP INTN1 ORG 0100H MAIN: SETB EA SETB EX1 ; 开 INT1 中断 CLR PX1 ; 令 INT1 为低优先级 CLR IT1 ; 令 INT1 为电平触发 SJMP $ END 3.9 解: 中断服务程序的入口地址如下表: 中断源 中断矢量外部中断 0( INT 0 ) 定时器 T0 中断 外部中断 1( INT1 ) 定时器 T1 中断 串行口中断BH BH 0023H3.10 解: (1)符合以下 6 个条件可响应新的中断请求: ① 有中断源发出中断请求。 ② 中断总允许控制位 EA=l, CPU 开放总中断。 ③ 申请中断的中断源的中断允许位为 1,即中断没有被屏蔽。 ④ 无同级或更高级中断正在被服务。 ⑤ 当前的指令周期已结束。 ⑥ 若现行指令为 RETI 或访问 IE 或 lP 指令时, 该指令以及紧接着的另一条指令已 执行完。 (2)如果新的中断请求&优先级&低于正在执行的中断请求或与其同级,则不能被响应。 3.11 解: 有两种方式:电平触发和边沿触发。 (1)电平触发方式:CPU 在每个机器周期的 S5P2 期间采样外部中断引脚的输人电平。 若为低电平,便置 IEl(IEO)为“1” ,申请中断;若外部中断引脚为高电平,则 IEl(IEO) 清零。 (2)边沿触发方式:CPU 在每个机器周期的 S5P2 期间采样外部中断请求引脚的输人电 平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平, 接着下一个机器周期采样到外部中断请求为低电平,则使 IEl(IEO)置 1,申请中断;否则, IEl(1E0)置 0。 3.12 解: 可以。在相应的中断源的中断程序入口地址处,用一条长跳转指令(LJMP Add16) ,转 到相应 64K 程序存储器的任意地址(Add16)处,执行相应的中断程序。 3.13 解: 将 3 个中断源的中断请求经过与门连接到 MCS-51 的外部中断 0 的输入引脚 INT 0 上。 3、2、1 中断源的输入引脚分别接到 P1.0、P1.1、P1.2 引脚上,以备查询。程序如下:X1 EQU 2000H X2 EQU 2100HH X3 EQU 2200H ORG 0000H LJMP START ORG 0003H LJMP INT00 START: …… …… INT00: JB P1.0, LP1 LJMP 2200H LP1: JB P1.1, LP2 LJMP 2100H LP3: LJMP 2000H …… X1: …… RETI X2: …… RETI X3: …… RETI ;定义中断源 1 的入口地址 ;定义中断源 2 的入口地址 ;定义中断源 3 的入口地址;查询中断源,若此中断源无中断则转 LP1 ;转入相应的中断服务 ;查询中断源,若此中断源无中断则转 LP2 ;转入相应的中断服务 ;转入相应的中断服务3.14 解: 80C51 单片机片内设有 2 个定时器/计数器:定时器/计数器 T0 和定时器/计数器 T1, 由 TH0、 T0 TL0 组成, 由 TH1、 T1 TLl 组成。 T0、 由特殊功能寄存器 TMOD、 T1 TCON 控制。 3.15 解: 作定时器用时,计数脉冲来自单片机内部,其频率为振荡频率的 1/12。作计数器用时, 计数脉冲来自单片机的外部,即 P3.4(T0)和 P3.5(T1)两个引脚的输入脉冲。 3.16 解: 作定时器用时, 其定时时间与定时器的工作模式、 定时器的定时初值以及单片机的晶振 频率有关。作计数器用时,外界计数脉冲的频率不能高于振荡脉冲频率的 1/24。 3.17 解: (1) 工作方式 O: 13 位定时器/计数器工作方式。 工作方式 0 由 TH0 的全部 8 位和 TL0 的低 5 位构成 13 位加 1 计数器,此时 TL0 的 高 3 位未用。在计数过程中,当 TL0 的低 5 位溢出时,都会向 TH0 进位,而全部 13 位计 数器溢出时,则计数器溢出标志位 TF0 置位。 (2) 工作方式 l: 16 位的定时器/计数器方式。 工作方式 1 由 TH0 作为高 8 位,TL0 为低 8 位,在计数过程中,当全部 16 位计数器溢 出时,则计数器溢出标志位 TF0 置位。 (3) 工作方式 2: 自动重新装入计数初值的 8 位定时器/计数器工作方式。 工作方式 2 的 16 位定时器/计数器被拆成两个 8 位寄存器 TH0 和 TL0,CPU 在对它们 初始化时必须装入相同的定时器/计数器初值。定时器/计数器启动后,TL0 按 8 位加 1 计数 器计数,当 TL0 计数溢出时,置位 TF0 的同时又从预置寄存器 TH0 中重新获得计数初值并 启动计数。如此反复。适合于需要重复计数的应用场合,也可以当做串行数据通信的波特率 发生器使用。 (4) 工作方式 3: 两个 8 位定时器/计数器(仅适用于 T0) 。 在工作方式 3 时,定时器/计数器 0 被拆成两个独立的 8 位计数器 TL0 和 TH0。其中, TL0 既可以作计数器使用,也可以作为定时器使用,定时器/计数器 0 的各控制位和引脚信 号全归它使用。其功能和操作与方式 0 或方式 1 完全相同。TH0 只能作为简单的定时器使 用,只能借用定时器/计数器 1 的控制位 TR1 和 TF1,也就是以计数溢出去置位 TF1,TR1 则负责控制 TH0 定时的启动和停止。 一般情况下,只有在 T1 以工作方式 2 运行(当波特率发生器用)时,才允许 T0 工作 于方式 3。 TMOD 用于控制定时器/计数器 T0 和 T1 的工作方式,M1M0 为工作方式选择位。 M1M0=00 方式 0,13 位定时器/计数器; M1M0=01 方式 1,16 位定时器/计数器; M1M0=10 方式 2,自动重新装入计数初值的 8 位定时器/计数器; M1M0=11 方式 3,两个 8 位定时器/计数器(仅适用于 T0) 。C / T 为定时方式/计数方式选择位。若设定 C / T =0,则选择定时器工作方式;若设定 C / T =1,则选择计数器工作方式。一个定时器/计数器同一时刻或者作定时用,或者作计数 用,不能同时既作定时又作计数用。 GATE:门控位。它的状态决定了定时器/计数器启/停控制取决于 TR0 还是取决于 TR0和 INT0 引脚两个条件的组合。若 GATE=0,则只由 TCON 中的启/停控制位 TR0 控制定时 器/计数器的启/停。此时,只要 TR0=1,则接通模拟开关,使计数器进行加法计数,定时器 /计数器启动工作。而如果 TR0=0,则断开模拟开关,定时器/计数器停止工作。若 GATE=1, 由外部中断请求信号 INT0 和 TCON 中的启/停控制位 TR0 组合状态控制定时器/计数器的启 /停。只有 TR0=1,且 INT0 引脚也是高电平,才能启动定时器/计数器工作,否则,定时器/ 计数器停止工作。 定时器/计数器的定时器/计数器范围为: 工作方式 0:13 位定时器/计数器方式,因此,最多可以计到 213,也就是 8 192 次。 工作方式 1:16 位定时器/计数器方式,因此,最多可以计到 216,也就是 65 536 次。 工作方式 2 和工作方式 3:都是 8 位的定时器/计数器方式,因此,最多可以计到 28, 也说是 256 次。 3.18 解: 设定好定时器的定时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从 而得到较长的时间。 3.19 解: 选用定时器/计数器 T0 作定时器, 输出为 P1.0 引脚, 2 ms 的方波可由 1 ms 的高低 电平相间隔而成, 因而只要每隔 1 ms 对 P1.0 取反一次即可得到这个方波。程序如下:ORG LJMP ORG LJMP ORG MOV MOV MOV MOV SETB SETB SETB 0000H ? START ? 000BH ? T0INT 0030H ? SP, #60H TH0, #0FEH TL0, #0BH ? TMOD, #01H TR0 ET0 EA; T0 中断入口? ; 初始化程序? ; T0 赋初值 ;定时器/计数器 0 工作于方式 1 ;启动 T0 ; 开 T0 中断 ; 开总允许中断START: T0INT:SJMP CPL MOV MOV RETI END$ ? P1.0 ? TL0, #0BH ? TH0, #0FE0H ?3.20 解: 程序如下:ORG 0000H LJMP START ORG 0100H MOV SP,#60H MOV TMOD,#02H MOV TH0,#0E7H MOV TL0,#0E7H CLR P1.2 SETB TR0START:HIGH0: SETB P1.2 HIGH1: JBC TF0,LOW0 ;50μs 到清 TF0,转 LOW0 AJMP HIGH1 ;50μs 未到,转 HIGH1 等待 LOW0: MOV R7,#7 ;350μs=7×50μs CLR P1.2 ;P1.2=0 输出 350μs 低电平 LOW1:JBC TF0,LOW2 ;50μs 到清 TF0,LOW2 AJMP LOW1 LOW2:DJNZ R7,LOW1 ;7 次未到转 LOW1 AJMP HIGH0 ;7 次到转 HIGH0 END3.21 解: 选择 T0 工作于方式 1 定时 500μs机器周期T =fosc=12MHz 16 (2 -X)×1μS=500μs 程序如下:12 12 = = 1 × 10 ?6 s = 1?s f osc 12 × 10 6X=CHORG 1000H MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0CH SETB TR0 DEL:MOV R7,#4 ;2ms=4×500μs D500: JBC TF0,D2 ;500μs 到清 TF0,转移 AJMP D500 ;50μs 未到,等待 D2: CPL P1.0 MOV TH0,#0FEH ;重装初值 MOV TL0,#0CH DJNZ R7,D500 ;4 次未到,转 D500 CPL P1.1 AJMP DEL ;4 次到,转 DEL SJMP $ END3.22 解: 程序如下:ORG 0000H LJMP START ORG 0030H MOV TMOD,#09H MOV TL0,#00H MOV TH0,#00HSTART:;设 T0 为方式 1,GATE=1 LOOP1:LOOP2:LOOP3:LOOP4:MOV R0,#4EH JB P3.2,$ SETB TR0 JNB P3.2,$ JB P3.2,$ CLR TR9 MOV @R0,TL0 INC R0 MOV @R0,TH0 MOV R1,#50H MOV R5,#3 CLR A MOV @R1,A INC R1 DJNZ R5,LOOP1 MOV R7,#10H MOV R0,#4EH MOV R6,#2 CLR C MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R6,LOOP3 MOV R5,#3 MOV R1,#50H MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R5,LOOP4 DJNZ R7,LOOP2 SJMP $ END;等待 P3.2 变低 ;启动 T0 工作 ;等待 P3.2 变高 ;等待 P3.2 再次变低 ;停止计数 ;存放计数的二进制数低字节入 4EH ;存放计数的二进制数高字节入 4EH ;BCD 码首址 ;BCD 码字节数 ;清存 BCD 码单元;二进制数位数 ;二进制数首址 ;二进制数字节数;2 字节二进制数左移 1 位 ;BCD 码字节数;BCD 码乘 2 加 C 运算3.23 解:: : 为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的 方式有 3 种: 波特率定义为每秒传送信号的数量,单位为波特(Baud) 。比特率定义为每秒 传送二进制数的信号数(或每秒传送二进制码元的个数),单位是 bps(bit per second)或 写成 b/s(位/秒) 。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间 内平均数据传移速率,单位是字符/秒。 在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二 进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是 描述载波信号每秒钟变化为信号的数量(又称为调制速率) 。在这种情况下,波特率与比特 率在数值上可能不相等。 3.24 解: 异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用 一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位“0” (低电 平) ,然后是 5~8 个数据位,规定低位在前,高位在后,接下来是 1 位奇偶校验位(可以省 略) ,最后是 1~2 位的停止位“1” (高电平) 。 异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因 包含有起始位和停止位而降低了有效数据的传输速率。 3.25 解: MCS-51 单片机的串行接口由发送缓冲器 SBUF、发送控制器、接收缓冲器 SBUF、输入 移位寄存器、接收控制器、波特率发生器等部件组成。 发送缓冲器 SBUF 用于存放将要发送的数据,接收缓冲器 SBUF 用于存放接收的数据, 输入位移寄存器用于接收缓冲并实现串/并转换, 发送/接收控制寄存器用于控制串行口的工 作,波特率发生器用于控制串行口发送/接收数据的速度。 3.26 解: 随着传输距离的增加,误码率增加,出现重传增加,数据传输速率降低。 3.27 解: 串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器 SBUF 进行 读或写的。当向 SBUF 发&写&命令时(执行&MOVSBUF,A&指令),即向发送缓冲器 SBUF 装载并 开始由 TXD 引脚向外发送一帧数据,发送完使发送中断标志位 TI=1。在满足串行接口接收 中断标志位 RI(SCON.O)=0 的条件下,置允许接收位 REN(SCON.4)=1,就会接收一帧数据进 入移位寄存器, 并装载到接收 SBUF 中, 同时使 R1=1。 当发读 SBUF 命令时(执行&MOV A, SBUF& 指令),便从接收缓冲器 SBUF 读取信息通过 80C5l 内部总线送 CPU。 3.28 解: 串行口有四种工作方式:方式 0(8 位同步移位寄存器),方式 1(10 位异步收发),方式 2(11 位异步收发),方式 3(11 位异步收发)。 字符帧的数据格式为:在一帧格式中,先是一个起始位“0” (低电平) ,然后是 5~8 个数据位,规定低位在前,高位在后,接下来是 1 位奇偶校验位(可以省略) ,最后是 1~2 位的停止位“1” 。两个字符帧之间可以有空闲位,也可以无空闲位。 在 8051 串行口的四种工作方式中,方式 0 和 2 的波特率是固定的,而方式 1 和 3 的波 特率是可变的,由定时器 T1 的溢出率(T1 溢出信号的频率)控制。各种方式的通信波特率 如下: ① 方式 0 的波特率固定为系统晶振频率的 1/12,其值为 fosc/12。 其中:fosc――系统主机晶振频率 ② 方式 2 的波特率由 PCON 中的选择位 SMOD 来决定,可由下式表示: 波特率=(2SMOD/64)×fosc 即:当 SMOD=1 时,波特率为 fosc/32,当 SMOD=0 时,波特率为 fosc/64 ③ 方式 1 和方式 3 的波特率由定时器 T1 的溢出率控制。因而波特率是可变的。 定时器 T1 作为波特率发生器,相应公式如下: 波特率=(2SMOD/32)×定时器 T1 溢出率 T1 溢出率=T1 计数率/产生溢出所需的周期数 =(fosc/12)/(2K?TC) 式中:K――定时器 T1 的位数 TC――定时器 T1 的预置初值 3.29 解: 当一片 80C51(主机)与多片 80C51(从机)通信时, ① 主机的 SM2 位置 0,所有从机的 SM2 位置 1,处于接收地址帧状态。 ② 主机发送一地址帧,其中,8 位是地址,第 9 位为地址/数据的区分标志,该位置 1 表示该帧为地址帧。 ③ 所有从机收到地址帧后, 都将接收的地址与本机的地址比较。 对于地址相符的从机, 使自己的 SM2 位置 0(以接收主机随后发来的数据帧) ,并把本站地址发回主机作为应答; 对于地址不符的从机,仍保持 SM2=1,对主机随后发来的数据帧不予理睬。 ④ 从机发送数据结束后,要发送一帧校验和,并置第 9 位(TB8)为 1,作为从机数据 传送结束的标志。 ⑤ 主机接收数据时先判断数据接收标志(RB8) ,若接收帧的 RB8=0,则存储数据到缓 冲区,并准备接收下帧信息。若 RB8=1,表示数据传送结束,并比较此帧校验和,若正确 则回送正确信号 00H,此信号命令该从机复位(即重新等待地址帧) ;若校验和出错,则发 送 0FFH,命令该从机重发数据。 ⑥ 主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据 帧中 TB8=1) ;如果地址相符,则清 TB8,开始发送数据。 ⑦ 从机收到复位命令后回到监听地址状态(SM2=1) 。否则开始接收数据和命令。 3.30 解: 在微机与单片机构成的测控网络信中, 对于串行口数据传输接口的抗干扰能力, 在不超 过接口标准指定的适用范围时,都具有一定的抗干扰能力,以保证信号传输的可靠性。但在 一些工业测控系统中,通信环境往往十分恶劣,就必须充分考虑通信的抗干扰能力,以保证 通信的可靠性。 (1)选择合适的通信标准。例如:长距离传输采用 RS-485 标准能有效抑制功模干扰,采 用 20Ma 电流环可以降低信号对各种电器噪声的敏感程度。 (2)在高噪声环境下使用光纤传输介质在高噪声环境下可以有效减少噪声干扰。 (3)采用光电隔离技术可以提高系统的安全性和可靠性 (4)在发送器输出接口采用限流电路或在发送器输出端外接电容器,可以有效抑制数据传 输过程中的串扰。 (5)采取降低发送端数据速率的方法可以减少接收端接收数据益处的错误。 3.31 解:11(位)×3600(字符/分钟)=39600b/分钟=660b/s (方式 3 为每个字符 11 位) 。 3.32 解: 主程序框图如下:串口初始化 FFH 送 SBUF设标志调延时程序标志位取反标志为 1 标志为零 FF 送 SBUF程序如下:标志为零ORG 0040H OOH 送 SBUF MOV SCON,#00H MOV SBUF,#0FFH SETB C MOV 00H,C AA:ACALL DELAY CPL 00H MOV C,00H JC BB MOV SBUF,#00H SJMP CC BB:MOV SBUF,#0FFH CC:AJMP AA DELAY: MOV R7,#8D1:MOV D2:MOVR6,#250 R5,#250 D3:DJNZ R5,D3 DJNZ R6,D2 DJNZ R7,D1 RETEND3.33 解: 采用查询方式编写发送程序如下:ORG 0000H LJMP START ORG 0030H START: MOV SCON,#80H MOV PCON,#80H MOV R0,#20H MOV R7,#16 LS: MOV A,@R0 MOV C,P MOV TB8,C MOV SBUF,A JNB TI,$ CLR TI ;清 TI 标志位 DJNZ R7,LS RET;设定方式 2 发送 ;给待发送数据块地址指针 R0 置初值 ;给数据块长度计数器 R7 置初值 ;取一字节数据送 A ;P 随 A 变,P→TB8 ;启动发送 ;查询发送标志,等待一字节发送完END 3.34 解: 程序如下:ORG LJMP ORG MOV MOV MOV SETB MOV MOV MOV JNB CLR MOV JN JNB LJMP JB MOV INC DJNZ CLR SJMP SETB SJMP END 0000H START 0100H TMOD,#20H TH1,#0F3H TL1,#0F3H TR1 SCON,#0D0H R0,#30H R7,#16 RI,$ RI A,SUBF BP,PN RB8,PER RIG RB8,PER @R0,A R0 R7,LOOP 7F $ 7F $START:;设定 T1 为模式 2 定时 ;送时间常数 ;启动定时器 T1 ;串行接口设定为方式 3,并允许接收;查询等待接收 ;从串行接口中读取数据 ;对该字节进行查错处理若 P=RB8 无错,否则有 ;若 P=1,RB8=0,有错,转出错处理 ;若 P=1,RB8=1,无错,转保存数据 ;若 P=0,RB8=1,有错,转出错处理 ;若 P=0,RB8=0,无错,保存接收到的数据 ;16 字节未接收完,则继续 ;正确接收完 16 位数据,清出错标志位 7F ;校验有错,置位 7F错PN: RIG:PER:第4章4.1 解: MCS-51 系列单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址 总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。 (1)地址总线(AB) 地址总线用于传送单片机输出的地址信号,宽度为 16 位,可寻址的地址范围为 2 =64KB。地址总线是单向的,只能由单片机向外发出。P0 口提供低 8 位地址,P2 口提供 高 8 位地址。由于 P0 口既做地址线又做数据线,分时复用,所以,P0 口提供的低 8 位地址 是由 P0 口经锁存器提供的。锁存信号是由 CPU 的 ALE 引脚提供的。 (2)数据总线(DB) 数据总线是由 P0 口提供的,宽度为 8 位。P0 口是双向三态口,是单片机应用系统中使 用最频繁的通道。P0 口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有 一个有效的数据传输通道。 具体哪一个芯片的数据通道有效, 是由各个芯片的片选信号控制 选择的。欲使 CPU 与某个外部芯片交换数据,则 CPU 必须先通过地址总线发出该芯片的地 址,使该芯片的片选信号有效,则此时 P0 口数据总线上的数据只能在 CPU 和该芯片之间 进行传送。 (3)控制总线(CB) 控制总线实际上是 CPU 输出的一组控制信号。每条控制信号都是单向的,但是由多条 不同的控制信号组合而成的控制总线则是双向的。MCS-51 系列单片机中用于系统扩展的控16制信号有 RD , WR , PSEN , ALE 和 EA 。 4.2 解: 接口(也称为 I/O 接口)是指连接 CPU 与外部输入/输出设备之间的部件,这些部件是 CPU 与外设之间进行信息传送的媒介。 I/O 接口芯片都有一个或几个端口,一个端口对应于接口芯片内部的一个寄存器或一组 寄存器,计算机系统要为每个端口分配一个地址,各个端口的地址是唯一的,不能重复。在 信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、 时序控制、可编程、电器特征匹配等作用。 4.3 解: CPU 与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和 DMA 方式。 程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据 程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。 无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式) 的特点是接口电路简单,CPU 利用率低(程序循环等待) ,接口需向 CPU 提供查询状态。 适用于 CPU 不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被 动状态。 中断方式:当外设准备好时,由外设通过接口电路向 CPU 发出中断请求信号,CPU 在 允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子 程序,与外设进行一次数据传送,数据传送结束后,CPU 返回继续执行原来被中断的程序。 其特点是 CPU 的利用率高,外设具有申请 CPU 中断的主动权, CPU 和外设之间处于并行 工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度) CPU 和外 , 设之间需要中断控制器。适用于 CPU 的任务较忙、传送速度要求不高的场合,尤其适合实 时控制中的紧急事件处理。 存储器直接存取方式(DMA) :外设利用专用的接口(DMA 控制器)直接与存储器进 行高速数据传送,并不经过 CPU(CPU 不参与数据传送工作) ,总线控制权不在 CPU 处, 而由 DMA 控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。 适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。 4.4 解: 在计算机系统中, 凡需要进行读写操作的部件都存在编址的问题。 存储器的每个单元均 有自己的地址,对于 I/O 接口,则需要对接口中的每个端口进行编址。通常采取两种编址方 法:一种是独立编址,另一种是统一编址。 统一编址又称“存储器映射方式”。 在这种编址方式下 , 端口地址置于存储器空间中, I/O 在整个存储空间中划出一部分空间给外设端口 ,端口和存储单元统一编址。其优点是无需 专门的 I/O 指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点是端口占用 存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端 口地址译码器较复杂。 独立编址又称“I/O 映射方式”。这种方式的端口单独编址构成一个 I/O 空间,不占用存 储器地址空间。 其优点是端口所需的地址线较少, 地址译码器较简单, 采用专用的 I/O 指令, 端口操作指令执行时间少,指令长度短。缺点是输入输出指令类别少,一般只能进行传送操 作。 MCS-51 单片机采用了统一编址方式,即 I/O 端口地址与外部数据存储单元地址共同使 用 0000H~FFFFH(64KB) 。因此,MCS-51 单片机应用系统扩展较多外部设备和 I/O 接口 时,要占去大量的数据存储器的地址。 4.5 解: 所谓的全地址译码法是利用译码器对系统地址总线中未被外扩芯片用到的高位地址线 进行译码, 以译码器的输出作为外围芯片的片选信号。 全地址译码法芯片的地址范围确定方 法是: 以外部扩展的全部芯片未用到的地址线作为地址译码器的输入, 译码器的输出作为片 选信号接到外部扩展芯片上。 全地址译码法优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址 重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间;利用同样的高位地 址线,全地址译码法编址产生的选片线比线选法多,为系统扩展提供了更多的冗余条件。其 缺点是所需地址译码电路较多, 尤其在单片机寻址能力较大和所采用的存储器容量较小时更 为严重。全地址译码法是单片机应用系统设计中经常采用的方法。 部分地址译码法是指单片机的未被外扩芯片用到的高位地址线中,只有一部分参与地址 译码,其余部分是悬空的。在部分地址译码方式下,无论 CPU 使悬空的高位地址线上的电 平如何变化, 都不会影响它对外部存储单元的选址, 故存储器每个存储单元的地址不是惟一 的,存在地址重叠现象。因此,采用部分地址译码法时必须把程序和数据存放在基本地址范 围内(即悬空的高位地址线全为低电平时存储芯片的地址范围) ,以避免因地址重叠引起程 序运行的错误。部分地址译码法的优点是可以减少所用地址译码器的数量。 4.6 解: P2 口用作扩展存储器的高 8 位地址总线以后,即使没有全部占用,空余的几根也不宜 用作 I/O 口,否则会给软件编写及使用带来不必要的麻烦。主要是时序上处理比较困难。 4.7 解: 程序存储器和数据存储器虽然共用 16 位地址线和 8 位数据线,但由于数据存储器的读 和写由 RD 和 WR 信号控制,而程序存储器由读选通信号 PSEN 控制,这些信号在逻辑上 时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不 会发生总线冲突。 4.8 解: 硬件连接图如下图所示。图4.8 题硬件连接电路图各芯片的地址范围为: 2732:E000H~EFFFH 6116:D800H~DFFFH 8255:BFFCH~BFFFH 4.9 解: 硬件连接电路图如图 4.9 所示。各芯片的地址范围为: 2764(1#) :0000H~1FFFH 2764(2#) :2000H~3FFFH 6264(1#) :4000H~5FFFH 6264(2#) :6000H~7FFFH 图 4.9 4.9 题硬件连接电路图 4.10 解: (1)并行总线扩展的方法 (2)串行口扩展方法 (3)I/O 端口模拟串行方法 (4)通过单片机内 I/O 的扩展方法 4.11 解: 8255A 有 3 种工作方式:方式 0、方式 1 和方式 2。 ① 方式 0(基本输入/输出方式) 。这种方式不需要任何选通信号,适合于无条件传输数 据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。 ② 方式 (选通输入/输出方式)这种工作方式下, 组包括 A 口和 C 口的高四位 1 。 A (PC7~ PC4) ,A 口可由程序设定为输入口或输出口,C 口的高四位则用来作为输入/输出操作的控 制和同步信号;B 组包括 B 口和 C 口的低四位(PC3~PC0) ,功能和 A 组相同。 ③ 方式 2(双向 I/O 口方式) 。仅 A 口有这种工作方式,B 口无此工作方式。此方式下, A 口为 8 位双向 I/O 口,C 口的 PC7~PC3 用来作为输入输出的控制和同步信号。此时,B 口可以工作在方式 0 或方式 1。 4.12 解: 程序如下:MOV DPTR,#7F03H MOV A,#B MOV @DPTR,A4.13 解: 写入控制端口的控制字的最高位为 1 则为方式控制字,否则为 C 口置位/复位控制字。 4.14 解: 8155 定时器/计数器的初值=20×10-3/2× 8155 输入时钟的周期=1/500×103=2×10-6 (s), -6 10 =H。由于定时器/计数器按方式 1 工作,所以写入定时器/计数器的初值为 6170H。程序如下:ORG 0000H LJMP START ORG 0100H MOV DPTR,#7F04H MOV A,#70H MOVX @DPTR,A INC DPTR MOV A,#61H MOVX @DPTR,A MOV DPTR,#7F00H MOV A,#0C5HSTART:;写定时器/计数器的初值;写命令字,启动定时器/计数器工作 MOVX SJMP END@DPTR,A $4.15 解: 设 8155 有关寄存器端口地址为: 20H 命令寄存器 24H 定时器低字节 25H 定时器高字节 在 8155 的 TIMEROUT 引脚上输出 10mS 方波的程序如下:ORG 1000H MOV R0,#25H MOV A,#58H MOVX @R0,A DEC R0 MOV A,#0F0H MOVX @R0,A MOV R0,#20H MOVX @R0,A SJMP $4.16 解: 电路连接图如图 4.16 所示。图 4.16 4.16 题硬件连接电路图 其中,PB0~PB3 接红色发光二极管,PB4~PB7 接绿色发光二极管。设 MCS-51 单片 机主频为 1MHz。 程序如下:ORG 1000H START:MOV DPTR, #7FFFH MOV A, #80H MOVX @DPTR, A MOV DPTR, #7FFDH LP1:MOV A, #0FH MOVX @DPTR, A LCALL DELAY MOV A, #0F0H MOVX @DPTR, A LCALL DELAY LJMP LP1 DELAY: MOV R7,#8 D1:MOV R6,#250 D2:MOV R5,#250 ; 数据指针指向 8255A 控制口 ; 工作方式字送 8255A 控制口 ; 数据指针指向 8255A 的 B 口 ; 置红色发光二极管亮 ; 置红色发光二极管亮 ; 调用 1S 延时子程序 ; 置绿色发光二极管亮 ; 循环执行 ; 1S 延时子程序 D3:DJNZ R5,D3 DJNZ R6,D2 DJNZ R7,D1 RET SJMP $ END4.17 解: 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.17-1 所示。图 4.17-1 4.17-1 题硬件连接电路图 RS-422 和 RS-485 的双机通信接口电路如图 4.17-2 所示。图 4.17-24.17-2 题硬件连接电路图4.18 解: DS12C887 是美国 Dallas 公司生产的实时日历时钟芯片,采用 CMOS 技术,与 MC146818B 和 DS1287 管脚兼容,可直接替换。内含一个锂电池,在断电情况下运行十年 以上不丢失数据。具有秒、分、时、星期、日、月、年计数功能,对于一天内的时间记录, 有 12 小时制和 24 小时制两种模式。在 12 小时制模式中,用 AM 和 PM 区分上午和下午, 可实现闰年调整。时间的表示方法有两种,二进制数和 BCD 码表示方法。内部有 128 字节 RAM, 其数据具有掉电保护功能。 可以选择 Motorola 和 Intel 总线时序。 用户可对 DS12C887 进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。工作电压为 4.5~5.5V,工作电流为 7~15mA。DS12C887 具有功耗低、外围接口简单、精度高、工作 稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。 DS12C887 内部有 128B 的存储器,系统占用 15B,用户可用 113B,具体分布情况如下表 所示。取 值 范 围 地 00H 01H 02H 03H 04H 时,24 小时模式 时报警,12 小时模式 05H 时报警,24 小时模式 06H 07H 08H 09H 0AH 0BH 0CH 0DH 32H 0EH~31H, 33H~7FH 星期,星期日=1 日 月 年 控制寄存器 A 控制寄存器 B 控制寄存器 C 控制寄存器 D 世纪 用户数据区 13H,14H 19, 20 00~17H 01~07H 01~1FH 01~0CH 00~63H 00~23 01~07 01~31 1~12 00~99 00~17H 0~0CH AM,81~8CH PM 00~23 01-12 AM, 81-92 PM 址 功 能 二进制 秒 秒报警 分 分报警 时,12 小时模式 00~3BH 00~3BH 00~3BH 00~3BH 0~0CH AM,81~8CH PM 十进制 00~59 00~59 00~59 00~59 01-12 AM, 81-92 PM4.19 解: MAX692A 是美国 Maxim 公司的系统监控芯片产品,具有后备电池切换、电压监 视器、 “看门狗”监控等功能。 4.20 解: “看门狗(WDT),也称为程序监视定时器。WDT 的作用是通过不断监视程序每周 ” 期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环” ,并 对进入“死循环”的程序作出系统复位处理。 在程序中设置适当的指令,清 WDT,就可监视微处理器的工作。例如在主程序开始时, 将 WDT 置位,如果主程序执行过程中产生死循环,就无法清 WDT,超过 WDT 的定时时 间时,WDT 就会对微处理器发出复位信号。从而实现对系统程序的监控。 4.21 解: I2C 总线是由串行数据线 SDA 和串行时钟线 SCL 构成的,可发送和接收数据。它允许 若干兼容器件共享总线。所有挂接在 I2C 总线上的器件和接口电路都应具有 I2C 总线接口, 且所有的 SDA/SCL 同名端相连。总线上所有器件要依靠 SDA 发送的地址信号寻址,不需 要片选线。 I2C 总线最主要的优点是其简单性和有效性。占用的空间小,降低了互连成本。总线的 长度可高达 7.6m,并且能够以 10kbps 的最大传输速率支持 40 个组件。支持多主控器件, 其中, 任何能够进行发送和接收的设备都可以成为主器件。 主控能够控制信号的传输和时钟 频率。当然,在某时刻只能有一个主控器件。 在单片机控制系统中,广泛使用 I2C 器件。如果单片机自带 I2C 总线接口,则所有 I2C 器件对应连接到该总线上即可;若无 I2C 总线接口,则可以使用 I/O 口模拟 I2C 总线。 使用单片机 I/O 口模拟 I2C 总线时, 硬件连接非常简单, 只需两条 I/O 口线即可,在软件中分别定义成 SCL 和 SDA。MCS-51 单片机实现 I2C 总线接口电路如图 4.21 所示。图 4.21 4.21 电路中单片机的 P1.0 引脚作为串行时钟线 SCL,P1.1 引脚作为串行数据线 SDA,通过 程序模拟 I2C 串行总线的通信方式。I2C 总线适用于通信速度要求不高而体积要求较高的应 用系统。第5章5.1 解: 传感器是将电量或非电量转换为可测量的电量的检测装置, 是由敏感元件和转换元件组 成的。国际电工委员会 IEC 将传感器定义为:传感器是测量系统中的一种前端部件,它将 各种输入变量转换成可供测量的信号。 5.2 解: (1)输入通道的特点: ① 输入通道要靠近拾取对象采集信息,以减少传输损耗,防止干扰; ② 输入通道工作环境因素严重影响通道的方案设计,没有选择的余地; ③ 传感器的输出往往是模拟信号、微弱信号输出,转换成计算机要求的信号电平时, 需要使用一些模拟电路技术,因此输入通道通常是模拟、数字等混杂电路; ④ 传感器、变送器的选择和环境因素决定了输入通道电路设计的繁简,因为在输入通 道中必须将传感器、变送器的输出信号转换成能满足计算机输入要求的 TTL 电平,输入通 道中传感器、变送器输出信号与计算机逻辑电平的相近程度影响着输入通道的繁简程度; ⑤ 传感器输出信号一般比较微弱,为便于计算机拾取,常需要放大电路,这也是计算 机系统中最容易引入干扰的渠道,所以输入通道中的抗干扰设计是非常重要的。 (2)输出通道的特点: ① 小信号输出,大功率控制; ② 输出伺服驱动控制信号,在伺服驱动系统中的状态反馈信号,作为检测信号输入至 输入通道; ③ 输出通道接近被控对象,环境复杂恶劣,电磁和机械干扰较为严重。 5.3 解: D/A 转换器(Digit to Analog Converter)是将数字量转换成模拟量的器件,通常用 DAC 表示,它将数字量转换成与之成正比的电量,广泛应用于过程控制中。 5.4 解: D/A 转换器的主要性能指标有: (1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之 差称为 D/A 转换器的分辨率。它确定了 D/A 产生的最小模拟量变化,也可用最低位(LSB) 表示。 (2)精度:精度是指 D/A 转换器的实际输出与理论值之间的误差,它是以满量程 VFS 的 百分数或最低有效位(LSB)的分数形式表示。 (3)线性误差:D/A 转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间 的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是 D/A 的线性误 差。即两个相邻的数字码所对应的模拟输出值(之差)与一个 LSB 所对应的模拟值之差。常 以 LSB 的分数形式表示。 (4)转换时间 TS(建立时间) :从 D/A 转换器输入的数字量发生变化开始,到其输出模 拟量达到相应的稳定值所需要的时间称为转换时间。 5.5 解: D/A 转换芯片的主要结构特性为: (1)数字输入特性 数字输入特性包括接收数的码制、数据格式以及逻辑电平等。目前批量生产的 D/A 转 换芯片一般都只能接收自然二进制数字代码。 (2)模拟输出特性 目前多数 D/A 转换器件均属电流输出器件, 手册上通常给出的输入参考电压及参考电阻 之下的满码(全 l)输出电流 I0。另外还给出最大输出短路电流以及输出电压允许范围。 (3)锁存特性及转换控制 D/A 转换器对数字量输出是否具有锁存功能将直接影响与 CPU 的接口设计。 如果 D/A 转 换器没有输入锁存器,通过 CPU 数据总线传送数字量时,必须外加锁存器,否则只能通过具 有输出锁存功能的 I/O 给 D/A 送入数字量 (4)参考电源 D/A 转换中,参考电压源是唯一影响输出结果的模拟参量,是 D/A 转换接口中的重要电 路,对接口电路的工作性能、电路的结构有很大影响。 5.6 解: ① 8 位并行 D/A 转换; ② 片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式; ③ 电流输出型芯片,电流稳定时间 1us。通过外接一个运算放大器,可以很方便地提 供电压输出; ④ DIP20 封装、单电源(+5 V~+15 V,典型值+5 V) ; ⑤ 只需在满量程下调整其线性度; ⑥ 单一电源供电(十 5V~+15V), ⑦ 低功耗,200mW。 ⑧ 与 MCS-51 连接方便。 5.7 解: CS :片选输入线,低电平有效。 ILE:数据锁存允许输入,高电平有效。WR1 :写 1 信号输入,低电平有效。当 CS ,ILE, WR1 =010 时,数据写入 DAC0832 的第一级锁存。 WR2 :写 2 信号输入,低电平有效。 XFER :数据传输信号输入,当 WR2 , XFER =00 时,数据由第一级锁存进入第二级锁 存,并开始进行 D/A 转换。5.8 解: (1)D/A 转换器的数字输入是由数据线引入的,而数据线上的数据是变动的,为了保 持 D/A 转换器输出的稳定, 就必须在微处理器与 D/A 转换器输入口之间增加锁存数据的功能, 即必须有锁存器。 (2)有锁存器和无锁存器的 D/A 转换器与 80C51 接口的电路有显著不同。 ① 内部无锁存器的 D/A 转换器,如 DAC80(8 位)、AD7520(10 位)、AD7521(12 位)。它们的结构简单,内部不带锁存器。 对于这一类 D/A 转换器,最适合与单片机 80C51 的 P1、P2 等具有输出锁存功能的 I/O 口直接接口。但是当它们与 P0 口相接口时,则需在器输入端增加锁存器。 ② 内部有锁存器的 D/A 转换器,不仅具有数据锁存器,而且还提供地址译码电路,有 些包含双重,甚至多重的数据缓冲结构,如 DAC0832、DAC1230、AD7542 以及 AD7549 等。 这种类型的 D/A 转换器以高位的居多。它们以与 80C51 中的 P0 口相接口较为合适,一 般只是是需要占用多根口线。 5.9 解: 逐次逼近式 A/D 转换器的转换原理即“逐位比较”,如图 5.9 所市,它由 N 位寄存器、 D/A 转换器、比较器和控制逻辑等部分组成,N 位寄存器代表 N 位二进制数码。VN D/A 转换器 模拟量输入 VX出 缓 冲 器比较器输时 启动 时序与控制 逻辑电路N 位寄存器 DONE OEN 位 数 字 量 输 出图 5.9 逐次逼近式 A/D 转换器原理图 当模拟量 Vx 送入比较器后,启动信号通过控制逻辑电路启动 A/D 开始转换。首先,置 N 位寄存器最高位(Dn-1)为“1”,其余位清“0”;N 位寄存器的内容经 D/A 转换后得到 整个量程一半的模拟电压 VN,与输入电压 Vx 比较。若 Vx≥VN 时,则保留 Dn-1=1;若 Vx&VN 是,则 Dn-1 位清“0”。然后,控制逻辑使寄存器下一位(Dn-2)置“1”,与上次的结构 一起经 D/A 转换后与 Vx 比较,重复上述过程,直至判别出 D0 位取“1”还是取“0”为止, 此时控制逻辑电路发出转换结束信号 DONE。 这样经过 N 次比较后, 位寄存器的内容就是转 N 换后的数字量数据,整个转换过程就是这样一个逐次比较逼近的过程。 5.10 解: 将模拟量变换成计算机能够直接处理的数字量, 便于与计算机连接, 通过计算机处理被 测的模拟量。 5.11 解: 逐次逼近型的 A/D 转换器 DAC0809 、DAC0816 双积分型 A/D 转换器 5.12 5.12 解: A/D 转换器位数的确定与整个测量控制系统所要测量控制的范围和精度有关,计算时应 比总精度要求的最低分辨率高一位。 实际选取的 A/D 转换器的位数应与其它环节所能达到的 精度相适应。只要不低于它们就行,选得太高既没有意义,而且价格还要高得多。 5.13 解: (1)积分型、电荷平衡型和跟踪比较型 A/D 转换器转换速度较慢,转换时间从几毫秒 到几十毫秒不等,只能构成低速 A/D 转换器,一般运用于对温度、压力、流量等缓变参量的 检测和控制。 (2)逐次比较型的 A/D 转换器的转换时间可从几μS 到 100μS 左右,属于中速 A/D 转 换器,常用于工业多通道单片机控制系统和声频数字转换系统等。 (3)高速 A/D 转换器适用于雷达、数字通讯、实时光谱分析、实时瞬态记录、视频数 字转换系统等。 5.14 解: MC14433 、ICL7035 在软件编写时, 应根据硬件连接电路计算被选择的模拟通道的地址; 执行一条输出指令, 启动 A/D 转换;转换结束后,执行一条输入指令,读取 A/D 转换结果。 可以采用延时、查询和中断的方法判别 A/D 转换结束 。 5.15 解: (1)应设置 D/A 转换器的双缓冲方式的情况 有些 D/A 转换器(如 DAC0832)的内部具有两极缓冲结构,即芯片内有一个 8 位输入寄 存器和一个 8 位 DAC 寄存器。 这样的双缓冲结构, 可以使 DAC 转换输出前一个数据的同时, 将下一个数据传送到 8 位输入 寄存器,以提高 D/A 转换的速度。更重要的是,能够使多个 D/A 转换器在分时输入数据后, 同时输出模拟电压。 (2)D/A 转换器 DAC0832 的双缓冲方式的接口电路如图 5.15 所示。图 5.15DAC0832 双缓冲连接电路图5.16 解: 单片机只能处理数字形式的信息,但是在实际工程中大量遇到的是连续变化的物理量, 如温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。对于非电信号的物理 量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为 OV~5V 电平的 模拟量。所以必须加接模拟通道接口,以实现模拟量和数字量之间的转换。A/D(模/数)转换 就是把输入的模拟量变为数字量,供单片机处理;而 D/A(数/模)转换就是将单片机处理后 的数字量转换为模拟量输出。 5.17 解: A/D 转换芯片中采样保持电路的作用是把一个时间连续的信号变换为时间离散的信号, 并将采样信号保持一段时间。当外接模拟信号的变化速度相对于 A/D 转换速度来说足够慢, 在转换期间内可视为直流信号的情况下,可以省略采样保持电路。 5.18 解: 对于 8 位 A/D 转换器,实际满量程电压为 5V,则其量化单位 1LSB=5V/256=0.0196V,考 虑到 A/D 转换时会进行四舍五入处理,所以最大量化误差为(1/2)LSB,即 0.0098V。 5.19 解: 硬件电路连接图如图 5.19 所示。 图 5.19 5.19 题逻辑电路图 当 VO=2.5V 时,D=80H;VO=1.25V 时,D=40H。 程序如下:LJMP MAIN: NEXT: ORG MAIN ORG MOV MOV MOVX ACALL MOV MOV MOVX ACALL DJNZ AJMP …… RET END H DPTR,#7FFFH A,#80H @DPTR,A DELAY R4,#04H A,#40H @DPTR,A DELAY R4,LOOP NEXTLOOP:DELAY:5.20 解:硬件电路连接图如图 5.20 所示。图 5.20 5.20 题逻辑电路图 设 80C51 的时钟频率为 12MHz,程序如下:ORG LJMP ORG LJMP ORG MOV MOV MOV MOV MOV MOV 0000H MAIN 001BH T1_1 0100H SP,#60H R7,#100 R1,#30H R0,#00H R2,#20 R3,#60MAIN:;设堆栈指针 ;置采集次数 ;片外 RAM 地址高位 ;片外 RAM 地址低位 ;置入初值 20(计 1 s) ;置入初值 60(计 1 min) LOOP:T1_1:LOOP1:RETI_0:MOV MOV MOV SETB SETB SETB SJMP DJNZ SJMP ORG MOV MOV DJNZ MOV DJNZ MOV MOV MOVX JB MOVX PUSH PUSH MOV MOV MOVX INC MOV MOV POP POP INC DJNZ RETI ENDTOMD,#10H TH1,#

我要回帖

更多关于 单片机并口下载软件 的文章

 

随机推荐