【单片机基础篇】51单片机流水灯
【单片机基础篇】51单片机流水灯
- 一、 准备工作
- 二 、LED介绍及内部原理
- 三、 点亮一个LED
- 四、 LED闪烁
- 五、 LED流水灯
- 总结
一、 准备工作
- 硬件设备: 51单片机
- 编译软件和烧写软件
二 、LED介绍及内部原理
上图便是单片机内部的引脚图,虽然很多,但我们今天的主角只涉及到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单片机流水灯相关推荐
- 51单片机入门学习小结(流水灯与数码管)
51单片机入门学习小结(流水灯与数码管) 对原理图的分析 以下是我所用单片机的原理图 这块51单片机一共有4个I/O口(意思为input/output),也代表着如果我们后续都要用到这四个的话那么功能 ...
- 51单片机:外部中断实现流水灯
51单片机:外部中断实现流水灯 作业要求: 按照给定的实验板电路图编程实现外部中断控制流水灯,初始上电时,实验板右下侧的流水灯区域只有最右侧LED灯亮,其他灯全都熄灭,每按下一次按键,流水灯从右向左流 ...
- 51单片机用定时器0实现流水灯
51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值.原先写的都是用查表来移位的,个人感觉不怎么 ...
- 51单片机编程与仿真_1_流水灯
流水灯是一个很经典的入门项目,学单片机大部分都是从流水灯开始! 一.编程 先贴上代码: #include <reg51.h> #include <intrins.h>void ...
- 单片机并口应用实验c语言,1单片机并口简单应用(流水灯).docx
试验1单片机并口简单应用(流水灯) 实验目的 1.了解单片机C语言程序的基本结构 2.了解单片机C语言程序的设计和调试方法 3.掌握顺序控制程序的简单编程 4.熟悉51单片机的端口使用 实验仪器 单片 ...
- 嵌入式单片机基础篇(一)之stm32F1GPIO详解
嵌入式单片机基础篇(一)之stm32F1GPIO详解 stm32F1GPIO详解 下面以stm32f103zet6以及51单片机为例,讲解单片机最基本部分IO口 第一部分:stm32 STM32 的 ...
- c语言流水灯仿真程序设计框图,基于单片机c语言控制的流水灯程序设计及prtes仿真图.docx...
基于单片机c语言控制的流水灯程序设计及prtes仿真图 89c51与8个发光二极管相连流水控制 一.不同花样的控制源程序代码: /*#include #define uchar unsigned ch ...
- 零基础学习51单片机
零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...
- 嵌入式单片机基础篇(八)之两只看门狗
嵌入式单片机基础篇(八)之两只看门狗 独立看门狗与窗口看门狗 第一部分:stm32 .STM32 内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG). (一)独立看门狗 STM3 ...
- 单片机-四个按键控制流水灯
单片机-四个按键控制流水灯 代码 代码 代码片. #include "reg51.h" sbit key1 = P2 ^ 0; sbit key2 = P2 ^ 1; sbit k ...
最新文章
- ubuntu 下 SubLime Text2 使用之创建快捷方式
- Win 8 自定义设置面版
- myeclipse打开jsp页面慢或者卡死
- 后端技术趋势指南|如何选择自己的技术方向
- ★36句经典英文格言
- 弹性伸缩Auto Scaling产品全面升级,轻松应对业务负载变化,张弛有度,收放自如!...
- nvme驱动_用户态NVMe运维利器 SPDK NVMe 字符设备
- 制度化规范化标准化精细化_管理技巧:为什么说企业制度化管理势在必行?好处太多了...
- eclipse里面配置热部署,tomcat配置
- 程序员经常遇见的9大困难你造么?
- html 图片分散,纯js和CSS3分散式宝丽来图片画廊
- paip.没有源码的情况下更改ASP.net ASPX页
- TortoiseSVN安装中文语言包
- 排名前5的iOS测试自动化框架
- 【django】django面试题总结
- Tp5开启cookie和session安全传输secure和httponly
- 使用Python发送邮件(图片、表格、附件) 系列三: 发送工作报表之透视表自动刷新数据
- 侯捷C++八部曲笔记(二、STL标准库和泛型编程)
- MATLAB - 拉普拉斯算子可视化
- Decision-making Strategy on Highway for Autonomous Vehicles using Deep Reinforcement Learning