




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1关关 新新单单 片片 机机 原原 理理2第第5章章 输入、输出接口输入、输出接口5.1 PO5.1 POP3P3端口的功能和内部结构端口的功能和内部结构5.2 PO5.2 POP3P3端口的端口的3 5 5.1.1 .1.1 端口功能端口功能 MCS-51单片机有单片机有P0、P1、P2、P3四个四个8位位双向双向I/O口,每个端口可以按字节输入或输出,也口,每个端口可以按字节输入或输出,也可以按位进行输入或输出,四个口共可以按位进行输入或输出,四个口共32根口线,根口线,用作位控制十分方便。用作位控制十分方便。P0口为三态双向口,能带口为三态双向口,能带8个个TTL电路;电路;P1、P2、
2、P3口为准双向口,负载能口为准双向口,负载能力为力为4个个TTL电路。电路。 大多数口线都有双重功能,具体介绍如下大多数口线都有双重功能,具体介绍如下:51 P0P3端口的功能和内部结构端口的功能和内部结构4lPOPO口口1.1.作为输入作为输入/ /输出口。输出口。 2.2.作为地址作为地址/ /数据总线数据总线 , ,接外围芯片时接外围芯片时POPO口分口分时输出低时输出低 8 8 位地址与数据信号。位地址与数据信号。lP P1 1口口1.1.作为作为输入输入/ /输出口。输出口。 2. 2.在增强型在增强型(52(52系列系列) )和和ISPISP型型( (在系统编程型在系统编程型) )
3、中有如下功能中有如下功能: : P1.0 T2 P1.0 T2引脚引脚, ,定时定时/ /计数器计数器2 2外部计数脉冲输入外部计数脉冲输入 P1.1 T2EXP1.1 T2EX引脚引脚, ,定时定时/ /计数器计数器2 2触发和方向控制触发和方向控制 P1.5 P1.5 MOSIMOSI引脚引脚, ,在系统编程数据输入在系统编程数据输入 P1.6 P1.6 MISOMISO引脚引脚, ,在系统编程数据输出在系统编程数据输出 P1.7 P1.7 SCKSCK引脚引脚, ,在系统编程时钟输入在系统编程时钟输入5lP2P2口口1.1.作为输入作为输入/ /输出口。输出口。 2.2.作为高作为高8
4、8位地址总线。位地址总线。 lP3P3口口P3P3口为双功能口为双功能 1.1.作第一功能使用时,其功能为输入作第一功能使用时,其功能为输入/ /输出口。输出口。 2.2.作第二功能使用时,每一位功能定义如下表作第二功能使用时,每一位功能定义如下表所示所示: : 6RD (外部数据存储器读选通信号入)外部数据存储器读选通信号入) P3.7 P3.7 WR (外部数据存储器写选通信号入)外部数据存储器写选通信号入)P3.6 P3.6 T1 T1 (定时器定时器1 1外部计数脉冲输入)外部计数脉冲输入)P3.5 P3.5 T0 T0 (定时器定时器0 0外部计数脉冲输入)外部计数脉冲输入)P3.4
5、 P3.4 P3.3 P3.3 P3.2 P3.2 TXD TXD (串行输出线)串行输出线)P3.1 P3.1 RXD RXD (串行输入线)串行输入线) P3.0 P3.0 第第 二二 功功 能能 端口引脚端口引脚 INT0 INT0(外部中断外部中断0 0输入线)输入线)INT1INT1 (外部中断外部中断1 1输入线)输入线) 7 四个端口的一位结构见图四个端口的一位结构见图5.15.1,同一个端口的各位具,同一个端口的各位具有相同的结构。由图可见,四个端口的有相同的结构。由图可见,四个端口的 结构有相同之结构有相同之处:处: 依据每个端口的不同功能,内部结构亦有不同之处,以依据每个端
6、口的不同功能,内部结构亦有不同之处,以下重点介绍不同之处。下重点介绍不同之处。 都有两个输入缓冲器,分别受内部读锁存器和读引脚控制都有两个输入缓冲器,分别受内部读锁存器和读引脚控制信号的控制。信号的控制。 都有锁存器都有锁存器( (即专用寄存器即专用寄存器POPOP3)P3) 都是场效应管输出驱动。都是场效应管输出驱动。5.1.2 端口的内部结构端口的内部结构81.P0口:口:0口的结构见下图口的结构见下图(a)P0口位结构11读锁存器内部总线写锁存器读引脚地址/数据控制&T1T2VccP0.x引脚MUX2DQCLP0.x锁存器QP0口的输出驱动电路由上拉场效应管口的输出驱动电路由上拉
7、场效应管T1和驱动场效应和驱动场效应T2组成,控制电路组成,控制电路包括一个与门,包括一个与门, 一个非门和一个模拟开关一个非门和一个模拟开关MUX。9 1.1.POPO作作I/OI/O口使用口使用 CPU CPU发控制电平发控制电平“0”“0”封锁与门,使封锁与门,使T1T1管截止,管截止,同时使同时使MUXMUX开关同下面的触点接通,使锁存器的开关同下面的触点接通,使锁存器的 Q Q 与与T2T2栅极接通。栅极接通。 当当CPUCPU向端口输出数据时,写脉冲加在锁存向端口输出数据时,写脉冲加在锁存器的器的 CLCL上、内部总线的数据经反相,再经上、内部总线的数据经反相,再经T2T2管管反相
8、,反相,POPO口的这一位引脚上出现正好和内部总线口的这一位引脚上出现正好和内部总线同相的数据同相的数据。由于输出驱动级是漏极开路电路由于输出驱动级是漏极开路电路( (因因T1T1截止截止) ),在作,在作I/OI/O口使用时应外接口使用时应外接1010K K的上拉的上拉电阻。电阻。 10l当输入操作时,端口中两个三态缓冲器用于读当输入操作时,端口中两个三态缓冲器用于读操作。缓冲器操作。缓冲器2 2用于读端口引脚的数据。当执用于读端口引脚的数据。当执行端口读指令时,读引脚脉冲打开三态缓冲器行端口读指令时,读引脚脉冲打开三态缓冲器2 2,于是端口引脚数据经三态缓冲器,于是端口引脚数据经三态缓冲器
9、2 2送到内部送到内部总线。缓冲器总线。缓冲器1 1用于读取锁存器用于读取锁存器Q Q端的数据。当端的数据。当执行执行“读读- -修改修改- -写写”指令指令( (即读端口信息,在即读端口信息,在片内加以运算修改后,再输出到该端口的某些片内加以运算修改后,再输出到该端口的某些指令如:指令如:ANL POANL PO,A A指令指令) ),即是读的锁存器,即是读的锁存器Q Q的数据。的数据。11 这是为了避免错读引脚的电平信号,例如用一根口线去这是为了避免错读引脚的电平信号,例如用一根口线去驱动一个晶体管基极,当向口线写驱动一个晶体管基极,当向口线写“1”“1”,晶体管导通,导,晶体管导通,导通
10、的通的PNPN结会把引脚的电平拉低,如读引脚数据,则会读为结会把引脚的电平拉低,如读引脚数据,则会读为0 0 ,而实际上原口线的数据为,而实际上原口线的数据为1 1。因而采用读锁存器。因而采用读锁存器Q Q的值的值而避免了错读。究竟是读引脚还是读而避免了错读。究竟是读引脚还是读 锁存器,锁存器,CPUCPU内部会内部会自行判断是发读引脚脉冲还是读锁存器脉冲,读者不必在自行判断是发读引脚脉冲还是读锁存器脉冲,读者不必在意。意。 应注意应注意 :当作输入端口使用时,应先对该口写入:当作输入端口使用时,应先对该口写入“1”“1”使场使场效应管效应管T2T2截止,再进行读入操作,以防场效应管处于导通截
11、止,再进行读入操作,以防场效应管处于导通状态,使引脚箝位到零,而引起误读。状态,使引脚箝位到零,而引起误读。 12l当当PO口作地址口作地址/数据线使用时,数据线使用时,CPU及内部控及内部控制信号为制信号为“1”,转换开关,转换开关MUX打向上面的触打向上面的触点,点, 使反相器的输出端和使反相器的输出端和T2管栅极接通,输管栅极接通,输出的地址或数据信号通过与门驱动出的地址或数据信号通过与门驱动T1管,同管,同时通过反相器驱动时通过反相器驱动T2管完成信息传送,数据管完成信息传送,数据输入时,通过缓冲器进入内部总线。输入时,通过缓冲器进入内部总线。132.P1口:口: P1口的结构见下图口
12、的结构见下图(b)P1口位结构1读锁存器内部总线写锁存器读引脚TVccP1.x引脚2DQCLP1.x锁存器内部上拉电阻Q P1口作通用口作通用I/O口使用,因电路结构上输出驱动部分接有上拉电阻。当作输入时,口使用,因电路结构上输出驱动部分接有上拉电阻。当作输入时,同同P0一样,一样, 要先对该口写要先对该口写“1”。 14地址控制Vcc内部上拉电阻T1MUX12DCLQP2.x锁存器P2.x引脚读锁存器内部总线写锁存器读引脚P2P2口:口:P2P2口的位结构比口的位结构比P1P1多了一个转换控制部分,当多了一个转换控制部分,当P2P2口作口作通用通用I/OI/O口时,多路开关口时,多路开关MU
13、XMUX倒向左;倒向左;15l当扩展片外存贮器时,当扩展片外存贮器时,MUX开关打向右,开关打向右,P2口作高八位地址线输出高八位地址信号。口作高八位地址线输出高八位地址信号。l MUX的的倒向是受的的倒向是受CPU内部控制的。内部控制的。l 应当注意应当注意:当:当P2口的几位作地址线使用时,口的几位作地址线使用时,剩下的剩下的P2口线不能作口线不能作I /O口线使用。口线使用。164.P3口:口: P3口的结构见下图口的结构见下图读锁存器读锁存器内部总线写锁存器读引脚第二输出功能第二输入功能内部上拉电阻P3.x引脚TVcc1234DCLQP3.x锁存器(d)P3口位结构(d)P3口位结构P
14、3口口 P3口为双功能口为双功能I/O口,内部结构中增加了第二输入口,内部结构中增加了第二输入/输出功能。输出功能。17 当作为普通当作为普通I/OI/O口使用时,第二输出功能端保持口使用时,第二输出功能端保持“1”“1”,打开与非门打开与非门3 3,用法同,用法同P1P1口。口。 当作第二功能输出时,锁存器输出为当作第二功能输出时,锁存器输出为“1”“1”打开与非门打开与非门3 3,第二功能内容通过与非门第二功能内容通过与非门3 3和和T T送至引脚。送至引脚。 输入时,引脚的第二功能信号通过三态缓冲器输入时,引脚的第二功能信号通过三态缓冲器4 4进入第进入第二输入功能端。两种功能的引脚输入
15、都应使二输入功能端。两种功能的引脚输入都应使T T截止,此时第截止,此时第 二输出功能端和锁存器输出端二输出功能端和锁存器输出端Q Q均为高电平。均为高电平。 P3 P3的各位如不设定为第二功能则自动处于第一功能,在的各位如不设定为第二功能则自动处于第一功能,在更多情况下,根据需要,更多情况下,根据需要, 把几条口线设为第二功能,剩下把几条口线设为第二功能,剩下的口线可作第一功能的口线可作第一功能( (I/O)I/O)使用,此时,宜采用位操作形使用,此时,宜采用位操作形式式 。 18归纳四个并行口使用的注意事项如下:归纳四个并行口使用的注意事项如下:l1. 如果单片机内部有程序存贮器,不需要扩
16、展外部存如果单片机内部有程序存贮器,不需要扩展外部存贮器和贮器和I/O接口,单片机的四个口均可作接口,单片机的四个口均可作I/O口使用。口使用。l2. 四个口在作输入口使用时,均应先对其写四个口在作输入口使用时,均应先对其写“1”,以避免误读。以避免误读。l3. P0口作口作I/O口使用时应外接口使用时应外接10K的上拉电阻,其它口的上拉电阻,其它口则可不必。则可不必。l4. P2可某几根线作地址使用时,剩下的线不能作可某几根线作地址使用时,剩下的线不能作I/O口线使用。口线使用。l5. P3口的某些口线作第二功能时,剩下的口线可以单口的某些口线作第二功能时,剩下的口线可以单独作独作I/O口线
17、使用。口线使用。19l 下面举例说明端口的输入、输出功能,其他功能的应下面举例说明端口的输入、输出功能,其他功能的应用实例在后面章节说明。用实例在后面章节说明。l例例5-1.设计一电路,监视某开关设计一电路,监视某开关K,用发光二极管用发光二极管LED显示开关状态,如果开关合上,显示开关状态,如果开关合上,LED 亮、亮、 开关开关打开,打开,LED熄灭。熄灭。 l分析:设计电路如图分析:设计电路如图5. 2如示。如示。l开关接在开关接在P1.1口线,口线,LED接接P1.0口线,当开关断开时,口线,当开关断开时,P1.1为为+5V,对应数字量为对应数字量为“1”,开,开 关合上时关合上时P1
18、.1电平为电平为0V,对应数字量为对应数字量为“0”,这样就可以用,这样就可以用JB指指令对开关状态进行检测令对开关状态进行检测 。5.2 编程举例 20LEDLED+5 5V VVccVcc-EAEARSTRST1010uF uF 1 1K KP1.0P1.08989S51S51P1.1P1.11 1K K3030P P3030P PXTAL1XTAL1XTAL2XTAL2GNDGND8989C51C51+5 5V VVccVcc-EAEARSTRST1010uF uF 1 1K KP1.0P1.08989S51S51+5+5V VP1.1P1.11 1K K3030P P3030P PXT
19、AL1XTAL1XTAL2XTAL2GNDGND8989C51C51K K LED正偏时才能发亮,按电路接法,当正偏时才能发亮,按电路接法,当P1.0输出输出“1”,LED正偏而发亮,当正偏而发亮,当P1.0 输出输出“0” ,LED 的两的两端电压为端电压为 0 而熄灭。而熄灭。 21l编程如下:编程如下:l CLR P1.0 ;使发光二极管灭使发光二极管灭lAGA:SETB P1.1 ;先对先对P1口写入口写入“1”l JB P1.1,LIG ;开关开,转开关开,转LIGl SETB P1.0 ;开关合上,二极管亮开关合上,二极管亮l SJMP AGAlLIG: CLR P1.0 ;开关开
20、,二极管灭开关开,二极管灭l SJMP AGA22l在上述电路图中二极管亮度不够,按下面两种在上述电路图中二极管亮度不够,按下面两种电路接法,增加了驱动能力,二极管更亮些。电路接法,增加了驱动能力,二极管更亮些。l接成灌电流形式:接成灌电流形式:l加驱动电路:加驱动电路:+5+5V VP1.0P1.0LEDLEDP1.0P1.0+5+5V VLEDLED123例5-2.在图5.3中P1.4P1.7接四个发光二极管LED,P1.0P1.3接四个开关,编程将开关的状态反映到发光二极管上。11118989C51C51P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1
21、.5P1.5P1.6P1.6P1.7P1.7+5+5V V+5+5V V1 1K K4 4330330 4 4图5-3 例5-2图EA24例例3. 用用P1.0输出输出1KHz和和500Hz的音频信号驱动扬声器,的音频信号驱动扬声器,作报警信号,要求作报警信号,要求1KHz信号响信号响100ms ,500Hz信号响信号响200ms,交替进行,交替进行,P1.7接一开关进行控制,当开关接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程合上响报警信号,当开关断开告警信号停止,编出程序。序。 分析分析:500Hz信号周期为信号周期为2ms,信号电平为每信号电平为每1ms变反变反1
22、次。次。1KHz的信号周期为的信号周期为1ms,信号电平信号电平 每每500S变变反反1次,编一个延时次,编一个延时500S子程序,延时子程序,延时1ms只需调用只需调用2次。用次。用R2控制音响时间长短,控制音响时间长短,A作音响频率的交换控作音响频率的交换控制的标志。制的标志。A=FF时产生时产生1KHz信号,信号,A=0时产生时产生500Hz信号。信号。25P1.0 波波 形形 图图 1ms 1ms100个个T (变反变反200次即次即200ms)。500S500S100个个T (变反变反200次即次即100ms)。TT26l ORG 0000H l CLRA ;A作作1KHz,500H
23、z 转换控制转换控制lBEG: JB P1.7, ;检测检测P1.7的开关状态的开关状态 l MOV R2, #200 ;开关闭合报警,开关闭合报警,R2控制音响时间控制音响时间lDV:CPL P1.0l CJNE A, #0FFH, N1 ;AFFH,延时延时500S l ACALL D500 ;A=FFH ; 延时延时1ms P1.0变反变反lN1:ACALL D500l DJNZ R2,DV l CPL Al SJMP BEGlD500:MOV R7, #250 ;延时延时500 S子程序子程序l DJNZ R7, l RETl END275.3 用并行口设计LED数码显示器和键盘电路
24、键盘和显示器是单片机应用系统中常用键盘和显示器是单片机应用系统中常用的输入输出装置。的输入输出装置。LEDLED数码显示器是常用的数码显示器是常用的显示器之一,下面介绍用单片机并行口设计显示器之一,下面介绍用单片机并行口设计LEDLED数码显示电路和键盘电路的方法。数码显示电路和键盘电路的方法。 28 1. 1. LEDLED显示器及其原理显示器及其原理 LEDLED有着显示亮度高,响应速度快的特点,最有着显示亮度高,响应速度快的特点,最常用的是七段式常用的是七段式LEDLED显示器,又称数码管。七段显示器,又称数码管。七段LEDLED显示器内部由七个条形发光二极管和一个小圆显示器内部由七个条
25、形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。点发光二极管组成,根据各管的亮暗组合成字符。常见常见LEDLED的管脚排列见图的管脚排列见图5.4(5.4(a)a)。其中其中COMCOM为公共为公共点,根据内部发光二极管的接线点,根据内部发光二极管的接线 形式,可分成共形式,可分成共阴极型图阴极型图(5.4(5.4(b)b)和共阳极型图和共阳极型图(5.4(5.4(c)c)。 5.3.1用并行口设计用并行口设计LED显示电路显示电路29a ab bc cd de ef fg gdpdp(a)(b)(c)cdedp12345678910a bfgcomcomabcefabcde
26、fgdpcomcom图图5.45.430 LEDLED数码管的数码管的g ga a七个发光二极管因加正电压七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,显就能形成不同的字形,这种组合称之为字形码,显然共阳极和共阴极的字形码是不同的然共阳极和共阴极的字形码是不同的 ,其字形码,其字形码见表见表5.25.2。LEDLED数码管每段需数码管每段需10102020mAmA的驱动电流,的驱动电流,可用可用TTLTTL或或CMOSCMOS器件驱动。器件驱动。 字形码的控制输出可采用硬件译码方式,如采
27、字形码的控制输出可采用硬件译码方式,如采用用BCD 7BCD 7段译码段译码/ /驱动器驱动器7474LS48LS48、74LS4974LS49、CD4511(CD4511(共阴极共阴极) )或或7474LS46LS46、74LS4774LS47、CD4513CD4513( (其阳极其阳极) )也可用软件查表方式输出。也可用软件查表方式输出。 31显示字符段段 符符 号号十六进制代码dpgfedcba共阴共阳0123456789ABCDEFHP0000000000000000010011111011110111111000111011111011111010001010111111111011
28、011011011110001101111111110100001111100111100100011011011111101011113FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H76HF3HC0F9A4B0999282F880908883C6A18684FFBF 32 数码管的接口有静态接口和动态接口。数码管的接口有静态接口和动态接口。 静态接口静态接口为固定显示方式,无闪烁,其电路可采用为固定显示方式,无闪烁,其电路可采用一个并行口接一个数据管,数码管的公共端按共阴或共一个并行口接一个数据管,数码管的公共端按共阴或共阳分别接地或阳分别接地
29、或VccVcc。这种接法占用接口多,如果这种接法占用接口多,如果POPO口和口和P2P2口要用作数据线和地址线,仅用单片机的并行口就只能口要用作数据线和地址线,仅用单片机的并行口就只能接二个数码管。也可以用串行接口的方法接多个数码管,接二个数码管。也可以用串行接口的方法接多个数码管, 使之静态显示使之静态显示. . 动态接口动态接口采用各数码管循环轮流显示的方法,当循采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出显示现象,这种显示需要一个接口完成字形码的输出(字
30、字形选择形选择),另一接口完,另一接口完 成各数码管的轮流点亮成各数码管的轮流点亮(数位选择数位选择)。2.LED数码管的接口数码管的接口33 例如图例如图5.5是接有五个共阴极数码管的动态显是接有五个共阴极数码管的动态显示接口电路,用示接口电路,用74LS373接成直通的方式作驱动接成直通的方式作驱动 电路,阴极用非门电路,阴极用非门74LS04反相门驱动,字形选择反相门驱动,字形选择由由P1口提供,位选择由口提供,位选择由P3口控制。口控制。 当当P3.0P3.4轮流输出轮流输出1时,五个数码管轮时,五个数码管轮流显示。流显示。P1.7接开关,当开关打向位置接开关,当开关打向位置“1”时,
31、时, 显示显示“12345”字样,当开关打向字样,当开关打向“2”时,显示时,显示“HELLO”字样,程序清单如下:字样,程序清单如下: 3411111+5VVcc/EARSTP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4XTAL1XTAL2GND89C51Q0Q6/OED0D6G373ag图5-5 接五个共阴极数码管的动态显示接口123536 用汇编语言编程用汇编语言编程 l ORG 0000H l MOV P3,#0 ;清显示清显示lTEST:SETBP1.7l JB P1.7,DIR1 ;检测开关检测开关l MOV DPTR,#T
32、AB 1 ; 开关置于开关置于1,12345字形表头地址字形表头地址l SJMP DIRlDIR1: MOV DPTR,#TAB2 ; 开关置于开关置于2,“HELLO”字形表头字形表头lDIR: MOV R0,#0 ;R0存字形表偏移量存字形表偏移量l MOV R1,#01 ;R1置数码表位选代码置数码表位选代码1.NEXT:MOV A,R0 37l MOVC A,A+DPTR ; 查字形码表查字形码表1l MOV P1,A ;送送P1口输出口输出l MOVA,R1l MOVP3, A ;输出位选码输出位选码l ACALL DAY ;延时延时l INC R0 ;指向下一位字形指向下一位字形l
33、 RL A ;指向下一位指向下一位l MOV R1, Al CJNE R1, #20H,NEXT ;五个五个 数码管显示数码管显示完完?l SJMPTESTlDAY:MOV R6, #20 ; 延时延时20ms子程序子程序lDL2: MOV R7, #7DH38DL1: NOP NOP DJNZ R7,DL1w DJNZ R6,DL2w RETwTAB1:db 06H,5BH,4FH,66H,6DH ; “15”的字形码的字形码wTAB2:db 78H,79H,38H,38H,3FH ; “HELLO”的字形码的字形码w END39l 键盘是计算机系统中不可缺少的输入设备,当按键少键盘是计算机
34、系统中不可缺少的输入设备,当按键少时可接成线性键盘时可接成线性键盘( (如图如图5.35.3中的按键中的按键 ) ),当按键较多时,当按键较多时,这样的接法占用口线较多。将按键接成矩阵的形式,可以这样的接法占用口线较多。将按键接成矩阵的形式,可以节省口线,例如两个接口可按节省口线,例如两个接口可按8 8* *8 8的形式接的形式接6464个按键。每个按键。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和个按键的编码。矩阵的行线和列线分别通过两并行接口和CPUCPU通信。每个按键的状态同样需变
35、成数字量通信。每个按键的状态同样需变成数字量“0”“0”和和“1”“1”,开关的一端通过电阻接,开关的一端通过电阻接Vcc(Vcc(列列) )、而接地是通过程、而接地是通过程序输出数字序输出数字“0”“0”实现的。实现的。5.3.2用并行口设计键盘电路用并行口设计键盘电路40 键盘处理程序的任务是:键盘处理程序的任务是:l确定有无键按下;确定有无键按下;l判哪一个键按下判哪一个键按下; ; l键的功能是什么;键的功能是什么;l还要消除按键在闭合或断开时的抖动。还要消除按键在闭合或断开时的抖动。 两个并行口中,一个输出扫描码,两个并行口中,一个输出扫描码, 使按键逐行动使按键逐行动态接地态接地(
36、 (称行扫描称行扫描) ),另一个并行口输入按键状态,另一个并行口输入按键状态( (称回称回馈信号,键盘的列值馈信号,键盘的列值) ), 由行扫描值和回馈信号共同由行扫描值和回馈信号共同形成键编码而识别按键、通过软件查表,查出该键的形成键编码而识别按键、通过软件查表,查出该键的功能。也可由硬件编码器完成键的编码。功能。也可由硬件编码器完成键的编码。41 下图中,用下图中,用8 8XX51XX51的并行口的并行口P1P1接接4 44 4矩阵键盘,以矩阵键盘,以P1.0P1.0P1.3P1.3作输出线,以作输出线,以P1.4P1.4P1.7P1.7作输入线,键盘扫描作输入线,键盘扫描程序的流程如图
37、程序的流程如图5.75.7所示。所示。EE DE BE 7F ED DD BD 7D EB DB BB 7B E7 D7 B7 7742Y返回键编码返回键编码读读P1.3P1.4值值置行扫描初值置行扫描初值扫描位从扫描位从P1口输出口输出P1口的高四位和低四位口的高四位和低四位相或得键编码相或得键编码扫到最后一行扫到最后一行?NN(有键按下)有键按下)N开始开始P1.0P1.3输出输出0延时去抖动延时去抖动P1.4P1.7全为全为1?P1.4P1.7全为全为1?YY(无键按下无键按下)N43 对键盘的程序流程图对键盘的程序流程图5.7说明如下:说明如下: 当当P1.0P1.3输出输出0时,如无
38、键按下,时,如无键按下,P1.4P1.7的输入值均为的输入值均为“1”,如果其中有一个不是,如果其中有一个不是 “1”,说明有键按下,再使说明有键按下,再使P1.0P1.3逐个输出零逐个输出零(行扫行扫描描),检查,检查P1.4P1.7的输入值有的输入值有 无零,从而查出无零,从而查出是哪行哪列的键按下。在判按键时,按键有抖动,是哪行哪列的键按下。在判按键时,按键有抖动,可采用延时后再重读以跳可采用延时后再重读以跳 过抖动时段过抖动时段(也可用也可用R-S触发器闩锁电路硬件消抖,但这样电路复杂,在触发器闩锁电路硬件消抖,但这样电路复杂,在矩阵键盘中不采用矩阵键盘中不采用)。44程序清单如下:程
39、序清单如下:ORG 0000HTEST: MOV P1,#0F0H ; P1.0P1.3输出输出0, P1.4 P1.7输出输出1,作输入位作输入位 MOV A,P1 ;读键盘,检测有无键按下;读键盘,检测有无键按下ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3,检测,检测 P1.4P1.是否全为是否全为1 CJNE A, #0F0H,HAVE ; P1.4P1.7不全为不全为1, 有键按下有键按下SJMP TEST ;P1.4P1.7全为全为1, 无键按下,重检测键盘无键按下,重检测键盘HAVE:MOV A,#0FE ;有键按下,逐行扫描键盘,;有键按下,逐行扫描键盘, 置扫描初值置扫
40、描初值45 NEXT: MOV B,A ;扫描码暂存于;扫描码暂存于BMOV P1,A ;输出扫描码;输出扫描码READ: MOV A,P1 ;读键盘;读键盘ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3, 检测检测P1.4P1.是否全为是否全为1CJNE A,0F0H,YES ;P1.4P1.7不全为不全为1, 该行有键按下该行有键按下MOV A,B ;被扫行无键按下,准备查下一行;被扫行无键按下,准备查下一行RL A ;置下一行扫描码;置下一行扫描码CJNE A,#0EFH,NEXT ;未扫到到最后一行循环;未扫到到最后一行循环YES: ACALL DAY ;延时去抖动;延时去抖动46AREAD: MOV A,P1 ;再读键盘;再读键盘ANL A,#0F0H ; 屏蔽屏蔽P1.0P1.3,保留,保留P1.4 P1.7(列码列码)MOV R2,A ;暂存列码;暂存列码MOV A, B ANL A,#0FH ;取行扫描码;取行扫描码ORL A,R2 ;行码、列码合并为键编码;行码、列码合并为键编码YES1: MOV B,A ;键编码存于;键编码存于BLJMP SAM38 ;转键分析处理程序(见例;转键分析处理程序(见例3-8)47 例如图例如图5-6中的中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注册会计师实务考点试题及答案
- 2024年人力资源管理师实战试题及答案
- 2024年陪诊师考试通过率及试题及答案
- 2025年甘肃省建筑安全员知识题库及答案
- 生态环境修复的地理策略试题及答案
- 提高电化学传感器中电极稳定性
- 国际物流师面临的变化与挑战试题及答案
- 物联网智能家居设备安装与配置手册
- 农业科技现代农业种植技术及农产品深加工方案
- 新疆新源县九年级历史上册 第16课 殖民地人民的抗争教学实录 新人教版
- 受限空间安全培训
- 2025-2030中国城市和干线铁路信号设备行业市场发展趋势与前景展望战略研究报告
- 2025上半年贵州成黔企业(集团)有限公司招聘管理人员20人笔试参考题库附带答案详解
- 湖北省武汉市2025届高三下学期二月调研考试数学试卷
- 2025年志愿服务知识竞赛考试题(附答案)
- 上海市徐汇区上海中学2024-2025学年高一下学期3月月考地理试题(含答案)
- 二零二五年度研学旅行基地运营管理合同协议
- 仓储场所消防安全培训
- 大学课件-电路分析基础
- 2025年中国流行成分和原料消费深度洞察白皮书
- 2025年昆明长水机场勤务员招聘笔试参考题库含答案解析
评论
0/150
提交评论