第一篇博客,博客园注册很久却一直没有好好利用,今天把以前的文章都删掉,就当开个好头吧。

希望在以后的时间中,自己能够认真、努力、珍惜时间。

零基础入门51单片机

单片机(Microcontroller Unit,MCU)是一种集成电路芯片,它将计算机的CPU、存储器(RAM和ROM)、输入/输出接口(I/O)等集成在一个芯片上,形成一个完整的微型计算机系统。单片机广泛应用于嵌入式系统和自动化控制领域。

核心部件:

中央处理器(CPU)执行程序指令。

存储器只读存储器(ROM)和随机存储器(RAM),前者用来存储固件或程序代码,后者存储临时数据「掉电丢失」。

I/O接口:输入/输出的作用是与外部设备进行数据交换。

功能特点:单片机具有低功耗、体积小、成本低、高性能、灵活性的特点。

总的来说现在的单片机应用面越来越广,可以使用微型电池供电应用在空间受限的地方,此外成本低廉适合企业大规模生产,性能也越来越接近传统的微处理器,而且可以根据需要定制不同的功能。

在这里我会编写第一个实例程序:点亮一个LED灯「过于简单,就当 Hello,World! 吧」

需要使用到工具:普中51单片机开发版、电脑、Keil5软件(关于Keil软件的安装直接B站搜索,开发版可以暂时使用Proteus)

关于LED灯的介绍:

LED灯又叫发光二极管,和普通的二极管相同,只允许电流单向导通。

从图中可以看到LED灯的接线方式,VCC表示高电平1,因此如果想让LED点亮只需给单片机P2端口低电平0就可以实现。

代码编写:

#include<regx52.h> //REGX52.H由Keil公司提供,头文件包含了对单片机特殊功能寄存器(SFR)的宏定义
void main()
{
P2 =0XFE; //1111 1110 操作单片机P2 I/O口 点亮第一个LED
while(1)
{ }
}

51单片机直接操作P2端口需要使用16进制。"0XFE" 中"0X"表示这个数字为16进制的符合,"FE" 转换为2进制为 "0111 1111",这个如果不熟悉可以自行学习。

10进制:	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15
16进制: 1 2 3 4 5 6 7 8 9 A B C D E F
02进制: 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

运行实例:由于程序简单,这里使用Proteus仿真软件模拟运行

第二个程序:LED灯闪烁

设计思路:只需要将第一个LED间隔一段时间熄灭、点亮就可以实现闪烁现象。

设计延时函数:

void Delay(unsigned int n)
{
unsigned char j;
while(n--)
{
for(j = 0; j < 113; j++)
}
}

合并代码如下:

#include<regx52.h>

void Delay(unsigned int n)	// 延时函数,延时大约1ms
{
unsigned char j;
while(n--)
{
for(j = 0;j < 113; j++);
}
} void main()
{
while(1)
{
P2 = 0XFE; //点亮一个LED灯
Delay(500);
P2 = 0XFF; //全部置高电平,熄灭
Delay(500); }
}

实验现象:

第三个程序:设计LED流水灯

设计思路:由于是初次入门这里只介绍最简单的实现方式,根据前面两个实验知识,依次点亮、熄灭LED灯,就能实现流水灯效果。

#include<regx52.h>
void Delay(unsigned int n)
{
unsigned char j;
while(n--)
{
for(j = 0; j < 113; j++);
}
}
void main()
{
while(1) // 8 4 2 1
{
P2 = 0XFE; // 1111 1110
Delay(500);
P2 = 0XFD; // 1111 1101
Delay(500);
P2 = 0XFB; // 1111 1011
Delay(500);
P2 = 0XF7; // 1111 0111
Delay(500);
P2 = 0XEF; // 1110 1111
Delay(500);
P2 = 0XDF; // 1101 1111
Delay(500);
P2 = 0XBF; // 1011 1111
Delay(500);
P2 = 0X7F; // 0111 1111
Delay(500);
}
}

实验现象:

