【单片机基础篇】51单片机流水灯

  • 一、 准备工作
  • 二 、LED介绍及内部原理
  • 三、 点亮一个LED
  • 四、 LED闪烁
  • 五、 LED流水灯
    • 总结

一、 准备工作

  1. 硬件设备: 51单片机
  2. 编译软件和烧写软件

二 、LED介绍及内部原理


  1. 上图便是单片机内部的引脚图,虽然很多,但我们今天的主角只涉及到P2口(21~28脚)——准双向8位I/O口,每个口可独立控制,内带上拉电阻。


上图便是LED内部原理图,因为在数字电路中,电平只有两种状态:高电平,1;低电平,0。所以,要让第一个LED亮,我们只需要让P2口的最低位清0。也就是让P2 = 11111110,然后再转换成十六进制,也就是P2 = 0xFE。

三、 点亮一个LED

首先来看第一个程序`

#include <REGX52.H>    //此头文件包含了51单片机的特殊功能寄存器
void main()
{P2 = 0xFE;while(1){}
}

现象:

四、 LED闪烁

让LED闪烁,我们要有一个延时函数

#include <REGX52.H>
#include <INTRINS.H>void Delay400ms()     //@12.000MHz
{unsigned char i, j, k;_nop_();i = 4;j = 11;k = 45;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){P2 = 0xFE;Delay400ms();P2 = 0xFF;Delay400ms();}
}

五、 LED流水灯

直接上代码

#include <REGX52.H>void DelayXms(unsigned int x)       //@12.000MHz
{unsigned char i, j;while(x){i = 12;j = 169;do{while (--j);} while (--i);x--;}
}void main()
{while(1){P2=0xFE;//1111 1110DelayXms(500);P2=0xFD;//1111 1101DelayXms(500);P2=0xFB;//1111 1011DelayXms(500);P2=0xF7;//1111 0111DelayXms(500);P2=0xEF;//1110 1111DelayXms(500);P2=0xDF;//1101 1111DelayXms(500);P2=0xBF;//1011 1111DelayXms(500);P2=0x7F;//0111 1111DelayXms(500);}
}

如果想改变LED的闪烁频率,我们只需要改参数就可以了。

总结

在单片机(MCU)内部,CPU通过配置寄存器来控制硬件电路。

【单片机基础篇】51单片机流水灯相关推荐

  1. 51单片机入门学习小结(流水灯与数码管)

    51单片机入门学习小结(流水灯与数码管) 对原理图的分析 以下是我所用单片机的原理图 这块51单片机一共有4个I/O口(意思为input/output),也代表着如果我们后续都要用到这四个的话那么功能 ...

  2. 51单片机:外部中断实现流水灯

    51单片机:外部中断实现流水灯 作业要求: 按照给定的实验板电路图编程实现外部中断控制流水灯,初始上电时,实验板右下侧的流水灯区域只有最右侧LED灯亮,其他灯全都熄灭,每按下一次按键,流水灯从右向左流 ...

  3. 51单片机用定时器0实现流水灯

    51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值.原先写的都是用查表来移位的,个人感觉不怎么 ...

  4. 51单片机编程与仿真_1_流水灯

    流水灯是一个很经典的入门项目,学单片机大部分都是从流水灯开始! 一.编程 先贴上代码: #include <reg51.h> #include <intrins.h>void ...

  5. 单片机并口应用实验c语言,1单片机并口简单应用(流水灯).docx

    试验1单片机并口简单应用(流水灯) 实验目的 1.了解单片机C语言程序的基本结构 2.了解单片机C语言程序的设计和调试方法 3.掌握顺序控制程序的简单编程 4.熟悉51单片机的端口使用 实验仪器 单片 ...

  6. 嵌入式单片机基础篇(一)之stm32F1GPIO详解

    嵌入式单片机基础篇(一)之stm32F1GPIO详解 stm32F1GPIO详解 下面以stm32f103zet6以及51单片机为例,讲解单片机最基本部分IO口 第一部分:stm32 STM32 的 ...

  7. c语言流水灯仿真程序设计框图,基于单片机c语言控制的流水灯程序设计及prtes仿真图.docx...

    基于单片机c语言控制的流水灯程序设计及prtes仿真图 89c51与8个发光二极管相连流水控制 一.不同花样的控制源程序代码: /*#include #define uchar unsigned ch ...

  8. 零基础学习51单片机

    零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...

  9. 嵌入式单片机基础篇(八)之两只看门狗

    嵌入式单片机基础篇(八)之两只看门狗 独立看门狗与窗口看门狗 第一部分:stm32 .STM32 内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG). (一)独立看门狗 STM3 ...

  10. 单片机-四个按键控制流水灯

    单片机-四个按键控制流水灯 代码 代码 代码片. #include "reg51.h" sbit key1 = P2 ^ 0; sbit key2 = P2 ^ 1; sbit k ...

最新文章

  1. ubuntu 下 SubLime Text2 使用之创建快捷方式
  2. Win 8 自定义设置面版
  3. myeclipse打开jsp页面慢或者卡死
  4. 后端技术趋势指南|如何选择自己的技术方向
  5. ★36句经典英文格言
  6. 弹性伸缩Auto Scaling产品全面升级,轻松应对业务负载变化,张弛有度,收放自如!...
  7. nvme驱动_用户态NVMe运维利器 SPDK NVMe 字符设备
  8. 制度化规范化标准化精细化_管理技巧:为什么说企业制度化管理势在必行?好处太多了...
  9. eclipse里面配置热部署,tomcat配置
  10. 程序员经常遇见的9大困难你造么?
  11. html 图片分散,纯js和CSS3分散式宝丽来图片画廊
  12. paip.没有源码的情况下更改ASP.net ASPX页
  13. TortoiseSVN安装中文语言包
  14. 排名前5的iOS测试自动化框架
  15. 【django】django面试题总结
  16. Tp5开启cookie和session安全传输secure和httponly
  17. 使用Python发送邮件(图片、表格、附件) 系列三: 发送工作报表之透视表自动刷新数据
  18. 侯捷C++八部曲笔记(二、STL标准库和泛型编程)
  19. MATLAB - 拉普拉斯算子可视化
  20. Decision-making Strategy on Highway for Autonomous Vehicles using Deep Reinforcement Learning

热门文章

  1. adobe animate2022动画制作软件
  2. 阿里Sophix热修复框架使用入门
  3. STM32F4 USB3300 fs/hs uvc实现ov2640的图像传输和静态图片
  4. python语言程序设计实验题p181答案_2010年新版教材自考网络操作系统02335_复习笔记...
  5. Flex笔记_格式化数据
  6. Hyper-V固定虚拟机IP
  7. ubuntu固定ip地址
  8. JavaScript设置视频播放速度
  9. 微信小店 没有服务器,微信小店商家后台配置说明
  10. 微信小程序快手小店登录