单片机接口的c语言编程

上传人:子 文档编号:56922304 上传时间:2018-10-17 格式:PPT 页数:27 大小:321.50KB
返回 下载 相关 举报
单片机接口的c语言编程_第1页
第1页 / 共27页
单片机接口的c语言编程_第2页
第2页 / 共27页
单片机接口的c语言编程_第3页
第3页 / 共27页
单片机接口的c语言编程_第4页
第4页 / 共27页
单片机接口的c语言编程_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机接口的c语言编程》由会员分享,可在线阅读,更多相关《单片机接口的c语言编程(27页珍藏版)》请在金锄头文库上搜索。

1、第八章 单片机接口的C语言编程,单片机应用系统常常需要配接键盘、显示器、模/数转换器、数/模转换器等外设,其中,接口技术就是解决计算机与外设之间相互联系的问题。,一 LED 数码管,常用的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示;LED十六段显示器用于字符显示。,1.多位静态显示接口应用 例1是数码管静态显示方式的一种典型应用,其硬件及软件都非常简单,但其只能显示一位,如要用P1口显示多位,则每位数码管都应有各自的锁存、译码与驱动器,还需有相应的位选通电路。位选通电路输出

2、位码。,2动态显示接口1) 动态显示概念 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。,采用动态显示方式比较节省I/O

3、口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。 用8051系列单片机构建数码管动态显示系统时,常采用8155可编程I/O扩展接口,其典型应用如图所示。 图中,数码管采用共阴极LED,8155的A口线经过8路驱动电路后接至数码管的各段。当A口线输出“1”时,驱动数码管发光。8155的C口线经过6路驱动电路后接至数码管的公共端。当C口线输出“0”时,选通相应位的数码管发光。,二 键盘,键盘工作原理 1按键的分类按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气

4、式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。,按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。下面将重点介绍非编码键盘接口。,2键输入原理,在单片机应

5、用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。 对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,二 编制键盘程序,一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。

6、每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。,将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单、常用的一种方法。 例:实现键控流水灯功能。本程序实现按键控制的流水灯功能。4个键定义如下:P3.2:开始,按此键则灯开始流动(有上而下)P3.3:停止,按此键则停止流动,所有灯为暗。P3.4:上,按此键则灯由上向下流动。P3.5:下,按此键则灯由下向上流动。,三 模/数转换器,在单片机应用中,常常需要测量温度、湿度、流量、速度、液位、压力等多种模拟量,并通过输入接口

7、传送给单片机CPU,需要输出模拟量去控制被控对象或用于显示。模拟量信号是连续变化的电压、电流信号,与数字量有本质上的区别,模拟量信号需要放大、滤波、线性化、信号变换等一系列的电路处理,把检测到的模拟量电压、电流信息变换成0-5V的电压信号,通过A/V转换电路转换成相应的数字量才能输入单片机处理。同样,单片机输出的数字量控制值,也往往要通过D/A转换电路变换成模拟量才能去控制被控对象或用于数据的显示。因此,模拟量的输入输出接口技术是单片机应用中的一个重要环节。,1 模拟量输入输出接口技术,在单片机应用中,需要测量温度,湿度,流量,速度,液体,压力等大量模拟量,需要输出模拟量去控制被控对象或进行显

8、示,模拟量的输入输出也是单片机的接口是一个重要的环节。模拟量信号是连续变化的电压,电流信号,与数字量有本质一的区别,需要对模拟量信号时放大,滤波,线性化,信号变换等电路处理,把测量的模拟量电压,电流信号变换成0-5V的电压信号,通过A/D转换电路,转换成相应的数字量才能输入单片机处理。同样,单片机的控制值,测量数据也往往要通过D/A转换电路变换成模拟量才能进行控制或显示。因此,模拟量的输入输出是单片机应用中的一个重要环节。,MC14433与8031单片机的接口设计 由于MC14433的A/D转换结果是动态分时输出的BCD码。Q0Q3和DS1DS4可以通过并行口P1或通过扩展I/O电路与其相连。

9、下面介绍的电路是将MC14433与P1口相连的电路 见图。,该电路采用中断方式管理MC14433的操作。由于引脚E0C与DU连接在一起,所以MC14433能自动连续转换。E0C经与非门接外中断INT1端,当EOC发出中断申请,转入中断服务程序处理转换结果,四 I2C总线,I2C 总线是一双线串行总线,它提供一小型网络系统,为总线上的电路共享公共的总线。总线上的器件有单片机、LCD 驱动器以及上E2PROM 器等等。自从菲利普公司提出I2C总线规范以来,I2C器件得到了广泛的应用。I2C器件的应用大大减少了电路间连线,减小了电路板尺寸,降低了硬件成本,并提高了系统可靠性。,介绍I2C 总线规范,

