最新单片机并行口及其应用PPT课件.ppt
第2章 MCS-51单片机内部并行口及其应用1.1 MCS-51 MCS-51单片机并行口结构单片机并行口结构 1.1.1 P0口结构口结构 1.1.2 P1口结构口结构 1.1.3 P2口结构口结构 1.1.4 P3口结构口结构第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用第2章 MCS-51单片机内部并行口及其应用1.1.3 P2口结构口结构DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0地址控制线地址控制线+5VP2.0转换开关转换开关锁存器锁存器作用作用:1、外扩芯片时,、外扩芯片时,P2口不再做口不再做I/O口使用,而是传送高口使用,而是传送高8位地址。位地址。2、没有外扩芯片时,、没有外扩芯片时,P2口可以直接作为输入口或输出口使用。口可以直接作为输入口或输出口使用。第2章 MCS-51单片机内部并行口及其应用DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0地址控制线地址控制线+5VP2.0转换开关转换开关锁存器锁存器P2口直接做输出口时,输出信息的过程:口直接做输出口时,输出信息的过程:(将(将0 0送到送到P2.0P2.0的过程的过程) )00010注意:注意:P2口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P20-P27上。上。由于内部有上拉电阻,所以由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。口作输出口使用时,不用外接上拉电阻。第2章 MCS-51单片机内部并行口及其应用DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0地址控制线地址控制线+5VP2.0转换开关转换开关锁存器锁存器P2口直接做输入口时,输入信息的过程:口直接做输入口时,输入信息的过程:(将(将P2.0P2.0处的处的0 0送入送入DB0.0DB0.0的过程的过程) )000注意注意: 1、P2口作输入口时,口作输入口时,P20P27上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P2口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。 当当CPU执行执行 MOV A,P2或或 JB/JNB P2.x,标号,标号 时,产生读引脚控制信号,时,产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态 。当当CPU执行读执行读改改写指令(以端口为目写指令(以端口为目的操作数的的操作数的ANL、ORL、XRL、DEC、INC 、SETB、CLR等)时,产生读锁存等)时,产生读锁存信号,此时是先读锁存器的状态,在修改信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。之后,送回锁存器保存。 第2章 MCS-51单片机内部并行口及其应用1.1.4 P3口结构口结构DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0+5VP3.0锁存器锁存器第二功能输出第二功能输出第二功能输入第二功能输入作用作用:1、P3口可以直接作为输入口或输出口使用。口可以直接作为输入口或输出口使用。2、P3口的引脚又具有口的引脚又具有第二功能第二功能。1 当使用单片机内部串行口时,若CPU执行MOV A,SBUF指令,则P3.0(RXD)作为接收信号线,接收由外界串行输入的数据;若CPU执行MOV SBUF,A指令,则P3.1(TXD)作为发送信号线,串行发送数据至外界。 2当单片机使用外中断时,P3.2(INT0)作为外中断0的中断请求输入线,3.3(INT1) 作为外中断1的中断请求输入线。3当单片机使用定时器,且定时器工作于计数方式时,P3.4(T0)作为定时器0的计数脉冲输入线,P3.5(T1)作为定时器1的计数脉冲输入线。4当单片机外扩RAM或I/O接口芯片时,P3.6(WR)作为RAM或I/O接口芯片的写控制信号,P3.7(RD)作为RAM或I/O接口芯片的读控制信号。 当当P3口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为I/O口口线使用。线使用。第2章 MCS-51单片机内部并行口及其应用DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0+5VP3.0锁存器锁存器第二功能输出第二功能输出第二功能输入第二功能输入P3口直接做输出口时,输出信息的过程:口直接做输出口时,输出信息的过程:(将(将1 1送到送到P3.0P3.0的过程的过程) )1001注意:注意:P3口做输出口时,内部数据经过锁存器送到口做输出口时,内部数据经过锁存器送到P30-P37上。上。由于内部有上拉电阻,所以由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。口作输出口使用时,不用外接上拉电阻。第2章 MCS-51单片机内部并行口及其应用DCPQQ读引脚读引脚读锁存读锁存写控制信号写控制信号DB0.0+5VP3.0锁存器锁存器第二功能输出第二功能输出第二功能输入第二功能输入0P3口直接做输入口时,输入信息的过程:口直接做输入口时,输入信息的过程:(将(将P3.0P3.0处的处的0 0送入送入DB0.0DB0.0的过程的过程) )0注意注意: 1、P3口作输入口时,口作输入口时,P30P37上的信号经过缓冲器送到内部数据总线上。上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置在读引脚之前,要先将锁存器置1,否则总是读到,否则总是读到0。2、CPU对对P3口的读操作有口的读操作有2种:种:读引脚读引脚和和读读改改写锁存器写锁存器。 当当CPU执行执行 MOV A,P3或或 JB/JNB P3.x,标号,标号 时,产生读引脚控制信号,时,产生读引脚控制信号,此时读的是引脚的状态此时读的是引脚的状态 。当当CPU执行读执行读改改写指令(以端口为目写指令(以端口为目的操作数的的操作数的ANL、ORL、XRL、DEC、INC 、SETB、CLR等)时,产生读锁存等)时,产生读锁存信号,此时是先读锁存器的状态,在修改信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。之后,送回锁存器保存。 第2章 MCS-51单片机内部并行口及其应用1.2 MCS-51 MCS-51单片机并行口的应用单片机并行口的应用 1.2.1 直接做输出口直接做输出口 1.2.2 直接做输入口直接做输入口 在没有外扩任何芯片时,MCS-51单片机内部并行口可以作为输出口,直接与输出外设连接,常用的输出外设常用的输出外设是发光二极管是发光二极管; MCS-51单片机内部并行口也可以作为输入口,直接与输入外设连接,常用的输入外设是开关常用的输入外设是开关。第2章 MCS-51单片机内部并行口及其应用 1.2.1 直接做输出口直接做输出口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V电阻的作用是当流过发光二极管的电流过大时,它就会被烧坏。这个电阻可以限制流过发光二极管的电流,因此这个电阻叫作限流电阻。限流电阻阻值的计算方法如下: R=(5-1.75)/Id ;Id 是流过发光二极管的电流,一般从8mA到20mA,其值越大,发光二极管越亮,但不能太大,当流过发光二极管的电流超过20mA时,容易烧坏发光二极管。例例1:用:用89C51的的P1口驱动口驱动8个发光二极管,使个发光二极管,使8个发光二极管由左向右轮个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。流点亮。试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图2、编程、编程 mov a,#0feh up: mov p1,a lcall delay rl a sjmp updelay1: mov r7,#2delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret第2章 MCS-51单片机内部并行口及其应用例例1:用:用89C51的的P1口驱动口驱动8个发光二极管,使个发光二极管,使8个发光二极管由左向右轮个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。流点亮。试画出连接图,编制驱动程序。思考:思考: 如果用如果用P0口驱动发光二极管,则如何修改?口驱动发光二极管,则如何修改? 如果使如果使8个发光二极管由右向左轮流点亮,则如何修改?个发光二极管由右向左轮流点亮,则如何修改? 如果使如果使8个发光二极管闪亮,则如何修改?个发光二极管闪亮,则如何修改? 如果使如果使8个发光二极管由内向外轮流点亮,则如何修改?个发光二极管由内向外轮流点亮,则如何修改? 如果使如果使8个发光二极管由右向左依次点亮,则如何修改?个发光二极管由右向左依次点亮,则如何修改? 如果使延时时间延长或缩短,会出现什么现象?如果使延时时间延长或缩短,会出现什么现象?预习实验并思考:预习实验并思考:熟悉实验板上与发光二极管有关的电路。熟悉实验板上与发光二极管有关的电路。编制驱动程序,实现如下操作:编制驱动程序,实现如下操作: 由左向右轮流点亮由左向右轮流点亮 由外向里轮流点亮由外向里轮流点亮 由右向左依次点亮由右向左依次点亮 闪亮闪亮P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V第2章 MCS-51单片机内部并行口及其应用 1.2.1 直接做输出口直接做输出口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V例例2:用用8051的的P1口驱动口驱动1个数码管,制成个数码管,制成1位秒表位秒表.试画出连接图,编制驱动程序。试画出连接图,编制驱动程序。 解:解:1、画电路图、画电路图2、编程、编程abcdefgDpabcdefgDpUP0: MOV R7,#10 MOV R2,#00H MOV DPTR,#TAB UP: MOV A,R2 MOVC A,A+DPTR MOV P1 , A LCALL D1S INC R2 DJNZ R7,UP SJMP UP0TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H第2章 MCS-51单片机内部并行口及其应用例例2:用用8051的的P1口驱动口驱动1个数码管,制成个数码管,制成1位秒表位秒表.试画出连接图,编制驱试画出连接图,编制驱动程序。动程序。思考:思考: 如果用如果用P2口驱动发光二极管,公共端接口驱动发光二极管,公共端接P3.0,则如何修改?,则如何修改? 如果制成如果制成0.1S的表,则如何修改?的表,则如何修改?P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.789C51P3.0abcdefgDp CLR P3.0UP0: MOV R7,#10 MOV R2,#00H MOV DPTR,#TAB UP: MOV A,R2 MOVC A,A+DPTR MOV P2 , A LCALL D1S INC R2 DJNZ R7,UP SJMP UP0TAB: DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,98H第2章 MCS-51单片机内部并行口及其应用 1.2.2 直接做输入口直接做输入口P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5V例例1:用:用89C51的的P1口传送口传送8个开关状态,用个开关状态,用P2口显示口显示8个开关个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。解:解:1、画电路图、画电路图MOV P1,#0FFHUP:MOV A,P1 MOV P2,A SJMP UPP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7+5V开关处的电阻称为上拉电阻上拉电阻,它的作用是当开关断开时,使P3口的电压上拉为准确的高电平,避免悬空状态。 2、编程、编程强调:强调:8051内部并行口内部并行口直接作为输入口时,直接作为输入口时,必须先将口锁存器必须先将口锁存器置置1。第2章 MCS-51单片机内部并行口及其应用P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51MOV P1,#0FFHUP:MOV A,P1 CPL A MOV P2,A SJMP UPP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7+5V思考:如果将发光二极管反接,则如何修改程序?思考:如果将发光二极管反接,则如何修改程序? 第2章 MCS-51单片机内部并行口及其应用 1.2.2 直接做输入口直接做输入口89C51+5V例例2:用:用8051的的P1口驱动口驱动8个发光二极管,个发光二极管,P3.4接一个开关接一个开关K1,当开关按下,当开关按下时,时,8个发光二极管由左向右轮流点亮;开关断开时,个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。个发光二极管不亮。试画出连接图,编制驱动程序。试画出连接图,编制驱动程序。 解:解:1、画电路图、画电路图P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.72、编程、编程+5VP3.4 mov p3,#0ffh up0: mov a,#0feh up1: jb p3.4,up1 mov p1,a lcall delay1 rl a sjmp up1 delay1: mov r7,#2 delay11: mov r6,#250 djnz r6,$ djnz r7,delay11 ret 第2章 MCS-51单片机内部并行口及其应用例例2:用:用8051的的P1口驱动口驱动8个发光二极管,个发光二极管,P3.4接一个开关接一个开关K1,当开关按下时,当开关按下时,8个发光二极管由左向右轮流点亮;开关断开时,个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。试画出个发光二极管不亮。试画出连接图,编制驱动程序。连接图,编制驱动程序。思考:思考: 在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序?留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序? 如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何编程?编程?预习实验预习实验熟悉实验板上与发光二极管和开关有关的电路。熟悉实验板上与发光二极管和开关有关的电路。编制驱动程序,实现如下操作:编制驱动程序,实现如下操作:1读入读入4个按键并使对应的个按键并使对应的LED点亮。点亮。2K1按下时,按下时,LED每每2个为一组由右向左依次点亮。个为一组由右向左依次点亮。3K2按下并抬起时,按下并抬起时,LED由内向外轮流点亮。由内向外轮流点亮。P3.2P3.3P3.4P3.5+5V第2章 MCS-51单片机内部并行口及其应用1.3 七段七段LED显示器接口显示器接口 1.3.1 数码管简介数码管简介 1.3.2 单个七段单个七段LED数码管的接口数码管的接口 1.3.3 多个七段多个七段LED数码管的接口数码管的接口 在单片机控制系统中显示器是必不可少的外设。常用的显示器有发光二极管,数码管和液晶显示器。本节介绍数码管接口。第2章 MCS-51单片机内部并行口及其应用1.3.1 数码管简介数码管简介 组成:组成:LED数码管由7段或8段发光二极管组成,在平面上排成8字型。分类:分类:有共阴极和共阳极两种。COMabcdefgDpCOMabcdefgDp显示原理:显示原理:使某些段点亮而另一些段不亮就可以显示0-9,A-F等字型。使某段点亮必须具备2个条件:共阴极管的公共端接地和共阳极管的公共端接电源。共阴极管的公共端接地和共阳极管的公共端接电源。共阴极管的控制端接电源和共阳极管的控制端接地。共阴极管的控制端接电源和共阳极管的控制端接地。共阳极共阳极 共阴极共阴极abcdefgDp第2章 MCS-51单片机内部并行口及其应用1.3.2 单个七段单个七段LED数码管的接口数码管的接口 单个七段单个七段LED数码管与单片机的连接方法有数码管与单片机的连接方法有2种:种: 1、软译码连接法、软译码连接法 2、硬译码连接法、硬译码连接法abcdefgDp第2章 MCS-51单片机内部并行口及其应用软译码连接法软译码连接法在软译码连接法下,在软译码连接法下,LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5VabcdefgDp1、欲使、欲使LED数码管显示数码管显示2,试编程。,试编程。 MOV P1,#01011011B注意:注意:字形与字形码的区别,字形是欲显字形与字形码的区别,字形是欲显示的数或字符的形状;字形码是为了在数示的数或字符的形状;字形码是为了在数码管上显示数或字符,码管上显示数或字符,CPUCPU应该送出的数据。应该送出的数据。字形转换成字形码的字形转换成字形码的2 2种方法:软译码法和种方法:软译码法和硬译码法。硬译码法。2 2、编程让编程让LED数码管显示数码管显示30H单元的内容单元的内容(30H单元的内容在单元的内容在09之间)。之间)。 UP: MOV A,30H MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A SJMP UPTAB : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H共阳极共阳极LED第2章 MCS-51单片机内部并行口及其应用硬译码连接法硬译码连接法在硬译码连接法下,在硬译码连接法下,LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpP1.0P1.1P1.2P1.3ABCD89C51利用利用BCD码码七段码译码器实七段码译码器实现字形到字形码的转换。常用的现字形到字形码的转换。常用的BCD码码七段码译码器有七段码译码器有74LS48和和74LS47。 编程让编程让LED数码管显示数码管显示30H单元的内容(单元的内容(30H单元的内容在单元的内容在09之间)。之间)。 MOV P1,30HLTRBORBIabcdefgP1.4P1.5P1.6P1.7COMabcdefg74LS48共阴极共阴极LED+5V注意:在硬译码连接法下,直接送欲显示的数即可,字形到字形码的转换注意:在硬译码连接法下,直接送欲显示的数即可,字形到字形码的转换是用硬件实现的。是用硬件实现的。思考:如果思考:如果7448的的ABCD接到接到8051的的P14P17,则如何修改程序?,则如何修改程序?第2章 MCS-51单片机内部并行口及其应用1.3.3 多个七段多个七段LED数码管的接口数码管的接口 多个数码管与多个数码管与CPU的连接方法有的连接方法有4种:种:1、静态软译码连接法、静态软译码连接法2、静态硬译码连接法、静态硬译码连接法3、动态硬译码连接法、动态硬译码连接法4、动态软译码连接法、动态软译码连接法abcdefgDp第2章 MCS-51单片机内部并行口及其应用静态软译码连接法静态软译码连接法在静态软译码连接法下,在静态软译码连接法下,4个个LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpDpP0.0P0.1P0.2P0.389C51P0.4P0.5P0.6P0.7COMabcdefg共阴极共阴极LEDDpP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7COMabcdefgDpP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7COMabcdefg1、编程在4个七段LED数码管上显示1234。 MOV P0,#06HMOV P1,#5BHMOV P2,#4FHMOV P3,#66HSJMP $2、编程在4个七段LED数码管上显示30H,31H,32H,33H单元中存放的1位BCD码的内容 。 MOV DPTR,#TAB UP0: MOV A,30H MOVC A,A+DPTR MOV P0,A MOV A,31H MOVC A,A+DPTR MOV P1,A MOV A,32H MOVC A,A+DPTR MOV P2,A MOV A,33H MOVC A,A+DPTR MOV P3,A SJMP UP0TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH思考:编程在思考:编程在4个七段个七段LED数码管上显示数码管上显示30H,31H单元中单元中的内容。(的内容。(30H,31H单元中分别存有单元中分别存有2位位BCD码)。码)。第2章 MCS-51单片机内部并行口及其应用静态硬译码连接法静态硬译码连接法在静态硬译码连接法下,在静态硬译码连接法下,4个个LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpP2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabcdefgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5VABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5V编程在编程在4个七段个七段LED数码管上显示数码管上显示30H,31H单元中的内容。(单元中的内容。(30H,31H单元中分别存有单元中分别存有2位位BCD码)。码)。 思考:编程在思考:编程在4个七段个七段LED数码管上显示数码管上显示30H,31H,32H,33H单元中存放的单元中存放的1位位BCD码的内容码的内容 。 +5V+5V+5V+5V第2章 MCS-51单片机内部并行口及其应用动态硬译码连接法动态硬译码连接法在动态硬译码连接法下,在动态硬译码连接法下,4个个LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpP2.0P2.1P2.2P2.389C51P2.4P2.5P2.6P2.7COMab c d e fgABCDLTRBORBIabcdefg74LS48+5VCOMab c d e fgCOMab c d e fgCOMab c d e fg 例:例: 编程在编程在4个七段个七段LED数码管上显示数码管上显示1234。 在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于1ms,不,不亮的时间不能超过亮的时间不能超过20 ms。 利用人眼的视觉滞留现象,实现让利用人眼的视觉滞留现象,实现让4个七段个七段LED数码管上不同时显示数码管上不同时显示1234,但人眼看到的效果,但人眼看到的效果却是同时显示却是同时显示1234。 1234思考:编程在思考:编程在4个七段个七段LED数码管上显示数码管上显示30H,31H,32H,33H单元中的内容。单元中的内容。 第2章 MCS-51单片机内部并行口及其应用动态软译码连接法动态软译码连接法在动态软译码连接法下,在动态软译码连接法下,4个个LED数码管与单片机的连接图数码管与单片机的连接图 :abcdefgDpP2.0P2.1P2.2P2.389C51P3.0P3.1P3.2P3.3COMab c d e fg驱驱动动器器COMab c d e fgCOMab c d e fgCOMab c d e fg1234P2.4P2.5P2.6P2.7例:例: 编程在编程在4个七段个七段LED数码管上显示数码管上显示1234。例:编程在例:编程在4个七段个七段LED数码管上显示数码管上显示30H,31H,32H,33H单元中的内容。单元中的内容。第2章 MCS-51单片机内部并行口及其应用1.4 键盘接口键盘接口 1.4.1 键盘类型键盘类型 1.4.2 非编码键盘与单片机的接口非编码键盘与单片机的接口 1.4.3 矩阵非编码键盘与单片机的接口矩阵非编码键盘与单片机的接口 键盘是单片机控制系统最常用、最简单的输入设备。用户可以通过键盘输入数据或命令,实现简单的人机通信。 第2章 MCS-51单片机内部并行口及其应用1.4.1 键盘类型键盘类型 单片机控制系统所用的键盘有编码键盘和非编码键盘两种。单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。目前单片机控制系统中大多数采用非编码键盘。 非编码键盘的键开关可以排列成非编码键盘的键开关可以排列成线性形式线性形式或矩阵形式,因此非编码键盘或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。有线性非编码键盘和矩阵非编码键盘两种。第2章 MCS-51单片机内部并行口及其应用1.4.1 键盘类型键盘类型 单片机控制系统所用的键盘有编码键盘和非编码键盘两种。单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。目前单片机控制系统中大多数采用非编码键盘。 非编码键盘的键开关可以排列成非编码键盘的键开关可以排列成线性形式线性形式或或矩阵形式矩阵形式,因此非编码键盘,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。有线性非编码键盘和矩阵非编码键盘两种。第2章 MCS-51单片机内部并行口及其应用1.4.1 键盘类型键盘类型 单片机控制系统所用的键盘有编码键盘和非编码键盘两种。单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。目前单片机控制系统中大多数采用非编码键盘。 非编码键盘的键开关可以排列成非编码键盘的键开关可以排列成线性形式线性形式或或矩阵形式矩阵形式,因此非编码键盘,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。有线性非编码键盘和矩阵非编码键盘两种。第2章 MCS-51单片机内部并行口及其应用1.4.2 非编码键盘与单片机的接口非编码键盘与单片机的接口 线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:K1K2K3K4P1.1P1.0P1.2P1.389C51+5V线性非编码键盘的工作原理:当键未被按下时,与此键相连的I/O线获得高电平;当键被按下时,与此键相连的I/O线获得低电平,单片机只要读取I/O口状态,就可以获取按键信息,识别有无键按下和哪个键被按下。 键处理程序如下:键处理程序如下: MOV P1,#0FFH UP1: MOV A,P1 ;读;读I/O口状态口状态 ANL A,#0FH ;屏蔽无用位;屏蔽无用位 CJNE A,#0FH,NEXT1 ;有闭合键?;有闭合键? SJMP UP1 NEXT1: LCALL D10ms ;延时;延时10ms去抖动去抖动 MOV A,P1 ;再读;再读I/O口状态口状态 ANL A,#0FH CJNE A,#0FH,NEXT2 ;有闭合键?;有闭合键? SJMP UP1 NEXT2:JB P1.0,NEXT3 ;K1按下?按下? LCALL K1 ;K1键处理程序键处理程序 NEXT3: JB P1.1,NEXT4 ;K2按下?按下? LCALL K2 ;K2键处理程序键处理程序 NEXT4: JB P1.2,NEXT5 ;K3按下?按下? LCALL K3 ;K3键处理程序键处理程序 NEXT5: JB P1.3,UP1 ;K4按下?按下? LCALL K4 ;K4键处理程序键处理程序 LJMP UP1第2章 MCS-51单片机内部并行口及其应用例例 某单片机控制系统,某单片机控制系统,P1口接有口接有8发光二极管,发光二极管,P3.0、P3.1、P3.2、P3.3接有接有4个开关个开关K1、K2、K3、K4,试画出接口电路,并编程使得当,试画出接口电路,并编程使得当K1按下时按下时8个发光二极管全亮;当个发光二极管全亮;当K2按下按下时时8个发光二极管闪亮;当个发光二极管闪亮;当K3按下时按下时8个发光二极管由左向右点亮;当个发光二极管由左向右点亮;当K4按下时按下时8个发光个发光二极管全灭。二极管全灭。K1K2K3K4P3.1P3.0P3.2P3.389C51+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7第2章 MCS-51单片机内部并行口及其应用 MOV B,#01H MOV P3,#0FFH MOV P1,#00H UP1: MOV A,P3 ANL A,#0FH CJNE A,#0FH,NEXT1 SJMP UP1 NEXT1: LCALL D10ms MOV A,P3 ANL A,#0FH CJNE A,#0FH,NEXT2 SJMP UP1NEXT2:JB P3.0,NEXT3 LCALL K1 NEXT3: JB P3.1,NEXT4 LCALL K2 NEXT4: JB P3.2,NEXT5 LCALL K3 NEXT5: JB P3.3,UP1 LCALL K4 LJMP UP1子程序子程序K1: MOV P1,#0FFH RETK2: MOV P1,#0FFH LCALL D2S MOV P1,#00H LCALL D2S RETK3: MOV P1,B LCALL D2S MOV A,B RL A MOV B,A RETK4: MOV P1,#00H RET第2章 MCS-51单片机内部并行口及其应用abcdefgDpP1.0P1.1P1.2P1.3ABCD89C51LTRBORBIabcdefgP1.4P1.5P1.6P1.7COMabcdefg74LS48共阴极共阴极LED+5VUP:MOV A,30H SWAP A MOV P1,A SJMP UP思考:如果思考:如果7448的的ABCD接到接到8051的的P14P17,则如何修改程序?,则如何修改程序?第2章 MCS-51单片机内部并行口及其应用abcdefgDpDpP0.0P0.1P0.2P0.389C51P0.4P0.5P0.6P0.7COMabcdefg共阴极共阴极LEDDpP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7COMabcdefgDpP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7COMabcdefg MOV DPTR,#TAB UP0: MOV A,30H ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV A,30H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P1,A MOV A,31H ANL A,#0FH MOVC A,A+DPTR MOV P2,A MOV A,31H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV P3,A SJMP UP0TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH思考:编程在思考:编程在4个七段个七段LED数码管上显示数码管上显示30H,31H单元中的内容。单元中的内容。(30H,31H单元中分别存有单元中分别存有2位位BCD码)。码)。第2章 MCS-51单片机内部并行口及其应用abcdefgDpP2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabcdefgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5VABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5V编程在编程在4个七段个七段LED数码管上显示数码管上显示30H,31H单元中的内容。单元中的内容。(30H30H,31H31H单元中分别存有单元中分别存有2 2位位BCDBCD码)。码)。 UP: MOV P1,30H MOV P2,31H SJMP UP +5V+5V+5V+5V第2章 MCS-51单片机内部并行口及其应用abcdefgDpP2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabcdefgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcde