按键控制LED灯.ppt

上传人:飞****9 文档编号:137603283 上传时间:2020-07-10 格式:PPT 页数:20 大小:178KB
返回 下载 相关 举报
按键控制LED灯.ppt_第1页
第1页 / 共20页
按键控制LED灯.ppt_第2页
第2页 / 共20页
按键控制LED灯.ppt_第3页
第3页 / 共20页
按键控制LED灯.ppt_第4页
第4页 / 共20页
按键控制LED灯.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《按键控制LED灯.ppt》由会员分享,可在线阅读,更多相关《按键控制LED灯.ppt(20页珍藏版)》请在金锄头文库上搜索。

1、按键控制LED灯,在单片机应用系统中,通常都要求单片机有人机对话功能。需要输入信息,实现对系统的控制,这时就需要键盘。单片机的端口除了做输出外也可用做输入。本任务通过制作一个使用按键控制LED灯,来学习单片机端口输入的使用方法,同时学习常用的输出设备:LED数码管。,硬件知识,1、硬件电路原理图,2、89S51单片机端口的输入方法,89S51单片机的外部端口均为双向端口,即:既可以用做输出,也可以用做输入。用做输入揣口时应当注意以下问题。 (1)端口用于输入前必须向端口写“1” (2)P0口中无上拉电阻,用做开关输入时必须外加上拉电阻,而其他端口内部含有上拉电阻阻,用做开关输入时可不必外接上拉

2、电阻。,3、开关输入的连接方法,当需要使用的开关数量较少时,一般直接使用独立式按键输入,每个开关占用一个端口,其优点是编程简单,缺点是占用端口资源多。当需要的开关数量较多,CPU端口不够用时,使用矩阵式输入,其优点是占用端口资源少,缺点是编程比较复杂。本任务中使用独立式按键输入方法。 图5-2所示为一个独立式按键输入的常用连接方法,当按键按下时CPU端口为“0”,当按键松开时CPU端口为“1”。通过程序读取端口状态就能知道开关的状态。,图5-2 独立式按键输入,端口在上拉电阻的作用下保持为高电平 按键按下端口为低电平状态,输入逻辑“0” 输入逻辑“1”,89S51单片机中各端口用做输入时除P0

3、端口外,其他端口内部都具有上拉电阻,因此使用这些端口做开关输入时可不用外接上拉电阻。由于实验板上的按键使用了P3口的4根I/O口线,因此可以省略外接上拉电阻。,4、LED数码管,LED 数码显示器是一种由 LED 发光二极管组合显示字符的显示器件。它使用了 8 个LED 发光二极管,其中 7个发光二极管构成字形“8”的各个笔画(段)ag,另1 个用于显示小数点dp,故通常称之为 8 段发光二极管数码显示器。其内部结构如图 5-3(a)所示。LED 数码显示器有两种连接方法: (1) 共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接低电平。每个发光二极管的阳极通过电阻与输入端

4、相连。如图 5-3(b)所示。当笔画(字段)接高电平时被点亮。 (2) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接高电平,每个发光二极管的阴极通过电阻与输入端相连。如图 5-3(c)所示。当笔画(字段)接低电平时被点亮。,LED 数码显示器的结构与显示段码,【软件知识】,1、用于输入的指令,2、其他指令,3、位操作与字节操作,从上表中可以看出:指令MOV C,P3.2与MOV A,P3有一个很大的不同就是操作的对象不同。MOV C,P3.2一次操作一位,而MOV A,P3一次操作一个字节。类似的以位作为操作对象的指令一共有17条,称为位处理指令。例如JB P0.1,L

5、1,就是一条位处理指令。,位处理指令操作的对象是可直接寻址位,其寻址范围是00H0FFH,共256位。其中低128位的地址是连续的,地址范围是00H7FH。地址在80H以上的位都是特殊功能寄存器里的可直接寻址位,这些特殊功能寄存器的共同特点是其地址(注意:是特殊功能寄存器自己的字节地址,不是位地址)能被8整除,这样的特殊功能寄存器有12个,共有93个可直接寻址位(有3个位IP.7、IP.6、IE.6没有定义)。因此80H以上的位地址并不连续。详见任务三的相关部分。下表中列出了P0P3口字节地址与位地址的关系。,【实训内容与步骤】,按键控制对应LED灯点亮,参考程序如下: ORG 0000H;定

6、位伪指令,指定下一条指令的地址, 第一条指令必须放在0000H L1:MOV A,P3;把P3口的状态读入累加器A中 MOV P0,A;把A中的数据送到P0口,控制P0口输出 电平,控制LED亮灭 SJMP L1;返回L1,循环执行程序 END;结束伪指令,把这段程序在WAV6000中编辑、汇编,用软件仿真运行、调试无误,把得到bin格式或者hex格式的目标文件,通过烧录器或者下载线,保存到单片机的程序存储器中。把单片机插入实验板插座里,上电运行,按下按键,观察LED灯的亮灭。 分析该程序,我们发现,当按下P3口外接的按键时,与之连接的引脚变成低电平,单片机执行MOV A,P3指令时,该引脚的

7、状态输入到A中。在执行MOV P0,A时,输出到P0口,与之对应的P0口引脚为低电平,点亮相应的LED灯。P3.2、P3.3、P3.4、P3.5分别控制P0.2、P0.3、P0.4、P0.5引脚连接的LED灯。,2、模拟开关灯,参考程序如下: ORG 0000H L1:JB P3.2,L2;如果P3.2的状态为1(1号键未按),则跳转到L2 CLR P0.0;1号键按下,P0.0清0,输出低电平,LED 发光 SJMP L1 L2:JB P3.3,L1;如果P3.3的状态为1(2号键未按),则跳转到L1 SETB P0.0;2号键按下,P0.0置1,输出高电平,LED熄灭 SJMP L1 EN

8、D,按下1号键时,P3.2=0,程序从L1顺序执行,P0.0被清0,输出低电平,LED发光,1号键未按下,程序跳转到L2,检测2号键,即P3.3的状态,如果P3.3的状态为1(2号键未按),则跳转到L1,完成一个循环;如果P3.3的状态为0(2号键被按下),程序从L2顺序执行,P0.0置1,输出高电平,LED熄灭。最后执行 SJMP L1,回到开始处继续执行。,3、按键控制任意LED灯点亮,参考程序如下: ORG 0000H;定位伪指令,指定下一条指令的地址,第一条指令必须放在0000H L1: MOV A,P3;把P3口的状态读入累加器A中 RL A;A中的内容循环左移 RL A MOV P0,A;把A中的数据送到P0口,控制P0口输出电平,控制LED亮灭 SJMP L1;返回L1,循环执行程序 END;结束伪指令 在以上的这段程序中,加了两条RL A指令,实现了两次左移,这样P3.2、P3.3、P3.4、P3.5分别控制P0.4、P0.5 、P0.6、P0.7引脚连接的LED灯。由于P0口的排列顺序问题,在实验板上看起来灯是右移了。,4、用LED数码管显示1、2、3、4,按下按键时,点亮正确的字段,就可以显示出数字,下表是实验板上使用的共阳极LED数码管显示1、2、3、4的字型代码。,【拓展训练】,编写程序实现按键显示另外6个数字中的4个。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号