51单片机入门:LED灯控制(01)的更多相关文章

  1. 基于TINY4412的Andorid开发-------简单的LED灯控制【转】

    本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制   阅读 ...

  2. [转] 基于TINY4412的Andorid开发-------简单的LED灯控制

    阅读目录 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> ...

  3. 基于TINY4412的Andorid开发-------简单的LED灯控制

    参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:pengdonglin137@163.com 平 ...

  4. CC2530 LED灯控制

      有三个寄存器 分别是功能寄存器.方向寄存器.配置寄存器 功能寄存器 通用 I/O口 说的就是一般的I/O口,可以输出高低电平 为外设IO 例如摄像头或者打印机他们具体实现某些功能(拍照或打印文档) ...

  5. 【转载】基于TINY4412的Andorid开发-------简单的LED灯控制

    阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源 ...

  6. 51单片机入门(补充)1--与C语言的交接

    我写完上一个文章,发现我写的还是不够全面,所以,这篇文章将会延续上一个文章的内容,并且再次补充新的东西,如果还有什么地方需要补充,还请各位一一指出,如果你已经学过这些东西,大可以直接跳过,假如说之后有 ...

  7. 51单片机入门1--与C语言的交接

    我们即将进入51单片机的编程学习,咱们今天就来讲解一下单片机中的C语言(你可以称作C51) 在说编程之前,要先说一些别的东西: 二进制,八进制,十六进制 二进制中只有数字0和1,在二进制中1+1为10 ...

  8. android驱动例子(LED灯控制)

    本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导 要达到的效果:通过a ...

  9. 51单片机 | 模拟PWM调制控制实验

    ———————————————————————————————————————————— PWM(脉冲宽度调制) 对模拟信号电平进行数字编码的方法 - - - - - - - - - - - - - ...

  10. 51单片机ALE引脚的控制(摘录)

    ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节. 在FLASH编程期间,此引脚用于输入编程脉冲. 在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频 ...

随机推荐

  1. 【Python + Appium】之元素定位总结(更新)

    一.ID定位 uiautomatorviewer里面的:resource-id driver.find_element(By.ID,"com.csks.businesses:id/tv_nu ...

  2. springboot 大文件切片上传

    1. 前端(vue element ui & 原生) 初始变量声明: currentFile: {}, // 当前上传的文件 bigFileSliceCount: 20, // 大文件切片后的 ...

  3. 开源项目管理工具 Plane 安装和使用教程

    说到项目管理工具,很多人脑海中第一个蹦出来的可能就是 Jira 了.没错,Jira 确实很强大,但是...它也有点太强大了,既复杂又昂贵,而且目前也不再提供私有化部署版本了. 再说说飞书,作为国产之光 ...

  4. Heart Rate Variability - HRV

    一次心跳波形 心率变异性 通常希望HRV 越高越好 HRV 公式: 需要指出的是,心率变异性会有多种计算公式. HRV数值相对越小=当天压力越大/身体越疲劳:HRV数值相对越大=当天压力越小/身体状态 ...

  5. Pointer Event Api-整合鼠标事件、触摸和触控笔事件

    Pointer Events API 是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse).触摸(touch)和触控笔(pen)三种事件整合为统一的API. Pointer Event P ...

  6. ASP.NET Core Library – HtmlSanitizer

    介绍 要输出 Raw HTML 最好是先消毒一下. 使用 Library 就可以了. 参考 Github – mganss / HtmlSanitizer 安装 nuget dotnet add pa ...

  7. Blazor静态服务端呈现(静态SSR)身份认证

    本文介绍 Blazor 静态服务端呈现(静态 SSR)模式下,用户登录身份认证是如何实现的. 1. SSR 简介 SSR 是服务器侧呈现,HTML 是由服务器上的 ASP.NET Core 运行时生成 ...

  8. LeetCode 1397. Find All Good Strings 找到所有好字符串 (数位DP+KMP)

    好题- 就是比平时的 hard 难了一些-- 虽然猜出是数位DP了-不过比我之前做的题,好像多了一维,印象中都是一维记录之前状态就够了--然后就没做出-- 至于 KMP 的应用更是神奇,虽然掌握的 k ...

  9. Kubernetes的Pod调度:让你的应用像乘坐头等舱!

    一.Kubernetes 中 Pod 调度的重要性 在 Kubernetes 的世界里,Pod 调度就像是一个繁忙的交通指挥官,负责把小车(也就是我们的 Pod)送到最合适的停车位(节点).调度不仅关 ...

  10. Devfreq Bus Dcvs

    一.引言 计算机的世界里,CPU任务分为CPU bound和IO bound.而实际场景下往往是两者混合型任务.针对性能的优化,普遍关注点都在CPU上(不论是CPU的频点和CPU的选核), 往往忽略对 ...