单片机实验三 独立按键控制LED实验

这篇具有很好参考价值的文章主要介绍了单片机实验三 独立按键控制LED实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验三 独立按键控制LED实验

一、实验目的

1.熟悉实验软件和硬件,进行正确的接线;
2.8个不同的按键对应不同的8个灯,按下按键对应的灯就会亮。

二、实验软硬件

1.Keil uVision4
2.PZISP自动下载软件
3.HC6800S开发板

三、实验原理

按键实物图

按键按下就会产生一个脉冲信号,检测脉冲信号就可以知道是否有按键被按下去。

按键原理图
按键之间相互独立,不会互相影响。因此,被叫做独立按键。

8个独立按键原理图
将按键值用于控制对应等的亮灭。

发光二极管
JP165跳线帽断开,JP8连接J12,JP5连接JP11,J21接左边Vcc。

单片机与外设连接图
单片机硬件连接如上,只用改变跳线帽的位置就可以实现。

四、软件流程图

单片机实验三 独立按键控制LED实验

独立按键程序流程图

五、实验代码

1.#include <reg51.h>         
2.#include <intrins.h>  
3.  
4.#define  GPIO_KEY P2  //独立键盘用P2口  
5.#define  GPIO_LED P1  //led使用P1口  
6.  
7.unsigned char Key_Scan()  
8.{  
9.    unsigned char keyValue = 0 , i;   
10.    if (GPIO_KEY != 0xFF)         
11.    {  
12.        Delay10ms(1);     
13.        if (GPIO_KEY != 0xFF)     
14.        {  
15.            keyValue = GPIO_KEY;  
16.            i = 0;  
17.            while ((i<50) && (GPIO_KEY != 0xFF))   
18.            {  
19.                Delay10ms(1);  
20.                i++;  
21.            }  
22.        }  
23.    }  
24.    return keyValue;   
25.}  
26.  
27.void Delay10ms(unsigned int c)     
28.{  
29.    unsigned char a, b;  
30.    for (;c>0;c--)  
31.    {  
32.        for (b=38;b>0;b--){for (a=130;a>0;a--);}          
33.    }         
34.}  
35.  
36.void main(void)  
37.{  
38.    unsigned char ledValue, keyNum;  
39.    ledValue = 0x01;  
40.    while (1)  
41.    {     
42.        keyNum = Key_Scan();   
43.        switch (keyNum)  
44.        {  
45.            case(0xFE) :ledValue = 0x01;break;  
46.            case(0xFD) :ledValue = 0x02;break;  
47.            case(0xFB) :ledValue = 0x04;break;  
48.            case(0xF7) :ledValue = 0x08;break;  
49.            case(0xEF) :ledValue = 0x10;break;  
50.            case(0xDF) :ledValue = 0x20;break;  
51.            case(0xBF) :ledValue = 0x40;break;  
52.            case(0x7F) :ledValue = 0x80;break;  
53.            default: break;  
54.        }  
55.        GPIO_LED = ledValue;  
56.    }                 
57.}  

六、实验步骤

1.连接试验相关模块连线

硬件接线图
2.编写独立按键程序
首先,不停进行扫描按键。有按键输入之后,进行防抖操作,之后返回反应独立按键状态的数据,主程序根据返回的数据,对相应的灯进行亮灭操作。
3.下载独立按键程序

程序下载界面
4.测试程序
分别按下不同的键,不同的灯变亮。可以用按键控制灯的暗灭,反应速度较快,没有明显逻辑错误。

七、实验思考

独立按键控制led灯,其实这个实验看起来非常简单。我以小学生的水平来看的话就是把灯接上电,然后接线的中间连上开关,开关按下线通了,灯亮了。
但是,这个实验确实不是这样简单的。需要单片机作为处理器,读入键值,根据输入键值控制相应灯的亮灭。对于实验来说,这并非多此一举。因为我们可以区分不同的输入,然后做出相应的动作。这些动作是灯的点亮也可是别的,比如说控制电机的速度或者方向。这是十分有意义的,对于进一步开发有着重大的意义。文章来源地址https://www.toymoban.com/news/detail-473807.html

到了这里,关于单片机实验三 独立按键控制LED实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机原理及应用:独立式键盘控制LED与多功能按键识别

    今天来介绍另一个外设——按键与LED的配合工作,与开关不同,按键需要注意消除抖动带来的影响,代码逻辑也会更复杂一写,下面先为大家介绍独立式键盘的相关知识。 单片机的独立式键盘指的是一种不依赖于计算机或其他外部设备的键盘输入方式,由若干按键按照一定的

    2024年01月21日
    浏览(43)
  • 单片机C51(STC89C52RC)独立按键控制LED亮灭、状态、显示二进制、位移

    目录 1.独立按键控制LED灯亮灭 2.独立按键控制LED灯状态 3.独立按键控制LED灯显示二进制 4.独立按键控制LED灯位移 5.附录 独立按键控制LED灯状态,在独立按键按下时,LED灯点亮,松手后LED灯熄灭。独立按键按下为0,松开为1,在STC89C52RC芯片上,P2为LED灯IO口,P2_0表示第一个LED灯

    2024年02月01日
    浏览(103)
  • 【51单片机】LED与独立按键(学习笔记)

    LED:发光二极管 补:电阻读数 102 = 10 00 = 1k 473 = 47 000 1、新建工程:Project = New Project Ctrl + Shift + N :新建文件夹 2、选型号:Atmel-AT89C52 3、xxx提示?选否 4、Source Group = 右键 = Add New Item … = C文件\\\"main.c\\\" 5、设置勾选创建HEX File文件 6、编译 CPU通过对寄存器的控制,寄存器通过驱

    2024年02月06日
    浏览(46)
  • 四、51单片机控制独立按键

    按键相关知识。 1.1、按键工作原理 (1)按键内部是机械结构,也就是内部是没有电路的。按键对外表现位四个引脚,但本质上只是两个,引脚是两两连在一起的。按键按下内部引脚导通,松开内部断开。 (2)电路连接与原理图中图标。 按键一端接地,一端接单片机IO口。  (3)按

    2023年04月14日
    浏览(62)
  • 51单片机——独立按键实验,小白讲解,相互学习

    按键介绍:         按键是一种电子开关,使用时轻轻按开关按钮就可式开关接通,当松手时,开关断开。开发板上使用的按键及内部简易图如下图:         按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态,如果按键按下,初始导通状态变为断

    2024年02月04日
    浏览(55)
  • 51单片机-按键控制led灯

    1.开发环境介绍 使用C语言,环境为keil Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用. 什么是单片机 单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具

    2024年02月09日
    浏览(49)
  • 单片机-控制按键点亮LED灯

    定义四个按键引脚  1、按键按下 为 输入为低电平 2、按键不按下 IO有上拉电阻,为高电平 // 定义 按键的 管教 sbit KEY1 = P3^1; sbit KEY2 = P3^0; sbit KEY3 = P3^2; sbit KEY4 = P3^3; LED 输出高电平为亮 // 定义LED灯 管教 sbit LED1 = P2^0; sbit LED2 = P2^1; sbit LED3 = P2^2; sbit LED4 = P2^3; 1、定义按键管教

    2024年02月10日
    浏览(44)
  • 51单片机按键控制LED亮灭

    通过单片机按键控制LED亮灭与传统电路的物理逻辑不同,在物理逻辑中开关控制电路的通断来控制LED的亮灭,而通过单片机完成该项目至于要不断地读取按键所连接IO口的电平来判断对LED连接的IO口输出的电平即可。 原理图如下:  根据原理图,我们可以发现按键按下时P2.1口

    2023年04月18日
    浏览(55)
  • 如何使用单片机点亮LED灯,并使用按键控制[51单片机]

    首先先看一下我的板子,如果我们板子不相同,可能操作也不太相同 我们就不讲底层原理了,直接看,我们可以看到板子上有 8个LED灯   那这个8个LED用什么来控制呢,我们先看底层的线路图,所有的LEDD都连接到了P2带后缀的接口上, 那么只需要操作这几个接口的高低电频,

    2024年02月05日
    浏览(46)
  • 在51单片机中使用一个独立按键控制流水灯方向

    用独立按键控制流水灯转向,按下独立按键流水灯向右移动,再按下独立按键流水灯向左移动 此代码用到 逻辑左移:_crol_(移动对象,移动的位数) 逻辑右移:_cror_(移动对象,移动的位数)

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包