10、对于面向8 位的数字控制应用譬如那些要求用微控制器的要建立一些设计标准: 一个完整的系统通常由至少一个微控制器和其他外围器件例如存储器和I/O 扩展 器组成。 系统中不同器件的连接成本必须最小。 执行控制功能的系统不要求高速的数据传输。 总的效益由选择的器件和互连总线结构的种类决定 产生一个满足这些标准的系统需要一个串行的总线结构尽管串行总线没有并行总线的数据吞吐能力,但它们只要很少的配线和IC 连接管脚然而总线不仅仅是互连的线还包含系统通讯的所有格式和过程。,I2C 总线的概念,I2C 总线支持任何IC 生产过程NMOS CMOS 双极性两线串行数据SDA 和串行时钟SCL 线在连接到总线的

11、器件间传递信息每个器件都有一个唯一的地址识别无论是微控制器LCD驱动器存储器或键盘接口而且都可以作为一个发送器或接收器由器件的功能决定很明显LCD 驱动器只是一个接收器而存储器则既可以接收又可以发送数据除了发送器和接收器外器件在执行数据传输时也可以被看作是主机或从机。 主机是初始化总线的数据传输并产生允许传输的时钟信号的器件此时任何被寻址的器件都被认为是从机,I2C总线时序定义:,起始位:SCL1时,在SDA上有下降延 停止位:SCL1时,在SDA上有上升延 *主器件发停止信号给从器件,作用在于使从器件处为准备状态(或是已知的状态) 从应答:SDA0 *写数据时,应答的器件在第九个时钟周期将S

12、DA线拉低,表示已收到一个8位数据,并表示可继续接收。主机在向从机写一字节后接收从应答,再进行后续操作(一般不考虑从应答位的具体值,仅在应答检测时用于判断从器件是否完成其内部写周期) 主应答:SDA0(用),读数据时,主机每接收从机一个字节数据(不是最后一个),返回主应答ACK(SDA=0) 是最后一个字节时返回无需应答NO_ACK(SDA1) 当从机工作于读模式时,在向主机发送一个8位数据后释放SDA线并监视一个应答信号,一旦接收到主机的应答信号,从机继续发送数据;如主器件没有发送应答信号,从机停止传送数据并等待一个停止信号,主器件必须发一个停止信号给从机使其进入备用电源模式并使器件处于已知

13、的状态 应答检测:采用应答检测读命令测试从机是否结束(通过从应答来识别) *当从器件完成内部写周期后将发送一个应答信号(从应答)给主器件,以便可以继续进行下一次读操作,起始和停止条件,在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件 的情况。其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件;当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件;起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后总线被认为再次处于空闲状态 如果产生重复起始Sr 条件而不产生停止条件总线会一直处于忙的状态此时的起始条件S和重

14、复起始Sr 条件在功能上是一样的。因此在本文档的剩余部分符号S 将作为一个通用的术语既表示起始条件又表示重复起始条件除非有特别声明的Sr如果连接到总线的器件合并了必要的接口硬件那么用它们检测起始和停止条件十分简便但是没有这种接口的微控制器在每个时钟周期至少要采样SDA 线两次来判别有没有发生电平切换,EEPROM芯片介绍,目前,通用存储器芯片多为EEPTOM,其常用的协议主要有两线串行连接协议(C)和三线串行连接协议。带C总线接口的EEPROM有许多型号,其中AT24Cxx系列使用十分普遍,产品包括AT2401/02/04/08/16等,其容量(字节数页)分别为1288/2568/5128/1

15、0248/20488,适用于25V的低电压操作,具有低功耗和高可靠性等优点。,EEPTOM读/写操作,1. AT24C04结构与应用简述 AT24C04由输入缓冲器和EEPROM阵列组成。 由于EEPROM的半导体工艺特性写入时间为510 ms,如果从外部直接写入EEPROM,则每写一个字节都要等候510ms,成批数据写入时就要等候更长时间。具有SRAM输入缓冲器的EEPROM器件,其写入操作变成对SRAM缓冲器的装载。装载完后启动一个自动写入逻辑将缓冲器中的全部数据一次写入EEPROM阵,对缓冲器的输人称为页写,缓冲器的容量 称为页写字节数。AT24C04的页写字节数为8,占用最低3位地址。当写入不超过页写字节数时,对EEPROM器件的写入操作与对SRAM的写入操作相同;当超过页写字节数时,应等候510 ms后再启动一次写操作。 由于EEPROM器件缓冲区容量较小(只占据最低3位),且不具备溢出进位检测功能,所以,从非零地址写入8个字节数或从零地址写入超过8个字节数会形成地址翻卷,导致写入出错。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号