版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用技术第章_外部串行总线接口技术单片机原理及应用技术第章_外部串行总线接口技术第6章 MCS-51单片机外部串行总线接口技术6.1几种外部串行总线工作方式6.2 串行E2PROM X5045接口扩展技术6.3 串行专用键盘/显示器接口芯片HD72796.4 串行A/D转换接口芯片TLC15436.5 串行D/A转换接口芯片TLC56156.6 本章小结 9/21/20222第6章 MCS-51单片机外部串行总线接口技术6.1几种6.1.1 SPI串行总线 1.SPI总线的特点(串行外围设备接口:serial peripheral interface)一般使用4条线串行时钟线(SC
2、K)主机输入/从机输出数据线MISO主机输出/从机输入数据线MOSI低电平有效的从机选择线SSSPI总线技术是Motorola公司推出的一种同步串行接口 6.1 几种外部串行总线工作方式 9/21/202236.1.1 SPI串行总线 1.SPI总线的特点6.1 几2.SPI总线系统的构成单片机与多个SPI串行接口设备典型结构如图6.1所示。图6.1 单片机与多个SPI串行接口设备典型连接9/21/202242.SPI总线系统的构成单片机与多个SPI串行接口设备典型结3.SPI串行总线在MCS-51系列单片机中的实现 MCS-51单片机I/O口模拟SPI总线接口原理图如图6.2所示。 图6.2
3、 MCS-51单片机I/O口模拟SPI总线接口原理图9/21/202253.SPI串行总线在MCS-51系列单片机中的实现 MCS-单片机,如Motorola公司的M68HC08系列、Cygnal公司的C8051F0XX系列、Philips公司的P89LPC93X系列。A/D和D/A转换器,如:AD公司的AD7811/12、TI公司的TLC1543、TLC2543、TLC5615等。实时时钟RTC,如Dallas公司的DS1302/05/06等。温度传感器,如AD公司的AD7816/17/18;NS公司的LM74等。其他设备,如LED控制驱动器MAX7219、HD7279等,集成看门狗、电压监
4、控、E2PROM等功能的X5045等。 4.常用SPI串行总线接口的器件9/21/202264.常用SPI串行总线接口的器件9/19/202286.1.2 I2C总线 I2C(Inter Integrated Circuit)常译为内部集成电路总线,或集成电路间总线,它是由Philips公司推出的芯片间串行传输总线。使用2线实现数据通信。1根串行数据线(SDA)1根串行时钟线(SCL)。9/21/202276.1.2 I2C总线 I2C(Inter Integra1. I2C总线的基本特性硬件结构上具有相同的硬件接口界面。图6.3 I2C器件连接实例9/21/202281. I2C总线的基本特
5、性硬件结构上具有相同的硬件接口界面。总线接口器件地址具有很大的独立性。在单主系统中,每个I2C接口芯片具有唯一的器件地址,各从器件之间互不干扰,相互之间不能进行通信。MCU与I2C器件之间的通信是通过独一无二的器件地址来实现的。数据传输首先从最高位开始。传输速率在标准模式下可达100kbit/s,在快速模式下达400kbit/s,在高速模式下达3.4Mbit/s。它是一个真正的多主机总线。如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。软件操作的一致性。任何器件通过I2C总线与MCU进行数据传送的方式基本一样,决定了I2C总线软件编写的一致性。 9/21/20229
6、总线接口器件地址具有很大的独立性。在单主系统中,每个I2C接2.I2C总线工作原理 (1)I2C总线信号类型开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的器件在接收到8bit数据后,向发送数据的器件(发送器)发出特定的低电平脉冲,表示已收到数据。发送器接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为接收器出现故障。起始信号与结束信号都是由主器件产生。9/21/2022102.I2C总线工作原理 (1)I2C总线信号类型9/19/2(2)I2C总线
7、数据传输 主器件和从器件都可以工作于接收和发送状态。总线必须由主器件(通常为单片机)控制,主器件产生串行时钟控制总线的传输方向,并产生起始和停止条件。在起始信号结束后,主器件将发送一个用于选择从器件地址的7位地址码和一个数据方向位(R/W),方向位为“0”表示主器件把数据写到所选择的从器件中,此时主器件作为发送器,而从器件作为接收器;方向位为“1”表示主器件从所选择的从器件中读取数据,此时主器件作为接收器,而从器件作为发送器。在寻址字节后是按指定读、写操作的数据字节与应答位。在数据传送完成后主器件必须发送停止信号。9/21/202211(2)I2C总线数据传输 主器件和从器件都可以工作于接收和
8、发6.1.3 单总线单总线(1-Wire)是Dallas公司推出外围串行扩展总线,采用单根信号线完成数据的双向传输。单总线技术有三个显著的特点:单总线芯片通过一根信号线进行地址信息、控制信息和数据信息的传送,并通过该信号线为单总线器件提供电源;每个单总线芯片都具有全球唯一的访问序列号,当多个单总线器件挂在同一单总线上时,对所有单总线芯片的访问都通过该唯一序列号区分;单总线芯片在工作过程中,不需要提供外接电源,而通过它本身具有的“总线窃电”技术从总线上窃取电源。 9/21/2022126.1.3 单总线单总线(1-Wire)是Dallas公司图6.4 单总线多节点系统的示意图9/21/20221
9、3图6.4 单总线多节点系统的示意图9/19/2022156.1.4 Microwire串行总线Microwire总线是三线同步串行总线时钟线(SK)数据输入线(SI)数据输出线(SO)9/21/2022146.1.4 Microwire串行总线Microwire总6.2.1 X5045的基本功能1.X5045基本功能上电复位看门狗低电压检测串行E2PROM存储器6.2 串行E2PROM X5045接口扩展技术9/21/2022156.2.1 X5045的基本功能1.X5045基本功能62. 引脚排列与定义 图6.6 X5045的引脚分布 :片选端。当为低电平时,X5045工作。SO:串行数据
10、输出端。 :写保护输入端。Vss :电源地 SI :串行数据输入端。SCK :串行时钟输入端。 RESET :复位输出端。Vcc :电源电压。 9/21/2022162. 引脚排列与定义 图6.6 X5045的引脚分布 6.2.2 X5045的控制与实现 1.X5045操作指令与寄存器 (1)X5045的指令集命令名称命令格式内 容WRSR0000 0001写状态寄存器(看门狗和块锁)WRITE0000 A8010把数据写入所选地址的存储器阵列(116字节)READ0000 A8011从所选地址的存储器阵列开始读出数据WRDI0000 0100复位写使能锁存器(禁止写操作)RDSR0000 0
11、101读状态寄存器WREN0000 0110设置写使能锁存器(允许写操作)9/21/2022176.2.2 X5045的控制与实现 1.X5045操作指令状态寄存器格式如下: 7654321000WD1WD0BL1BL0WELWIPWIP:是否忙于向E2PROM写数据。 “0”时表示没有写操作,可以写数据; “1”时,表示正在写操作,此时不能向E2PROM 写数据。WEL:写使能锁存器的状态。为“1”时表示写使能置位,为“0”时表示写使能复位。BL1,BL0:设置E2PROM的块锁保护地址范围,它们的组合关系如表6.3所列。WD1、WD0:看门狗定时器时状态,两位是可编程位。看门狗定时值选择如
12、表6.4所示。(2)寄存器指令寄存器写使能寄存器状态寄存器9/21/202218状态寄存器格式如下: 7654321000WD1WD0B表6.3 块锁保护选择BL1BL0写保护的单元地址00没有保护01180H1FFH10100H1FFH11000H1FFH表6.4 看门狗定时选择WD1WD0看门狗定时值(典型值)001.4s01600ms10200ms11禁止看门狗工作9/21/202219表6.3 块锁保护选择BL1BL0写保护的00没有保护012. X5045的读/写操作与时序 (1)X5045的读操作与时序读存储器阵列图6.7(a) 读E2PROM阵列操作时序9/21/2022202.
13、 X5045的读/写操作与时序 (1)X5045的读操作读状态寄器时序图6.7(b) 读状态寄存器操作时序 9/21/202221读状态寄器时序图6.7(b) 读状态寄存器操作时序 9/1(2) X5045的写操作与时序 写使能锁存器的操作时序图6.8(a) 写使能锁存器操作时序9/21/202222(2) X5045的写操作与时序 写使能锁存器的操作时序图6字节写操作时序图6.8(b) 字节写操作操作时序9/21/202223字节写操作时序图6.8(b) 字节写操作操作时序9/19/图6.8(c) 写状态寄存器操作操作时序 写状态寄存器操作时序9/21/202224图6.8(c) 写状态寄存
14、器操作操作时序 写状态寄存器操作6.3.3 MCS-51单片机与X5045的接口电路图6.9 X5045与单片机典型接口电路 9/21/2022256.3.3 MCS-51单片机与X5045的接口电路图6.6.2.4 X5045应用软件设计实例接口软件主要包括以图6.9接口方式,下面给出X5045与单片机的软件接口子程序。 芯片初始化子程序设置使能锁存器子程序复位写使能锁存器子程序写状态寄存器子程序读状态寄存器子程序字节写、字节读子程序页读、页写子程序复位看门狗定时器子程序9/21/2022266.2.4 X5045应用软件设计实例接口软件主要包括芯片(1)初始化引脚、状态寄存器 及命令字节定
15、义 CSBIT P1.0;片选信号SI BIT P1.1;串行数据输入SCK BIT P1.2;串行时钟输入SO BIT P1.3;串行数据输出STATUS_REG EQU 00H;赋状态寄存器初始值READ_INST EQU 03H;READ指令WRITE_INST EQU 02H;WRITE指令RDSR_INST EQU 05H;RDSR指令WREN_INST EQU 06H;WREN指令WRSR_INST EQU 01H;WRSR指令WRDI_INST EQU 04H;WRDI指令命令名称命令格式内 容WRSR0000 0001写状态寄存器(看门狗和块锁)WRITE0000 A8010把
16、数据写入所选地址的存储器阵列(116字节)READ0000 A8011从所选地址的存储器阵列开始读出数据WRDI0000 0100复位写使能锁存器(禁止写操作)RDSR0000 0101读状态寄存器WREN0000 0110设置写使能锁存器(允许写操作)9/21/202227(1)初始化引脚、状态寄存器 及命令字节(2)子程序名称: OUTBYT 【功能】:向X5045 E2PROM写入8地址或数据,高位在前,低位在后。【入口参数】:欲写内容在A中 OUTBYT:MOV R7,#08H;置循环次数8OUTBYT1:CLR SCKRLC A;ACC的最高位送CyMOV SI, C ;Cy送 X5
17、045的SISETB SCKDJNZ R7,OUTBYT1 ;循环8次CLR SCKRET 9/21/202228(2)子程序名称: OUTBYT 【功能】:向X5045 E(3)子程序名称:INBYT 【功能】:从X5045 E2PROM中读出8位数据,高位在前,低位在后。【出口参数】:A的内容为读出的8位数据INBYT:MOV R7,#08H;置循环次数8INBYT1:STEBSCK CLR SCK;SCK的下降沿数据出现在SO端 MOV C,SO;数据输出端的数据送入C中 RLC ADJNZ R7,INBYT1 RET 9/21/202229(3)子程序名称:INBYT 【功能】:从X5
18、045 E2P(4)子程序名称:WREN 【功能】:写使能锁存器,使E2PROM或状态寄存器可写。WREN:LCALL STAX;启动X5045操作 MOV A, #WREN_INST LCALL OUTBYT;发送WREN指令 LCALL ENDX;结束X5045操作 RET (5)子程序名称:WRDI【功能】:复位写使能锁存器,禁止写E2PROM或状态寄存器。WRDI:LCALLSTAXMOV A, #WRDI_INSTLCALLOUTBYT ;发送WRDI指令LCALLENDXRET 9/21/202230(4)子程序名称:WREN 【功能】:写使能锁存器,使E2P(6)子程序名称:WR
19、SR【功能】:对状态寄存器中位BLI、BL0、WD1、WD0进行设置。【入口参数】:A中是要写入状态寄存器值WRSR:LCALL STAX MOV A,#WRSR_INST ;送WRSR指令(写状态寄存器01) LCALL OUTBYTE MOV A,#STATUS_REG;送状态寄存器值(00) LCALL OUTBYTE LCALL ENDX LCALL WIP_CHK ;等待WIP=0,检查写操 ;作是否完成 RET9/21/202231(6)子程序名称:WRSR【功能】:对状态寄存器中位BLI、(7)子程序名称:RDSR【功能】:读出状态寄存器当前值。【出口参数】:状态寄存器当前值存放
20、在A中RDSR:LCALL STAX MOV A,#RDSR_INST;送RDSR指令(0101) LCALL OUTBYTE LCALL INBYTE LCALENDX RET 9/21/202232(7)子程序名称:RDSR9/19/202234(10)子程序名称:WRITEN WRITEN:LCALL STAX ;下一指令启动 MOV A,#WRITE_INST MOV C,F0 ;插入单元地址最高位 MOV ACC.3,C LCALL OUTBYTE;送WRITE指令 MOV A,R3 【功能】:将缓冲区N(N16)字节数据写入指定ROM地址开始单元。【入口参数】:F0、R3是E2PR
21、OM单元地址A8及低八位;R0是待写缓冲区首地址;R2是缓冲区长度(待写的字节数N)。LCALL OUTBYTE;输出单元地址低八位BYWR: MOV A,R0 ;从缓冲区取数据输出 LCALL OUTBYTE INC R0 ;地址加1 DJNZ R2,BYWR ;缓冲区未空则继续输出LCALL ENDX ;指令结束 LCALL WIP_CHK RET9/21/202233(10)子程序名称:WRITEN WRITEN:LCALL(11)子程序名称:READN 【功能】:把指定地址开始的E2PROM单元数据读出并放入内部RAM单元【入口参数】:F0、R3是E2PROM单元地址高低八位【出口参数
22、】:R0是RAM单元缓冲区首地址;R2是要读字节长度 READN:LCALL STAX MOV A,# READ_INST ;输出READ指令 MOV C,F0 MOV ACC.3,C LCALLOUTBYTE MOV A,R3 ;输出低八位地址 LCALL OUTBYTEBYRD: LCALL INBYTE ;读出数据送入缓冲区 MOV R0,A INC R0 ;地址加1 DJNZ R2,BYRD ;数据未读完则继续 LCALL ENDX RET 9/21/202234(11)子程序名称:READN 【功能】:把指定地址开始的E(12)其他子程序 写操作完成检查子程序:WIP_CHK:LCA
23、LL RDSR;等待X5045结束内部写周期 JB ACC.0,WIP_CHK;等待WIP=0 RET 启动X5045操作子程序:STAX:SETB CS ;启动X5045指令NOP;先置高CS,再置低SCK,再拉低CSCLR SCKNOPCLR CSNOPRET9/21/202235(12)其他子程序 写操作完成检查子程序:9/19/20 结束X5045操作子程序:ENDX:CLR SCK ;结束X5045指令SETB CS ;先置低SCK,后置高CSNOPNOPRET 复位看门狗定时器子程序:RST_WDOG:CLR CS SETB CSRET 9/21/202236 结束X5045操作子
24、程序:9/19/2022386.3 串行专用键盘/显示器接口芯片HD72796.3.1 HD7279的基本功能1.HD7279的主要特点 与CPU间采用串行接口方式,仅占用4根口线; 内部含有译码器,可直接接收BCD码或16进制码,同时具有两种译码方式,实现LED数码管位寻址和段寻址,消隐和闪烁属性等多种控制指令,编程灵活; 循环左移和循环右移指令; 内部含有驱动器,无需外围元件可直接驱动LED 具有级联功能,可方便的实现多于8位显示或多于64键的键盘接口; 具有自动消除抖动并识别按键键值的功能。9/21/2022376.3 串行专用键盘/显示器接口芯片HD72796.3.1 2. HD727
25、9的引脚说明 DIG0DIG7:8个LED管的位驱动输出端。SASG:LED数码管的A段G段的输出端。DP为小数点的驱动输出端。 :片选信号。DATA:串行数据/输出端。CLK:数据串行传送的同步时钟输入端。KEY:按键信号输出端。RC:连接HD7279的外接振荡元件,其典型值为R=1.5k,C=15pF。 :复位端。CLKO:振荡输出端 VDD :正电源(5V) VSS :接地9/21/2022382. HD7279的引脚说明 DIG0DIG7:8个LED6.3.2 HD7279的控制与实现HD7279的控制指令由6条纯指令、7条带数据指令和1条读键盘指令组成。1.纯指令(1)复位(清除)指
26、令(A4H)该指令将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。D7D6D5D4D3D2D1D0101001009/21/2022396.3.2 HD7279的控制与实现HD7279的控制指(2)测试指令(BFH)该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试。(3)左移指令(A1H) 该指令使所有的显示自右向左(从第1位向第8位)移动一位(包括处于消隐状态的显示位),但对各位所设置的消隐及闪烁属性不变。移动后,最右边一位为空(无显示)。 D7D6D5D4D3D2D1D010111111D7D6D5D4D3D2
27、D1D0101000019/21/202240(2)测试指令(BFH)D7D6D5D4D3D2D1D010(4)右移指令(A0H) (5)循环左移指令(A3H) 该指令与左移指令类似,不同之处在于移动后原最左边一位(第8位)的内容显示于最右位(第1位)。D7D6D5D4D3D2D1D010100000D7D6D5D4D3D2D1D010100011(6)循环右移指令(A2H) 该指令与循环左移指令类似,但移动方向相反。 D7D6D5D4D3D2D1D0101000109/21/202241(4)右移指令(A0H) D7D6D5D4D3D2D1D012.带数据的指令 带数据指令均由双字节组成,第
28、1字节为指令标志码(有的还含有位地址),第2字节为显示内容。(1)按方式0译码显示指令 命令由二个字节组成,前半部分为指令,其中a2、a1、a0为LED数码管的位地址,即显示数据是送给哪一位LED的。具体分配如表6.6所列。指令中的d3d0为显示数据,收到此指令时,HD7279按表6.7规则(译码方式0)进行译码和显示。小数点的显示由DP位控制,DP=1时,小数点显示,DP=0时,小数点不显示。指令中的XXX为无影响位。 位D7D6D5D4D3D2D1D0十六进制码指令码10000a2a1a080H87H数据码DPXXXd3d2d1d09/21/2022422.带数据的指令 带数据指令均由双字
29、节组成,第1字节为指令表6.6 LED位地址译码表a2a1a0LED显示位000LED1001LED2010LED3011LED4100LED5101LED6110LED7111LED89/21/202243表6.6 LED位地址译码表a2a1a0LED显示位000表6.7 方式0译码显示表d3d0LED显示字d3d0LED显示字00H008H801H109H902H20AH03H30BHE04H40CHH05H50DHL06H60EHP07H70FH空(无显示)9/21/202244表6.7 方式0译码显示表d3d0LED显示字d3d0(2) 按方式1译码显示指令 此指令与上一条指令基本相同
30、,所不同的是译码方式。方式1情况下,LED显示的内容与十六进制相对应,该指令的译码规则见表6.8 (译码方式1)。a2、a1、a0位地址译码见表6.6。 位D7D6D5D4D3D2D1D0十六进制码指令码11001a2a1a0C8HCFH数据码DPXXXd3d2d1d09/21/202245(2) 按方式1译码显示指令 此指令与上一条指令基本相同,表6.8 方式1译码显示表d3d0LED显示字d3d0LED显示字00H008H801H109H902H20AHA03H30BHB04H40CHC05H50DHD06H60EHE07H70FHF9/21/202246表6.8 方式1译码显示表d3d0
31、LED显示字d3d0(3)不译码显示指令 其中a2 ,a1,a0为位地址,位地址译码见表6.6。第2字节仍为LED显示的内容,其中A-G和DP为显示数据,分别对应LED数码管的各段和小数点,当取值为“1”时,该段点亮;取值为“0”时,该段熄灭。 位D7D6D5D4D3D2D1D0十六进制码指令码10010a2a1a090H9FH数据码DPABCDEFG9/21/202247(3)不译码显示指令 其中a2 ,a1,a0为位地址,位地(4)闪烁控制指令 此命令控制各个数码管的闪烁属性。d0d7分别对应LED1LED8数码管,当取值为1时,LED不闪烁;取值为0时,LED闪烁。开机后,缺省的状态为各
32、位均不闪烁。 位D7D6D5D4D3D2D1D0十六进制码指令码1000100088H数据码d7d6d5d4d3d2d1d09/21/202248(4)闪烁控制指令 此命令控制各个数码管的闪烁属性。d0(5)消隐控制指令 此命令控制各个数码管的消隐属性。d0d7分别对应LED1LED8数码管,当取值为“1”时,LED显示;取值为“0”时,LED消隐。位D7D6D5D4D3D2D1D0十六进制码指令码1001100098H数据码d7d6d5d4d3d2d1d09/21/202249(5)消隐控制指令 此命令控制各个数码管的消隐属性。d0(6)段点亮指令 位D7D6D5D4D3D2D1D0十六进制
33、码指令码11100000E0H数据码XXd5d4d3d2d1d0该指令的作用是点亮某个数码管中某一指定的段,或64个LED矩阵中某一指定的LED。d5d0为段地址,范围从00H3FH, 9/21/202250(6)段点亮指令 位D7D6D5D4D3D2D1D0十六进制该指令作用为关闭(熄灭)数码管中的某一段,d5d0为段地址,范围从00H3FH,作用与段点亮指令相同,仅将点亮段改为关闭段。 (7)段关闭指令位D7D6D5D4D3D2D1D0十六进制码指令码11000000C0H数据码d7d6d5d4d3d2d1d09/21/202251该指令作用为关闭(熄灭)数码管中的某一段,d5d0为段地3
34、.读键盘数据指令 该指令从HD7279读出当前的按键代码。与其它指令不同,此命令的前一个字节15H为单片机传送到HD7279的指令,而后一个字节d7d0则为HD7279返回的按键代码,其范围是00H3FH(无键按下时为0 xFF)。位D7D6D5D4D3D2D1D0十六进制码指令码0001010115H数据码d7d6d5d4d3d2d1d09/21/2022523.读键盘数据指令 该指令从HD7279读出当前的按键代码4.控制时序 (1)纯指令时序(2)带数据指令时序 符号最小值典型值最大值T12550250T258250T358250T41525250T51525250T658T758250
35、T859/21/2022534.控制时序 (1)纯指令时序(2)带数据指令时序 符号最小(3)读键盘指令时序 为了保证HD7279正常工作,但选定HD7279的振荡元件RC和单片机的晶振之后,应调节延时时间,使时序中的T1T8满足表6.10所列要求。由表中的数据可知,HD7279规定的时间范围很宽,容易满足时序的要求。为了提高CPU访问HD7279的速度,应调整延时,使运行时间接近最短。 符号最小值典型值最大值T12550250T258250T358250T41525250T51525250T658T758250T859/21/202254(3)读键盘指令时序 为了保证HD7279正常工作,但
36、选定H表6.10 T1T8数据值 s符号最小值典型值最大值T12550250T258250T358250T41525250T51525250T658T758250T859/21/202255表6.10 T1T8数据值 s符号最小值典6.3.3 MCS-51单片机与HD7279的接口电路9/21/2022566.3.3 MCS-51单片机与HD7279的接口电路9/【实用技术】上图中AT89C51所用时钟频率为12MHz。如何确定时钟频率(晶振的大小)?(1) 看单片机的机型。不同型号的单片机系统时钟频率范围要求不同,如:AT89C51的最高时钟频率为24MHz。 (2) 看所需时钟频率。CPU
37、的运行速度与时钟频率有关,时钟频率越高,CPU的运行越快,完成一件工作所用时间越短。单片机的工作频率和功耗的关系也很大,频率越高,功耗越大。(3) 看单片机输出需要。 在系统中总看到晶振频率选用6、12或11.0592MHz。MCS-51系列单片机典型的指令周期为一个机器周期。 使用6MHz或12MHz,一个机器周期为2或1,便于做精确定时。后者的好处是最易获得标准的波特率,所以多数单片机系统选用这个频率。9/21/202257【实用技术】上图中AT89C51所用时钟频率为12MHz。如6.3.4 HD7279应用软件设计实例这里以图6.14接口电路为例,下面给出AT89C51与HD7279连
38、接的应用程序。该程序采用查询方式对键盘进行监视,当有键按下时读取按键代码并将其显示在LED显示器上。(1)HD7279的引脚定义CSBIT P1.0;片选信号CLK BIT P1.1;串行时钟信号DATA BIT P1.2;串行数据输入/输出KEY BIT P1.3;按键有效信号端9/21/2022586.3.4 HD7279应用软件设计实例这里以图6.14(2)子程序名称:SEND【功能】:将单字节数据写入到HD7279,高位在前。发送的数据可能是指令或显示数据。【入口参数】:累加器A中为要发送的字节数据SEND: MOV R2,#08H;发送8位 CLR CS ACALL DEY3;延时约
39、50s(T1)S_LOOP:MOV C,ACC.7;A的最高位输出到DATA端 MOV DATA,C SETB CLK;置CLK高电平,数据写入HD7279 RL A ACALL DEY1;延时约8s(T2) CLR CLK;置CLK低电平 ACALL DEY1;延时约8s(T3) DJNZ R2,S_LOOP;检测8位是否发送完 CLR DATA;发送完毕,DATA端置低 RET 9/21/202259(2)子程序名称:SEND9/19/202261(3)子程序名称:RECE【功能】:从HD7279读取8位按键代码,高位在前。【出口参数】:读取8位按键代码在累加器A中RECE:MOV R2,
40、#08H;接收8位数据 SETBDATA;DATA输出为高,准备输入 ACALL DEY2 ;延时约25s(T5)R_LOOP: SETB CLK;置CLK高,从HD7279读出数据 ACALL DEY1;延时约8s(T6) MOV C,DATA;接收1位数据 MOVACC.0,C ;读入1位数据存入A的最低位RLA CLR CLK;置CLK低电平 ACALL DEY1;延时约8s(T3) DJNZR2,R_LOOP;接收8位是否发送完毕 CLR DATA;接收完毕,DATA端置低RET9/21/202260(3)子程序名称:RECE9/19/202262(4)查询方式读键盘代码并显示代码主程
41、序ORG0000HLJMP MAINORG 0030HSTART:MOVSP,#60HMOVP1,#0F9H;I/O口初始化ACALL DEY0;等待约25ms复位时间MOVA,#0A4H;发送复位(清除)指令ACALL SENDSETB CS;置高电平MAIN:JB KEY, MAIN;检测按键,无键按下等待MOV A,#15H;发读键盘指令 ACALL SEND ;写入HD7279读键盘指令 ACALL RECE;读键值到累加器A SETB CS;置高电平 MOVB,#10;16进制键码转换成BCD码,以备显示 9/21/202261(4)查询方式读键盘代码并显示代码主程序9/19/202
42、26DIV AB MOV R0,A;十位暂存在R0中 MOV A,#0C9H;按方式1译码显示在数码管的LED2位 ACALLSEND;指令写入HD7279ACALL DEY2;延时约25s(T4) MOVA,R0ACALL SEND;显示十位SETB CS;置高电平MOVA,#0C8H;按方式1译码显示在数码管的LED1位ACALL SENDACALL DEY2;延时约25s(T4)MOV A,BACALL SEND;显示个位 SETB CS;置高电平WAIT:JNBKEY,WAIT;等待按键放开 AJMP MAIN(5)延时子程序: 略位D7D6D5D4D3D2D1D0十六进制码指令码11
43、001a2a1a0C8HCFH数据码DPXXXd3d2d1d09/21/202262DIV AB位D7D6D5D4D3D2D1D0十六进制6.4 串行A/D转换接口芯片TLC15436.5.1 TLC1543的基本功能1.TLC1543的基本特点CMOS型l0位A/D转换器三个输入端一个三态输出端:数据输出(DATAOUT)14通道多路选择器片内自动采样-保持电路和系统时钟电路片选CS、输入/输出时钟(I/O CLOCK)地址输入(ADDRESS)l1路外部输入3路内部自测试(self-test)电压9/21/2022636.4 串行A/D转换接口芯片TLC15436.5.1 T图6.15 T
44、LC1543引脚排列2. 引脚排列及功能9/21/202264图6.15 TLC1543引脚排列2. 引脚排列及功能9/6.4.2 TLC1543的控制与实现 图6.16 方式1时序图 9/21/2022656.4.2 TLC1543的控制与实现 图6.16 方式图6.17 TLC1543与单片机的接口电路6.4.3 MCS-51单片机与TLC1543的接口电路 9/21/202266图6.17 TLC1543与单片机的接口电路6.4.3 (1)引脚定义:EOC BIT P1.0IOCLK BIT P1.1ADIN BITP1.2DOUT BITP1.3CS BITP1.4(2)TLC1543
45、转换子程序:ADVERT【功能】:采集某一通道模拟信号并读取ADC的转换结果(采用方式1。使用的快速10时钟转换)【入口参数】:R4中为下一次转换通道地址【出口参数】:R2、R3分别储存转换结果的高2位(D9、D8)和低8位(D7D0)ADVERT:CLRIOCLK SETBCS SETBDOUT JNBEOC,$ MOVA,R4;读下一次转换地址到A SWAPA;取4位地址6.4.4 TLC1543应用软件设计实例 9/21/202267(1)引脚定义:6.4.4 TLC1543应用软件设计实例 CLRCS;置为低电平,选中TLC1543 MOV R5,#10;I/O CLOCK脉冲次数放入
46、R5LOOP1: NOP NOP MOV C,DOUT;读转换数据到C RLCA ;转换数据移到A的最低位,通道地址移入C MOV ADIN,C;写入通道地址 SETB CLK;置I/O CLOCK为高 NOP CLR CLK;置I/O CLOCK为低 CJNE R5,#02H,LOOP2 ;判断8个数据是否送完?未完,则跳转 MOV R2,A ;转换结果高8位放入R2 LOOP2: DJNZ R5,LOOP1;10个脉冲是否结束?没有则跳转 MOV R3,A;转换结果低2位放入R3;以下采样数据结果的高2位放入R2,低8位放入R3中 MOV A,R2;读转换结果的高8位到A MOV R0,A
47、;高8位暂存于R0中 RL A;取高2位 RL A ANL A,#03H MOVR2,A;转换结果的高2(D9、D8)位放入R29/21/202268 CLRCS;置为低电平,选中TLC15439 MOVA,R3RRARRARLCA;D1送入CyMOVR3,AMOVA, R0RLCAMOVR0,AMOVA,R3RLCAMOVA, R0RLCAMOVR3, ARET D7 D6 D5 D4 D3 D2 D1 D0D9 D8R3R2R2R39/21/202269 MOVA,R3D7 D6 D5 6.5 串行D/A转换接口芯片TLC5615具有3线串行总线接口10位CMOS电压输出型数模转换器(DA
48、C),具有高阻抗基准电压输入端,转换后的最大输出模拟电压是基准电压值的两倍。器件采用+5V单电源供电;内部带有上电复位功能,即把DAC寄存器复位至全零。最大功耗仅1.75mW。 6.5.1 TLC5615的基本功能9/21/2022706.5 串行D/A转换接口芯片TLC5615具有3线串行总线1. TLC5615内部结构9/21/2022711. TLC5615内部结构9/19/2022732.TLC5615引脚说明 DIN:串行数据输入端SCLK:串行时钟输入端CS:片选信号输入端,低电平有效DOUT:用于级联时的串行数据输出端AGND:模拟地REFIN:基准电压输入端。2(VDD2)V,典型值2.048VOUT:DAC模拟电压输出端VDD:正电源端9/21/2022722.TLC5615引脚说明 DIN:串行数据输入端9/19/6.5.2 TLC5615的控制与实现 1.TLC5615的时序分析 图6.20 T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年两课时说课稿
- 2025-2026学年厨师创意美术说课稿
- 2025-2026学年《蝈蝈》说课稿
- 2025-2026学年多媒体教学活动说课稿
- 2026年浙江省兰溪市高二生物下册期末考试模拟试卷及参考答案(综合卷)
- 2026年广东省台山市高二生物下册期末考试模拟卷附答案【综合题】
- 2025-2026学年大班语言落叶说课稿
- 2025-2026学年化学实验室之旅说课稿
- 2025-2026学年匆匆说课稿结尾
- 2025-2026学年大班社会我的祖国说课稿
- 《礼赞伟大祖国 争做时代少年-小学四年级国庆主题班会》
- 《医疗器械临床使用管理办法》培训考试测试题含答案
- 综合管理竞聘测试题及答案
- 湖北武汉市2026-2027学年高三年级上学期9月调研考试英语试卷
- 2026年部编版新教材道德与法治五年级上册全套教学设计(共4个单元有教学计划)
- 人教版初中英语八年级上册第一单元完整教案
- 高考英语谓语与非谓语组合练100题(含答案)
- 国药数科2026届春季校园招聘建设笔试备考试题及答案解析
- 内分泌科护理服务质量管理标准
- 雨课堂在线学堂《大数据机器学习》作业单元考核答案
- (正式版)DB65∕T 3442-2013 《金丝玉》
评论
0/150
提交评论