版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 MCS-51单片机常用接口 7.1 MCS-51单片机的最小系统单片机的最小系统 所谓最小系统,是指一个真正可用的单片机最小配置系统。对于单片机内部资源已能满足系统需求的,可直接采用最小系统。MCS-51单片机根据片内有无程序存储器最小系统分两种情况。 7.1.1 8051/8751的最小系统 8051/8751片内有4K的ROM/EPROM,因此,只需求外接晶体振荡器和复位电路就可构成最小系统。如下图。 第7章 MCS-51单片机常用接口 第7章 MCS-51单片机常用接口 XTAL1 XTAL2 8751 P0P1P2P3 8051 RESET EA GND +5V +5V8 8
2、88 该最小系统的特点如下:1由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口运用。2片内数据存储器有128字节,地址空间00H7FH,没有片外数据存储器。3内部有4KB程序存储器,地址空间0000H0FFFH,没有片外程序存储器,EA应接高电平。4可以运用两个定时/计数器T0和T1,一个全双工的串行通讯接口,5个中断源。第7章 MCS-51单片机常用接口 7.1.1 8031最小运用系统 8031片内无程序存储器片,因此,在构成最小运用系统不仅要外接晶体振荡器和复位电路,还应外扩展程序存储器。 P2ALE8031P0EAPSENG74LS373A15A8A7A0D7
3、D0OE2764CE高8位地址线P2ALEP0EAPSEN第7章 MCS-51单片机常用接口 该最小系统特点如下:1由于P0、P2在扩展程序存储器时作为地址线和数据线,不能作为I/O线,因此,只需P1、P3作为用户I/O口运用。2片内数据存储器同样有128字节,地址空间00H7FH,没有片外数据存储器。3内部有无程序存储器,但片外扩展了程序存储器,其地址空间随芯片容量不同而不一样。图6.2中运用的是2764芯片,容量为8K字节,地址空间为0000H1FFFH。由于片内没有程序存储器,只能运用片外程序存储器,EA只能接低电平。4同样可以运用两个定时/计数器T0和T1,一个全双工的串行通讯接口,5
4、个中断源。 第7章 MCS-51单片机常用接口 7.2 存储器扩展存储器扩展7.2.1 存储器扩展概述存储器扩展概述一、一、MCS-51单片机的存储器扩展才干单片机的存储器扩展才干可扩展片外程序存储器64KB,地址为0000HFFFFH。可扩展片外数据存储器64KB,地址为0000HFFFFH。二、存储器扩展的普通方法二、存储器扩展的普通方法 不论何种存储器芯片,其引脚都呈三总线构造,与单片机衔接都是三总线对接。另外,电源线接电源线,地线接地线。 控制线: 程序存储器:ROM芯片输出允许控制线 OE与单片机的PSEN信号线相连 。 数据存储器:RAM芯片输出允许控制线OE和写控制线 WE分别与
5、单片机的读信号线RD和写信号线WR相连。 程序存储器用ROM芯片扩展,数据存储器用RAM芯片扩展第7章 MCS-51单片机常用接口 2、数据线:存储器芯片的数据线与单片机的数据总线(P0.0P0.7)按由低位到高位的顺序依次相接。 3、地址线: 存储器芯片的地址线的数目由芯片的容量决议。容量(Q)与地址线数目(N)满足关系式:Q=2N。普通来说,存储器芯片的地址线数目总是少于单片机地址总线的数目,衔接时存储器芯片的地址线与单片机的地址总线(A0A15)按由低位到高位的顺序依次相接。衔接后,单片机的高位地址线总有剩余。剩余地址线普通作为译码线,译码输出与存储器芯片的片选信号线CS相接。片选信号线
6、与单片机系统的译码输出相接后,就决议了存储器芯片的地址范围。 译码有两种方法:部分译码法和全译码法。 部分译码:所谓部分译码就是存储器芯片的地址线与单片机系统的部分译码:所谓部分译码就是存储器芯片的地址线与单片机系统的地址线依次相接后,剩余的高位地址线仅用一部分参与译码。部分译地址线依次相接后,剩余的高位地址线仅用一部分参与译码。部分译码使存储器芯片的地址空间有重叠,呵斥系统存储器空间的浪费。码使存储器芯片的地址空间有重叠,呵斥系统存储器空间的浪费。 第7章 MCS-51单片机常用接口 如以下图,存储器芯片容量为2K,地址线为11根,与地址总线的低11位A0A10相连,用于选中芯片内的单元。地
7、址总线的A11、A12、A13、A14根地址线参与译码的选中芯片,设这四根地址总线的形状为0100时选中该芯片。地址总线A15不参与译码,当地址总线A15为0、1两种形状都可以选中该存储器芯片。A15 A140A130A121A110A10A9A8A7A6A5A4A3A2A1A0地址译码线与存储器芯片衔接的地址线当A15=0时,芯片占用的地址是00010000000000000001011111111111,即1000H17FFH。当A15=1时,芯片占用的地址是10010000000000001001011111111111,即9000H97FFH。部分译码法的一个特例是线译码。所谓线译码就
8、是直接用一根剩部分译码法的一个特例是线译码。所谓线译码就是直接用一根剩余的高位地址线与一块存储器芯片的片选信号余的高位地址线与一块存储器芯片的片选信号CS相连。相连。 第7章 MCS-51单片机常用接口 全译码:所谓全译码就是存储器芯片的地址线与单片机系统的地址线全译码:所谓全译码就是存储器芯片的地址线与单片机系统的地址线依次相接后,剩余的高位地址线全部参与译码。这种译码方法存储器依次相接后,剩余的高位地址线全部参与译码。这种译码方法存储器芯片的地址空间是独一确定的,但译码电路相对复杂。芯片的地址空间是独一确定的,但译码电路相对复杂。3扩展存储器所需芯片数目确实定扩展存储器所需芯片数目确实定存
9、储器芯片容量系统扩展容量芯片数目=假设所选存储器芯片字长与单片机字长一致,那么只需扩展容量。所需芯片数目按下式确定:假设所选存储器芯片字长与单片机字长不一致,那么不仅需扩展容量,还需字扩展。所需芯片数目按下式确定:存储器芯片字长系统字长存储器芯片容量系统扩展容量芯片数目=第7章 MCS-51单片机常用接口 7.2.2 程序存储器扩展程序存储器扩展一单片程序存储器的扩展一单片程序存储器的扩展P2.6P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P2.7P2.5P0.0ALEVcc8031PSENEAVss+5VA12A11A10A9A8A7A6A
10、5A4A3A2A1A0D7D5D4D3D2D1D0OED6CEGNDVff+5V8D7D6D5D4D3D2D1DGOE8Q7Q6Q5Q4Q3Q2Q1QVcc74LS3732764第7章 MCS-51单片机常用接口 二多片程序存储器的扩展二多片程序存储器的扩展其8个重叠的地址范围为如下:00000000000000000001111111111111,即0000H1FFFH;00100000000000000011111111111111,即2000H3FFFH;01000000000000000101111111111111,即4000H5FFFH;0110000000000000011111
11、1111111111,即6000H7FFFH;10000000000000001001111111111111,即8000H9FFFH;10100000000000001011111111111111,即A000HBFFFH;11000000000000001101111111111111,即C000HDFFFH;11100000000000001111111111111111,即E000HFFFFH。P2.6P2.5P2.4P2.0ALE8031PSENEAGP2.774LS373OEA0A7A8A12 CED0D7OE2764(1)A0A7A8A12 CE2764(2)D0D7OEP058
12、8885885第7章 MCS-51单片机常用接口 其两片的地址空间分别为:第一片:000000000000000000001111111111111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH;第二片:100000000000000001001111111111111,即8000H9FFFH;1010000000000000010111111
13、11111111,即A000HBFFFH;110000000000000001101111111111111,即C000HDFFFH;111000000000000001111111111111111,即E000HFFFFH。第7章 MCS-51单片机常用接口 P2.6P2.5P 2 . 4 P2.0ALE8031PSENEAGP2.774LS373OEA0A7A8A12CED0D7OE2764(1)A0A7A8A12CE2764(2)OEP0588885885CBAD0D7GG1G2AG2BY3Y2Y1Y08D0D7OE2764(3)A0A7A8A12CE8D0D7OECEA8A12A0A7
14、2764(4)8585Vcc74LS由于采用全译码,每片2764的地址空间都是独一的。它们分别是:000000000000000000001111111111111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH。第7章 MCS-51单片机常用接口 P2.6P2.5P2.4P2.0ALE8051RDEAGP2.774LS373OEA0A7 A8A
15、12CE1D0D7OE6264(1)A0A7 A8A12CE16264(2)D0D7OEP058885885WRWEWE88CE2CE2P2.7为低电平0,两片6264芯片的地址空间为:第一片:010000000000000000101111111111111,即4000H5FFFH;第二片:001000000000000000011111111111111,即2000H3FFFH;P2.7为高电平1,两片6264芯片的地址空间为:第一片:110000000000000001101111111111111,即C000HDFFFH;第二片:1010000000000000010111111111
16、11111,即A000HBFFFH;7.2.3 数据存储器扩展数据存储器扩展第7章 MCS-51单片机常用接口 7.3 输入输入/输出口扩展输出口扩展7.3.1 简单简单I/O口扩展口扩展 通常经过数据缓冲器、锁存器来扩展简单I/O接口。例如:74LS373 74LS244、74LS273、74LS245等芯片都可以作简单I/O扩展。P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08051EAD0D1D2D3D4D5D6D7GOEQ0Q1Q2Q3Q4Q5Q6Q774LS373P2.0RDQ0Q1Q2Q3Q4Q5Q6Q71G2G74LS244+L1L2L3L4L5L6L7L0+5
17、VD0D1D2D3D4D5D6D7K1K2K3K4K5K6K7K0第7章 MCS-51单片机常用接口 图中,扩展的输入口接了K0K7 8个开关,扩展的输出口接了L0L7 8个发光二极管,假设要实现K0K7开关的形状经过L0L7发光二极管显示,那么相应的汇编程序为:LOOP:MOV DPTR,#0FEFFHMOVX A,DPTRMOVX DPTR,ASJMP LOOP假设用C言语编程,相应程序段为:#include /定义绝对地址访问#define uchar unsigned charuchar i;i=XBYTE0 xfeff;XBYTE0 xfeff= i;第7章 MCS-51单片机常用接
18、口 7.3.2 可编程可编程I/O扩展扩展(8255A)一一8255A的构造与功能的构造与功能数据总线缓冲器读/写控制部件双向数据总线 D0D7 RD WR A1 A0RESETCSB组控制部件A组控制部件A组端口AA组端口CB组端口CB组端口BA组B组PA7PA0PC7PC4PC3PC0PB7PB08位内部总线第7章 MCS-51单片机常用接口 CSA1A0RDWRI/O操作00001读A口寄存器内容到数据总线00101读B口寄存器内容到数据总线01001读C口寄存器内容到数据总线00010数据总线上内容写到A口寄存器00110数据总线上内容写到B口寄存器01010数据总线上内容写到C口寄存
19、器01110数据总线上内容写到控制口寄存器二二8255A的引脚信号的引脚信号8255A共40引脚,采用双列直插式封装,如以下图所示,各引脚信号功能如下:D7D0:三态双向数据线,与单片机的数据总线相连,用来传送数据信息。第7章 MCS-51单片机常用接口 CS:片选信号线,低电平有效,用于选中8255A芯片。 RD:读信号线,低电平有效,用于控制从8255A端口存放器读出信息。WR:写信号线,低电平有效,用于控制向8255A端口存放器写入信息。PA7PA0:A口的8根输入/输出信号线,用于与外部设备衔接。PB7PB0:B口的8根输入/输出信号线,用于与外部设备衔接。PC7PC0:C口的8根输入
20、/输出信号线,用于与外部设备衔接。RESET:复位信号线。VCC:+5V电源线。GND:地信号线。8255A12345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA0PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3第7章 MCS-51单片机常用接口 三三8255A的控制字的控制字8255A有两个控制字:任务方式控制字和C口按位置位/复位控制字。
21、 1任务方式控制字任务方式控制字端口A0:输出1:输入端口C高4位0:输出1:输入端口B0:输出1:输入特征位1A组任务方式位00:方式001:方式11X:方式2B组任务方式位0:方式01:方式1端口C低4位0:输出1:输入D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0D7位为特征位。D7=1表示为任务方式控制字。D6、D5用于设定A组的任务方式。D4、D3用于设定A口和C口的高4位是输入还是输出。D2用于设定B组的任务方式。D1、D0用于设定B口和C口的低4位是输入还是输出。第7章 MCS-51单片机常用接口 2C口按位置位口按位置位/复位控制字复位控制字特征位0这三位不用位
22、选择位000:C口0位001:C口1位111:C口7位0:复位1:置位D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0D7位为特征位。D7=0表示为C口按位置位/复位控制字。D6、D5、D4这三位不用D3、D2、D1这三位用于选择C口当中的某一位。D0用于置位/复位设置,D0=0那么复位,D0=1那么置位。第7章 MCS-51单片机常用接口 四四8255A的任务方式的任务方式1方式方式0 方式0是一种根本的输入/输出方式。在这种方式下,三个端口都可以由程序设置为输入或输出,没有固定的应对信号。方式0特点如下:1具有两个8位端口A、B和两个4位端口C口的高4位和C口的低4位。2任何
23、一个端口都可以设定为输入或者输出。3每一个端口输出时是锁存的,输入是不锁存的。 方式0输入/输出时没有专门的应对信号,通常用于无条件传送。例如:以下图是8255A任务于方式0的例子,其中A口输入,B口输出。 第7章 MCS-51单片机常用接口 8051系统总线8255APA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7+5V+5VK0K7L0L7第7章 MCS-51单片机常用接口 2方式方式1 方式1是一种选通输入/输出方式。在这种任务方式下,端口A和B作为数据输入输出口,端口C用作输入/输出的应对信号。A口和B口既可以作输入,也可作输出,输入和输
24、出都具有锁存才干。 方式1输入: 无论是A口输入还是B口输入,都用C口的三位作应对信号,一位作中断允许控制位。 INTE&PC4PC5PC3PC6、PC7PA0PA7STBAIBFAI/OINTRAB口输入INTE&A口输入PC2PC1PC088IBFBSTBBPB0PB7INTRB第7章 MCS-51单片机常用接口 各应对信号含义如下:STB:外设送给8255A的“输入选通信号,低电平有效。 IBF:8255A送给外设的“输入缓冲器满信号,高电平有效。 INTR:8255A送给CPU的“中断恳求信号,高电平有效。 INTE:8255A内部为控制中断而设置的“中断允许信号。IN
25、TE由软件经过对PC4A口和PC2B口的置位/复位来允许或制止。 方式1输出: 无论是A口输出还是B口输出,也都用C口的三位作应对信号,一位作中断允许控制位。 INTE&PC7PC6PC3PC4、PC5PA0PA7ACKAOBFAI/OINTRAB口输出INTE&A口输出PC2PC1PC088OBFBACKBPB0PB7INTRB2第7章 MCS-51单片机常用接口 应对信号含义如下:OBF:8255A送给外设的“输出缓冲器满信号,低电平有效。 ACK:外设送给8255A的“应对信号,低电平有效。 INTR:8255A送给CPU的“中断恳求信号,高电平有效。 INTE:8255
26、A内部为控制中断而设置的“中断允许信号,含义与输入一样,只是对应C口的位数与输入不同,它是经过对PC4A口和PC2B口的置位/复位来允许或制止。 3方式方式2 方式2是一种双向选通输入/输出方式。只适宜于端口A。这种方式能实现外设与8255A的A口双向数据传送,并且输入和输出都是锁存的。它运用C口的5位作应对信号,两位作中断允许控制位。 第7章 MCS-51单片机常用接口 &INTE1INTE2&1PC5PC4PC6PC7PC3PA0PA7ACKAOBFAINTRASTBAIBFA五五8255A与与MCS-51单片机的接口单片机的接口1硬件接口硬件接口 8255A与MCS-51
27、单片机的衔接包含数据线、地址线、控制线的衔接.第7章 MCS-51单片机常用接口 VccWRRDP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08051ALEEAGNDD7D6D5D4D3D2D2D1DO GQ7Q6Q5Q4Q3Q2Q1Q0WRRDCSA1A0D7D6D5D4D3D2D1GNDVcc+5V+5VPA7-PA0PB7-PB0PC7-PC0OED0第7章 MCS-51单片机常用接口 图中,8255A的数据线与8051单片机的数据总线相连,读、写信号线对应相连,地址线A0、A1与单片机的地址总线的A0和A1相连,片选信号CS与8051的P2.0相连。那么825
28、5A的A口、B口、C口和控制口的地址分别是:FEFCH,FEFDH,FEFEH,FEFFH。 2软件编程软件编程假设设定8255A的A口为方式0输入,B口为方式0输出,那么初始化程序为:汇编程序段:MOV A,#90HMOV DPTR,#0FEFFHMOVX DPTR,AC言语程序段:#include #include /定义绝对地址访问XBYTE0 xfeff=0 x90;第7章 MCS-51单片机常用接口 7.4 MCS-51单片机与键盘接口单片机与键盘接口7.4.1 键盘的任务原理键盘的任务原理键盘实践上是一组按键开关的集合,平常按键开关总是处于断开形状,当按下键时它才闭合。它的构造和产
29、生的波形如下图。P1.1VCCGND断开闭合断开P1.1( a )( b )第7章 MCS-51单片机常用接口 键盘的处置主要涉及三个方面:键盘的处置主要涉及三个方面: 1按键的识别按键的识别2抖动的消除抖动的消除消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。断开闭合+5V+5V输出软件消抖是利用延时来跳过抖动过程 第7章 MCS-51单片机常用接口 3键位的编码键位的编码通常有两种方法编码。 1用衔接键盘的I/O线的二进制组合进展编码。如a图 2顺序陈列编码。如b图,处置方法如下:编码值=行首编码值X+列号Y。 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.788 84
30、82 8148 44 42 4128 24 22 2118 14 12 11P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7F E D CB A 9 87 6 5 43 2 1 0( a )( b )第7章 MCS-51单片机常用接口 7.4.2 独立式键盘与单片机的接口独立式键盘与单片机的接口键盘的构造方式普通有两种:独立式键盘与矩阵式键盘。 独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。 GNDVCCGNDVCC与( b )8051( a )INT08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6
31、P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7第7章 MCS-51单片机常用接口 图a为中断方式任务的独立式键盘的构造方式,b为查询方式任务的独立式键盘的构造方式 下面是针对图7.4b图查询方式的汇编言语方式的键盘程序。总共有8个键位,KEY0KEY7为8个键的功能程序。START:MOV A,#0FFH;MOV P1,A ;置P1口为输入形状MOV A,P1 ;键形状输入CPL AJZ START ;没有键按下,那么转开场JB ACC.0,K0 ;检测0号键能否按下,按下转JB ACC.1,K1 ;检测1号键能否按下,按下转JB ACC.2,K2 ;检测2号键能否按
32、下,按下转JB ACC.3,K3 ;检测3号键能否按下,按下转JB ACC.4,K4 ;检测4号键能否按下,按下转JB ACC.5,K5 ;检测5号键能否按下,按下转JB ACC.6,K6 ;检测6号键能否按下,按下转JB ACC.7,K7 ;检测7号键能否按下,按下转JMP START ;无键按下前往,再依次检测第7章 MCS-51单片机常用接口 K0:AJMP KEY0K1:AJMP KEY1K7:AJIMP KEY7KEY0: ;0号键功能程序JMP START ;0号键功能程序执行完前往KEY1: ;0号键功能程序JMP START ;1号键功能程序执行完前往KEY7: ;7号键功能程
33、序JMP START ;7号键功能程序执行完前往7.4.3 矩阵键盘与单片机的接口矩阵键盘与单片机的接口 矩阵式键盘又叫行列式键盘。用I/O口线组成行、列构造,键位设置在行列的交点上。例如44的行、列构造可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。 第7章 MCS-51单片机常用接口 PA7PA6PA5PA4PA3PA2PA1PA0PC0PC1PC2PC30 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 316 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CS74LS373WRRDA1
34、A0P2.7WRRDALEP0.0P0.7D0D7RESET1K20F+5V+5V82555.1K48051第7章 MCS-51单片机常用接口 一矩阵键盘的任务过程一矩阵键盘的任务过程对矩阵键盘的任务过程可分两步:第一步是CPU首先检测键盘上能否有键按下;第二步是再识别是哪一个键按下。二矩阵键盘的任务方式二矩阵键盘的任务方式1查询任务方式查询任务方式2定时扫描任务方式定时扫描任务方式3中断处置方式中断处置方式对于检测键盘上有无键按下通常采用3种方式 第7章 MCS-51单片机常用接口 键盘扫描子程序流程如图 。开场有键按下否?调用6ms延时子程序?调用12ms延时子程序?有键按下否?判闭合键,
35、编码入栈维护闭合键释放否?编码A前往否否否是是是第7章 MCS-51单片机常用接口 键盘扫描子程序如下:硬件线路前图,8255A的A口、B口、C口和控制口地址分别为7F00H、7F01H、7F02H、7F03H,设8255A已在主程序中初始化。已设定为A口方式0输出,C口的低4位方式0输入。KEY1:ACALL KS1 ;调用判别有无键按下子程序JNZ LK1 ;有键按下时,(A)0转消抖延时KEY2:ACALL TM6msAJMP KEY1 ;无键按下前往LK1:ACALL TM12ms ;调12 ms延时子程序ACALL KS1 ;查有无键按下,假设有那么真有键按下JNZ LK2 ;键(A
36、) 0逐列扫描AJMP KEY2 ;不是真有键按下,前往LK2:MOV R2,#0FEH ;初始列扫描字(0列)送入R2MOV R4,#00H ;初始列(0列)号送入R4LK4:MOV DPTR,#7F00H ;DPTR指向8255的A口MOV A,R2 ;列扫描字送至8255的A口MOVX DPTR,AINC DPTR ;DPTR指向8255的C口INC DPTR 第7章 MCS-51单片机常用接口 MOVX A,DPTR ;从8255 的C口读入行形状JB ACC.0,LONE ;查第0行无键按下,转查第1行MOV A,#00H ;第0行有键按下,行首键码#00HAAJMP LKP ;转求
37、键码LONE:JB ACC.1,LTWO ;查第1行无键按下,转查第2行MOV A,#08H ;第1行有键按下,行首键码#08HAAJMP LKP ;转求键码LTWO:JB ACC.2,LTHR ;查第2行无键按下,转查第3行MOV A,#10H ;第2行有键按下,行首键码#10HAAJMP LKP ;转求键码LTHR:JB ACC.3,NEXT ;查第3行无键按下,转该查下一列MOV A,#18H ;第3行有键按下,行首键码#18HALKP:ADD A,R4 ;求键码,键码=行首键码+列号PUSH ACC ;键码进栈维护LK3:ACALL KS1 ;等待键释放JNZ LK3 ;键未释放,等待
38、POP ACC ;键释放,键码ARET ;键扫描终了,出口形状(A)=键码第7章 MCS-51单片机常用接口 NEXT:INC R4 ;预备扫描下一列,列号加1MOV A,R2 ;取列扫描字送累加器AJNB ACC.7,KEND ;判别8列扫描否?扫描完前往RL A ;扫描字左移一位,变为下一列扫描字MOV R2,A ;扫描字送入R2保管AJMP LK4 ;转下一列扫描KEND:AJMP KEY1 KS1:MOV DPTR,#7F00H ;DPTR指向8255的A口MOV A,#00H ;全扫描字AMOVX DPTR,A ;全扫描字送往8255的A口INC DPTR ;DPTR指向8255的C
39、口INC DPTR MOVX A,DPTR ;读入PC口行形状CPL A ;变正逻辑,以高电平表示有键按下ANL A,#0FH ;屏蔽高4位,只保管低4位行线值RET ;出口形状:(A)0时有键按下第7章 MCS-51单片机常用接口 TM12ms:MOV R7,#18H ;延时12 ms子程序TM:MOV R6,#0FFHTM6:DJNZ R6,TM6DJNZ R7,TMRETTM6ms:MOV R7,#0CH ;延时6 ms子程序TM2:MOV R6,#0FFHTM62:DJNZ R6,TM6DJNZ R7,TMRET第7章 MCS-51单片机常用接口 C言语键盘扫描子程序:#include
40、 #include /定义绝对地址访问#define uchar unsigned char#define uint unsigned intvoid delay(uint);uchar scankey(void);uchar keyscan(void);void main(void)uchar key;while(1)key=keyscan();delay(2000);第7章 MCS-51单片机常用接口 /*延时函数*void delay(uint i) /延时函数uint j;for (j=0;ji;j+)/*检测有无键按下函数*uchar checkkey() /检测有无键按下函数,有前
41、往0 xff,无前往0uchar i;XBYTE0 x7f00=0 x00;i=XBYTE0 x7f02;i=i&0 x0f;if (i= =0 x0f) return(0);else return(0 xff);第7章 MCS-51单片机常用接口 /*键盘扫描函数*uchar keyscan()/键盘扫描函数,假设有键按下,那么前往该键的编码,假设无键按下,那么前往0 xff uchar scancode; /定义列扫描码变量 uchar codevalue; /定义前往的编码变量 uchar m; /定义行首编码变量 uchar k; /定义行检测码 uchar i,j; if (
42、checkkey()= =0) return(0 xff); /检测有无键按下,无前往0 xff else delay(200); /延时 if(checkkey()= =0) return(0 xff); /检测有无键按下,无前往0 xff else scancode=0 xfe;m=0 x00; /列扫描码,行首码赋初值 for (i=0;i8;i+) k=0 x01; XBYTE0 x7f00=scancode; /送列扫描码第7章 MCS-51单片机常用接口 for (j=0;j4;j+) if (XBYTE0 x7f02&k)= =0) /检测当前行能否有键按下 codeva
43、lue=m+j; /按下,求编码 while(checkkey()! =0); /等待键位释放 return(codevalue); /前往编码 m=m+8; /计算下一行的行首编码 else k=k1; /行检测码左移一位 scancode=scancode1; /列扫描码左移一位,扫描下一列 第7章 MCS-51单片机常用接口 7.5 MCS-51单片机与单片机与LED显示器接口显示器接口7.5.1 LED显示器的构造与原理显示器的构造与原理在单片机运用系统中通常运用的是8段式LED数码管显示器,它有共阴极和共阳极两种,如下图。abcdefgdpcomabcdefgdpcomabcdefg
44、dp10 9 8 7 61 2 3 4 5 g f com a be d com c dp( a )( b )(c )第7章 MCS-51单片机常用接口 显示字符共阴极字段码共阳极字段码显示字符共阴极字段码共阳极字段码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“灭”00FFHB7CH83H第7章 MCS-51单片机常用接口 7.5.2 LED数码
45、管显示器的译码方式一硬件译码方式一硬件译码方式译码方式是指由显示字符转换得到对应的字段码的方式 硬件译码方式是指利用专门的硬件电路来实现显示字符到字段码的转换,如MOTOTOLA公司消费的MC14495芯片,MC14495是共阴极一位十六进制数字段码转换芯片,可以输出用四位二进制表示方式的一位十六进制数的七位字段码,不带小数点。4锁存器地址译码和字段码ROM阵列ABCDLE569107Vss VDD8 16abcdefgh+iV CR11121314151234第7章 MCS-51单片机常用接口 二软件译码方式二软件译码方式7.5.3 LED数码管的显示方式数码管的显示方式一一LED静态显示静
46、态显示 LED静态显示时,其公共端直接接地共阴极或接电源共阳极,各段选线分别与I/O口线相连。要显示字符,直接在I/O线送相应的字段码。 a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)第7章 MCS-51单片机常用接口 二二LED动态显示方式动态显示方式 LED动态显示是将一切的数码管的段选线并接在一同,用一个I/O口控制,公共端不是直接接地共阴极或电源共阳极,而是经过相应的I/O口线控制。 D3D2D1D0I/O(1)I/O(2)第7章 MCS-51单片机常用接口 一硬件译码静态显示一硬件译码静态显示以下图是一个两位数码管硬件译码静态显示的接口电路图
47、。 a b c d e f gMC14495a b c d e f ga b c d e f gA B C DLEMC14495a b c d e f gA B C DLEP1.0P1.1P1.2P1.3P1.4P1.580517.5.4 LED显示器与单片机的接口显示器与单片机的接口 LED显示器从译码方式上有硬件译码方式和软件译码方式。从显示方式上有静态显示方式和动态显示方式。在运用时可以把它们组合起来。在实践运用时,假设数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,那么通常用软件译码动态显示。 第7章 MCS-51单片机常用接口 二软件译码动态显示二软件译码动态显示以下图是
48、一个8位软件译码动态显示的接口电路图,数码管为共阴极 。8255A的A口和B口都任务于方式0输出。A口、B口、C口和控制口的地址分别为7F00H、7F01H、7F02H和7F03H。 第7章 MCS-51单片机常用接口 D0D1D2D7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7G OEVCC74LS373Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7G OEVCC74LS373PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7CSWRRD74LS373P2.7WRRDALEP0.0P0.78051D0D7A1
49、A0GA1A08255第7章 MCS-51单片机常用接口 软件译码动态显示汇编言语程序为:设8个数码管的显示缓冲区为片内RAM的57H50H单元DISPLAY:MOV A,#10000000B ;8255初始化MOV DPTR,#7F03H ;使DPTR指向8255控制存放器端口MOVX DPTR,AMOV R0,#57H ;动态显示初始化,使R0指向缓冲区首址MOV R3,#7FH ;首位位选字送R3MOV A,R3LD0:MOV DPTR,#7F01H ;使DPTR指向PB口MOVX DPTR,A ;从PB口送出位选字 MOV DPTR,#7F00H ;使DPTR指向PA口MOV A,R0 ;读要显示数ADD A,#0DH ;调整距段码表首的偏移量MOVC A,A+PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国有土地出让合同
- 2025公司技术开发的合同范文
- 上海师范大学天华学院《档案管理学》2023-2024学年第一学期期末试卷
- 课题申报书:高中阶段学校多样化发展背景下省域推进职普融通的教育制度构建研究
- 2025车库买卖合同模板
- 课题申报书:多元评价体系改革助推学生全面发展的校本研究
- 上海杉达学院《小学班队管理与实践》2023-2024学年第一学期期末试卷
- 上海杉达学院《社会工作评估》2023-2024学年第一学期期末试卷
- 上海杉达学院《护理学基础(一)》2023-2024学年第一学期期末试卷
- 上海欧华职业技术学院《音乐与新媒体运营》2023-2024学年第一学期期末试卷
- 医院职工停薪留职申请书2篇
- 脚手架搭设与使用风险分析及管控措施
- 彩色简约鱼骨图PPT图表模板
- 经纤维支气管镜气管插管
- 初中英语常考改错练习题(共十八类100题附参考答案-解析)
- 炉膛热力计算
- 深圳高铁总部项目遴选方案
- AQ-C1-19 安全教育记录表(三级)
- 五年级阅读指导课(课堂PPT)
- 广东饲料项目建议书(参考范文)
- 液碱浓度、密度对照表
评论
0/150
提交评论