按键控制LED灯

上传人:仙*** 文档编号:42358875 上传时间:2021-11-25 格式:PPT 页数:20 大小:178.01KB
返回 下载 相关 举报
按键控制LED灯_第1页
第1页 / 共20页
按键控制LED灯_第2页
第2页 / 共20页
按键控制LED灯_第3页
第3页 / 共20页
点击查看更多>>
资源描述
按键控制LED灯 在单片机应用系统中,通常都要求单片机有人机对话功能。需要输入信息,实现对系统的控制,这时就需要键盘。单片机的端口除了做输出外也可用做输入。本任务通过制作一个使用按键控制LED灯,来学习单片机端口输入的使用方法,同时学习常用的输出设备:LED数码管。硬件知识1、硬件电路原理图、硬件电路原理图2、89S51单片机端口的输入方法单片机端口的输入方法n89S51单片机的外部端口均为双向端口,即:既单片机的外部端口均为双向端口,即:既可以用做输出,也可以用做输入。用做输入揣口可以用做输出,也可以用做输入。用做输入揣口时应当注意以下问题。时应当注意以下问题。n (1)端口用于输入前必须向端口写)端口用于输入前必须向端口写“1”n (2)P0口中无上拉电阻,用做开关输入时必口中无上拉电阻,用做开关输入时必须外加上拉电阻,而其他端口内部含有上拉电阻须外加上拉电阻,而其他端口内部含有上拉电阻阻,用做开关输入时可不必外接上拉电阻。阻,用做开关输入时可不必外接上拉电阻。3、开关输入的连接方法、开关输入的连接方法 n 当需要使用的开关数量较少时,一般直接使用独立式按键输入,每个开关占用一个端口,其优点是编程简单,缺点是占用端口资源多。当需要的开关数量较多,CPU端口不够用时,使用矩阵式输入,其优点是占用端口资源少,缺点是编程比较复杂。本任务中使用独立式按键输入方法。n图5-2所示为一个独立式按键输入的常用连接方法,当按键按下时CPU端口为“0”,当按键松开时CPU端口为“1”。通过程序读取端口状态就能知道开关的状态。图5-2 独立式按键输入端口在上拉电阻的作用下保持为高电平 按键按下端口为低电平状态,输入逻辑“0” 输入逻辑“1”n89S51单片机中各端口用做输入时除P0端口外,其他端口内部都具有上拉电阻,因此使用这些端口做开关输入时可不用外接上拉电阻。由于实验板上的按键使用了P3口的4根I/O口线,因此可以省略外接上拉电阻。4、LED数码管数码管nLED 数码显示器是一种由 LED 发光二极管组合显示字符的显示器件。它使用了 8 个LED 发光二极管,其中 7个发光二极管构成字形“8”的各个笔画(段)ag,另1 个用于显示小数点dp,故通常称之为 8 段发光二极管数码显示器。其内部结构如图 5-3(a)所示。LED 数码显示器有两种连接方法: n(1) 共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接低电平。每个发光二极管的阳极通过电阻与输入端相连。如图 5-3(b)所示。当笔画(字段)接高电平时被点亮。n(2) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接高电平,每个发光二极管的阴极通过电阻与输入端相连。如图 5-3(c)所示。当笔画(字段)接低电平时被点亮。 LED 数码显示器的结构与显示段码数码显示器的结构与显示段码 【软件知识】【软件知识】n1、用于输入的指令、用于输入的指令功 能指 令举 例指 令功 能读取一个端口的状态MOV C,bitMOV C,P3.2把P3.2端口的状态送到C读取一组端口的状态MOV A,directMOV A,P3把P3中8个端口的状态送到累加器A中根据端口状态进行转移操作JB bit,标号JB P0.1,L1如果P0.1为状态“1”,则转移至L1,如果P0.1为状态“0”,则顺序执行JNB bit,标号JNB P1.6,L2如果P1.6为状态“0”,则转移至L2,如果P1.6为状态“1”,则顺序执行2、其他指令、其他指令功 能指 令举 例指 令功 能把Cy的内容传送给指定位MOV bit ,CMOV C,P0.0把C的值传送到P0.0端口输出把指定位清0CLR bitCLR P0.0P0.0清0,输出低电平把指定位置1SETB bitSETB P0.1P0.1置1,输出高电平把立即数送内部存储单元MOV direct,#dataMOV P0,#0F9H把立即数0F9H送给P0端口输出3、位操作与字节操作、位操作与字节操作n从上表中可以看出:指令MOV C,P3.2与MOV A,P3有一个很大的不同就是操作的对象不同。MOV C,P3.2一次操作一位,而MOV A,P3一次操作一个字节。类似的以位作为操作对象的指令一共有17条,称为位处理指令。例如JB P0.1,L1,就是一条位处理指令。n位处理指令操作的对象是可直接寻址位,其寻址范围是00H0FFH,共256位。其中低128位的地址是连续的,地址范围是00H7FH。地址在80H以上的位都是特殊功能寄存器里的可直接寻址位,这些特殊功能寄存器的共同特点是其地址(注意:是特殊功能寄存器自己的字节地址,不是位地址)能被8整除,这样的特殊功能寄存器有12个,共有93个可直接寻址位(有3个位IP.7、IP.6、IE.6没有定义)。因此80H以上的位地址并不连续。详见任务三的相关部分。下表中列出了P0P3口字节地址与位地址的关系。字节地址位地址PX.7PX.6PX.5PX.4PX.3PX.2PX.1PX.0P080H87H86H85H84H83H82H81H80HP190H97H96H95H94H93H92H91H90HP20A0H0A7H0A6H0A5H0A4H0A3H0A2H0A1H0A0HP30B0H0B7H0B6H0B5H0B4H0B3H0B2H0B1H0B0H【实训内容与步骤】【实训内容与步骤】按键控制对应按键控制对应LED灯点亮灯点亮参考程序如下:ORG 0000H;定位伪指令,指定下一条指令的地址, 第一条指令必须放在0000HL1:MOV A,P3;把P3口的状态读入累加器A中MOV P0,A ;把A中的数据送到P0口,控制P0口输出 电平,控制LED亮灭SJMP L1;返回L1,循环执行程序END;结束伪指令n把这段程序在WAV6000中编辑、汇编,用软件仿真运行、调试无误,把得到bin格式或者hex格式的目标文件,通过烧录器或者下载线,保存到单片机的程序存储器中。把单片机插入实验板插座里,上电运行,按下按键,观察LED灯的亮灭。n分析该程序,我们发现,当按下P3口外接的按键时,与之连接的引脚变成低电平,单片机执行MOV A,P3指令时,该引脚的状态输入到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、模拟开关灯、模拟开关灯n参考程序如下:nORG 0000HnL1: JB P3.2,L2;如果P3.2的状态为1(1号键未按),则跳转到L2nCLR P0.0;1号键按下,P0.0清0,输出低电平,LED 发光nSJMP L1nL2: JB P3.3,L1;如果P3.3的状态为1(2号键未按),则跳转到L1nSETB P0.0;2号键按下,P0.0置1,输出高电平,LED熄灭nSJMP L1nENDn按下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灯点亮灯点亮n参考程序如下:nORG 0000H;定位伪指令,指定下一条指令的地址,第一条指令必须放在0000HnL1: MOV A,P3;把P3口的状态读入累加器A中nRL A;A中的内容循环左移nRL AnMOV P0,A ;把A中的数据送到P0口,控制P0口输出电平,控制LED亮灭n SJMP L1;返回L1,循环执行程序nEND;结束伪指令n在以上的这段程序中,加了两条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数字dpgfedcba字段1111110010F9H2101001000A4H3101100000B0H41001100199H按下按键时,点亮正确的字段,就可以显示出数字,下表是实验板上使用的共阳极LED数码管显示1、2、3、4的字型代码。 【拓展训练】【拓展训练】n编写程序实现按键显示另外6个数字中的4个。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!