![第9章-系统扩展 键盘显示器_第1页](http://file4.renrendoc.com/view12/M01/0E/26/wKhkGWX7sPaANC4nAABwM-NVz3U154.jpg)
![第9章-系统扩展 键盘显示器_第2页](http://file4.renrendoc.com/view12/M01/0E/26/wKhkGWX7sPaANC4nAABwM-NVz3U1542.jpg)
![第9章-系统扩展 键盘显示器_第3页](http://file4.renrendoc.com/view12/M01/0E/26/wKhkGWX7sPaANC4nAABwM-NVz3U1543.jpg)
![第9章-系统扩展 键盘显示器_第4页](http://file4.renrendoc.com/view12/M01/0E/26/wKhkGWX7sPaANC4nAABwM-NVz3U1544.jpg)
![第9章-系统扩展 键盘显示器_第5页](http://file4.renrendoc.com/view12/M01/0E/26/wKhkGWX7sPaANC4nAABwM-NVz3U1545.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51系列单片机系统扩展
输入输出扩展(键盘和显示)傅林课程安排键盘的种类键盘的基本原理键盘程序设计单片机扩展键盘实例1、键盘的分类键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;而靠软件来识别的称为非编码键盘; 在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。非编码键盘有分为:独立式非编码键盘和行列式非编码键盘。按键在闭合和断开时,触点会存在抖动现象:
0 1 2 3 ee de be 7e
4 5 6 7 ed dd bd 7d
8 9 A B eb db bb 7b
C D E F e7 d7 b7 77键盘的种类键盘就是在人机交互系统中用来输入控制信号或数据的接口。直接式按键键盘阵列式按键键盘
直接式按键键盘阵列式按键键盘键盘的基本原理按键编码按键确认按键消抖
读取键值避免重复响应多按键响应按键消抖软件消抖电容式硬件消抖双稳态电路消抖键盘程序设计直接式按键键盘的查询方式阵列式按键键盘的扫描方式阵列式按键键盘的线反转方式阵列式按键键盘的中断方式阵列式按键键盘的扫描方式步骤:判断有无按键按下软件去抖动
扫描按键的位置
一次按键处理
阵列式按键键盘的线反转方式步骤:将行线作为输出线,列线作为输入线
延时,用于去抖动处理
将列线作为输出线,行线作为输入线
一次按键处理
阵列式按键键盘的中断方式单片机扩展键盘实例程序设计显示器及其接口单片机系统中常用的显示器有:发光二极管LED(LightEmittingDiode)显示器、液晶LCD(LiquidCrystalDisplay)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。3.LED数码显示方式及电路
(1)静态显示方式LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字形码。送入一次字形码显示字形一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。(2)动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。七段LED显示器
使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。用共阴LED显示器显示16进制数的编码已列在下表。
共阴数码管码表
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0 1 2 345
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
6 7 8 9AB
0x39,0x5e,0x79,0x71,0x00
CDEF 无显示51单片机模拟I2C总线I2C总线的工作原理I2C总线的寻址方式I2C总线的协议I2C总线接口的EEPROMI2C总线扩展实例——硬件加密I2C总线的工作原理I2C总线全称为芯片间总线(InterIntegrateCircuitBUS),其是Philips公司推出的一种双向二线制总线。I2C总线采用两根连线实现全双工同步数据传送,一条数据线(SDA)和一条串行时钟线(SCL)。I2C总线的寻址方式I2C总线的协议起始信号终止信号应答信号非应答信号总线数据位数据写入数据读出I2C总线接口的EEPROM单片机系统中使用较多的EEPROM芯片是24系列串行EEPROMI2C总线扩展实例——硬件加密
串行总线---SPISPI总线概述SPI(SerialPeripheralInterface――串行外设接口)总线是Motorola公司推出的一种同步串行接口技术。是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换。美国国家半导体公司NSC也开发了一种MicroWire串行接口,它与SPI兼容。前许多单片机厂商推出了许多带有SPI总线接口的单片机和种类繁多且功能丰富的基于SPI接口的外围芯片。其外围设备包括FLASHRAM、A/D转换器、网络控制器、MCU等。SPI总线的结构原理SPI总线系统是一种同步串行外设接口,允许MCU与各种外围设备以同步串行方式进行通信来交换信息。SPI总线接口一般使用4根线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。由于SPI系统总线只需3根公共的时钟数据线和若干位独立的从机选择线,在SPI从设备较少而没有总线扩展能力的单片机系统中使用特别方便。SPI总线包括1根串行同步时钟信号线以及2根数据线。SPI总线接口电路结构如下图所示。SPI总线接口电路结构
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出的串行同步时钟极性和相位可以进行配置。时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够用于选择两种不同的传输协议进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设间时钟相位和极性应该一致。
特点:由于SPI系统总线一共只需3~4位数据线和控制线即可实现与具有SPI总线接口功能的各种I/O器件进行连接,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。应用:在MCS–51系列等不具有SPI接口的单片机组成的智能仪器和工业测控系统中,当传输速度要求不是太高时,使用SPI总线可以增加应用系统接口器件的种类,提高应用系统的性能。SPI总线的接口特性利用SPI总线可在软件的控制下构成各种系统。通常可使用1个MCU作为主控机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。当一个主控机通过SPI与几种不同的串行I/O器件相连时,必须使用每个器件片的允许控制端,这可通过MCU的I/O端口输出线来实现。否则MCU的MISO端只能连接1个输入芯片。如果输出芯片的串行数据输入有允许控制端时,只有在此芯片允许时,SCK脉冲才把串行数据移入该芯片;在禁止时,SCK对芯片无影响。SPI总线的数据传输SPI是一个环形总线结构,其时序主要是在SCK的控制下,两个双向移位寄存器进行数据交换。SPI数据传输原理很简单,它需要至少4根线,事实上3根也可以。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCK(时钟)、CS(片选)。其中CS是控制芯片是否被选中的。由SCK提供时钟脉冲,SDI、SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时钟上沿或下沿时改变,在紧接着的下沿或上沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。假设8位寄存器内装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是高位数据SDO=1。下降沿到来的时候,SDI上的电平将被存到寄存器中去,那么这时寄存器=0101010SDI,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成了一个SPI时序。SPI总线串行外围扩展SPI总线为同步串行数据传输总线,用于单片机的外围扩展。其通用外围扩展器件有SRAM、EEPROM、ADC、DAC、RTC、I/O口、DTMF等。外围设备模块有LCD驱动控制器构成的LCD显示器,各种LCD驱动控制器构成的段式、图形点阵、字符点阵液晶显示器等。通过SPI总线通用I/O口器件可构成许多通用接口如键盘、码盘、打印机接口和LCD接口等。SPI总线数据虚拟技术对于不带SPI串行总线接口的MCS51系列单片机来说,可以使用软件来模拟SPI的操作,包括串行时钟、数据输入和数据输出。定义三个普通I/O口用来模拟SPI器件的SCK、MISO、MOSI。对于不同的串行接口外围芯片,它们的时钟时序是不同的。(1)对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时钟输出口的初始状态设置为1,而在允许接口后再置为0。这样,MCU在输出1位SCK时钟的同时,将使接口芯片串行左移,从而输出1位数据至单片机的模拟MISO线,此后再置SCK为1,使单片机从模拟的MOSI线输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入输出便宣告完成。此后再置SCK为0,模拟下1位数据的输入输出……,依此循环8次,即可完成1次通过SPI总线传输8位数据的操作。
(2)对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,即在接口芯片允许时,先置SCK为1,以便外围接口芯片输出1位数据(MCU接收1位数据),之后再置时钟为0,使外围接口芯片接收1位数据(MCU发送1位数据),从而完成1位数据的传送。
SPI总线的虚拟应按照SPI总线数据传送时序、操作格式设计出时序模拟子程序、主发送主接收子程序,并将这些子程序归纳成虚拟SPI总线的软件包,在软件包的基础上给出归一化的SPI总线操作命令。时序图
SPI总线的4种数据/时钟时序图
通用软件包VSPI组成虚拟SPI总线的通用软件包由以下三个子程序组成:①MCU串行输入子程序SPIIN②MCU串行输出子程序SPIOUT③MCU串行输入/输出子程序SPIIO。软件包使用说明①软件包使用条件如下:P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。MOSI BIT P1.0 ;模拟SPI的数据输出端SCK BIT P1.1 ;模拟SPI的SCK输出端SS BIT P1.2 ;模拟SPI的从机选择端MISO BIT P1.3 ;模拟SPI的数据输入端②通用读写子程序使用实例MOV SPIMTD,#data ;给发送寄存器存数LCALL SPIOUT ;调用SPI发送子程序①MCU串行输入子程序SPIIN从外设的SPISO线上接收8位数据并放入数据接收寄存器SPIMRD中的应用子程序如下:SPIIN: SETB SCK ;使SCK(时钟)输出为1CLR SS ;选择从机MOV R1,#08H ;置循环次数SPIIN1: CLR SCK ;使SCK(时钟)输出为0NOP ;延时NOPMOV C,MISO ;从机输出SPISO送进位CRLC A ;左移至累加器ACCSETB SCK ;使SCK(时钟)输出为1DJNZ R1,SPIIN1 ;判断是否循环8次(8位数据)MOV SPIMRD,A ;8位数据送SPIMRDRET②MCU串行输出子程序SPIOUT将MCS-51单片机中数据发送寄存器SPIMTD的内容传送到外设的SPISI线上的程序如下:SPIOUT:SETB SCK ;使SCK(时钟)输出为1CLR SS ;选择从机MOV R1,#08H ;置循环次数MOV A,SPIMTD ;8位数据送累加器ACCSPIOUT1:CLR SCK ;使SCK(时钟)输出为0NOP ;延时NOPRLC A ;左移至累加器ACC最高位至CMOV MOSI,C ;进位C送从机输入SPISI线上SETB SCK ;使SCK(时钟)输出为1DJNZ R1,SPIOUT1 ;判是否循环8次(8位数据)RET③MCU串行输入/输出子程序SPIIO将MCS-51单片机数据发送寄存器SPIMTD的内容传送到外设的SPI总线的SI中,同时从外设的SPI总线的SO接收8位数据到接收寄存器SPIMRD中的程序如下:
SPIIO: SETB SCK ;使SCK(时钟)输出为1CLR SS ;选择从机MOV R1,#08H ;置循环次数MOV A,SPIMTD ;8位数据送累加器ACCSPIIO1:CLR SCK ;使SCK(时钟)输出为0NOP ;延时NOPMOV C,MISO ;从机输出SPISO送进位CRLC A ;左移至累加器ACC最高位至CMOV MOSI,C ;进位C送从机输入SETB SCK ;使SCK(时钟)输出为1DJNZ R1,SPIIO1 ;判断是否循环8次(8位数据)MOV SPIMRD,ARET
例1EEPROM扩展Atmel公司生产的EEPROM具有SPI接口,存储容量为4Kb的AT25040就有SPI接口,MCS–51系列单片机与AT25010的SPI总线接口接线如下图所示。
图中,P1.0模拟SPI的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端(SS),P1.3模拟SPI的数据输入端(MISO)。下面给出模拟SPI串行输入、串行输出和串行输入/输出的3个子程序。8051P1.0P1.1P1.2P1.3AT25010SISCKCSSOSPI总线的软件模拟
1.MCU串行输入子程序SPIIN从AT25040的SO端接收8位数据并放入寄存器R0中。参考程序:SPIIN:SETBP1.1;使P1.1(时钟)输出为1
CLRP1.2;选择从机
MOVR1,#08H;置循环次数SPIIN1:CLRP1.1;使P1.1(时钟)输出为0
NOP;延时
NOP
MOVC,P1.3;从机输出送进位C
RLCA;左移至累加器A
SETBP1.1;使P1.0(时钟)输出为1
DJNZR1,SPIIN1;判断是否循环8次(8位数据)
MOVR0,A;8位数据送R0
RET2.MCU串行输出子程序SPIOUT将MCS–51单片机中R0寄存器的内容传送到AT25040的SI端。SPIOUT:SETBP1.1;使P1.1(时钟)输出为1
CLRP1.2;选择从机
MOVR1,#08H;置循环次数
MOVA,R0;8位数据送累加器ASPIOUT1:CLRP1.1;使P1.1(时钟)输出为0
NOP;延时
NOP
RLCA;左移至累加器A最高位至C
MOVP1.0,C;进位C送从机输入
SETBP1.1;使P1.1(时钟)输出为1
DJNZR1,SPIOUT1;判是否循环8次(8位数据)
RET3.MCU串行输入/输出子程序SPIIO将MCS–51单片机R0寄存器的内容传送到AT25040的SI端,同时从AT25040的SO端接收8位数据。SPIIO:SETBP1.1;使P1.1(时钟)输出为1
CLRP1.2;选择从机
MOVR1,#08H;置循环次数
MOVA,R0;8位数据送累加器ASPIIO1:CLRP1.1;使P1.1(时钟)输出为0
NOP;延时
NOP
MOVC,P1.3;从机输出送进位C
RLCA;左移至累加器A最高位至C
MOVP1.0,C;进位C送从机输入
SETBP1.1;使P1.1(时钟)输出为1
DJNZR1,SPIIO1;判断是否循环8次(8位数据)
RET
这些子程序适用于在串行时钟的上升沿输入和下降沿输出的各种串行外围接口芯片(如D/A和A/D转换芯片、实时时钟芯片、LED显示驱动芯片等)。对于下降沿输入、上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出电平顺序,这些子程序也同样适用。如先置P1.1为低电平,之后再次置P1.1为高电平,再置P1.1为低电平等等。TLC5615D/A转换芯片TLC5615是带有缓冲基准输入的10位电压输出型D/A转换器。器件可在单5V电源下工作,且具有上电复位功能。TLC5615的控制是通过三线串行总线进行,可使用的数字通信协议包括SPI、QSPI以及Microwire标准。低功耗,在5V供电时功耗仅1.75mW,数据更新速率为1.2MHz,典型的建立时间为12.5us。TLC5615广泛应用于电池供电测试仪表、数字增益调整、电池远程工业控制和移动电话等领域。
TLC5615的内部结构由16位移位寄存器、10位D/A寄存器、D/A转换权电阻、基准缓冲器、控制逻辑和2倍程放大器等电路组成。引脚说明TLC5615的管脚与Maxim公司的MAX515完全兼容,如图所示。各管脚的功能介绍如下。DIN:串行数据输入脚SCLK:串行时钟输入脚CS:片选端,低电平有效DOUT:用于菊花链的串行数据输出端AGND:模拟地REFIN:基准输入端,一般接2V到VCC-2VVCC:电源端,一般接+5VTLC5615与AT89C52典型接口电路
TLC5615通过固定增益为2的运放缓冲电阻网络,把10位数字数据转换为模拟电压。在TLC5615芯片上电时,内部电路把D/A寄存器复位为0。其输出具有与基准输入相同的极性,表达式为
VO=2×REF×CODE/1024
其中,CMOD是通过串行总线接口输入的待转换的数据;REF是基准电压。TLC5615最大的串行时钟速率不超过14MHz,10位DAC的建立时间为12.5µs,通常更新速率限制至80kHz以内。TLC5615的16位移位寄存器在SCLK的控制下从DIN引脚输入数据,高位在前,低位在后。16位移位寄存器中间的10位数据在上升沿的作用下输入10位的D/A寄存器供给D/A转换。输入的数据格式位为:SPI和AT89C52的接口传送8位字节形式的数据。因此,要把数据输入到D/A转换器需要两个写周期。QSPI接口具有从8位至16位的可变输入数据长度,可以在一个写周期之内装入好转换数据代码。当系统不使用D/A转换器时,最好把D/A寄存器设置为全0,这样可以使基准电阻阵列和输出负载的功耗降为最小。TLC5615的一个简单的应用编程见下。
DINBITP1.4 ;定义I/O口SCLKBITP1.7CS5615BITP1.5DataHEQU30HDataLEQU31HTLC5615:CLRSCLK;准备操作TLC5615CLRCS5615;选中TLC5615MOVR7,#08HMOVA,DataH;装入高8位数据LOOPH: LCALLDELAY;延时RLCA;最高位移向5615MOVDIN,CSETBSCLK;产生上升沿,移入一位数据
LCALLDELAYCLRSCLKDJNZR7,LOOPHMOVR7,#08HMOVA,DataL;装入低8位数据LOOPL: LCALLDELAY;延时RLCA;最高位移向5615MOVDIN,CSETBSCLK;产生上升沿,移入一位数据LCALLDELAYCLRSCLKDJNZR7,LOOPLSETBCS5615;结束5615的操作,同时将转换数据代码存入
10位DA寄存器,启动新一轮的DA转换RETAD5498位串行A/D的扩展TLC549是以8位开关电容逐次逼近A/D转换器为基础而
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电梯安全教育与设施维护的双重保障
- 兼职销售顾问聘用合同样本
- 2024-2025学年高中历史专题4“亚洲觉醒”的先驱4“土耳其之父”凯末尔练习人民版选修4
- 2024-2025学年高中地理第6章人类与地理环境的协调发展第2节中国的可持续发展实践巩固练习新人教版必修2
- 社区健康服务中移动医疗平台的角色与作用
- 2024-2025学年新教材高中数学第六章平面向量初步6.1.1向量的概念应用案巩固提升新人教B版必修第二册
- 知识产权保护企业法律风险防范的核心
- 社区文化活动的组织与治理策略分享
- 6《 探访古代文明》(教学设计)部编版道德与法治六年级下册
- 社交金融场景下的移动支付应用与前景
- 班级管理的基本原理
- 乡镇卫生院2025年度工作计划
- 三年级体育下册全册教案
- 管理统计学课件
- 2024装配式混凝土建筑工人职业技能标准
- 消火栓及自动喷水灭火系统装置技术规格书
- 2024年体育竞技:运动员与俱乐部保密协议
- 军队文职(会计学)考试(重点)题库200题(含答案解析)
- 北师大版八上《生物的遗传和变异》
- 小儿急性喉炎护理查房
- 护理专业应聘个人简历
评论
0/150
提交评论