【单片机】基于普中A2型51单片机的流水彩灯设计

一、 实验设计思路

利用四个独立按键实现开发板上的八颗led灯以六种不同的跑马灯样式呈现出来。

二、 实验仪器

  1. 电脑
  2. 51单片机及开发板
  3. KeilC51以及代码烧录软件

三、 实验原理

  1. 独立按键工作原理
    在这里插入图片描述

    按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时,开关断开。按键未按下去时,GPIO 口有上拉电阻,所以默认检测到的为高电平。按键按下去时,GPIO口检测到的为低电平。通过判断检测到的高低电平,即可对单片机做出相应的控制。由于机械点的弹性作用,开关在闭合和断开的瞬间会产生一系列抖动,时间不超过 10ms。抖动会使电平十分不稳定,可能会使 CPU 误读很多次。因此需要进行消抖,当按键按下后,延时10ms 再判断按键的状态。
    在这里插入图片描述
    在这里插入图片描述

  2. Led灯工作原理
    在这里插入图片描述

    Led 即发光二极管,具有单向导电性,通过 5mA 左右电流即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在 3 mA-20mA 之间。
    发光二级管正极又称阳极,负极称为阴极。只要给二极管两端合适的正向偏压,二极管即可导通发光。板上的 8 个 led 共阳极,且阳极为高电平。Led 的阴极连接单片机的 GPIO,只需给相应的 GPIO 一个低电平,二级管即可导通发光;给相应的 GPIO 一个高电平,二级管截止灯灭。通过调用延时函数,可控制 LED 导通和截止的时间以达到多种不同的效果。
    该电路是集成的,LED 控制管脚直接连接到 51 单片机的 IO 上。LED 采用共阳接法,即所有 LED 阳极管脚接电源 VCC,阴极管脚通过一个 470 欧的限流电阻接到 P2 口上。

四、 实验流程图

在这里插入图片描述

五、 实验代码

#include "reg52.h"
#include <intrins.h>   //这个头文件中包含左移函数_crol_()和右移函数_cror_()的定义

typedef unsigned int u16; //定义无符号整型
typedef unsigned char u8; //定义无符号字符型
unsigned char k; //全局变量k

//对led灯和按键的定义
sbit led_D1 = P2^0; 
sbit led_D2 = P2^1;
sbit led_D3 = P2^2;
sbit led_D4 = P2^3;
sbit K1 = P3^1; //按键1
sbit K2 = P3^0; //按键2
sbit K3 = P3^2; //按键3
sbit K4 = P3^3; //按键4
sbit beep
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kaho Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值