书签 分享 收藏 举报 版权申诉 / 87
上传文档赚钱

类型单片机课件第九章.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:2810539
  • 上传时间:2022-05-28
  • 格式:PPTX
  • 页数:87
  • 大小:1.07MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机课件第九章.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 课件 第九
    资源描述:

    1、【知识目标】【知识目标】1.理解单总线扩展技术。2.掌握SPI总线、I2C总线的原理3.掌握常用的串行总线芯片与单片机的接口设计【技能目标技能目标】1.学会使用AT89S51单片机的I/O口结合软件模拟I2C总线时序实现I2C接口的方法。2.学会使用AT89S51单片机的I/O口结合软件模拟SPI总线时序实现SPI接口的方法。9.1 9.1 单总线串行单总线串行扩展扩展9.2 SPI串行总线扩展9.3 I2C总线的串行扩展介绍9.4 9.4 键盘键盘/ /显示串行接口芯片显示串行接口芯片HD7279AHD7279A的的应用应用9.5 9.5 案例:基于案例:基于AT24C02AT24C02的具

    2、有记忆功能的计数器的设计的具有记忆功能的计数器的设计9.1.1 单总线概述单总线(1- Wire)是美国Dallas公司的一项专利技术。与目前广泛应用的其他串行数据通信方式不同,它采用单根信号线完成数据的双向传输,并同时通过该信号线为单总线器件提供电源,具有节省I/O引脚资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点,在电池供电设备、便携式仪器以及现场监控系统中有良好的应用前景。单总线标准为外设器件沿着一条数据线进行双向数据传输提供了一种简单的方案,任何单总线系统都包含一台主机和一个或多个从机,它们共用一条数据线。这条数据线被地址、控制和数据信息复用。由于主机和从机都是开漏输出,在主设

    3、备的总线一侧必须加上拉电阻,系统才能正常工作。此外,单总线器件通常采用3引脚封装,在这三个引脚中有一个公共地端、一个数据输入/输出端和一个电源端。该电源端可为单总线器件提供外部电源,从而免除总线集中馈电。如图9-1所示为一个由单总线构成的分布式测温系统。带有单总线接口的温度计集成电路DS18B20都挂在DQ总线上。单片机对每个DS18820通过总线DQ寻址。DQ为漏极开路,加上拉电阻RP。单总线技术有3个显著的特点:1)单总线芯片通过一根信号线进行地址信息、控制信息和数据信息的传送,并通过该信号线为单总线芯片提供电源;2)每个单总线芯片都具有全球唯一的访问序列号,当多个单总线器件挂在同一单总线

    4、上时,对所有单总线芯片的访问都通过该唯一序列号进行区分;3)单总线芯片在工作过程中,不需要提供外接电源,而通过它本身具有的“总线窃电”技术从总线上获取电源。此外,单总线技术采用特殊的总线通信协议实现数据通信。在通信过程中,单总线数据波形类似于脉冲宽度调制信号,总线发出复位信号(保持低电平的周期最长)同步整个总线,然后由系统主机初始化每一位数据时隙,利用宽脉冲或窄脉冲来实现写“0”或写l”。在读数据时,主机利用窄脉冲初始化时隙,从机将数据线保持在低电平,通过展宽低电平脉冲返回逻辑“0”,或保持脉冲宽度不变来返回逻辑“1”。多数单总线器件支持两种数据速率,较低的数据速率约为14kbit/s,较高的

    5、数据速率约为140kbit/s。单线总线器件主要提供存储器、混合信号电路、识别、安全认证等功能。目前Dallas公司采用单总线技术生产的芯片包括数字温度计、数字电位器、A/D转换器、定时器、RAM与E2PROM存储器、线路驱动器及微型局域网耦合器等系列器件。常用的单线总线器件见表9-1DS18B20是美国Dallas公司生产的单总线数字式温度传感器,采用单总线协议,即与单片机接口仅需占用一个I/O端口,无须任何外部元件,直接将环境温度转化为数字信号,以数字码形式串行输出,从而极大地简化了传感器与微处理器的接口。在使用过程中,可由一根I/O数据线实现传输数据,并可由用户设置温度报警界限,被广泛应

    6、用于精密仪器、存储仓库等需要测量和控制温度的地方。DS18B20具有以下特点: (1)测量范围:-55+125,在-10+85范围内精度为土0.5。 (2)分辨率:可编程分辨率为912位(其中包括l位符号位),对应的可分辨温度分别为0.5、0. 25、0.125和0.0625,可实现高精度测温。 (3)温度转换时间:其转换时间与设定的分辨率有关。当设定为9位时,最大转换时间为93.75ms;当设定为10位时,为187.5ms;当设定为11位时,为375ms;当设定为12位时,为750ms。 (4)电源电压范围:在保证温度转换精度为0.5的情况下,电源电压可为+3.0+5.5V。 (5)程序设置

    7、寄存器:该寄存器用于设置器件是处于测试模式还是工作模式(出厂时设置为工作模式),此外还用于设置温度分辨率,可设为9位、10位、11位或12位。 (6)64位ROM编码:从高位算起,该ROM有一个字节的CRC校验码,6个字节的产品序列和一个字节的产品家族代码。DS18B20的家族代码是10H。(7)DS18B20内部存储器分配:DS18B20中含有E2PROM,其报警上、下限温度值和设定的分辨率倍数是可记忆的,在出厂时被设定为12位分辨率。关于DS18B20的详细介绍和应用在第11章详细说明,这里就不再介绍了。9.2.1 SPI 串行总线简介SPI(Serial Peripheral Inter

    8、face)是由Motorola公司提出的一种同步串行总线,采用3根或4根信号线进行数据传输,所需要的信号包括使能信号、同步时钟、同步数据(输入和输出)。它允许MCU与各种外围设备以串行方式进行通信。SPI串行接口设备既可以工作在主设备模式下,也可以工作在从设备模式下。系统主设备为SPI总线通信过程提供同步时钟信号,并决定从设备片选信号的状态,使能将要进行通信的SPI从器件。SPI从器件则从系统主设备获取时钟及片选信号,因此从器件的控制信号CS、SCLK都是输入信号。SPI串行总线使用两条控制信号线CS和SCLK,一条或两条数据信号线SDI、SDO。在Motorola公司的SPI技术规范中将数据

    9、信号线SDI称为MISO(Master-In-Slave- Out),数据信号线SDO称为MOSI (Master-Out-Slave-In),控制信号线CS称为SS(Slave Select),时钟信号线SCLK称为SCK (Serial Clock)。在SPI串行扩展系统中,作为主器件的单片机在启动一次传送时,便产生8个时钟,传送给接口芯片作为同步时钟,控制数据的输入和输出。数据的传送格式是高位(MSB)在前,低位(LSB)在后,如图9-2所示。数据线上输出数据的变化以及输入数据时的采样,都取决于SCK。但对于不同的外围芯片,有的可能是SCK的上升沿起作用,有的可能是SCK的下降沿起作用。

    10、SPI有较高的数据传输速度,最高可达1.05 Mbit/s。目前采用SPI串行总线接口的器件非常多,有A/D与D/A转换器、存储器(E2PROM/FLASH)、实时时钟(RTC)、LCD控制器、温度传感器、压力传感器等。常用的SPI总线器件见表9-2。MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数码管、LED条线图形显示器、或64个分立的LED发光二级管。该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。它的操作很简单,MCU只需通过模拟SPI三线接口就可

    11、以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。各引脚的功能为:DIN:串行数据输入端;DOUT:串行数据输出端,用于多片MAX7219级联扩展;LOAD:数据锁定控制引脚,在LOAD的上升沿到来时片内数据被锁定;CLK:串行时钟输入;SEG ASEG G,DP:7段驱动和小数点驱动;ISET:段电流大小控制端。通过一个10k 电阻和Vcc相连,设置段电流DIG0DIG7:数码管位选择引脚。MAX7219的串行数据为16位串行数据,由4位无效数据、4位地址和8位数据组成,如表9-3所示。MAX7219在DIN端口上输入的16位数据在每一个CLK

    12、时钟信号的上升沿被移入内部移位寄存器,然后在LOAD信号的上升沿到来时这些数据被送到数据/控制寄存器,在发送过程中遵循高位在前、低位在后的原则。MAX7219内部有14个可寻址的数据控制寄存器,8字节的数据寄存器在片内是一个8x8的内存空间,5字节的控制寄存器包括编码模式、显示亮度、扫描控制、关闭模式及显示检测5个寄存器,如表9-4所示。编程时只有正确操作这些寄存器,MAX7219才可工作。MAX7219有两种译码方式:译码方式和不译码方式。当选择不译码时,8个数据位分别一一对应7个段和小数点位;译码方式是BCD译码,直接送数据就可以显示。实际应用中可以按位设置选择译码或是不译码方式,也就是译

    13、码的位为1,不译码的位为0。此寄存器用于设置显示的LED的个数。)亮度控制寄存器(0AH),共有16级可选择,用于设置LED的显示亮度,从00HFFH。()关断模式寄存器(XCH),共有两种模式选择,一是关断状态,(最低位D0=0)一是正常工作状态(D0=1)。()显示测试寄存器(0FH),用于设置LED是测试状态还是正常工作状态,当测试状态时(最低位D0=1)各位显示全亮,正常工作状态(D0=0)。例9-1使用AT89S51单片机利用I/O引脚扩展MAX7219驱动8位数码管,8位数码管显示“20150709”分析:根据要求扩展8位数码管,应用电路如图9-4所示。51单片机使用P2.0P2.

    14、2和MAX7219相连接,MAX7219的位输出和数据输出分别连接8位数码管的对应端口。根据要求设计程序如下: SBDIN BIT P2.0 SBLOAD BIT P2.1 SBCLK BIT P2.2 ORG 0000H LJMP MAIN MAIN: LCALL XIANSHI ;调用显示程序 SJMP MAINXIANSHI:PUSH PSW ACALL INIT7219 ;7219初始化 MAIN1:MOV 30H,#2 ;30H单元开始存入要显示的内容 MOV 31H,#0 MOV 32H,#1 MOV 33H,#5 MOV 34H,#0 MOV 35H,#7 MOV 36H,#0

    15、MOV 37H,#9 MOV R0,#30H MOV R1,#01H MOV R6,#8 CLR SBLOADL1: MOV A,R1 MOV B,R0 ACALL WRITE INC R0 INC R1 DJNZ R6,L1 POP PSW RET WRITE:CLR SBLOAD ;地址放在A,数据放在B中 ACALL WR7219 ;写地址 MOV A,B ACALL WR7219 ;写数据 SETB SBLOAD NOP NOP RETWR7219: MOV R7,#8 ;8位数据分别移入WRITE1:CLR SBCLK ;CLK拉低 RLC A ;A中的值左移 MOV SBDIN,C

    16、 ;输出的值送给DIN NOP SETB SBCLK ;CLK拉高,上升沿,数据移入 NOP DJNZ R7,WRITE1 RETINIT7219:MOV A,#09H ;译码模式寄存器 MOV B,#0FFH ;均译码 ACALL WRITE MOV A,#0AH ;显示亮度控制 MOV B,#05H ACALL WRITE MOV A,#0BH ;扫描控制 MOV B,#07H ;扫描07位 ACALL WRITE MOV A,#0CH ; 显示测试寄存器 MOV B,#01H ACALL WRITE RETEND二线制I2C串行E2PROM是应用非常广泛的存储器件。它是带I2C总线接口的

    17、电擦除可编程存储器。其特点是二线制、在线读写、断电保护数据,广泛应用于电子产品、计算机及其外设、通信产品等。二线制I2C有多种型号,如美国ATMEL公司的AT24C芯片。下面结合AT24C芯片为例,讲述串行E2PROM扩展单片机存储器技术。I2C总线是荷兰飞利浦(Philips)公司首创的两线串行多主总线,是一种用于连接微控制器及其外围设备,实现同步双向串行数据传输的二线式串行总线,目前已经发展到2.1版本。该总线在物理上由一根串行数据线SDA和一根串行时钟SCL组成,各种使用该标准的器件都可以直接连接到该总线上进行通信,可以在同一条总线上连接多个外部资源。总线上的器件既可以作为发送器,也可以

    18、作为接收器,按照一定的通信协议进行数据交换。在每次数据交换开始时,作为主控器的器件需要通过总线竞争获得主控权。每个器件都具有唯一的地址,各器件间通过寻址确定接收方。如图9-5所示为单片机使用I2C总线扩展多个外部资源的示意图。I2C总线在便携式微功耗领域中具有较广泛的应用,许多IC卡芯片的接口形式就是I2C总线,如A/D及D/A转换器、存储器等。目前很多单片机内部都集成了I2C总线,而AT89S51单片机内部没有集成,但可以通过软件实现与I2C总线的通信。I2C总线的基本特性:(1)只要求两条信号线:一条串行数据线SDA和一条串行时钟线SCL。SDA是双向串行数据线,用于地址、数据的输入和数据

    19、的输出,使用时需加上拉电阻。SCL是时钟线,为器件数据传输的同步时钟信号;(2)每根连接到总线的器件都可以通过唯一的地址进行寻址;(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输,则可以通 过冲突检测和仲裁防止数据被破坏;(4)在CPU和被控制器件间双向传送,最高传送速率为400kbps。片上的滤波器可以滤去总线数据上的毛刺,保证数据可靠传输。在I2C总线协议中,数据的传输必须由主器件发送的启动信号开始,以主器件发送的停止信号结束,从器件在收到启动信号之后需要发送应答信号来通知主器件已经完成了一次数据接收。当时钟线SCL保持高电平时,并且数据线SDA由高变低时,为I2C总线

    20、工作的起始信号;当SCL为高电平时,且SDA由低变高时,为I2C总线停止信号;标志操作的结束,即将结束所有相关的通信。图9-6是I2C总线的启动信号和停止信号时序图。在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址,系统发出开始信号后,系统中的各器件将自己的地址和CPU发送到总线上的地址进行比较,如果与CPU发送到总线上的地址一致,则该器件是被CPU寻址的器件。I2C总线上以字节为单位进行传送,每次先传送最高位。每次传送的数据字节数不限,在每个被传送的字节后面,接收器都必须发一位应答位(ACK),总线上第9个时钟脉冲对应于应答位,数据线上低电平为应答信号,高电平为非应答信号。待

    21、发送器确认后,再发送下一个数据。I2C总线为一种完善的串行总线扩展,标准的I2C总线有严格规范的电气接口和标准的状态处理软件包,要求系统中I2C总线连接的所有节点都具有I2C总线接口。大多数单片机应用系统中采用单主结构形式。在单主系统中,I2C总线只存在主方式,只存在单片机对I2C总线器件节点的读(主接收)、写(主发送)操作。因此,当所选择的单片机本身带有I2C总线接口时可以直接利用硬件I2C总线接口;当所选择的单片机本身不带有I2C总线接口时,则可以利用单片机的普通I/O来模拟实现I2C总线接口,其中一个引脚用于模拟SDA信号线的时序,另一个引脚用于模拟SCL信号线的时序。这使得I2C总线的

    22、使用不受单片机必须带有I2C总线接口的限制。下面给出模拟I2C总线典型信号的程序,包括启动、停止、发送应答位、发送非应答位、读字节子程序和写字节子程序等。用户只要理解通用读写子程序就能方便地编制应用程序。1.引脚定义在模拟主方式下的I2C总线时序时,选用P3.0、P3.1作为时钟线SCL和数据线SDA,SDAK BIT P3.0 SCLK BIT P3.1START: SETB SDAK ;开始SCL高电平,SDA由高电平变为低电平表示开始 NOP SETB SCLK NOP NOP CLR SDAK NOP NOP NOP CLR SCLK NOP RET STOP: CLR SDAK ;S

    23、CL处于高电平时,SDA从低电平变为高电平表示停止 SETB SCLK NOP NOP NOP SETB SDAK NOP NOP NOP RETTACK: CLR SDAK ;应答信号 NOP NOP SETB SCLK ;脉冲信号 NOP NOP CLR SCLK NOP NOP RETNOTACK:SETB SDAK NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP RET 该子程序是向I2C总线发送一个字节数据的操作。调用前将待发送的数据字节存放在A中。WRBYT: MOV R7,#8WRBYT1:RLC A MOV SDAK,C SETB

    24、SCLK ;SCLK置为高电平 NOP NOP NOP NOP CLR SCLK ;SCLK置为低电平 DJNZ R7,WRBYT1 RET该子程序是用来从I2C总线接收一个字节数据,将接收到的数据字节存放在R6中。RDBYT: MOV R7,#8 ;8位数据RDBYT1:SETB SDAK SETB SCLK ;产生脉冲 MOV C,SDAK ;读数据 MOV A,R6 ;读取暂存的数据 RLC A ;读入数据给累加器A MOV R6,A ;暂存数据至R6 CLR SCLK DJNZ R7,RDBYT1 RETAT24C器件是ATMEL公司生产的I2C总线接口的E2PROM芯片,主要应用在通

    25、用存储器IC卡中,AT24C芯片主要有1KB的AT24C01、2KB的AT24C02、4KB的AT24C04、8KB的AT24C08、16KB的AT24C16,AT24C芯片的2种标准引脚封装如图9-7所示。片外地址线(A0A2):共8种地址编排,即一个单总线系统中可同时接入8片AT24C01/02芯片。如果单总线系统中只需接入1片AT24C01/02芯片,可将A0A2同时接地,该AT24C芯片的片外地址为000B。AT24C04用A2和A1作为片外寻址线,单个总线系统可寻址4个4KB器件,A0引脚不用;AT24C08仅用A2作为片外寻址线,单总线系统最多可寻址2个8KB器件,A0和A1引脚不

    26、用。串行数据(SDA):双向数据线。串行时钟(SCL):双向线。串行时钟上升沿时,数据输入每个E2PROM器件,串行时钟下降沿时,数据从E2PROM器件中输出。 写保护(WP):写保护控制端,接“0”,允许写入,接“1”禁止写入。NC:空引脚。 Vcc:电源引脚。GND:接地引脚。WR24C02:ACALL START ;开始信号 MOV A,#0A0H ;命令10100000B ,写操作 ACALL WRBYT ;写入数据 ACALL TACK MOV A,#0 ;操作地址 ACALL WRBYT ;写入操作地址 ACALL TACK MOV a,b ;读取暂存数据 ACALL WRBYT

    27、;写入数据 ACALL TACK ACALL STOP ;停止信号 ACALL DLY5M ; DLY5M为延时子程序 ACALL DLY5M ACALL DLY5M ACALL DLY5M RETRD24C02:ACALL START ;开始 MOV A,#0A0H ;10100000,写操作 ACALL WRBYT ;写命令 ACALL TACK MOV A,#0 ;写入操作地址 ACALL WRBYT ACALL TACK ACALL START MOV A,#0A1H ;10100001,读操作 ACALL WRBYT ;写命令字 ACALL TACK ACALL RDBYT ;读 A

    28、CALL NOTACK ACALL STOP ;停止 ACALL DLY5M RET 例9-2:使用AT89S51单片机和AT24C02芯片扩展存储器,单片机读入P2口按键的输入状态,并写入AT24C02芯片后,再将写入的数据从AT24C02芯片读出来,输出到P1口通过发光二极管显示。分析:AT89S51单片机没有I2C接口,用P3.0和P3.1分别代替SDA和SCL信号线,用软件实现I2C总线协议。设计电路如图9-10所示。SDAK BIT P3.0 SCLK BIT P3.1 ORG 0000H AJMP STAR;*;主程序;*STAR: ACALL DLY5M ACALL DLY5MS

    29、T1: ACALL RD24C02 ;读24C02 MOV A,R6 ANL A,#0FH MOV P1,A ;输出数值到P1口低4位 MOV P2,#0FFH ;P2口锁存器置1 MOV A,P2 ;读P2口 ANL A,#0FH ;屏蔽高四位 MOV B,A ;数据暂存到B寄存器 ACALL WR24C02 ;写24C02 ACALL DLY5M ;延时 ACALL DLY5M ACALL DLY5M SJMP ST1 ;循环DLY5M: MOV R4,#10 ;延时 DLY5M1:MOV R3,#248 DJNZ R3,$ DJNZ R4,DLY5M1 RET END1.HD7279A1

    30、.HD7279A的简介的简介HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,无需外围元件,单片即可完成LED显示、键盘接口的全部功能,HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。但是HD7279A不适用于应用在需要2个或2个以上键同时按下的场合。HD7279A芯片占用口线少,外围电路简单,具有较高的性能价格比,已在键盘显示器接口的设计中获得广泛应用。HD7279AHD7279A的控制命令分为二大类,包括纯命令和带有数据的命令。的控制命令分为二大类,包括纯命令

    31、和带有数据的命令。(1)(1)纯命令。所有纯命令都是单字节命令,如表纯命令。所有纯命令都是单字节命令,如表9-79-7所示。所示。带有数据的命令均有双字节组成,第一字节为命令,有的带有地址,第二字节为操作的内容。1 1)按方式)按方式0 0译码显示命令译码显示命令。命令中的a2、al、a0表示LED数码管的位地址,表示显示数据是送给哪一位LED的,Ll表示LED最低位,L8表示LED最高位,具体位地址的译码见表9 -9。命令中的d3、d2、dl、d0为显示数据,收到这些数据后,HD7279A按表9-10所示的规则译码和显示。dp为小数点显示控制位,dp=l时,小数点显示;dp=0时,小数点不显

    32、示。此为段寻址指令,作用为点亮数码管中的某一指定段,或LED矩阵中某一指定的LED。指令中,d0d5为段地址,范围从00H3FH,具体分配为:第1个数码管的G段地址为00H,F段为01H,A段为06H,小数点DP为07H,第2个数码管的G段位08H,F段为09H,依此类推直至第8个数码管的小数点DP地址为3FH。段寻址命令,作用为关闭数码管中的某一段,该指令与段点亮地址相同。该指令从HD7279A读出当前的按键代码与其它指令不同,此命令的前一个字节15H,表示单片机写到HD7279的读键命令。而第二个字节为HD7279A返回的按键代码,其范围是0-3FH纯命令时序。单片机发出8个CLK脉冲,向

    33、HD7279A发出8位命令,DATA引脚最后为高阻态,如图9-12所示。单片机发出16个CLK脉冲,前8个向HD7279A发送8位命令;后8个向HD7279A传送8位显示数据,DATA引脚最后为高阻态,如图9 -13所示。单片机发出16个CLK脉冲,前8个向HD7279A发送8位命令;发送完之后DATA引脚为高阻态;后8个CLK由HD7279A向单片机返回8位按键值,DATA引脚为输出状态。最后一个CLK脉冲的下降沿将DATA引脚恢复为高阻态,如图9 -14所示。4. HD72794. HD7279的应用的应用 图9-15所示为AT89S51单片机与HD7279A的接口电路,外接振荡元件为典型

    34、值,晶振频率为12 MHz。上电后,HD7279A经过1518 ms的时间才进人工作状态。 单片机判断键盘矩阵中是否有按键按下,是通过KEY引脚电平来判断的。在使用中断方式时可将KEY引脚接至单片机的外部中断输入端,同时应将外中断触发方式设置成跳沿触发;若设置成电平触发方式,则在按键按下较长时间时,会引发多次中断误申请。是否有键按下也可以采用查询方式。HD7279A控制显示器时,应连接共阴极显示器。对于不使用的按键和显示器,可以不连接。如果不用键盘,则图9-15中连接到键盘的8只10K电阻和8只100K下拉电阻均可以省去。如果使用了键盘,则电路中的8只100K下拉电阻均不得省略除非不接入数码管

    35、,否则串入DP及SA-SG连线的8只200电阻均不能省去。因为采用循环扫描的工作方式,如果采用普通的数码管,亮度有可能不够,采用高亮或超高亮的型号,可以解决这个问题。数码管的尺寸,不宜选得过大,一般字符高度不宜超过1英寸,如使用大型的数码管,应使用适当的驱动电路。根据图9-15,编写程序实现当有按键按下时,单片机读取该按键的代码并将其显示在LED数码管上。DU7279 DATA 020HXIE7279 DATA 021HHDCS BIT Pl.0 ;HD7279A的CS连接于P1.0HDCLK BIT Pl.1 ;HD7279A的CLK连接于P1.1HDDATA BIT Pl.2 ;HD727

    36、9A的DATA连接于P1.2HDKEY BIT Pl.3 ;HD7279A的KEY连接于P1.3 ORG OOOH JMP START ORG 100HSTART: MOV SP, #60H ;定义堆栈 MOV P1,#011111001B ;CS=1,KEY=1,CLK=0,DATA=0 ACALL DELY25 ;延时25us MOV XIE7279, #A4H;发复位指令 ACALL WRITE7279 MOV XIE7279, #98H;由于只用到两位所以其余位设置为消隐 CALL WRITE7279ACALL DELAY3 MOV XIE7279, #03H ACALL WRITE7

    37、279 SETB CS ;恢复CS为高电平MAIN: JB KEY, MAIN ;检测是否有键按下 MOV XIE7279,#15H ;有键按下,发送读键盘指令 ACALL WRITE7279 ACALL READ7279 SETB CS ;设CS为高电平 MOV A, DU7279 MOV R7 ,AMOV XIE7279,#0C8H ;下载数据,方式1译码,选择L1位 ACALL WRITE7279 ;发送指令到HD7279A MOV A,R7 ANL A,#0FH ;屏蔽掉高4位 MOV XIE7279,A ;发送数据 ACALL WRITE7279SETB HDCSMOV XIE727

    38、9,#0C9H ;下载数据,方式1译码,选择L2位 ACALL WRITE7279 ;发送指令到HD7279A MOV A,R7SWAP A ;要显示高位 ANL A,#0FH ;屏蔽掉高4位 MOV XIE7279,A ;发送数据 ACALL WRITE7279SETB HDCSWAIT1: JNB KEY,WAIT1 ;等待按键放开 JMP MAINWRITE7279:MOV R6,#8 ;发送8位 CLR HDCS ; CS为低电平 ACALL DELAY4 ;长延时50 sLOOP1: MOV C,XIE7279.7 ;输出 MOV HDDATA,C SETB HDCLK ; CLK为

    39、高电平 MOV A, XIE7279 ;待发送数据左移 RL A MOV XIE7279, A ACALL DELAY3 ;短延时 CLR HDCLK ;置CLK为低电平 ACALL DELAY3 ;短延时 DJNZ R6,LOOP1 CLR HDDATA ;发送完毕,DAT为低电平 RETREAD7279:MOV R6,#8 SETB HDDATA ;设P1.2 (DATA)口为高电平 ACALL DELAY4 ;长延时LOOP2: SETB HDCLK ;置CLK为高电平 ACALL DELAY3 ;短延时 MOV A, DU7279 ;数据左移 RL A MOV DU7279,A MOV

    40、 C,HDDATA ;读一位数据 MOV DU7279,C CLR HDCLK ; CLK为低电平 ACALL DELAY3 DJNZ R6, LOOP2 CLR HDDATA ; DAT为低电平 RET【任务目的】【任务目的】熟悉AT24C02芯片,掌握软件驱动程序设计。用PROTEUS设计、仿真AT24C02扩展存储器。【任务描述】【任务描述】该任务使用AT89S51单片机和AT24C02芯片扩展存储器,当按压K1键一次,数码管显示加1,每次开机后数码管显示上次关机的计数值。STAR: ACALL DLY5M ACALL DLY5MST1: ACALL RD24C02 ;读24C02 MOV B,R6 ;上次的值暂存 MOV P1,A;将A的值送到P1口显示 JB P0.2,$ ;无键按下原地跳转 ACALL DLY5M JNB P0.2,$ ;按键是否放下 INC B ;数值加1 ACALL WR24C02 ;写24C02 ACALL DLY5M ;延时 ACALL DLY5M ACALL DLY5M SJMP ST1 ;循环

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机课件第九章.pptx
    链接地址:https://www.163wenku.com/p-2810539.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库