第七章8051常用扩展资源编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.2.1.2 DSl302的控制命令字与寄存器
控制命令字
控制字的最高有效位(D7)必须是逻辑1,如果它为 0,则不能把数据写入到DS1302中。 D6如果为0,则表示存取日历时钟数据,为1表示 存取RAM 数据; 位5至位1指示操作单元的地址;最低有效位(D0) 如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。
8155的工作方式与基本操作
பைடு நூலகம்
1)作片外256字节RAM使用。 此时8155的IO/脚应置为低电平,其RAM地址 的高8位由片选线决定,低8位为00H~0FFH。 与 应用系统中其它数据存储器统一编址。使用的读/ 写操作指令为MOVX。 2)作扩展I/O口使用。 此时8155的IO/脚必须置为高电平,PA、PB、 PC口的口地址的低8位分别为01H、02H、03H (设地址无关位为0)。I/O口的工作方式的选择 完全依靠对8155命令寄存器设定的命令控制字来 实现。而I/O口状态的查询可通过对8155状态寄存 器的操作来完成。命令/状态寄存器共用一个口地 址,写入为命令,读出为状态。
7.1 综合扩展芯片8155
8155片内包含有256个字节的RAM,三个可编程的并行I/O 口,一个14位的计数器,是8051应用系统中常用的外围器件。
7.1.1 8155结构及工作原理 7.1.1.1 8155的结构和技术性能
在8155内部具有: 256字节的静态RAM,存取时间为400ns; 有三个通用的输入/输出口。其中A口和B口是8位口,C口是6 位口。C口可做状态口,这时,A口和B口能在应答式的输入/ 输出方式下工作; 有一个14位的可编程定时/计数器; 内部有地址锁存器及多路转换的地址和数据总线; 单一+5V电源,40脚双列直插式封装。
图7-2-1 DS1302引脚图
DS1302引脚说明
RST
RST
提供了终止单字节或多字节数据的传送手段。当 RST为高电 平时,允许对DS1302进行操作。如在传送过程中置RST为低 电平,则会终止此次数据传送。上电运行时,在VCC≥2.5V 之前,必须保持低电平。只有在SCLK为低电平时,才能将RST 置为高电平。I/O为串行数据输入输出端(双向)。
8155定时器格式及输出方式
7.1.2
8155应用实例
8155和8031的连接方法
P0口直接与8155的AD0~AD7相连,既作低8位地址线 又作数据总线,地址锁存信号使用单片机的ALE,高8位地 址由及IO/ M 控制线决定。
8155片内资源的地址计算方法
8155的地址编码为:
RAM地址:7E00H~7EFFH I/O口地址:命令/状态口 7F00H PA口 7F01H PB口 7F02H PC口 7F03H 定时器低8位 7F04H 定时器高8位 7F05H 计算以上地址时,未用的地址线可以在相应的地址位 中填入1或0。此处重点讲解地址计算过程。
7.2.1 DSl302的结构及工作原理
7.2.1 .1 引脚功能及结构图
DS1302的引脚如图7-2-1所示。VCC1 为后备电源,VCC2为主电源。在主电 源关闭的情况下,也能保持时钟的连 续运行。DS1302由VCC1或VCC2两者 中的较大者供电。当VCC2大于VCC1 +0.2V时,VCC2给DS1302供电。当 VCC2小于VCC1时,DS1302由VCC1供 电。X1、X2为振荡源,外接32.768Hz 晶振。
日历、时钟寄存器
DS1302共有12个寄存器,寄存器的选择根据命令字而定. 其中日历、时钟寄存器与控制字对照表如表7-2-2所示
日历、时钟寄存器的数据格式
几个关键位的解释
CH:时钟暂停位,当此位设置为1时,振荡器停止, DS1302处于低功率的备份方式;当此位变为0,时钟开始 启动。 12/24:12小时或24小时方式选择位。当12/24位=1,工 作于12小时方式,位5是AM/PM选择位,当此位为1时表示 PM;当12/24位=0时,工作于24小时方式,此方式下, 位5是第2个小时位(20-23时)。 WP:写保护位,写保护寄存器的开始7位(0-6)置为0, 在读操作时总是读出0。在对时钟或RAM进行写操作之前, 位7(WP)必须为0,当它为高电平时,写保护位防止对 任何其他寄存器进行写操作。 其它的位如TCS、DS、RS与充电功能相关,具体请参阅教 材。
命令控制字
C口工作方式
8155状态字
控制字的应用
用好8155 I/O口的关键在于正确理解各个I/O口每一位的 功能含义,据此编写准确的控制字,并写入命令寄存器。 例如,假定要求选择8155的PA口为基本输入口,PB口为 基本输出口,PC口为输出口,并立即启动计数器工作,则 向命令寄存器写的控制字应为0CEH,即:
定时器的使用
8155的定时器由两个8位寄存器组成,是一个14位的减法 计数器。 其低位字节的I/O地址为×××××100B,高位字节的I/O 地址为×××××101B。 在TIMER IN端输入计数脉冲,当计数满时由TIMER OUT 端输出脉冲或方波。当TIMER IN接外脉冲时为计数方式; 接系统时钟时,可作为定时方式,但须注意芯片的最高计 数频率(4MHz)。 定时器的操作分两步:1)由写入命令寄存器的控制字确定 定时器的启动、停止或装入常数(见命令控制字)。2)由 写入到定时器的两个寄存器的内容确定计数长度和输出方 式。
DS1302数据输入输出时序图
7.2.2 DS1302与MCS-51单片机应用实例
7.2.2.1 DS1302与MCS-51单片机的连接
DS1302的软件设计
DS1302与微处理器进行数据交换时,首先由微处理器向电 路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1, 如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时 钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出 的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输 入), D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必 须首先发送命令字节。若进行单字节传送,8位命令字节 传送结束之后,在下2个SCLK周期的上升沿输入数据字节, 或在下8个SCLK周期的下降沿输出数据字节。
源程序
void main(void) { TL8155=0x18; /*定时器低8位,计数常数18H=24*/ TH8155=0x40; /*定时器高8位,输出为连续方波(M2M1=01)*/ COM8155=0xce; /*装入命令字,设定各口方式并启动定时器*/ while(1) { Collect_Data=PA8155;/*读PA口数据*/ PB8155=~Collect_Data; /*采集的数据按位取反从PB口输出*/ } }
例7-1-1 8155应用实例
设8155PA口为基本输入口,PB口为基本输出口,PC口为 输出口,定时器作方波发生器,对输入脉冲进行24分频。 要求从PA口读入的数据取反后从PB口输出。 源程序如下: /*此程序演示8155的初始化以及简单的输入输出操作。*/ #include<reg51.h> #include<absacc.h> #define uchar unsigned char #define uint unsigned int #define COM8155 XBYTE[0x7f00] #define PA8155 XBYTE[0x7f01] #define PB8155 XBYTE[0x7f02] #define TL8155 XBYTE[0x7f04] #define TH8155 XBYTE[0x7f05] uchar Collect_Data;
7.2
实时时钟芯片DS1302
实时时钟芯片为DS1302是Dallas公司的一种 具有涓细电流充电能力的实时时钟芯片,采 用普通32.768kHz晶振。主要特点是采用串 行数据传输,可为掉电保护电源提供可编程 的充电功能,并且可以关闭充电功能。 DS1302是一种高性能、低功耗、带RAM 的 实时时钟芯片,它可以对年、月、日、星期、 时、分、秒进行计时,且具有闰年补偿功能, 工作电压宽达2.5~5.5V。
RAM寄存器
DS1302与RAM相关的寄存器分为两类。一类是单个RAM单 元,共31个,每个单元组态为一个8位字节,其命令控制 字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一 类为突发方式下的RAM寄存器,此方式下可一次读写所有 的RAM的31个字节,命令控制字为FEH(写入)、FFH (读出)。
DS1302操作流程图
源代见 程序。
8155的逻辑结构及引脚
1 8155的RAM和I/O地址编码
当8155作为单片机的扩展芯片时,是按外部数据存储器统一编址的, 为16位地址数据,其高8位由片选线提供,而低8位地址为片内地址。 M 当IO/ =0时,单片机对8155片内RAM读/写,RAM低8位编址为 M 00H~0FFH;当IO/ =1时,单片机对8155的I/O口进行读写。 8155共有6个I/O口寄存器,它们各自占有的地址如表7-1-1所示。
复位和时钟控制
数据输入输出I/O
数据输入是在控制字输入后的下一个SCLK时钟的上升沿时 数据被写入DS1302,数据输入从低位即位0开始。数据输 出是在8位控制指令字后的下一个SCLK脉冲的下降沿输出 数据,输出数据时从低位0位至高位7依次输出。需要注意 的是,第一个数据位是在控制字的最后一位之后的第一个 下降沿被输出。此时只要保持 RST高电平,如果有额外的 SCLK周期,将重新发送数据字节,即多字节传送模式。
单片机接口技术(C51版)
第七章 8051常用扩展资源编程
内容概述
本章主要介绍8051单片机系统常用的扩展芯片8155与 DS1302。8155是综合扩展芯片,该芯片内部有RAM、I/O 及定时/计数器。DS1302是实时时钟芯片,本章主要介绍 这两种芯片的工作原理、工作方式及控制方法,并给出相 应的C51源程序。 教学目标 1.了解8155芯片的内部结构,理解8155芯片内部定时/计数 器的工作原理工作方式,能通过8155的命令寄存器设置 8155的I/O口及定时/计数器的工作方式,了解状态寄存器 中各位的含义。能设计8155与单片机的接口电路,掌握 8155端口操作的C51程序设计方法。 2.了解DS1302的内部结构,理解该芯片的工作原理,掌握 DS1302控制字的使用方法,掌握12个寄存器中与时间、 日历相关的7个寄存器,分别是时、分、秒、日、周、月、 年寄存器。能设计DS1302与单片机的接口电路,理解教材 中给出的对DS1302操作的C51源程序。