单片机第八章概论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机第八章概论

*;8.1 I/O口扩展;*;1) 系统关键点;2) 解决办法;3) 知识准备;3.任务实施;*;硬件连接电路如上图所示。;根据硬件连接,可调用下面的函数实现数据的输入。 ?#include absacc.h //使用其中定义的宏来访问绝对地址 unsigned char I_O_IN(void) //I/O输入函数 { return XBYTE[0x7FFF]; } ;2) 输出接口扩展 进行输出接口扩展,首先也需要清楚单片机与简单输出接口芯片的信号。同样,简单输出接口芯片也没有地址信号,而只有数据信号和使能控制信号。在连接时,也需要将单片机的地址信号与写控制信号组合成输出接口芯片所需要的使能控制信号再与之相连。;下面以74LS373为例,设计一个输出接口。;硬件连接电路如上图。;根据硬件连接,可调用下面的函数实现数据的输出。 ?#include absacc.h //使用其中定义的宏来访问绝对地址 void I_O_OUT(unsigned char data) //I/O输出函数 { XBYTE[0xBFFF]=data; };8.1.2 任务二:可编程I/O口扩展的实现;2. 任务分析;2) 解决办法 合理选择可编程的I/O扩展芯片。 3) 知识准备 (1) 理解可编程接口芯片的工作原理。 (2) 理解可编程接口芯片的控制联络信号的功能。 为了实现可编程接口的扩展,需要学习可编程接口芯片的知识,本任务以8255A芯片为例进行可编程接口的学习。 ;3.任务必备知识;1) 8255A内部结构及外部引脚;1) 8255A内部结构及外部引脚; 内部总线是8255A内部单元的数据通道,在单片机与内部单元间传递数据、控制命令字和状态字;控制寄存器的内容(控制命令字)可改变8255A的工作状态,使8255A工作于三种工作方式之一;I/O端口是8255A与连接在其上的外设之间的缓冲寄存器,具备输入缓冲、输出锁存的功能。;2) 8255A引脚功能描述;*;3) 8255A的工作方式; 8255A有两种控制字:方式选择控制字和按位置位/复位控制字。方式选择控制字(D7=1)用来规定端口A、端口B和端口C的工作方式。置位/复位控制字(D7=0)用来单独设置端口C的各位。 (1) 基本输入/输出方式(工作方式0) (2) 选通输入/输出方式(工作方式1) (3) 双向传送方式(工作方式2);(1) 基本输入/输出方式(工作方式0);(2) 选通输入/输出方式(工作方式1); 工作方式1输入时,端口C的控制联络信号如下图所示,各控制联络信号功能如下。 ;工作方式1输出时,端口C的控制联络信号如下图所示,各控制联络信号功能如下。 ;(3) 双向传送方式(工作方式2);8255A工作方式2端口C的控制联络信号;4) 8255A的按位置位/复位控制字;4. 任务实施; 设8255A的 连接单片机译码输出的地址为7FF0H,地址线A0、A1与单片机的A0、A1相连。使8255A的端口A输出、端口B输入,均工作于基本的输入/输出方式。;按照设定的工作方式,8255A的初始化程序如下。 ? #define CTPORT XBYTE[0x7FFF] void Initialize(void) { CTPORT=0x82; };【拓展训练:8×8点阵显示系统的实现】;(2) 解决办法 根据任务要求,8×8点阵字符共需要64个发光二极管,且每个发光二极管放置在行线和列线的交叉点上,对应的某一列为高电平,某一行为低电平,则对应的二极管就点亮。因此为了显示一个8×8点阵字符,可采用依次输出一列点阵信息,且使此列对应的行选线为低的动态扫描的方式实现。于是,要显示一个8×8点阵字符系统,需用8×2根I/O口线。 ;(3) 知识准备 ① 点阵显示系统的工作原理。 ② 可编程接口芯片的工作原理。 ;3) 点阵显示系统的工作原理;4) 任务实施;8×8点阵显示系统的软件实现 //LED8×8点阵显示,列扫描,低电平有效 #include reg51.h//包含头文件 #define PAPORT XBYTE[0x7FFC] //8255A端口A地址 #define PBPORT XBYTE[0x7FFD] //8255A端口B地址 #define CTPORT XBYTE[0x7FFF] //8255A控制端口地址 #define num sizeof(table) //代码长度 unsigned char i=0; //全局变量定义 unsigned char cnum=0xfe; //列扫描码初始值 ;unsigned char code table

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档