分享
分销 收藏 举报 申诉 / 49

类型单片机并行口及其应用.ppt

  • 上传人:天****
  • 文档编号:14624275
  • 上传时间:2026-10-22
  • 格式:PPT
  • 页数:49
  • 大小:2.13MB
  • 下载积分:10 金币
  • 配套讲稿:

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

    特殊限制:

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

    关 键  词:
    单片机 并行口 及其 应用
    资源描述:
    ,第二级,第三级,第四级,第五级,*,第2章 MCS-51单片机内部并行口及其应用,第2章,MCS51单片机内部并行口及应用,2.1,MCS-51 单片机并行口结构,2.2,MCS-51 单片机并行口应用,2.3,七段LED显示器接口,2.4,键盘接口,1.1,MCS-51单片机并行口结构,1.1.1 P0口结构,1.1.2 P1口结构,1.1.3 P2口结构,1.1.4 P3口结构,1.1.1 P0口结构,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,作用:,1、外扩芯片时,P0口不再做I/O口使用,而是先传送地址,后传送数据。,2、没有外扩芯片时,P0口可以直接作为,输入口,或,输出口,使用。,P0口直接做输出口时,输出信息的过程:,(将0送到P0.0的过程),返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,0,1,0,注意:P0口做输出口时,内部数据经过锁存器送到P00-P07上。由于上管始终截止,而当下管也截止时,P00P07被架空,没有标准的高电平,所以,P0口作输出口使用时,必须外接上拉电阻。,P0口直接做输入口时,输入信息的过程:,(将P0.0处的1送入DB0.0的过程),D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,1,注意:,1、P0口作输入口时,P00P07上的信号经过缓冲器送到内部数据总线上。,在读引脚之前,要先将锁存器置1,,否则总是读到0。,2、,CPU对P0口的读操作有2种:,读引脚,和,读改写锁存器,。,1,当CPU执行 MOV A,P0或 JB/JNB P0.x,标号 时,产生读引脚控制信号,此时读的是引脚的状态,。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,P1口直接做输入口时,输入信息的过程:,(将P1.0处的0送入DB0.0的过程),0,0,注意:,1、P1口作输入口时,P10P17上的信号经过缓冲器送到内部数据总线上。,在读引脚之前,要先将锁存器置1,,否则总是读到0。,2、,CPU对P1口的读操作有2种:,读引脚,和,读改写锁存器,。,当CPU执行 MOV A,P1或 JB/JNB P1.x,标号 时,产生读引脚控制信号,此时读的是引脚的状态,。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,1.1.3 P2口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,作用:,1、外扩芯片时,P2口不再做I/O口使用,而是传送高8位地址。,2、没有外扩芯片时,P2口可以直接作为,输入口,或,输出口,使用。,返回,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,P2口直接做输出口时,输出信息的过程:,(将0送到P2.0的过程),0,0,0,1,0,注意:P2口做输出口时,内部数据经过锁存器送到P20-P27上。,由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,P2口直接做输入口时,输入信息的过程:,(将P2.0处的0送入DB0.0的过程),0,0,0,注意:,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等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,1.1.4 P3口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.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口线使用。,返回,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,P3口直接做输出口时,输出信息的过程:,(将1送到P3.0的过程),1,0,0,1,注意:P3口做输出口时,内部数据经过锁存器送到P30-P37上。,由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,0,P3口直接做输入口时,输入信息的过程:,(将P3.0处的0送入DB0.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等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,1.2,MCS-51单片机并行口的应用,1.2.1 直接做输出口,1.2.2 直接做输入口,在没有外扩任何芯片时,MCS-51单片机内部并行口可以作为输出口,直接与输出外设连接,,常用的输出外设是发光二极管,;MCS-51单片机内部并行口也可以作为输入口,直接与输入外设连接,,常用的输入外设是开关,。,例1,例2,例1,例2,1.2.1 直接做输出口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+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 up,delay1:mov r7,#2,delay11:mov r6,#250,djnz r6,$,djnz r7,delay11,ret,例1:用89C51的P1口驱动8个发光二极管,使8个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。,思考:,如果用P0口驱动发光二极管,则如何修改?,如果使8个发光二极管由右向左轮流点亮,则如何修改?,如果使8个发光二极管闪亮,则如何修改?,如果使8个发光二极管由内向外轮流点亮,则如何修改?,如果使8个发光二极管由右向左依次点亮,则如何修改?,如果使延时时间延长或缩短,会出现什么现象?,预习实验并思考:,熟悉实验板上与发光二极管有关的电路。,编制驱动程序,实现如下操作:,由左向右轮流点亮,由外向里轮流点亮,由右向左依次点亮,闪亮,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,1.2.1 直接做输出口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,例2:,用8051的P1口驱动1个数码管,制成1位秒表.,试画出连接图,编制驱动程序。,解:,1、画电路图,2、编程,思考,a,b,c,d,e,f,g,Dp,a,b,c,d,e,f,g,Dp,UP0: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 UP0,TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,例2:,用8051的P1口驱动1个数码管,制成1位秒表.试画出连接图,编制驱动程序。,思考:,如果用P2口驱动发光二极管,公共端接P3.0,则如何修改?,如果制成0.1S的表,则如何修改?,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,89C51,P3.0,a,b,c,d,e,f,g,Dp,CLR P3.0,UP0: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 UP0,TAB:DB 0C0H,0F9H,0A4H,0B0H,DB 99H,92H,82H,0F8H,80H,98H,1.2.2 直接做输入口,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,例1:用89C51的P1口传送8个开关状态,用P2口显示8个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。,解:,1、画电路图,MOV P1,#0FFH,UP:MOV A,P1,MOV P2,A,SJMP UP,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,+5V,开关处的电阻称为,上拉电阻,,它的,作用是当开关断开时,使P3口的电,压上拉为准确的高电平,避免悬空,状态。,2、编程,强调:,8051内部并行口,直接作为输入口时,,必须先将口锁存器,置1。,思考,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,MOV P1,#0FFH,UP:MOV A,P1,CPL A,MOV P2,A,SJMP UP,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,+5V,思考:如果将发光二极管反接,则如何修改程序?,1.2.2 直接做输入口,89C51,+5V,例2:用8051的P1口驱动8个发光二极管,P3.4接一个开关K1,当开关按下时,8个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。试画出连接图,编制驱动程序。,解:,1、画电路图,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,2、编程,+5V,P3.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:用8051的P1口驱动8个发光二极管,P3.4接一个开关K1,当开关按下时,8个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。试画出连接图,编制驱动程序。,思考:,在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序?,如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何编程?,预习实验,熟悉实验板上与发光二极管和开关有关的电路。,编制驱动程序,实现如下操作:,1读入4个按键并使对应的LED点亮。,2K1按下时,LED每2个为一组由右向左依次点亮。,3K2按下并抬起时,LED由内向外轮流点亮。,P3.2,P3.3,P3.4,P3.5,+5V,1.3 七段LED显示器接口,1.3.1,数码管简介,1.3.2,单个七段LED数码管的接口,1.3.3,多个七段LED数码管的接口,在单片机控制系统中显示器是必不可少的外设。常用的显示器有发光二极管,数码管和液晶显示器。本节介绍数码管接口。,1.3.1 数码管简介,组成:,LED数码管由7段或8段发光二极管组成,在平面上排成8字,型。,分类:,有共阴极和共阳极两种。,CO,M,a,b,c,d,e,f,g,Dp,CO,M,a,b,c,d,e,f,g,Dp,显示原理:,使某些段点亮而另一些段不亮就可以显示0-9,A-F等字型。,使,某段点亮必须具备2个条件:,共阴极管的公共端接地和共阳极管的公共端接电源。,共阴极管的控制端接电源和共阳极管的控制端接地。,共阳极 共阴极,a,b,c,d,e,f,g,Dp,1.3.2 单个七段LED数码管的接口,单个七段LED数码管与单片机的连接方法有2种:,1、,软译码连接法,2、,硬译码连接法,a,b,c,d,e,f,g,Dp,软译码连接法,在软译码连接法下,LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,89C51,+5V,a,b,c,d,e,f,g,Dp,1、欲使LED数码管显示2,试编程。,MOV P1,#01011011B,注意:,字形与字形码的区别,字形是欲显示的数或字符的形状;字形码是为了在数码管上显示数或字符,CPU应该送出的数据。字形转换成字形码的2种方法:软译码法和硬译码法。,2、,编程让LED数码管显示30H单元的内容(30H单元的内容在09之间)。,UP:,MOV A,30H,MOV DPTR,#TAB,MOVC A,A+DPTR,MOV P1,A,SJMP UP,TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,共阳极LED,硬译码连接法,在硬译码连接法下,LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,A,B,C,D,89C51,利用BCD码七段码译码器实现字形到字形码的转换。常用的BCD码七段码译码器有74LS48和74LS47。,编程让LED数码管显示30H单元的内容(30H单元的内容在09之间)。,MOV P1,30H,LT,RBO,RBI,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,74LS48,共阴极LED,+5V,注意:在硬译码连接法下,直接送欲显示的数即可,字形到字形码的转换,是用硬件实现的。,思考:如果7448的ABCD接到8051的P14P17,则如何修改程序?,答案,1.3.3 多个七段LED数码管的接口,多个数码管与CPU的连接方法有4种:,1、,静态软译码连接法,2、,静态硬译码连接法,3、,动态硬译码连接法,4、,动态软译码连接法,a,b,c,d,e,f,g,Dp,静态软译码连接法,在静态软译码连接法下,4个LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,Dp,P0.0,P0.1,P0.2,P0.3,89C51,P0.4,P0.5,P0.6,P0.7,COM,a,b,c,d,e,f,g,共阴极LED,Dp,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,Dp,P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7,COM,a,b,c,d,e,f,g,1、,编程在4个七段LED数码管上显示1234。,MOV P0,#06H,MOV P1,#5BH,MOV P2,#4FH,MOV P3,#66H,SJMP$,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 UP0,TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,思考:编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)。,答案,静态硬译码连接法,在静态硬译码连接法下,4个LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,Dp,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,COM,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)。,思考:编程在4个七段LED数码管上显示30H,,31H,32H,33H单元中存放的1位BCD码的内容。,+5V,+5V,+5V,+5V,程 序,答 案,动态硬译码连接法,在动态硬译码连接法下,4个LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS48,+5V,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,例:编程在4个七段LED数码管上显示1234。,在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于1ms,不亮的时间不能超过20 ms。,利用人眼的视觉滞留现象,实现让4个七段LED数码管上不同时显示1234,但人眼看到的效果,却是同时显示1234。,1,2,3,4,思考:编程在4个七段LED数码管上显示,30H,31H,32H,33H单元中的内容。,程 序,答 案,动态软译码连接法,在动态软译码连接法下,4个LED数码管与单片机的连接图,:,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P3.0,P3.1,P3.2,P3.3,COM,a,b,c,d,e,f,g,驱,动,器,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,1,2,3,4,P2.4,P2.5,P2.6,P2.7,例:编程在4个七段LED数码管上显示1234。,例:编程在4个七段LED数码管上显示30H,31H,32H,33H单元中的内容。,程 序,程 序,1.4 键盘接口,1.4.1,键盘类型,1.4.2,非编码键盘与单片机的接口,1.4.3,矩阵非编码键盘与单片机的接口,键盘是单片机控制系统最常用、最简单的输入设备。用户可以通过键盘输入数据或命令,实现简单的人机通信。,1.4.1 键盘类型,单片机控制系统所用的键盘有编码键盘和非编码键盘两种。,1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。,2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。,非编码键盘的键开关可以排列成,线性形式,或,矩阵形式,,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,1.4.1 键盘类型,单片机控制系统所用的键盘有编码键盘和非编码键盘两种。,1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。,2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。,非编码键盘的键开关可以排列成,线性形式,或,矩阵形式,,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,1.4.1 键盘类型,单片机控制系统所用的键盘有编码键盘和非编码键盘两种。,1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。,2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。,非编码键盘的键开关可以排列成,线性形式,或,矩阵形式,,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。,1.4.2 非编码键盘与单片机的接口,线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:,K1,K2,K3,K4,P1.1,P1.0,P1.2,P1.3,89C51,+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,例,例 某单片机控制系统,P1口接有8发光二极管,P3.0、P3.1、P3.2、P3.3接有4个开关K1、K2、K3、K4,试画出接口电路,并编程使得当K1按下时8个发光二极管全亮;当K2按下时8个发光二极管闪亮;当K3按下时8个发光二极管由左向右点亮;当K4按下时8个发光二极管全灭。,K1,K2,K3,K4,P3.1,P3.0,P3.2,P3.3,89C51,+5V,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,程 序,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,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,A,B,C,D,89C51,LT,RBO,RBI,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,74LS48,共阴极LED,+5V,UP:MOV A,30H,SWAP A,MOV P1,A,SJMP UP,思考:如果7448的ABCD接到8051的P14P17,则如何修改程序?,a,b,c,d,e,f,g,Dp,Dp,P0.0,P0.1,P0.2,P0.3,89C51,P0.4,P0.5,P0.6,P0.7,COM,a,b,c,d,e,f,g,共阴极LED,Dp,P2.0,P2.1,P2.2,P2.3,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,Dp,P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7,COM,a,b,c,d,e,f,g,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 UP0,TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,思考:编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)。,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,Dp,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,COM,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,编程在4个七段LED数码管上显示30H,31H单元中的内容。,(30H,31H单元中分别存有2位BCD码)。,UP:MOV P1,30H,MOV P2,31H,SJMP UP,+5V,+5V,+5V,+5V,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,Dp,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,COM,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,思考:编程在4个七段LED数码管上显示30H,31H,32H,33H单元中存放的1位BCD码的内容。,+5V,+5V,+5V,+5V,UP:,MOV A,31H,SWAP A,ORL A,30H,MOV P1,A,MOV A,33H,SWAP A,ORL A,32H,MOV P2,A,SJMP UP,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS48,+5V,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,例:编程在4个七段LED数码管上显示1234。,1,2,3,4,START:MOV P2,#11100001B,LCALL D2MS,MOV P2,#11010010B,LCALL D2MS,MOV P2,#10110011B,LCALL D2MS,MOV P2,#01110100B,LCALL D2MS,SJMP START,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS48,+5V,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,3,4,START:MOV R0,#30H,MOV R7,#4,MOV R2,#0E0H,UP:MOV A,R0,ORL A,R2,MOV P1,A,LCALL D2MS,INC R0,MOV A,R2,RL A,MOV R2,A,DJNZ R7,UP,SJMP START,思考:编程在4个七段LED数码管上显示30H,31H,,32H,33H单元中的内容。,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P3.0,P3.1,P3.2,P3.3,COM,a,b,c,d,e,f,g,驱,动,器,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,1,2,3,4,P2.4,P2.5,P2.6,P2.7,例:编程在4个七段LED数码管上显示1234。,UP:MOV P1,#06H,MOV P3,#0FEH,LCALL D2Ms,MOV P1,#5BH,MOV P3,#0FDH,LCALL D2mS,MOV P1,#4FH,MOV P3,#0FBH,LCALL D2mS,MOV P1,#66H,MOV P3,#0F7H,LCALL D2mS,SJMP UP,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P3.0,P3.1,P3.2,P3.3,COM,a,b,c,d,e,f,g,驱,动,器,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,3,4,P2.4,P2.5,P2.6,P2.7,例:编程在4个七段LED数码管上显示30H,31H,32H,33H单元中的内容。,START:MOV R0,#30H,MOV R7,#4,MOV R2,#0FEH,MOV DPTR,#TAB,UP:MOV A,R0,MOVC A,A+DPTR,MOV P1,A,MOV P3,R2,LCALL D2MS,INC R0,MOV A,R2,RL A,MOV R2,A,DJNZ R7,UP,SJMP START,TAB:DB 3FH,06H,5BH,4FH,DB 66H,6DH,7DH,07H,DB 7FH,6FH,习题与思考:,用8051实现如下功能:,4个开关,1个蜂鸣器,当4个开关的状态与30H单元的低四位相同时,蜂鸣器以100Hz的频率响5下,否则蜂鸣器不响。,在动态硬译码连接法下,编程:,1在4个数码管上同时显示8,2在4个数码管上轮流显示3,3在4个数码管上依次显示5,实验板上数码管电路如下:,欲使最右边的数码管显示3,试编程。,欲使最右边的数码管显示30H单元的内容(30H单元的内容在09之间),试编程,,编制一位秒表的驱动程序。,预习实验板上数码管电路,编程:,在4个数码管上显示秒数,实现分秒表,预习实验板上数码管电路和按键电路,编程:,K1按下时,最右面数码管的显示数加1;K2按下时,最右面数码管的显示数减1。,K1按下时,4个数码管的显示数加1;K2按下时,4个数码管的显示数减1,返回,
    展开阅读全文

    开通VIP折扣优惠下载文档

    提示  咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。

    咨信网小贴示:
    1、浏览或下载可查看了解,请点击【咨信网告知】。
    2、下载文件中如有侵权或不适当内容,将立即纠正。
    3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
    4、开具发票登录电脑端申请,请点击【索取发票】。

    咨信网客服组:【微信客服】

    自信AI创作助手
    关于本文
    本文标题:单片机并行口及其应用.ppt
    链接地址:https://www.zixin.com.cn/doc/14624275.html

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork